Summary

  • Beaconstac serves QR code analytics to 30K customers with Apache Pinot

  • Beaconstac found Apache Pinot p95 latencies were 20x faster than Elasticsearch

  • Beaconstac saw 10x improvement in overall query performance across latencies

  • Beaconstac saw 100% reduction in errors with Pinot and StarTree

  • Beaconstac shrank their cluster footprint (50% reduction in nodes) by moving from Elasticsearch to Apache Pinot

    Beaconstac relies on Apache Pinot and StarTree for user-facing analytics

    Quick Response (QR) codes have been around since the 1990s and had explosive growth across industries thanks to the broad adoption of mobile browsers and camera-equipped smartphones. In the U.S. alone, the number of users that will scan a QR code to seek information on products and services continues to rise, and is now nearing 100 million consumers

    Beaconstac is a provider of a dynamic QR code solution to run campaigns and analytics, engaging audiences and prospects immediately while building customer trust and loyalty. Real-time data is essential for the 30,000+ customers of Beaconstac who want instantaneous insights, discovering patterns and trends in when and how users are scanning their QR codes.

    Watch now

    This article is based on an in-person meetup. Watch the meetup here:

    How Beaconstac serves real-time QR code analytics to users

    With more than 204 million QR code scans worldwide, Beaconstac serves diverse use cases across retail, financial services, consumer goods, healthcare, and other industries. Beaconstac’s dashboards allow users to see their top-performing QR codes and analyze code scans by filters such as location, time of day, and device used. 

    The company’s real-time data ingestion pipeline includes Beaconstac’s analytics server, Amazon Kinesis Data Streams, and Amazon Lambda. That data is then sent to StarTree Cloud, powered by Apache Pinot, and delivered to users in the form of analytics dashboards.

    Beaconstac real-time data streaming architecture

    Challenges of using Elasticsearch

    Initially Beaconstac had used Elasticsearch, the popular search engine, to generate their analytics. However, Elasticsearch was never designed to support user-facing analytics at scale. As Beaconstac’s user base and cluster footprint grew rapidly, they experienced a multitude of issues with Elasticsearch. User-facing dashboards had loading challenges due to high latencies, high error rates, and slow Queries Per Second (QPS). All of these issues directly impacted end users and affected the likelihood of users converting to Beaconstac’s paid plans.

    The key issues Beaconstac identified with Elasticsearch were:

    • High p95 latencies >20 seconds

    • High error rate

    • 2.5× - 3×​​ lower QPS than expected

    • Large cluster footprint (grew by 2× every few months)

    The Beaconstac team saw p95 latency for queries run using Elasticsearch often exceeding 20 seconds, as shown in the graph below.

    Beaconstac latency performance with Elasticsearch

    These high latencies were coupled with frequent query timeouts, causing Beaconstac’s users to wait a considerable amount of time to view their QR code analytics. At peak times, the number of errors for queries run in Elasticsearch could be in the thousands — with one peak surpassing 15,000 errors in a 2 hour period, or two errors every second.

    Beaconstac error rate with Elasticsearch

    Although Beaconstac had built-in retry mechanisms for errors, these callbacks led to a very low QPS on their Elasticsearch clusters. The team should have been able to serve 100+ QPS, but were only serving 30 to 40 QPS due to high latencies and error retry rates.

    Comparing performance of Elasticsearch vs. Apache Pinot

    After realizing they needed a long-term replacement solution, Beaconstac determined their best option would be a real-time analytics database. This was the case for Apache Pinot; it was designed-for-purpose for fast online analytical processing (OLAP) workloads. Beaconstac did a small POC of Apache Pinot in-house and were impressed with its capabilities.

    The team performed extensive testing to ensure Pinot would eliminate the problems they were experiencing with Elasticsearch. Stress testing on the Pinot cluster found they were able to support 100 concurrent users and 200 QPS with p95 latencies as low as 500 ms.

    Why Beaconstac chose fully-managed Pinot with StarTree Cloud

    One of the issues Beaconstac had faced with Elasticsearch was its steep learning curve. Their small data team lacked specialized knowledge of Elasticsearch, and they had difficulty finding resources with that experience. Apache Pinot had a vibrant community and excellent documentation. Beaconstac also saw the benefits of working with StarTree to access fully managed Pinot, help from Pinot experts, and additional features not available in open source Pinot (such as Data Manager for easy data ingestion).

    Of course, performance was a key reason that Beaconstac selected Pinot and StarTree Cloud. Even without using explicit indexing, the Beconstac team saw improved run times compared to Elasticsearch.

    10x faster queries with Apache Pinot and StarTree

    With StarTree Cloud, powered by Apache Pinot, the Beaconstac team saw latencies between 0.5 and 1 second and p95 latency improved by more than 20x. They also experienced zero errors — a drastic improvement compared to the error rates of Elasticsearch.

    The performance gains stem from the architectural differences and advantages of Apache Pinot vs. Elasticsearch. Apache Pinot was designed-for-purpose for real-time analytics. It uses an efficient columnar store format, supports fast aggregations and flexible index types like the star-tree index, and for ingestion of streaming data and real-time upserts.

    Beaconstac latency with Apache Pinot

    When Beaconstac compared query performance among Elasticsearch, Apache Pinot, and StarTree, they saw a 10x improvement overall across latencies (including p50, p75, p90, p95, and p99). The chart below shows query runtimes for Elasticsearch, open source Apache Pinot (without indexing), and StarTree Cloud (with indexing).

    Beaconstac query performance with Elasticsearch vs Apache Pinot vs StarTree Cloud

    Reduced cluster footprint

    In addition to query performance improvements, Beaconstac was able to significantly reduce their cluster footprint. The results from switching to Apache Pinot included:

    • 50% reduction in number of nodes needed

    • 10x reduction in number of cores being run

    • 7x reduction in memory

    Beaconstac cluster footprint improvements

    Apache Pinot = Lower latencies, reduced infrastructure, and zero errors

    On the whole, Beaconstac saw: 

    • 90% reduction in infrastructure size

    • 90% reduction in p99 latency

    • 100% reduction in errors

    They were also able to significantly improve their QPS, with Pinot giving them the ability to run many more concurrent queries than Elasticsearch.

    Beaconstac performance improvements with Apache Pinot and StarTree Cloud

    See why companies are migrating from Elasticsearch to Pinot

    Beaconstac isn’t the only company who saw drastic improvements in their real-time analytics performance by switching to Apache Pinot. Uber replaced Elasticsearch with Pinot and saved $2M annually, reduced database cores by 50%, and saw page load times become nearly 3x faster. 

    Cisco Webex also migrated their real-time analytics and observability to Pinot after facing high latencies. The Webex team found that Apache Pinot provided 5x to 150x lower latencies than Elasticsearch.

    Watch the full meetup to hear the stories from Beaconstac, Uber, and Webex.

    Learn more about Apache Pinot

    Check out our comprehensive list of stories from Apache Pinot users to learn about how companies are using Pinot for user-facing analytics, anomaly detection, observability, security, and more. 

    You can also get access to fully managed Apache Pinot by signing up for a free trial of StarTree Cloud. If you’re interested in seeing how StarTree compares to Elasticsearch, visit our StarTree Cloud vs. Elasticsearch comparison page.

    User Focus

    Insights from existing users running real-time analytics at scale

    Sovrn Moves from 24-Hour Delay to Real-Time Data with StarTree Cloud

    Read More

    Webex Meets Unprecedented Analytics Demand with Pinot

    Read more

    Walmart and Razorpay Power Real-Time Analytics with Apache Pinot

    Read more