{"id":927,"date":"2019-08-16T00:00:00","date_gmt":"2019-08-16T00:00:00","guid":{"rendered":"https:\/\/en.pingcap.com\/blog\/porting-tidb-to-arm64-for-greater-flexibility\/"},"modified":"2021-10-11T21:03:22","modified_gmt":"2021-10-11T21:03:22","slug":"porting-tidb-to-arm64-for-greater-flexibility","status":"publish","type":"post","link":"https:\/\/www.pingcap.com\/ko\/blog\/porting-tidb-to-arm64-for-greater-flexibility\/","title":{"rendered":"Porting TiDB to Arm64 for Greater Flexibility"},"content":{"rendered":"<p>The Intel x86-64 is the most widely used processor in server architectures. However, <a href=\"https:\/\/en.wikipedia.org\/wiki\/Arm_architecture\">Arm<\/a>, previously known as Advanced RISC Machine, is attracting more and more attention, and many companies have migrated their products from x86-64 to Arm.<\/p>\n<p>At PingCAP, we also want to run <a href=\"https:\/\/en.wikipedia.org\/wiki\/TiDB\">\ud2f0DB<\/a> on Arm. This article describes how we compiled and benchmarked TiDB on the Amazon Web Services (AWS) Arm64 platform.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Compiling\"><\/span>Compiling<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>The TiDB platform is comprised of three main components: the TiDB server, the Placement Driver (PD) server, and the TiKV server. To compile and build these components, we did the following:<\/p>\n<ul>\n<li>\n<p>Installed supporting software that is compatible with Arm64.<\/p>\n<p>TiDB and PD are written in the GO programming language, so we installed <a href=\"https:\/\/dl.google.com\/go\/go1.12.6.linux-arm64.tar.gz\">go1.12.6.linux-arm64<\/a>. TiKV is written in the Rust programming language, so we used <a href=\"https:\/\/rustup.rs\/\">rustup<\/a> to install Rust.<\/p>\n<p>We installed Arm64-compatible versions of the <a href=\"https:\/\/grafana.com\/grafana\/download?platform=arm\">Grafana<\/a> \uadf8\ub9ac\uace0 <a href=\"https:\/\/prometheus.io\/download\/\">Prometheus<\/a> monitoring software.<\/p>\n<\/li>\n<li>\n<p>Before we compiled, TiKV, we used yum to install the following dependencies:<\/p>\n<pre><code>sudo yum install -y gcc gcc-c++ wget git zlib-devel\nwget http:\/\/dl.fedoraproject.org\/pub\/epel\/epel-release-latest-7.noarch.rpm\nsudo rpm -ivh epel-release-latest-7.noarch.rpm\nsudo yum install -y epel-release\nsudo yum install -y cmake3 gcc gcc-c++ wget git zlib-devel\nsudo ln -s \/usr\/bin\/cmake3 \/usr\/bin\/cmake\n<\/code><\/pre>\n<\/li>\n<li>\n<p>During the TiDB and PD builds, we discovered compatibility issues with a TiDB vendor. We upgraded the <a href=\"https:\/\/github.com\/pingcap\/tidb\/pull\/10805\">vendor software<\/a> and solved the problem.<\/p>\n<\/li>\n<li>\n<p>During the TiKV build, we addressed <a href=\"https:\/\/github.com\/facebook\/rocksdb\/pull\/5450\">RocksDB 5450<\/a> \uadf8\ub9ac\uace0 <a href=\"https:\/\/github.com\/pingcap\/titan\/pull\/23\">Titan 23<\/a> compilation issues. We resolved these issues by passing an Arm64 or AARCH64 marco to each component.<\/p>\n<\/li>\n<\/ul>\n<p>By the way, there is a <a href=\"https:\/\/gist.github.com\/siddontang\/3a35473437bc47ebf27e541ba7d41141#file-build_on_arm-sh\">script<\/a> which can help you build TiDB on Arm64. Enjoy it.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Benchmarking_the_TiDB_Arm64_and_x86-64_versions\"><\/span>Benchmarking the TiDB Arm64 and x86-64 versions<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>After we built our TiDB version for Arm64, we benchmarked it to compare its performance with the same configuration on x86-64.<\/p>\n<p>We used <a href=\"https:\/\/github.com\/pingcap\/go-ycsb\">Yahoo! Cloud Serving Benchmark (YCSB)<\/a> for our benchmarking software.<\/p>\n<p>We used two machines for our test setup: one Arm64 machine with 16 cores and 32 GB RAM, and one x86-64 machine with 16 cores and 32 GB RAM. On each machine, we started one PD instance and one TiKV instance with default configurations.<\/p>\n<p>Note: We only use the go-ycsb Raw mode to benchmark TiKV, not TiDB.<\/p>\n<p>We used 100 threads, loaded 1 million rows of data, and executed 1 million operations. The benchmark results were as follows:<\/p>\n<p>|       | x86-64 (operations\/sec) | Arm64 (operations\/sec) |<br \/>\n| :&#8212;- | :&#8212;- | :&#8212;- |<br \/>\n| Load | 22,948.5 | 14,698.6 |<br \/>\n| Workload A | Update: 14,244.5<br \/>Read: 14,224.5 | Update: 9,932.6<br \/>Read: 9,917.8 |<br \/>\n| Workload B | Update: 4,819.0<br \/>Read: 92,302.2 | Update: 2,102.0<br \/>Read: 39,776.8 |<br \/>\n| Workload C | Read: 113,663.1 | Read: 49,262.0 |<\/p>\n<p>As you can see, the performance on Arm64 is much worse than that on x86-64. So we need to do some optimizations. From <a href=\"https:\/\/aws.amazon.com\/cn\/blogs\/compute\/optimizing-network-intensive-workloads-on-amazon-ec2-a1-instances\/\">Optimizing Network Intensive Workloads on Amazon EC2 A1 Instances<\/a>, we know we can do something to handle the network more efficiently. This article provides a script that makes CPU 0 and 8 handle network interruptions, and evenly distribute received packets to all CPUs. But unfortunately, after we applied this script and did the benchmark again, we ran <code>mpstat<\/code> and found that CPU 0 and 8 were full.<\/p>\n<p>So we did a little change, to distribute received packets to all the CPUs except 0 and 8:<\/p>\n<pre><code>sudo sh -c 'echo fe &gt; \/sys\/class\/net\/eth0\/queues\/rx-0\/rps_cpus'\nsudo sh -c 'echo fe00 &gt; \/sys\/class\/net\/eth0\/queues\/rx-1\/rps_cpus'\n<\/code><\/pre>\n<p>The result was better on Arm64, but CPU 0 and 8 were still the bottleneck. Specifically, the bottleneck was caused by the network interrupt handling. We&#8217;ll try to optimize it later.<\/p>\n<p>You can see that CPUs run more evenly on x86-64 than on Arm64.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1470\" height=\"684\" src=\"https:\/\/en.pingcap.com\/wp-content\/uploads\/2019\/08\/cpus-run-more-evenly-on-x86-64-than-on-arm64.png\" alt=\"CPUs run more evenly on x86-64 than on Arm64\" class=\"wp-image-929\" srcset=\"https:\/\/static.pingcap.com\/files\/2019\/08\/cpus-run-more-evenly-on-x86-64-than-on-arm64.png 1470w, https:\/\/static.pingcap.com\/files\/2019\/08\/cpus-run-more-evenly-on-x86-64-than-on-arm64-300x140.png 300w, https:\/\/static.pingcap.com\/files\/2019\/08\/cpus-run-more-evenly-on-x86-64-than-on-arm64-1024x476.png 1024w, https:\/\/static.pingcap.com\/files\/2019\/08\/cpus-run-more-evenly-on-x86-64-than-on-arm64-768x357.png 768w, https:\/\/static.pingcap.com\/files\/2019\/08\/cpus-run-more-evenly-on-x86-64-than-on-arm64-1440x670.png 1440w\" sizes=\"auto, (max-width: 1470px) 100vw, 1470px\" \/><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Conclusion\"><\/span>Conclusion<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>This article showed how we built TiDB and performed some benchmark optimizations on Arm. Because of its low power and low cost, I believe Arm can be used more and more widely in servers. Maybe this is the future in China, too.<\/p>","protected":false},"excerpt":{"rendered":"<p>This article describes how PingCAP compiled and benchmarked TiDB on the Amazon Web Services (AWS) Arm64 platform.<\/p>","protected":false},"author":9,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"ub_ctt_via":"","footnotes":""},"categories":[6],"tags":[43],"class_list":["post-927","post","type-post","status-publish","format-standard","hentry","category-engineering","tag-benchmark"],"acf":[],"featured_image_src":null,"author_info":{"display_name":"Siddon Tang","author_link":"https:\/\/www.pingcap.com\/ko\/blog\/author\/siddon-tang\/"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Porting TiDB to Arm64 for Greater Flexibility | TiDB<\/title>\n<meta name=\"description\" content=\"Learn about the benefits of TiDB and the TiDB Cloud solutions from PingCAP. Read our latest post &quot;Porting TiDB to Arm64 for Greater Flexibility&quot; here.\" \/>\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\/porting-tidb-to-arm64-for-greater-flexibility\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Porting TiDB to Arm64 for Greater Flexibility | TiDB\" \/>\n<meta property=\"og:description\" content=\"Learn about the benefits of TiDB and the TiDB Cloud solutions from PingCAP. Read our latest post &quot;Porting TiDB to Arm64 for Greater Flexibility&quot; here.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.pingcap.com\/ko\/blog\/porting-tidb-to-arm64-for-greater-flexibility\/\" \/>\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=\"2019-08-16T00:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-10-11T21:03:22+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/en.pingcap.com\/wp-content\/uploads\/2019\/08\/cpus-run-more-evenly-on-x86-64-than-on-arm64.png\" \/>\n<meta name=\"author\" content=\"Siddon Tang\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\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=\"Siddon Tang\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.pingcap.com\/blog\/porting-tidb-to-arm64-for-greater-flexibility\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.pingcap.com\/blog\/porting-tidb-to-arm64-for-greater-flexibility\/\"},\"author\":{\"name\":\"Siddon Tang\",\"@id\":\"https:\/\/www.pingcap.com\/#\/schema\/person\/bf9e2b12ee766148f14e18ebe395d94c\"},\"headline\":\"Porting TiDB to Arm64 for Greater Flexibility\",\"datePublished\":\"2019-08-16T00:00:00+00:00\",\"dateModified\":\"2021-10-11T21:03:22+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.pingcap.com\/blog\/porting-tidb-to-arm64-for-greater-flexibility\/\"},\"wordCount\":561,\"publisher\":{\"@id\":\"https:\/\/www.pingcap.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.pingcap.com\/blog\/porting-tidb-to-arm64-for-greater-flexibility\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/en.pingcap.com\/wp-content\/uploads\/2019\/08\/cpus-run-more-evenly-on-x86-64-than-on-arm64.png\",\"keywords\":[\"Benchmark\"],\"articleSection\":[\"Engineering\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.pingcap.com\/blog\/porting-tidb-to-arm64-for-greater-flexibility\/\",\"url\":\"https:\/\/www.pingcap.com\/blog\/porting-tidb-to-arm64-for-greater-flexibility\/\",\"name\":\"Porting TiDB to Arm64 for Greater Flexibility | TiDB\",\"isPartOf\":{\"@id\":\"https:\/\/www.pingcap.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.pingcap.com\/blog\/porting-tidb-to-arm64-for-greater-flexibility\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.pingcap.com\/blog\/porting-tidb-to-arm64-for-greater-flexibility\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/en.pingcap.com\/wp-content\/uploads\/2019\/08\/cpus-run-more-evenly-on-x86-64-than-on-arm64.png\",\"datePublished\":\"2019-08-16T00:00:00+00:00\",\"dateModified\":\"2021-10-11T21:03:22+00:00\",\"description\":\"Learn about the benefits of TiDB and the TiDB Cloud solutions from PingCAP. Read our latest post \\\"Porting TiDB to Arm64 for Greater Flexibility\\\" here.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.pingcap.com\/blog\/porting-tidb-to-arm64-for-greater-flexibility\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.pingcap.com\/blog\/porting-tidb-to-arm64-for-greater-flexibility\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.pingcap.com\/blog\/porting-tidb-to-arm64-for-greater-flexibility\/#primaryimage\",\"url\":\"https:\/\/en.pingcap.com\/wp-content\/uploads\/2019\/08\/cpus-run-more-evenly-on-x86-64-than-on-arm64.png\",\"contentUrl\":\"https:\/\/en.pingcap.com\/wp-content\/uploads\/2019\/08\/cpus-run-more-evenly-on-x86-64-than-on-arm64.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.pingcap.com\/blog\/porting-tidb-to-arm64-for-greater-flexibility\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.pingcap.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Porting TiDB to Arm64 for Greater Flexibility\"}]},{\"@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\/bf9e2b12ee766148f14e18ebe395d94c\",\"name\":\"Siddon Tang\",\"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\":\"Siddon Tang\"},\"description\":\"Siddon Tang is the SVP of Product &amp; Engineering at PingCAP and one of the earliest engineers on the TiDB and TiKV projects. He has been instrumental in TiKV's storage engine design, leading the adoption of RocksDB and Rust for high-performance distributed storage. Before PingCAP, Siddon worked at Kingsoft and Tencent, and has authored several widely-used open-source projects including LedisDB, go-mysql, and go-mysql-elasticsearch. He is a frequent speaker at database and systems engineering events, including Percona Live and RocksDB meetups. On GitHub as @siddontang, he is an active contributor to the distributed systems community with a focus on Rust, Go, and storage engine internals.\",\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/siddontang\/\"],\"url\":\"https:\/\/www.pingcap.com\/ko\/blog\/author\/siddon-tang\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Porting TiDB to Arm64 for Greater Flexibility | TiDB","description":"Learn about the benefits of TiDB and the TiDB Cloud solutions from PingCAP. Read our latest post \"Porting TiDB to Arm64 for Greater Flexibility\" here.","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\/porting-tidb-to-arm64-for-greater-flexibility\/","og_locale":"ko_KR","og_type":"article","og_title":"Porting TiDB to Arm64 for Greater Flexibility | TiDB","og_description":"Learn about the benefits of TiDB and the TiDB Cloud solutions from PingCAP. Read our latest post \"Porting TiDB to Arm64 for Greater Flexibility\" here.","og_url":"https:\/\/www.pingcap.com\/ko\/blog\/porting-tidb-to-arm64-for-greater-flexibility\/","og_site_name":"TiDB","article_publisher":"https:\/\/facebook.com\/pingcap2015","article_published_time":"2019-08-16T00:00:00+00:00","article_modified_time":"2021-10-11T21:03:22+00:00","og_image":[{"url":"https:\/\/en.pingcap.com\/wp-content\/uploads\/2019\/08\/cpus-run-more-evenly-on-x86-64-than-on-arm64.png","type":"","width":"","height":""}],"author":"Siddon Tang","twitter_card":"summary_large_image","twitter_creator":"@PingCAP","twitter_site":"@PingCAP","twitter_misc":{"Written by":"Siddon Tang","Est. reading time":"3\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.pingcap.com\/blog\/porting-tidb-to-arm64-for-greater-flexibility\/#article","isPartOf":{"@id":"https:\/\/www.pingcap.com\/blog\/porting-tidb-to-arm64-for-greater-flexibility\/"},"author":{"name":"Siddon Tang","@id":"https:\/\/www.pingcap.com\/#\/schema\/person\/bf9e2b12ee766148f14e18ebe395d94c"},"headline":"Porting TiDB to Arm64 for Greater Flexibility","datePublished":"2019-08-16T00:00:00+00:00","dateModified":"2021-10-11T21:03:22+00:00","mainEntityOfPage":{"@id":"https:\/\/www.pingcap.com\/blog\/porting-tidb-to-arm64-for-greater-flexibility\/"},"wordCount":561,"publisher":{"@id":"https:\/\/www.pingcap.com\/#organization"},"image":{"@id":"https:\/\/www.pingcap.com\/blog\/porting-tidb-to-arm64-for-greater-flexibility\/#primaryimage"},"thumbnailUrl":"https:\/\/en.pingcap.com\/wp-content\/uploads\/2019\/08\/cpus-run-more-evenly-on-x86-64-than-on-arm64.png","keywords":["Benchmark"],"articleSection":["Engineering"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/www.pingcap.com\/blog\/porting-tidb-to-arm64-for-greater-flexibility\/","url":"https:\/\/www.pingcap.com\/blog\/porting-tidb-to-arm64-for-greater-flexibility\/","name":"Porting TiDB to Arm64 for Greater Flexibility | TiDB","isPartOf":{"@id":"https:\/\/www.pingcap.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.pingcap.com\/blog\/porting-tidb-to-arm64-for-greater-flexibility\/#primaryimage"},"image":{"@id":"https:\/\/www.pingcap.com\/blog\/porting-tidb-to-arm64-for-greater-flexibility\/#primaryimage"},"thumbnailUrl":"https:\/\/en.pingcap.com\/wp-content\/uploads\/2019\/08\/cpus-run-more-evenly-on-x86-64-than-on-arm64.png","datePublished":"2019-08-16T00:00:00+00:00","dateModified":"2021-10-11T21:03:22+00:00","description":"Learn about the benefits of TiDB and the TiDB Cloud solutions from PingCAP. Read our latest post \"Porting TiDB to Arm64 for Greater Flexibility\" here.","breadcrumb":{"@id":"https:\/\/www.pingcap.com\/blog\/porting-tidb-to-arm64-for-greater-flexibility\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.pingcap.com\/blog\/porting-tidb-to-arm64-for-greater-flexibility\/"]}]},{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.pingcap.com\/blog\/porting-tidb-to-arm64-for-greater-flexibility\/#primaryimage","url":"https:\/\/en.pingcap.com\/wp-content\/uploads\/2019\/08\/cpus-run-more-evenly-on-x86-64-than-on-arm64.png","contentUrl":"https:\/\/en.pingcap.com\/wp-content\/uploads\/2019\/08\/cpus-run-more-evenly-on-x86-64-than-on-arm64.png"},{"@type":"BreadcrumbList","@id":"https:\/\/www.pingcap.com\/blog\/porting-tidb-to-arm64-for-greater-flexibility\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.pingcap.com\/"},{"@type":"ListItem","position":2,"name":"Porting TiDB to Arm64 for Greater Flexibility"}]},{"@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\/bf9e2b12ee766148f14e18ebe395d94c","name":"Siddon Tang","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":"Siddon Tang"},"description":"Siddon Tang is the SVP of Product &amp; Engineering at PingCAP and one of the earliest engineers on the TiDB and TiKV projects. He has been instrumental in TiKV's storage engine design, leading the adoption of RocksDB and Rust for high-performance distributed storage. Before PingCAP, Siddon worked at Kingsoft and Tencent, and has authored several widely-used open-source projects including LedisDB, go-mysql, and go-mysql-elasticsearch. He is a frequent speaker at database and systems engineering events, including Percona Live and RocksDB meetups. On GitHub as @siddontang, he is an active contributor to the distributed systems community with a focus on Rust, Go, and storage engine internals.","sameAs":["https:\/\/www.linkedin.com\/in\/siddontang\/"],"url":"https:\/\/www.pingcap.com\/ko\/blog\/author\/siddon-tang\/"}]}},"grav_blocks":null,"card_markup":"<a class=\"card-resource bg-white\" href=\"https:\/\/www.pingcap.com\/ko\/blog\/porting-tidb-to-arm64-for-greater-flexibility\/\"><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\">Porting TiDB to Arm64 for Greater Flexibility<\/h5><\/div><\/a>","_links":{"self":[{"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/posts\/927","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\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/comments?post=927"}],"version-history":[{"count":1,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/posts\/927\/revisions"}],"predecessor-version":[{"id":930,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/posts\/927\/revisions\/930"}],"wp:attachment":[{"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/media?parent=927"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/categories?post=927"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.pingcap.com\/ko\/wp-json\/wp\/v2\/tags?post=927"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}