{"id":25504,"date":"2025-05-14T17:23:07","date_gmt":"2025-05-15T00:23:07","guid":{"rendered":"https:\/\/tdengine.com\/?p=25504"},"modified":"2026-02-27T17:37:24","modified_gmt":"2026-02-28T01:37:24","slug":"mcdonalds-achieves-sub-second-analytics-at-scale-with-tdengine","status":"publish","type":"post","link":"https:\/\/tdengine.com\/mcdonalds-achieves-sub-second-analytics-at-scale-with-tdengine\/","title":{"rendered":"McDonald&#8217;s Achieves Sub-Second Analytics at Scale with TDengine"},"content":{"rendered":"\n<div class=\"gb-element-6cdfdd5a\">\n<div>\n<h2 class=\"gb-text\">Overview<\/h2>\n\n\n\n<p class=\"gb-text gb-text-9c9ea557\">Faced with the challenge of managing and analyzing billions of server monitoring records each day, McDonald&#8217;s turned to TDengine to transform its time-series data infrastructure. The result: a high-performance, real-time analytics system capable of delivering sub-second insights, even on datasets containing tens of millions of records per table.<\/p>\n<\/div>\n\n\n\n<img decoding=\"async\" width=\"1920\" height=\"806\" class=\"gb-media-9c149efa\" alt=\"\" src=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/mcd-td-jason.jpg?strip=all&sharp=1\" srcset=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/mcd-td-jason.jpg?strip=all&amp;sharp=1 1920w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/mcd-td-jason-300x126.jpg?strip=all&amp;sharp=1 300w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/mcd-td-jason-1024x430.jpg?strip=all&amp;sharp=1 1024w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/mcd-td-jason-768x322.jpg?strip=all&amp;sharp=1 768w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/mcd-td-jason-1536x645.jpg?strip=all&amp;sharp=1 1536w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/mcd-td-jason.jpg?strip=all&amp;sharp=1&amp;w=384 384w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/mcd-td-jason.jpg?strip=all&amp;sharp=1&amp;w=1152 1152w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/mcd-td-jason.jpg?strip=all&amp;sharp=1&amp;w=450 450w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/>\n<\/div>\n\n\n\n<h2 class=\"gb-text\">Customer Background<\/h2>\n\n\n\n<p>The system being monitored consisted of more than <strong>800 servers<\/strong> that generate <strong>3.5 billion data records per day<\/strong>, with some machines generating as many as 10 million data points daily. Storing and monitoring this dataset is critical to maintaining system reliability, ensuring optimal performance, and proactively identifying anomalies.<\/p>\n\n\n\n<p>Business queries at McDonald\u2019s rely heavily on <strong>percentile-based latency metrics<\/strong>, particularly determining the P90, P95, P99, and P99.99 of certain data. These metrics help the engineering and operations teams understand worst-case response times and deliver consistently smooth user experiences.<\/p>\n\n\n\n<figure class=\"gb-element-8d636670\">\n<img decoding=\"async\" width=\"1920\" height=\"1842\" class=\"gb-media-0eb450ed\" src=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/mcd-flow-new.png?strip=all&sharp=1\" alt=\"\" title=\"mcd-flow-new\" srcset=\"https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/mcd-flow-new.png?strip=all&amp;sharp=1 1920w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/mcd-flow-new-300x288.png?strip=all&amp;sharp=1 300w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/mcd-flow-new-1024x982.png?strip=all&amp;sharp=1 1024w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/mcd-flow-new-768x737.png?strip=all&amp;sharp=1 768w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/mcd-flow-new-1536x1474.png?strip=all&amp;sharp=1 1536w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/mcd-flow-new.png?strip=all&amp;sharp=1&amp;w=384 384w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/mcd-flow-new.png?strip=all&amp;sharp=1&amp;w=1152 1152w, https:\/\/eujqw4hwudm.exactdn.com\/wp-content\/uploads\/mcd-flow-new.png?strip=all&amp;sharp=1&amp;w=450 450w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/>\n\n\n\n<figcaption class=\"gb-text\">Query flow at McDonald&#8217;s<\/figcaption>\n<\/figure>\n\n\n\n<h2 class=\"gb-text\">The Challenge<\/h2>\n\n\n\n<p>McDonald&#8217;s needed to:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Store and manage <strong>billions of time-series records per day<\/strong><\/li>\n\n\n\n<li><strong>Query latency metrics across tens of millions of records<\/strong>, on-demand and in real time<\/li>\n\n\n\n<li>Maintain <strong>query response times under 1 second<\/strong>, even for complex analytics involving multiple percentile calculations<\/li>\n<\/ul>\n\n\n\n<p>Traditional approaches could not keep pace. Initial tests showed that computing multiple percentile values over a single table of 10 million rows took over <strong>2.5 seconds<\/strong>, creating a bottleneck for operational visibility.<\/p>\n\n\n\n<h2 class=\"gb-text\">The TDengine Solution<\/h2>\n\n\n\n<p>TDengine worked closely with McDonald\u2019s engineering team to redesign and optimize the execution of percentile-based queries. Key innovations included:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Multi-Percentile Optimization<\/strong>:<br>McDonald\u2019s percentile queries targeted a single data column over a fixed time range. TDengine introduced <strong>merged histogram bucketing<\/strong>, which enabled multiple percentile values to be calculated in a <strong>single pass<\/strong>, eliminating redundant computations and significantly improving performance.<\/li>\n\n\n\n<li><strong>Intelligent Use of Summary Statistics<\/strong>:<br>TDengine\u2019s query planner was enhanced to leverage <strong>statistical moving averages (SMA)<\/strong> during the first scan of percentile queries. This reduced the need to load raw data in early computation stages, cutting total execution time without sacrificing accuracy.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"gb-text\">Results<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Query time reduced from 2.5 seconds to 0.8 seconds<\/strong>, even with simultaneous COUNT, AVG, and multiple PERCENTILE functions<\/li>\n\n\n\n<li><strong>Single-table queries over 10 million records<\/strong> consistently returned results in under one second<\/li>\n\n\n\n<li>Enabled <strong>real-time monitoring<\/strong> and faster issue resolution across all monitored servers<\/li>\n\n\n\n<li>Delivered <strong>greater operational agility<\/strong> by accelerating the feedback loop between performance data and decision-making<\/li>\n<\/ul>\n\n\n\n<h2 class=\"gb-text\">Why TDengine<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Built for scale<\/strong>: Optimized for high-ingestion workloads and per-device isolation<\/li>\n\n\n\n<li><strong>Designed for performance<\/strong>: Engineered for millisecond-latency queries, even under heavy data volumes<\/li>\n\n\n\n<li><strong>Deep technical support<\/strong>: TDengine\u2019s team provided hands-on engineering collaboration and custom query optimization<\/li>\n<\/ul>\n\n\n\n<h2 class=\"gb-text\">Conclusion<\/h2>\n\n\n\n<p>By partnering with TDengine, McDonald\u2019s successfully transformed its server monitoring pipeline into a <strong>real-time analytics platform<\/strong>. The sub-second performance achieved through collaborative optimization work has allowed the company to unlock new levels of visibility, responsiveness, and confidence in its operations.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>By partnering with TDengine, McDonald\u2019s successfully transformed its server monitoring pipeline into a real-time analytics platform.<\/p>\n","protected":false},"author":102,"featured_media":25528,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"content-type":"","footnotes":""},"categories":[23],"tags":[],"ppma_author":[181],"class_list":["post-25504","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-case-studies"],"authors":[{"term_id":181,"user_id":102,"is_guest":0,"slug":"tdengine-team","display_name":"TDengine Team","avatar_url":{"url":"https:\/\/tdengine.com\/wp-content\/uploads\/29.03-01-tdengine.png","url2x":"https:\/\/tdengine.com\/wp-content\/uploads\/29.03-01-tdengine.png"},"1":"","2":"","3":"","4":"","5":"","6":"","7":"","8":""}],"_links":{"self":[{"href":"https:\/\/tdengine.com\/wp-json\/wp\/v2\/posts\/25504","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tdengine.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tdengine.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tdengine.com\/wp-json\/wp\/v2\/users\/102"}],"replies":[{"embeddable":true,"href":"https:\/\/tdengine.com\/wp-json\/wp\/v2\/comments?post=25504"}],"version-history":[{"count":18,"href":"https:\/\/tdengine.com\/wp-json\/wp\/v2\/posts\/25504\/revisions"}],"predecessor-version":[{"id":30917,"href":"https:\/\/tdengine.com\/wp-json\/wp\/v2\/posts\/25504\/revisions\/30917"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/tdengine.com\/wp-json\/wp\/v2\/media\/25528"}],"wp:attachment":[{"href":"https:\/\/tdengine.com\/wp-json\/wp\/v2\/media?parent=25504"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tdengine.com\/wp-json\/wp\/v2\/categories?post=25504"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tdengine.com\/wp-json\/wp\/v2\/tags?post=25504"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/tdengine.com\/wp-json\/wp\/v2\/ppma_author?post=25504"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}