{"id":13607,"date":"2020-03-08T14:48:13","date_gmt":"2020-03-08T13:48:13","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/yugabytedb-2-1\/"},"modified":"2020-03-08T14:48:13","modified_gmt":"2020-03-08T13:48:13","slug":"yugabytedb-2-1","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/yugabytedb-2-1\/","title":{"rendered":"YugaByteDB 2.1: the Open Source multi-region distributed database with PostgreSQL API is in GA with huge performance improvement"},"content":{"rendered":"<h2>By Franck Pachot<\/h2>\n<p>.<br \/>\n9 months ago I was looking at YugaByteDB which was still in beta version for its &#8216;YSQL&#8217; API. I published my first test on Medium: <a href=\"https:\/\/medium.com\/@FranckPachot\/running-pgbench-on-yugabytedb-1-3-3a15450dfa42\" rel=\"noopener noreferrer\" target=\"_blank\">https:\/\/medium.com\/@FranckPachot\/running-pgbench-on-yugabytedb-1-3-3a15450dfa42<\/a>. I have been very enthusiastic about the idea, the architecture, the way they open-sourced it and how all was documented in their blog. I&#8217;ve even met them in Sunnyvale when I traveled to California for Oracle Open World. Great people with a great vision on the future of databases. From this first test, I was not impressed by the performance but it was an early beta and a multi-master\/multi-index database has many challenges to solve before tuning the details of implementation. This tuning task has been done for the General Availability version 2.1 released in February. I was eager to test it, but this first month back to dbi-services consulting was very busy. So finally here it is.<\/p>\n<p>This post takes the same test I did last July and the result is impressive: the pgbench initialization time is fully fixed and the pgbench run shows 9x higher throughput. <\/p>\n<p>I&#8217;m on the same VM which, as funny as it might sound, is an Oracle Linux 7 running on the Oracle Cloud.<\/p>\n<h3>Install and start:<\/h3>\n<p>I install this version 2.1 in the same way I installed the 1.3 in the past. All is documented: <a href=\"https:\/\/docs.yugabyte.com\/latest\/quick-start\/install\/linux\/\" rel=\"noopener noreferrer\" target=\"_blank\">https:\/\/docs.yugabyte.com\/latest\/quick-start\/install\/linux\/<\/a><\/p>\n<pre><code>\nwget -O yugabyte-2.1.0.0-linux.tar.gz  https:\/\/downloads.yugabyte.com\/yugabyte-2.1.0.0-linux.tar.gz\ntar -xzvf yugabyte-2.1.0.0-linux.tar.gz\nyugabyte-2.1.0.0\/bin\/post_install.sh\nexport PATH=\"~\/yugabyte-2.1.0.0\/bin:~\/yugabyte-2.1.0.0\/postgresql\/bin:$PATH\"\n<\/code><\/pre>\n<p>I create a 3 nodes cluster with replication factor 3, with all nodes in the same host for this test:<\/p>\n<pre><code>\nyb-ctl --rf 3 create\nyb-ctl status\n<\/code><\/pre>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2022\/04\/Annotation-2020-03-06-142758.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2022\/04\/Annotation-2020-03-06-142758.png\" alt=\"\" width=\"1024\" height=\"743\" class=\"aligncenter size-large wp-image-38010\" \/><\/a><\/p>\n<p>I create database for this:<\/p>\n<pre><code>\nysqlsh\n \\timing on\n drop database if exists franck;\n create database franck;\n \\q\n<\/code><\/pre>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2022\/04\/Annotation-2020-03-06-142900.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2022\/04\/Annotation-2020-03-06-142900.png\" alt=\"\" width=\"1024\" height=\"290\" class=\"aligncenter size-large wp-image-38008\" \/><\/a><\/p>\n<h3>pgbench initialization<\/h3>\n<p>I use pgbench that I have from a &#8220;normal&#8221; PostgreSQL installation on the same server.<\/p>\n<pre><code>\n[opc@db192 ~]$ type pgbench\npgbench is hashed (\/usr\/pgsql-11\/bin\/pgbench)\ntime pgbench --initialize --host localhost -p 5433 -U postgres franck\n<\/code><\/pre>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2022\/04\/Annotation-2020-03-06-143108.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2022\/04\/Annotation-2020-03-06-143108.png\" alt=\"\" width=\"1024\" height=\"423\" class=\"aligncenter size-large wp-image-38007\" \/><\/a> <\/p>\n<p>If you compare with the previous post on version 1.3 you will see many differences.<\/p>\n<ul>\n<li>No &#8220;ERROR: DROP multiple objects not supported yet&#8221; here. This issue has been fixed.<\/li>\n<li>No &#8220;ERROR: VACUUM not supported yet&#8221; but just a warning because there&#8217;s no vaccum here in the YugaByteDB storage layer<\/li>\n<li>And the best: 8 seconds instead of the 2 minutes we had before<\/li>\n<\/ul>\n<p>However the &#8220;ALTER TABLE&#8221; to add the constraints afterward is still not supported so I run the same manually with the FOREIGN KEY declaration in the CREATE TABLE:<\/p>\n<pre><code>\nysqlsh franck\n drop table if exists pgbench_history;\n drop table if exists pgbench_tellers;\n drop table if exists pgbench_accounts;\n drop table if exists pgbench_branches;\nCREATE TABLE pgbench_branches (\n    bid integer NOT NULL\n   ,bbalance integer\n   ,filler character(88)\n   ,CONSTRAINT pgbench_branches_pkey PRIMARY KEY (bid)\n );\nCREATE TABLE pgbench_accounts (\n    aid integer NOT NULL\n   ,bid integer references pgbench_branches\n   ,abalance integer\n   ,filler character(84)\n   ,CONSTRAINT pgbench_accounts_pkey PRIMARY KEY (aid)\n );\nCREATE TABLE pgbench_tellers (\n    tid integer NOT NULL\n   ,bid integer references pgbench_branches\n   ,tbalance integer\n   ,filler character(84)\n   ,CONSTRAINT pgbench_tellers_pkey PRIMARY KEY (tid)\n );\nCREATE TABLE pgbench_history (\n    tid integer references pgbench_tellers\n   ,bid integer references pgbench_branches\n   ,aid integer references pgbench_accounts\n   ,delta integer\n   ,mtime timestamp without time zone\n   ,filler character(22)\n );\n\\q\n<\/code><\/pre>\n<p>Now remains to insert the rows there. This was very long (about an hour) in 1.3:<\/p>\n<pre><code>\ntime pgbench --initialize --init-steps=g -h localhost -p 5433 -U postgres franck\n<\/code><\/pre>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2022\/04\/Annotation-2020-03-07-184013.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2022\/04\/Annotation-2020-03-07-184013.jpg\" alt=\"\" width=\"1024\" height=\"183\" class=\"aligncenter size-large wp-image-38054\" \/><\/a><\/p>\n<p>No foreign key error and 6 seconds only!<\/p>\n<p>Do you remember that I had to switch to SERIALIZABLE isolation level? I don&#8217;t have to here:<\/p>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2022\/04\/Annotation-2020-03-07-185958.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2022\/04\/Annotation-2020-03-07-185958.jpg\" alt=\"\" width=\"1024\" height=\"355\" class=\"aligncenter size-large wp-image-38056\" \/><\/a><\/p>\n<p>This has been fixed with the support of SELECT locks, so no need to go to optimistic locking with SERIALIZABLE (which requires that the application implements a &#8216;retry&#8217; logic).<\/p>\n<h3>Simple Update in 1 thread<\/h3>\n<p>Then, as I did before, I run a Simple Update workload from one session during 30 seconds:<\/p>\n<pre><code>\npgbench --no-vacuum --builtin=simple-update --protocol=prepared --time 30 -h localhost -p 5433 -U postgres franck\n<\/code><\/pre>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2022\/04\/Annotation-2020-03-07-191625.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2022\/04\/Annotation-2020-03-07-191625.jpg\" alt=\"\" width=\"1024\" height=\"218\" class=\"aligncenter size-large wp-image-38059\" \/><\/a><\/p>\n<p>When compared with the <a href=\"https:\/\/miro.medium.com\/max\/3736\/1*I4Ypc0PUFUCLEB-9NK_mSA.png\" rel=\"noopener noreferrer\" target=\"_blank\">previous run<\/a> on 1.3 I&#8217;ve updated 9x more transactions. Yes, that&#8217;s exactly what has been announced for this version: huge performance imprevements:<\/p>\n<blockquote class=\"twitter-tweet\" data-width=\"550\" data-dnt=\"true\">\n<p lang=\"en\" dir=\"ltr\">What we&#39;ve been up to over the last few month &#8211; YugabyteDB 2.1 has a ton of perf improvements and a lot of other goodies! <a href=\"https:\/\/t.co\/wwwhVG7bPd\">https:\/\/t.co\/wwwhVG7bPd<\/a><\/p>\n<p>PS: Please do give it a spin, would love your feedback.<\/p>\n<p>&mdash; Karthik Ranganathan (@karthikr) <a href=\"https:\/\/x.com\/karthikr\/status\/1232356784343400449?ref_src=twsrc%5Etfw\">February 25, 2020<\/a><\/p><\/blockquote>\n<p><script async src=\"https:\/\/platform.x.com\/widgets.js\" charset=\"utf-8\"><\/script><\/p>\n<h3>Simple Update in 10 threads<\/h3>\n<p>Then, as I did before I&#8217;m running with 10 concurrent threads<\/p>\n<pre><code>\npgbench --no-vacuum --protocol=prepared --builtin=simple-update --time 30 --jobs=10 --client=10 -h localhost -p 5433 -U postgres franck\n<\/code><\/pre>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2022\/04\/Annotation-2020-03-07-195106.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2022\/04\/Annotation-2020-03-07-195106.jpg\" alt=\"\" width=\"1024\" height=\"150\" class=\"aligncenter size-large wp-image-38065\" \/><\/a><\/p>\n<p>Again, that 7x better than my test on 1.3 and still in read commited isolation level.<\/p>\n<p>Note that I was lucky here but it can happen that we get a serialization error even in read commited like in this second run of the same:<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2022\/04\/Annotation-2020-03-07-195420.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2022\/04\/Annotation-2020-03-07-195420.jpg\" alt=\"\" width=\"1024\" height=\"200\" class=\"aligncenter size-large wp-image-38067\" \/><\/a><\/p>\n<p>The community implementation of pgbench has no retry logic. Once an error is enountered the thead finishes, and that&#8217;s unusable for a benchmark. The patch proposed many times was, unfortunately, always rejected: <a href=\"https:\/\/commitfest.postgresql.org\/18\/1645\/\" rel=\"noopener noreferrer\" target=\"_blank\">https:\/\/commitfest.postgresql.org\/18\/1645\/<\/a>.<\/p>\n<p>But YugaByteDB has a solution for that, which I&#8217;ll show in the next post: <a href=\"https:\/\/www.dbi-services.com\/blog\/ysql_bench\/\" rel=\"noopener noreferrer\" target=\"_blank\">https:\/\/www.dbi-services.com\/blog\/ysql_bench\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>By Franck Pachot . 9 months ago I was looking at YugaByteDB which was still in beta version for its &#8216;YSQL&#8217; API. I published my first test on Medium: https:\/\/medium.com\/@FranckPachot\/running-pgbench-on-yugabytedb-1-3-3a15450dfa42. I have been very enthusiastic about the idea, the architecture, the way they open-sourced it and how all was documented in their blog. I&#8217;ve even&hellip;&nbsp;<\/p>\n","protected":false},"author":28,"featured_media":13610,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","neve_meta_reading_time":"","_themeisle_gutenberg_block_has_review":false,"footnotes":""},"categories":[83],"tags":[1740,1856,1857],"class_list":["post-13607","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-postgresql","tag-newsql","tag-pgbench","tag-yugabytedb"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v28.4 (Yoast SEO v28.7) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>YugaByteDB 2.1: the Open Source multi-region distributed database with PostgreSQL API is in GA with huge performance improvement - dbi services | Blog<\/title>\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.dbi-services.com\/blog\/yugabytedb-2-1\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"YugaByteDB 2.1: the Open Source multi-region distributed database with PostgreSQL API is in GA with huge performance improvement\" \/>\n<meta property=\"og:description\" content=\"By Franck Pachot . 9 months ago I was looking at YugaByteDB which was still in beta version for its &#8216;YSQL&#8217; API. I published my first test on Medium: https:\/\/medium.com\/@FranckPachot\/running-pgbench-on-yugabytedb-1-3-3a15450dfa42. I have been very enthusiastic about the idea, the architecture, the way they open-sourced it and how all was documented in their blog. I&#8217;ve even&hellip;&nbsp;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/yugabytedb-2-1\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi services | Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/dbiservices\/\" \/>\n<meta property=\"article:published_time\" content=\"2020-03-08T13:48:13+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2022\/04\/Annotation-2020-03-06-143108.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1141\" \/>\n\t<meta property=\"og:image:height\" content=\"471\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Open source Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@dbiservices\" \/>\n<meta name=\"twitter:site\" content=\"@dbiservices\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Open source Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/yugabytedb-2-1\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/yugabytedb-2-1\\\/\"},\"author\":{\"name\":\"Open source Team\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/0b4548362cac3eeff8b3eaf329e3530a\"},\"headline\":\"YugaByteDB 2.1: the Open Source multi-region distributed database with PostgreSQL API is in GA with huge performance improvement\",\"datePublished\":\"2020-03-08T13:48:13+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/yugabytedb-2-1\\\/\"},\"wordCount\":619,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/yugabytedb-2-1\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/04\\\/Annotation-2020-03-06-143108.png\",\"keywords\":[\"NewSQL\",\"pgBench\",\"YugaByteDB\"],\"articleSection\":[\"PostgreSQL\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/yugabytedb-2-1\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/yugabytedb-2-1\\\/\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/yugabytedb-2-1\\\/\",\"name\":\"YugaByteDB 2.1: the Open Source multi-region distributed database with PostgreSQL API is in GA with huge performance improvement - dbi services | Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/yugabytedb-2-1\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/yugabytedb-2-1\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/04\\\/Annotation-2020-03-06-143108.png\",\"datePublished\":\"2020-03-08T13:48:13+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/yugabytedb-2-1\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/yugabytedb-2-1\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/yugabytedb-2-1\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/04\\\/Annotation-2020-03-06-143108.png\",\"contentUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/04\\\/Annotation-2020-03-06-143108.png\",\"width\":1141,\"height\":471},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/yugabytedb-2-1\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"YugaByteDB 2.1: the Open Source multi-region distributed database with PostgreSQL API is in GA with huge performance improvement\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\",\"name\":\"dbi services Blog\",\"description\":\"#BeSharing\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#organization\"},\"alternateName\":\"dbi Blog\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#organization\",\"name\":\"dbi services\",\"alternateName\":\"dbi\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/dbi-services-logo.png\",\"contentUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/dbi-services-logo.png\",\"width\":512,\"height\":512,\"caption\":\"dbi services\"},\"image\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/dbiservices\\\/\",\"https:\\\/\\\/x.com\\\/dbiservices\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/dbi-services\\\/\",\"https:\\\/\\\/www.youtube.com\\\/user\\\/dbiservices\"],\"description\":\"Swiss IT consulting and services company specialised in efficient data infrastructures and platforms: databases, application servers, cloud, DevOps, digitalization, analytics, data quality and monitoring. Headquartered in Del\u00e9mont with offices in Nyon, Basel, Bern and Zurich.\",\"email\":\"info@dbi-services.com\",\"telephone\":\"+41 32 422 96 00\",\"legalName\":\"dbi services SA\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/0b4548362cac3eeff8b3eaf329e3530a\",\"name\":\"Open source Team\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/05\\\/open-source-author.png\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/05\\\/open-source-author.png\",\"contentUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/05\\\/open-source-author.png\",\"caption\":\"Open source Team\"},\"description\":\"Posts published under the Open source Team account are collective contributions by the dbi services open infrastructure consultants. The practice covers open-source databases and platforms, PostgreSQL first of all, along with MySQL, MariaDB, and Linux, from architecture, replication, and high availability to performance tuning and operations under service level agreements, and contributes actively to the PostgreSQL community.\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/author\\\/open-source-team\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"YugaByteDB 2.1: the Open Source multi-region distributed database with PostgreSQL API is in GA with huge performance improvement - dbi services | Blog","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.dbi-services.com\/blog\/yugabytedb-2-1\/","og_locale":"en_US","og_type":"article","og_title":"YugaByteDB 2.1: the Open Source multi-region distributed database with PostgreSQL API is in GA with huge performance improvement","og_description":"By Franck Pachot . 9 months ago I was looking at YugaByteDB which was still in beta version for its &#8216;YSQL&#8217; API. I published my first test on Medium: https:\/\/medium.com\/@FranckPachot\/running-pgbench-on-yugabytedb-1-3-3a15450dfa42. I have been very enthusiastic about the idea, the architecture, the way they open-sourced it and how all was documented in their blog. I&#8217;ve even&hellip;&nbsp;","og_url":"https:\/\/www.dbi-services.com\/blog\/yugabytedb-2-1\/","og_site_name":"dbi services | Blog","article_publisher":"https:\/\/www.facebook.com\/dbiservices\/","article_published_time":"2020-03-08T13:48:13+00:00","og_image":[{"width":1141,"height":471,"url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2022\/04\/Annotation-2020-03-06-143108.png","type":"image\/png"}],"author":"Open source Team","twitter_card":"summary_large_image","twitter_creator":"@dbiservices","twitter_site":"@dbiservices","twitter_misc":{"Written by":"Open source Team","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/yugabytedb-2-1\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/yugabytedb-2-1\/"},"author":{"name":"Open source Team","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/0b4548362cac3eeff8b3eaf329e3530a"},"headline":"YugaByteDB 2.1: the Open Source multi-region distributed database with PostgreSQL API is in GA with huge performance improvement","datePublished":"2020-03-08T13:48:13+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/yugabytedb-2-1\/"},"wordCount":619,"commentCount":0,"publisher":{"@id":"https:\/\/www.dbi-services.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/yugabytedb-2-1\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2022\/04\/Annotation-2020-03-06-143108.png","keywords":["NewSQL","pgBench","YugaByteDB"],"articleSection":["PostgreSQL"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/yugabytedb-2-1\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/yugabytedb-2-1\/","url":"https:\/\/www.dbi-services.com\/blog\/yugabytedb-2-1\/","name":"YugaByteDB 2.1: the Open Source multi-region distributed database with PostgreSQL API is in GA with huge performance improvement - dbi services | Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/yugabytedb-2-1\/#primaryimage"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/yugabytedb-2-1\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2022\/04\/Annotation-2020-03-06-143108.png","datePublished":"2020-03-08T13:48:13+00:00","breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/yugabytedb-2-1\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/yugabytedb-2-1\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/yugabytedb-2-1\/#primaryimage","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2022\/04\/Annotation-2020-03-06-143108.png","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2022\/04\/Annotation-2020-03-06-143108.png","width":1141,"height":471},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/yugabytedb-2-1\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"YugaByteDB 2.1: the Open Source multi-region distributed database with PostgreSQL API is in GA with huge performance improvement"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi services Blog","description":"#BeSharing","publisher":{"@id":"https:\/\/www.dbi-services.com\/blog\/#organization"},"alternateName":"dbi Blog","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.dbi-services.com\/blog\/#organization","name":"dbi services","alternateName":"dbi","url":"https:\/\/www.dbi-services.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2026\/09\/dbi-services-logo.png","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2026\/09\/dbi-services-logo.png","width":512,"height":512,"caption":"dbi services"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/dbiservices\/","https:\/\/x.com\/dbiservices","https:\/\/www.linkedin.com\/company\/dbi-services\/","https:\/\/www.youtube.com\/user\/dbiservices"],"description":"Swiss IT consulting and services company specialised in efficient data infrastructures and platforms: databases, application servers, cloud, DevOps, digitalization, analytics, data quality and monitoring. Headquartered in Del\u00e9mont with offices in Nyon, Basel, Bern and Zurich.","email":"info@dbi-services.com","telephone":"+41 32 422 96 00","legalName":"dbi services SA"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/0b4548362cac3eeff8b3eaf329e3530a","name":"Open source Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2022\/05\/open-source-author.png","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2022\/05\/open-source-author.png","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2022\/05\/open-source-author.png","caption":"Open source Team"},"description":"Posts published under the Open source Team account are collective contributions by the dbi services open infrastructure consultants. The practice covers open-source databases and platforms, PostgreSQL first of all, along with MySQL, MariaDB, and Linux, from architecture, replication, and high availability to performance tuning and operations under service level agreements, and contributes actively to the PostgreSQL community.","url":"https:\/\/www.dbi-services.com\/blog\/author\/open-source-team\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/13607","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/28"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=13607"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/13607\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media\/13610"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=13607"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=13607"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=13607"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}