{"id":8698,"date":"2022-08-30T02:14:24","date_gmt":"2022-08-30T09:14:24","guid":{"rendered":"https:\/\/en.pingcap.com\/?p=8698"},"modified":"2025-11-14T06:48:38","modified_gmt":"2025-11-14T14:48:38","slug":"how-good-is-tidb-as-an-htap-system-a-hattrick-benchmark","status":"publish","type":"post","link":"https:\/\/www.pingcap.com\/ko\/blog\/how-good-is-tidb-as-an-htap-system-a-hattrick-benchmark\/","title":{"rendered":"How Good is TiDB as an HTAP System? A HATtrick Benchmark"},"content":{"rendered":"<p>I\u2019m one of the developers of TiDB, a Hybrid Transactional and Analytical (HTAP) database. Recently, I read the SIGMOD 22 paper, \u201c<a href=\"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3514221.3526148\">How Good is My HTAP System<\/a>,\u201d&nbsp;which uses TiDB as one of its research subjects. I really appreciate the authors\u2019 work \u2014, especially their methodology and the tooling they created to observe and benchmark HTAP performance. For example, the HATtrick benchmark tool not only produces Online Transactional Processing (OLTP) and&nbsp;Online Analytical Processing (OLAP) workloads simultaneously, it also evaluates the freshness of OLAP queries on an HTAP system.&nbsp;<\/p>\n\n\n\n<p>The paper concludes that analytical queries running on TiDB always read the latest data. This is an essential feature for businesses that want to make decisions based on the most current information.<\/p>\n\n\n\n<p>However, the TiDB performance test results weren\u2019t up to our standards. In an effort to learn more, I reproduced the HATtrick tests and discussed them here. I hope this information gives you greater insight to HTAP in general and TiDB specifically.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"How_HATtrick_works\"><\/span><strong>How HATtrick works<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>The author\u2019s benchmark tool, HATtrick,&nbsp;combines the Star Schema Benchmark (SSB) for analytical workloads and the TPCC benchmark for transactional workloads. This design allows HATtrick to send transactional queries and analytical queries to the database simultaneously to measure the performance isolation between the two workloads. The paper also introduces the concept of \u201cthroughput frontier,\u201d which shows transactional throughput and analytical throughput in one diagram. Throughput frontier is an intuitive way to track performance isolation between transactional and analytical processing (AP) and (TP).<\/p>\n\n\n\n<p>For example, in the following frontier diagram, the red dotted line is the \u201cbounding box,\u201d and the blue dotted line is the \u201cproportional line.\u201d The green solid line indicates the system&#8217;s capability when it runs AP and TP queries simultaneously. The closer the green solid line is to the bounding box, the better performance isolation between TP and AP.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"918\" height=\"644\" src=\"https:\/\/www.pingcap.com\/core\/uploads\/2022\/08\/performance-isolation-for-TiDB.jpeg\" alt=\"\" class=\"wp-image-8699\" srcset=\"https:\/\/static.pingcap.com\/files\/2022\/08\/performance-isolation-for-TiDB.jpeg 918w, https:\/\/static.pingcap.com\/files\/2022\/08\/performance-isolation-for-TiDB-300x210.jpeg 300w, https:\/\/static.pingcap.com\/files\/2022\/08\/performance-isolation-for-TiDB-768x539.jpeg 768w\" sizes=\"auto, (max-width: 918px) 100vw, 918px\" \/><\/figure>\n\n\n\n<p class=\"has-text-align-center\"><em>Performance isolation shown in the frontier<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>What is HTAP \u201cfreshness\u201d?<\/strong><\/h3>\n\n\n\n<p>This paper also defined the \u201cfreshness\u201d of an HTAP system:&nbsp;<\/p>\n\n\n\n<p><em>\u00a0An HTAP system provides fresh analytics if every analytical query is executed on an up-to-date version of the <a href=\"https:\/\/www.pingcap.com\/ko\/solutions\/enable-operational-intelligence\/\">operational data<\/a>. Else, it provides stale analytics.\u00a0<\/em><\/p>\n\n\n\n<p>HATtrick benchmark includes a freshness table that records the version of the transactional queries that have been processed. The benchmark uses this table to check the versions retrieved by the analytical queries. If the analytical queries always retrieve the latest version of the data, the freshness score is 0s. In the following frontier chart, the freshness score is 1.5s; that is, the analytical queries can only retrieve the data that\u2019s been stale for 1.5 seconds.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"996\" height=\"494\" src=\"https:\/\/www.pingcap.com\/core\/uploads\/2022\/08\/freshness-score.jpeg\" alt=\"\" class=\"wp-image-8700\" srcset=\"https:\/\/static.pingcap.com\/files\/2022\/08\/freshness-score.jpeg 996w, https:\/\/static.pingcap.com\/files\/2022\/08\/freshness-score-300x149.jpeg 300w, https:\/\/static.pingcap.com\/files\/2022\/08\/freshness-score-768x381.jpeg 768w\" sizes=\"auto, (max-width: 996px) 100vw, 996px\" \/><\/figure>\n\n\n\n<p class=\"has-text-align-center\"><em>A frontier chart freshness score<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Run_HATrick_on_TiDB_again\"><\/span><strong>Run HATrick on TiDB again<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>TiDB is a distributed HTAP database. It has a dedicated row engine, TiKV, and a dedicated column engine, TiFlash. The TiDB optimizer automatically routes transactional queries to TiKV and analytical queries to TiFlash. Theoretically, if there are no resource conflicts between TiDB, TiKV, and TiFlash, there is great performance isolation between the two types of queries.&nbsp;<\/p>\n\n\n\n<p>Also, TiDB has a disaggregated architecture that separates storage and computing. This allows users to scale AP or TP throughput by adding or removing TiDB instances as needed.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"549\" src=\"https:\/\/www.pingcap.com\/core\/uploads\/2022\/06\/tidb_arch-1024x549.png\" alt=\"\" class=\"wp-image-7413\" srcset=\"https:\/\/static.pingcap.com\/files\/2022\/06\/tidb_arch-1024x549.png 1024w, https:\/\/static.pingcap.com\/files\/2022\/06\/tidb_arch-300x161.png 300w, https:\/\/static.pingcap.com\/files\/2022\/06\/tidb_arch-768x412.png 768w, https:\/\/static.pingcap.com\/files\/2022\/06\/tidb_arch.png 1288w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"has-text-align-center\"><em>TiDB architecture<\/em><\/p>\n\n\n\n<p>My retesting with HATtrick focused on:&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The performance isolation between TP and AP for HTAP&nbsp;<\/li>\n\n\n\n<li>The scalability of both TP and AP<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Benchmark the performance isolation between TP and AP<\/strong><\/h3>\n\n\n\n<p>We reran the HATrick scale factor 100 test with a newer TiDB configuration::<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Software version: TiDB 6.1<\/li>\n\n\n\n<li>CPU: 2.4 Ghz Intel\u00ae Xeon\u00ae Silver 4214R CPU with 24 physical cores,&nbsp;<\/li>\n\n\n\n<li>Memory: 128 GB RAM&nbsp;<\/li>\n\n\n\n<li>Hard drive: 500 GB Solid-state drive (SSD)<\/li>\n\n\n\n<li>Cluster: 1 TiDB node, 1 TiFlash node, 3 TiKV nodes&nbsp;<\/li>\n\n\n\n<li>Dataset: 59 GB<\/li>\n<\/ul>\n\n\n\n<p>We called this configuration TiDB 1x.<\/p>\n\n\n\n<p>The following frontier chart shows our results. The green solid line, which indicates TP\/AP throughput, is pretty close to the bounding box. This means there is little interference between the two types of queries, and that all analytical queries can get the latest transactional data. This result matches the dual engine design of TiDB. We can conclude that TiDB has a great performance isolation between transactional queries and analytical queries.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1001\" height=\"319\" src=\"https:\/\/www.pingcap.com\/core\/uploads\/2022\/08\/performance-isolation-frontier.jpeg\" alt=\"\" class=\"wp-image-8701\" srcset=\"https:\/\/static.pingcap.com\/files\/2022\/08\/performance-isolation-frontier.jpeg 1001w, https:\/\/static.pingcap.com\/files\/2022\/08\/performance-isolation-frontier-300x96.jpeg 300w, https:\/\/static.pingcap.com\/files\/2022\/08\/performance-isolation-frontier-768x245.jpeg 768w\" sizes=\"auto, (max-width: 1001px) 100vw, 1001px\" \/><\/figure>\n\n\n\n<p class=\"has-text-align-center\"><em>HATtrick benchmark results for TiDB performance isolation<\/em><\/p>\n\n\n\n<div class=\"trackable-btns\" style=\"text-align:center\">\n  <a href=\"https:\/\/share.hsforms.com\/1e2W03wLJQQKPd1d9rCbj_Q2npzm\" onclick=\"trackViews('How Good is TiDB as an HTAP System? An HATtrick Benchmark', 'subscribe-blog-btn-middle')\"><button>Subscribe to Blog<\/button><\/a>\n\n  <a href=\"\/ko\/contact-us\/\" onclick=\"trackViews('How Good is TiDB as an HTAP System? An HATtrick Benchmark', 'contact-us-btn-middle')\"><button>Request an HTAP demo<\/button><\/a>\n<\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Benchmark TiDB horizontal scalability&nbsp;<\/strong><\/h3>\n\n\n\n<p>For this test, we update our TiDB-1x configuration. We added a new TiDB server and a new TiFlash server, and deployed three more TiKV instances on existing TiKV servers. We called this configuration TiDB-2x.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"973\" height=\"372\" src=\"https:\/\/www.pingcap.com\/core\/uploads\/2022\/08\/scale-tidb.svg\" alt=\"\" class=\"wp-image-8702\" srcset=\"https:\/\/static.pingcap.com\/files\/scale-tidb.svg 150w, https:\/\/static.pingcap.com\/files\/scale-tidb.svg 300w, https:\/\/static.pingcap.com\/files\/scale-tidb.svg 768w, https:\/\/static.pingcap.com\/files\/scale-tidb.svg 1024w, https:\/\/static.pingcap.com\/files\/scale-tidb.svg 973w\" sizes=\"auto, (max-width: 973px) 100vw, 973px\" \/><\/figure>\n\n\n\n<p class=\"has-text-align-center\"><em>Scaling TiDB for the horizontal scalability test<\/em><\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Alleviate the hotspot issue<\/strong><\/h4>\n\n\n\n<p>Distributed systems often have hotspots, and this can degrade performance. It\u2019s always necessary to alleviate the issue in either a production environment or a test to achieve an optimal performance. When we first ran this benchmark, we encountered a hotspot. Unlike the original HATtrick benchmark, we made some changes to alleviate the hotspot. We used<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>shard_row_id_bits<\/code> to avoid hotspot on table rows<\/li>\n\n\n\n<li><code>unique key + tidb_shard<\/code> to a avoid hotspot on the index instead of the primary key<\/li>\n<\/ul>\n\n\n\n<p>After we fixed hotspot, the writing was evenly distributed, as indicated in the following heat map:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"590\" src=\"https:\/\/www.pingcap.com\/core\/uploads\/2022\/08\/hotspot-alleviated-1024x590.png\" alt=\"\" class=\"wp-image-8703\" srcset=\"https:\/\/static.pingcap.com\/files\/2022\/08\/hotspot-alleviated-1024x590.png 1024w, https:\/\/static.pingcap.com\/files\/2022\/08\/hotspot-alleviated-300x173.png 300w, https:\/\/static.pingcap.com\/files\/2022\/08\/hotspot-alleviated-768x442.png 768w, https:\/\/static.pingcap.com\/files\/2022\/08\/hotspot-alleviated.png 1280w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"has-text-align-center\"><em>Hotspot alleviated on TiDB (generated via the TiDB Dashboard\uff09<\/em><\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Validate TiDB scalability in the frontier&nbsp;<\/strong><\/h4>\n\n\n\n<p>To show the scalability, we compared the results of the TiDB-1x&nbsp;and TiDB-2x configurations on the same frontier chart. The chart shows that both the maximum transactional QPS and the maximum analytical QPS of TiDB-2x are two times greater than that of TiDB-1x. The benchmarking shows TiDB\u2019s performance of both AP and TP scale horizontally by adding nodes as needed. As a comparison, we also ran the HATtrick benchmark test on PostgreSQL with the same configuration.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"514\" src=\"https:\/\/www.pingcap.com\/core\/uploads\/2022\/08\/scalability-frontier-1024x514.png\" alt=\"\" class=\"wp-image-8704\" srcset=\"https:\/\/static.pingcap.com\/files\/2022\/08\/scalability-frontier-1024x514.png 1024w, https:\/\/static.pingcap.com\/files\/2022\/08\/scalability-frontier-300x151.png 300w, https:\/\/static.pingcap.com\/files\/2022\/08\/scalability-frontier-768x386.png 768w, https:\/\/static.pingcap.com\/files\/2022\/08\/scalability-frontier.png 1280w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"has-text-align-center\"><em>TiDB&#8217;s performance has good horizontal scalability<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Conclusion\"><\/span><strong>Conclusion&nbsp;<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Our sf100 benchmarking with HATtrick validates TiDB\u2019s capabilities as an HTAP database:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Analytical queries can always read the latest data in TiDB.<\/li>\n\n\n\n<li>There is a great performance isolation between analytical queries and transactional queries in TiDB, thanks to its dual storage engine architecture.<\/li>\n\n\n\n<li>TiDB can horizontally scale the throughput for both analytical and transactional workloads, thanks to its disaggregated storage and computing architecture.<\/li>\n<\/ul>\n\n\n\n<p>Our testing process and results also validate HATtrick as a practical benchmarking methodology that is applicable in both academia and business. We\u2019d like to thank <a href=\"https:\/\/dl.acm.org\/doi\/abs\/10.1145\/3514221.3526148\">the authors<\/a> of the paper, and we look forward to any HTAP-related research they do in the future. In the meantime, if you\u2019ve used HATrick to benchmark your TiDB database, feel free to share your results with us. You can also join our <a href=\"https:\/\/slack.tidb.io\/invite?team=tidb-community&amp;channel=everyone&amp;ref=pingcap-blog\">Slack<\/a> and TiDB Internals for discussions.<\/p>\n\n\n\n<p><strong>Keep reading<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"\/ko\/blog\/build-a-better-github-insight-tool-in-a-week-a-true-story\/\">Build a Better Github Insight Tool in a Week? A True Story&nbsp;<\/a><\/li>\n\n\n\n<li><a href=\"\/ko\/blog\/the-beauty-of-htap-tidb-and-alloydb-as-examples\/\">The Beauty of HTAP: TiDB and AlloyDB as Examples<\/a>&nbsp;<\/li>\n\n\n\n<li><a href=\"\/ko\/blog\/the-long-expedition-toward-making-a-real-time-htap-database\/\">The Long Expedition toward Making a Real-Time HTAP Database<\/a><\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"<p>Inspired by the SIGMOD\/PODS 22 paper \u201cHow Good is my #HTAP System\u201d and HATtrick, the proposed benchmark tool, we tested the TP\/AP performance isolation and horizontal scalability of TiDB as an HTAP database. <\/p>","protected":false},"author":99,"featured_media":8705,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ub_ctt_via":"","footnotes":""},"categories":[6],"tags":[43,10,9,111],"class_list":["post-8698","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-engineering","tag-benchmark","tag-htap","tag-scalability","tag-tidb"],"acf":[],"featured_image_src":"https:\/\/static.pingcap.com\/files\/2022\/08\/hattrick-benchmark-banner-scaled.jpeg","author_info":{"display_name":"Jinpeng Zhang","author_link":"https:\/\/www.pingcap.com\/ko\/blog\/author\/jinpeng-zhang\/"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>How Good is TiDB as an HTAP System? A HATtrick Benchmark | TiDB<\/title>\n<meta name=\"description\" content=\"Inspired by the SIGMOD\/PODS 22 paper \u201cHow Good is my HTAP System\u201d and HATtrick, we tested the TP\/AP performance of TiDB as an HTAP database.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.pingcap.com\/ko\/blog\/how-good-is-tidb-as-an-htap-system-a-hattrick-benchmark\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How Good is TiDB as an HTAP System? A HATtrick Benchmark | TiDB\" \/>\n<meta property=\"og:description\" content=\"Inspired by the SIGMOD\/PODS 22 paper \u201cHow Good is my HTAP System\u201d and HATtrick, we tested the TP\/AP performance of TiDB as an HTAP database.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.pingcap.com\/ko\/blog\/how-good-is-tidb-as-an-htap-system-a-hattrick-benchmark\/\" \/>\n<meta property=\"og:site_name\" content=\"TiDB\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/facebook.com\/pingcap2015\" \/>\n<meta property=\"article:published_time\" content=\"2022-08-30T09:14:24+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-11-14T14:48:38+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/static.pingcap.com\/files\/2022\/08\/hattrick-benmark-social-scaled.jpeg\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"1340\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Jinpeng Zhang\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/static.pingcap.com\/files\/2022\/08\/hattrick-benmark-social-scaled.jpeg\" \/>\n<meta name=\"twitter:creator\" content=\"@PingCAP\" \/>\n<meta name=\"twitter:site\" content=\"@PingCAP\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jinpeng Zhang\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.pingcap.com\/blog\/how-good-is-tidb-as-an-htap-system-a-hattrick-benchmark\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.pingcap.com\/blog\/how-good-is-tidb-as-an-htap-system-a-hattrick-benchmark\/\"},\"author\":{\"name\":\"Jinpeng Zhang\",\"@id\":\"https:\/\/www.pingcap.com\/#\/schema\/person\/048b34d093ce7fd733173cc576ab6b29\"},\"headline\":\"How Good is TiDB as an HTAP System? A HATtrick Benchmark\",\"datePublished\":\"2022-08-30T09:14:24+00:00\",\"dateModified\":\"2025-11-14T14:48:38+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.pingcap.com\/blog\/how-good-is-tidb-as-an-htap-system-a-hattrick-benchmark\/\"},\"wordCount\":1136,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.pingcap.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.pingcap.com\/blog\/how-good-is-tidb-as-an-htap-system-a-hattrick-benchmark\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/static.pingcap.com\/files\/2022\/08\/hattrick-benchmark-banner-scaled.jpeg\",\"keywords\":[\"Benchmark\",\"HTAP\",\"Scalability\",\"TiDB\"],\"articleSection\":[\"Engineering\"],\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.pingcap.com\/blog\/how-good-is-tidb-as-an-htap-system-a-hattrick-benchmark\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.pingcap.com\/blog\/how-good-is-tidb-as-an-htap-system-a-hattrick-benchmark\/\",\"url\":\"https:\/\/www.pingcap.com\/blog\/how-good-is-tidb-as-an-htap-system-a-hattrick-benchmark\/\",\"name\":\"How Good is TiDB as an HTAP System? A HATtrick Benchmark | TiDB\",\"isPartOf\":{\"@id\":\"https:\/\/www.pingcap.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.pingcap.com\/blog\/how-good-is-tidb-as-an-htap-system-a-hattrick-benchmark\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.pingcap.com\/blog\/how-good-is-tidb-as-an-htap-system-a-hattrick-benchmark\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/static.pingcap.com\/files\/2022\/08\/hattrick-benchmark-banner-scaled.jpeg\",\"datePublished\":\"2022-08-30T09:14:24+00:00\",\"dateModified\":\"2025-11-14T14:48:38+00:00\",\"description\":\"Inspired by the SIGMOD\/PODS 22 paper \u201cHow Good is my HTAP System\u201d and HATtrick, we tested the TP\/AP performance of TiDB as an HTAP database.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.pingcap.com\/blog\/how-good-is-tidb-as-an-htap-system-a-hattrick-benchmark\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.pingcap.com\/blog\/how-good-is-tidb-as-an-htap-system-a-hattrick-benchmark\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.pingcap.com\/blog\/how-good-is-tidb-as-an-htap-system-a-hattrick-benchmark\/#primaryimage\",\"url\":\"https:\/\/static.pingcap.com\/files\/2022\/08\/hattrick-benchmark-banner-scaled.jpeg\",\"contentUrl\":\"https:\/\/static.pingcap.com\/files\/2022\/08\/hattrick-benchmark-banner-scaled.jpeg\",\"width\":2560,\"height\":853},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.pingcap.com\/blog\/how-good-is-tidb-as-an-htap-system-a-hattrick-benchmark\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.pingcap.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How Good is TiDB as an HTAP System? A HATtrick Benchmark\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.pingcap.com\/#website\",\"url\":\"https:\/\/www.pingcap.com\/\",\"name\":\"TiDB\",\"description\":\"TiDB | SQL at Scale\",\"publisher\":{\"@id\":\"https:\/\/www.pingcap.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.pingcap.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ko-KR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.pingcap.com\/#organization\",\"name\":\"PingCAP\",\"url\":\"https:\/\/www.pingcap.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.pingcap.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/static.pingcap.com\/files\/2021\/11\/pingcap-logo.png\",\"contentUrl\":\"https:\/\/static.pingcap.com\/files\/2021\/11\/pingcap-logo.png\",\"width\":811,\"height\":232,\"caption\":\"PingCAP\"},\"image\":{\"@id\":\"https:\/\/www.pingcap.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/facebook.com\/pingcap2015\",\"https:\/\/x.com\/PingCAP\",\"https:\/\/linkedin.com\/company\/pingcap\",\"https:\/\/youtube.com\/channel\/UCuq4puT32DzHKT5rU1IZpIA\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.pingcap.com\/#\/schema\/person\/048b34d093ce7fd733173cc576ab6b29\",\"name\":\"Jinpeng Zhang\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.pingcap.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/static.pingcap.com\/files\/2022\/10\/17234942\/avatar.jpg\",\"contentUrl\":\"https:\/\/static.pingcap.com\/files\/2022\/10\/17234942\/avatar.jpg\",\"caption\":\"Jinpeng Zhang\"},\"description\":\"TiDB Cloud Engineer\",\"url\":\"https:\/\/www.pingcap.com\/ko\/blog\/author\/jinpeng-zhang\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How Good is TiDB as an HTAP System? A HATtrick Benchmark | TiDB","description":"Inspired by the SIGMOD\/PODS 22 paper \u201cHow Good is my HTAP System\u201d and HATtrick, we tested the TP\/AP performance of TiDB as an HTAP database.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.pingcap.com\/ko\/blog\/how-good-is-tidb-as-an-htap-system-a-hattrick-benchmark\/","og_locale":"ko_KR","og_type":"article","og_title":"How Good is TiDB as an HTAP System? A HATtrick Benchmark | TiDB","og_description":"Inspired by the SIGMOD\/PODS 22 paper \u201cHow Good is my HTAP System\u201d and HATtrick, we tested the TP\/AP performance of TiDB as an HTAP database.","og_url":"https:\/\/www.pingcap.com\/ko\/blog\/how-good-is-tidb-as-an-htap-system-a-hattrick-benchmark\/","og_site_name":"TiDB","article_publisher":"https:\/\/facebook.com\/pingcap2015","article_published_time":"2022-08-30T09:14:24+00:00","article_modified_time":"2025-11-14T14:48:38+00:00","og_image":[{"width":2560,"height":1340,"url":"https:\/\/static.pingcap.com\/files\/2022\/08\/hattrick-benmark-social-scaled.jpeg","type":"image\/jpeg"}],"author":"Jinpeng Zhang","twitter_card":"summary_large_image","twitter_image":"https:\/\/static.pingcap.com\/files\/2022\/08\/hattrick-benmark-social-scaled.jpeg","twitter_creator":"@PingCAP","twitter_site":"@PingCAP","twitter_misc":{"Written by":"Jinpeng Zhang","Est. reading time":"6\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.pingcap.com\/blog\/how-good-is-tidb-as-an-htap-system-a-hattrick-benchmark\/#article","isPartOf":{"@id":"https:\/\/www.pingcap.com\/blog\/how-good-is-tidb-as-an-htap-system-a-hattrick-benchmark\/"},"author":{"name":"Jinpeng Zhang","@id":"https:\/\/www.pingcap.com\/#\/schema\/person\/048b34d093ce7fd733173cc576ab6b29"},"headline":"How Good is TiDB as an HTAP System? A HATtrick Benchmark","datePublished":"2022-08-30T09:14:24+00:00","dateModified":"2025-11-14T14:48:38+00:00","mainEntityOfPage":{"@id":"https:\/\/www.pingcap.com\/blog\/how-good-is-tidb-as-an-htap-system-a-hattrick-benchmark\/"},"wordCount":1136,"commentCount":0,"publisher":{"@id":"https:\/\/www.pingcap.com\/#organization"},"image":{"@id":"https:\/\/www.pingcap.com\/blog\/how-good-is-tidb-as-an-htap-system-a-hattrick-benchmark\/#primaryimage"},"thumbnailUrl":"https:\/\/static.pingcap.com\/files\/2022\/08\/hattrick-benchmark-banner-scaled.jpeg","keywords":["Benchmark","HTAP","Scalability","TiDB"],"articleSection":["Engineering"],"inLanguage":"ko-KR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.pingcap.com\/blog\/how-good-is-tidb-as-an-htap-system-a-hattrick-benchmark\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.pingcap.com\/blog\/how-good-is-tidb-as-an-htap-system-a-hattrick-benchmark\/","url":"https:\/\/www.pingcap.com\/blog\/how-good-is-tidb-as-an-htap-system-a-hattrick-benchmark\/","name":"How Good is TiDB as an HTAP System? A HATtrick Benchmark | TiDB","isPartOf":{"@id":"https:\/\/www.pingcap.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.pingcap.com\/blog\/how-good-is-tidb-as-an-htap-system-a-hattrick-benchmark\/#primaryimage"},"image":{"@id":"https:\/\/www.pingcap.com\/blog\/how-good-is-tidb-as-an-htap-system-a-hattrick-benchmark\/#primaryimage"},"thumbnailUrl":"https:\/\/static.pingcap.com\/files\/2022\/08\/hattrick-benchmark-banner-scaled.jpeg","datePublished":"2022-08-30T09:14:24+00:00","dateModified":"2025-11-14T14:48:38+00:00","description":"Inspired by the SIGMOD\/PODS 22 paper \u201cHow Good is my HTAP System\u201d and HATtrick, we tested the TP\/AP performance of TiDB as an HTAP database.","breadcrumb":{"@id":"https:\/\/www.pingcap.com\/blog\/how-good-is-tidb-as-an-htap-system-a-hattrick-benchmark\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.pingcap.com\/blog\/how-good-is-tidb-as-an-htap-system-a-hattrick-benchmark\/"]}]},{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.pingcap.com\/blog\/how-good-is-tidb-as-an-htap-system-a-hattrick-benchmark\/#primaryimage","url":"https:\/\/static.pingcap.com\/files\/2022\/08\/hattrick-benchmark-banner-scaled.jpeg","contentUrl":"https:\/\/static.pingcap.com\/files\/2022\/08\/hattrick-benchmark-banner-scaled.jpeg","width":2560,"height":853},{"@type":"BreadcrumbList","@id":"https:\/\/www.pingcap.com\/blog\/how-good-is-tidb-as-an-htap-system-a-hattrick-benchmark\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.pingcap.com\/"},{"@type":"ListItem","position":2,"name":"How Good is TiDB as an HTAP System? A HATtrick Benchmark"}]},{"@type":"WebSite","@id":"https:\/\/www.pingcap.com\/#website","url":"https:\/\/www.pingcap.com\/","name":"\ud2f0DB","description":"TiDB | SQL at Scale","publisher":{"@id":"https:\/\/www.pingcap.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.pingcap.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ko-KR"},{"@type":"Organization","@id":"https:\/\/www.pingcap.com\/#organization","name":"PingCAP","url":"https:\/\/www.pingcap.com\/","logo":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.pingcap.com\/#\/schema\/logo\/image\/","url":"https:\/\/static.pingcap.com\/files\/2021\/11\/pingcap-logo.png","contentUrl":"https:\/\/static.pingcap.com\/files\/2021\/11\/pingcap-logo.png","width":811,"height":232,"caption":"PingCAP"},"image":{"@id":"https:\/\/www.pingcap.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/facebook.com\/pingcap2015","https:\/\/x.com\/PingCAP","https:\/\/linkedin.com\/company\/pingcap","https:\/\/youtube.com\/channel\/UCuq4puT32DzHKT5rU1IZpIA"]},{"@type":"Person","@id":"https:\/\/www.pingcap.com\/#\/schema\/person\/048b34d093ce7fd733173cc576ab6b29","name":"Jinpeng Zhang","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.pingcap.com\/#\/schema\/person\/image\/","url":"https:\/\/static.pingcap.com\/files\/2022\/10\/17234942\/avatar.jpg","contentUrl":"https:\/\/static.pingcap.com\/files\/2022\/10\/17234942\/avatar.jpg","caption":"Jinpeng Zhang"},"description":"TiDB Cloud Engineer","url":"https:\/\/www.pingcap.com\/ko\/blog\/author\/jinpeng-zhang\/"}]}},"grav_blocks":false,"card_markup":"<a class=\"card-resource bg-white\" href=\"https:\/\/www.pingcap.com\/ko\/blog\/how-good-is-tidb-as-an-htap-system-a-hattrick-benchmark\/\"><div class=\"card-resource__image-container\"><img class=\"card-resource__image\" alt=\"hattrick-benchmark-banner\" src=\"https:\/\/static.pingcap.com\/files\/2022\/08\/hattrick-benchmark-banner-scaled.jpeg\" loading=\"lazy\" width=2560 height=853 \/><\/div><div class=\"card-resource__content-container\"><div class=\"card-resource__content-head\"><div class=\"card-resource__category\">Engineering<\/div><\/div><h5 class=\"card-resource__title\">How Good is TiDB as an HTAP System? A HATtrick Benchmark<\/h5><\/div><\/a>","_links":{"self":[{"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/posts\/8698","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/users\/99"}],"replies":[{"embeddable":true,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/comments?post=8698"}],"version-history":[{"count":14,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/posts\/8698\/revisions"}],"predecessor-version":[{"id":30540,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/posts\/8698\/revisions\/30540"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/media\/8705"}],"wp:attachment":[{"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/media?parent=8698"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/categories?post=8698"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/tags?post=8698"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}