{"id":6760,"date":"2023-09-30T09:00:35","date_gmt":"2023-09-30T16:00:35","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/cosmosdb\/?p=6760"},"modified":"2023-09-29T07:09:10","modified_gmt":"2023-09-29T14:09:10","slug":"postgres-16-in-azure-cosmos-db-for-postgresql-2","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/cosmosdb\/postgres-16-in-azure-cosmos-db-for-postgresql-2\/","title":{"rendered":"Postgres 16 available in Azure Cosmos DB for PostgreSQL, powered by Citus"},"content":{"rendered":"<p><span class=\"ui-provider a b c d e f g h i j k l m n o p q r s t u v w x y z ab ac ae af ag ah ai aj ak\" dir=\"ltr\">Big news in the Postgres world:\u00a0<a class=\"fui-Link ___10kug0w f3rmtva f1ewtqcl fyind8e f1k6fduh f1w7gpdv fk6fouc fjoy568 figsok6 f1hu3pq6 f11qmguv f19f4twv f1tyq0we f1g0x7ka fhxju0i f1qch9an f1cnd47f fqv5qza f1vmzxwi f1o700av f13mvf36 f1cmlufx f9n3di6 f1ids18y f1tx3yz7 f1deo86v f1eh06m1 f1iescvh fhgqx19 f1olyrje f1p93eir f1nev41a f1h8hb77 f1lqvz6u f10aw75t fsle3fq f17ae5zn\" title=\"https:\/\/www.postgresql.org\/about\/news\/postgresql-16-released-2715\/\" href=\"https:\/\/www.postgresql.org\/about\/news\/postgresql-16-released-2715\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"Link PostgreSQL 16\">PostgreSQL 16<\/a> was released just over 2 weeks ago. And today we&#8217;re announcing that Postgres 16 is\u00a0generally available\u00a0for production\u00a0workloads on <a class=\"fui-Link ___10kug0w f3rmtva f1ewtqcl fyind8e f1k6fduh f1w7gpdv fk6fouc fjoy568 figsok6 f1hu3pq6 f11qmguv f19f4twv f1tyq0we f1g0x7ka fhxju0i f1qch9an f1cnd47f fqv5qza f1vmzxwi f1o700av f13mvf36 f1cmlufx f9n3di6 f1ids18y f1tx3yz7 f1deo86v f1eh06m1 f1iescvh fhgqx19 f1olyrje f1p93eir f1nev41a f1h8hb77 f1lqvz6u f10aw75t fsle3fq f17ae5zn\" title=\"https:\/\/learn.microsoft.com\/azure\/cosmos-db\/postgresql\/introduction\" href=\"https:\/\/learn.microsoft.com\/azure\/cosmos-db\/postgresql\/introduction\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"Link Azure Cosmos DB for PostgreSQL\">Azure Cosmos DB for PostgreSQL<\/a>. That\u2019s right,\u00a0in production:\u00a0this announcement\u00a0is not just a\u00a0preview of Postgres 16 support.<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">Whether you need to provision a new distributed Postgres cluster in Azure Cosmos DB for PostgreSQL\u2014or upgrade your existing database clusters\u2014Postgres 16 is now an option for you.\u00a0<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">And you can use <\/span><a href=\"https:\/\/learn.microsoft.com\/azure\/cosmos-db\/postgresql\/quickstart-create-portal?tabs=direct\"><span data-contrast=\"none\">Azure Portal<\/span><\/a><span data-contrast=\"auto\">, <\/span><a href=\"https:\/\/learn.microsoft.com\/azure\/cosmos-db\/postgresql\/quickstart-create-bicep?tabs=CLI\"><span data-contrast=\"none\">Bicep<\/span><\/a><span data-contrast=\"auto\"> or <\/span><a href=\"https:\/\/learn.microsoft.com\/azure\/templates\/microsoft.dbforpostgresql\/servergroupsv2?pivots=deployment-language-arm-template\"><span data-contrast=\"none\">ARM templates<\/span><\/a><span data-contrast=\"auto\">, <\/span><a href=\"https:\/\/learn.microsoft.com\/rest\/api\/postgresqlhsc\/\"><span data-contrast=\"none\">REST APIs<\/span><\/a><span data-contrast=\"auto\">, <\/span><a href=\"https:\/\/learn.microsoft.com\/azure\/cosmos-db\/postgresql\/product-updates#july-2023\"><span data-contrast=\"none\">Azure SDKs<\/span><\/a><span data-contrast=\"auto\">, or <\/span><a href=\"https:\/\/learn.microsoft.com\/cli\/azure\/cosmosdb\/postgres?view=azure-cli-latest\"><span data-contrast=\"none\">Azure CLI<\/span><\/a><span data-contrast=\"auto\"> to spin up a new Postgres 16 cluster in Azure Cosmos DB for PostgreSQL, or to upgrade an existing cluster to Postgres 16.<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<h3><b><span data-contrast=\"auto\">PostgreSQL 16 + Citus 12 now available in Azure Cosmos DB for PostgreSQL <\/span><\/b><span data-ccp-props=\"{}\">\u00a0<\/span><\/h3>\n<p><span data-contrast=\"auto\">Giving you access to new capabilities in Postgres is a priority for the Azure Cosmos DB for PostgreSQL team. And because Citus\u2014which powers Azure Cosmos DB for PostgreSQL\u2014is an <\/span><a href=\"https:\/\/github.com\/citusdata\/citus\"><span data-contrast=\"none\">open source database extension<\/span><\/a><span data-contrast=\"auto\"> (and not a fork!), it makes it easier for us to keep Azure Cosmos DB for PostgreSQL current with the latest Postgres releases.\u00a0<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">A lot of focused engineering work to keep up-to-date with the Postgres 16 beta and RC candidate releases over the last months allowed to bring all Postgres 16 benefits to Citus extension and Azure Cosmos DB for PostgreSQL that fast. In fact, the <\/span><a href=\"https:\/\/www.citusdata.com\/blog\/2023\/09\/22\/adding-postgres-16-support-to-citus-12-1\/\"><span data-contrast=\"none\">Citus 12.1 open source release<\/span><\/a><span data-contrast=\"auto\"> came out with Postgres 16 support just 1 week after the Postgres 16 release.<\/span><\/p>\n<p><span data-contrast=\"auto\">Of course, making Azure Cosmos DB for PostgreSQL available on the latest versions of Postgres also involves a rigorous QA process, too. <\/span><a href=\"https:\/\/devblogs.microsoft.com\/cosmosdb\/enabling-postgresql-15-in-azure-cosmos-db-for-postgresql-how-we-did-it\/\"><span data-contrast=\"none\">Here are some details<\/span><\/a><span data-contrast=\"auto\"> about the QA and release process published last year for Azure Cosmos DB for PostgreSQL, shortly after Postgres 15 was released.<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<h3><b><span data-contrast=\"auto\">Lots of improvements, small and large, in Postgres 16<\/span><\/b><span data-ccp-props=\"{}\">\u00a0<\/span><\/h3>\n<p><span data-contrast=\"auto\">Highlights of the innovations featured in the <\/span><a href=\"https:\/\/www.postgresql.org\/docs\/16\/release-16.html\"><span data-contrast=\"none\">PostgreSQL 16 release notes<\/span><\/a><span data-contrast=\"auto\"> (that many of us are excited about) include:<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"11\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"2\" data-aria-level=\"1\"><span data-contrast=\"auto\">query performance improvements with more parallelism;\u00a0<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"11\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"3\" data-aria-level=\"1\"><span data-contrast=\"auto\">developer experience enhancements;\u00a0<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"11\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"4\" data-aria-level=\"1\"><span data-contrast=\"auto\">monitoring of I\/O stats using pg_stat_io view; and\u00a0<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"11\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"5\" data-aria-level=\"1\"><span data-contrast=\"auto\">enhanced security features<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"11\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"6\" data-aria-level=\"1\"><span data-contrast=\"auto\">and more&#8230;.<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/li>\n<\/ul>\n<h3><b><span data-contrast=\"auto\">Not only PostgreSQL 16<\/span><\/b><span data-ccp-props=\"{}\">\u00a0<\/span><\/h3>\n<p><span data-contrast=\"auto\">While some workloads get tangible benefits from the latest Postgres versions, other applications are just fine running on an older PostgreSQL version. Which is why Azure Cosmos DB for PostgreSQL supports <\/span><a href=\"https:\/\/learn.microsoft.com\/azure\/cosmos-db\/postgresql\/reference-versions#postgresql-versions\"><span data-contrast=\"none\">all current Postgres versions<\/span><\/a><span data-contrast=\"auto\">: Postgres 11, 12, 13, 14, 15, and now 16. \u201cAll current Postgres versions\u201d means all the PostgreSQL versions that are supported by PostgreSQL community.\u00a0<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">And if you run your cluster on PostgreSQL 14 or 15, you also get access to the latest version of the Citus database extension: Citus 12.x.<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<h3><b><span data-contrast=\"auto\">Learn more about PostgreSQL 16 and Azure Cosmos DB for PostgreSQL<\/span><\/b><span data-ccp-props=\"{}\">\u00a0<\/span><\/h3>\n<p><span data-contrast=\"auto\">If you want to give Azure Cosmos DB for PostgreSQL a try, start with <\/span><a href=\"https:\/\/learn.microsoft.com\/azure\/cosmos-db\/postgresql\/quickstart-create-portal?tabs=direct\"><span data-contrast=\"none\">the Quickstart<\/span><\/a><span data-contrast=\"auto\"> or <\/span><a href=\"https:\/\/aka.ms\/TryCosmosDB\"><span data-contrast=\"none\">free trial<\/span><\/a><span data-contrast=\"auto\">. More links and resources below. Happy hacking!<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<ul>\n<li data-leveltext=\"-\" data-font=\"Calibri\" data-listid=\"9\" data-list-defn-props=\"{&quot;335551671&quot;:0,&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Calibri&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;-&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"0\" data-aria-level=\"1\"><a href=\"https:\/\/www.postgresql.org\/about\/news\/postgresql-16-released-2715\/\"><span data-contrast=\"none\">PostgreSQL 16 release notes<\/span><\/a><span data-ccp-props=\"{}\">\u00a0<\/span><\/li>\n<li data-leveltext=\"-\" data-font=\"Calibri\" data-listid=\"9\" data-list-defn-props=\"{&quot;335551671&quot;:0,&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Calibri&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;-&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"0\" data-aria-level=\"1\"><a href=\"https:\/\/www.citusdata.com\/updates\/v12-1\"><span data-contrast=\"none\">Citus 12.1 release notes<\/span><\/a><span data-ccp-props=\"{}\">\u00a0<\/span><\/li>\n<li data-leveltext=\"-\" data-font=\"Calibri\" data-listid=\"9\" data-list-defn-props=\"{&quot;335551671&quot;:0,&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Calibri&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;-&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"0\" data-aria-level=\"1\"><a href=\"https:\/\/learn.microsoft.com\/azure\/cosmos-db\/postgresql\/concepts-upgrade\"><span data-contrast=\"none\">Azure Cosmos DB for PostgreSQL cluster Postgres \/ Citus version upgrade<\/span><\/a><span data-ccp-props=\"{}\">\u00a0<\/span><\/li>\n<li data-leveltext=\"-\" data-font=\"Calibri\" data-listid=\"9\" data-list-defn-props=\"{&quot;335551671&quot;:0,&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Calibri&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;-&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"0\" data-aria-level=\"1\"><a href=\"https:\/\/learn.microsoft.com\/azure\/cosmos-db\/postgresql\/reference-versions#postgresql-version-support-and-retirement\"><span data-contrast=\"none\">Major PostgreSQL version support in Azure Cosmos DB for PostgreSQL<\/span><\/a><\/li>\n<\/ul>\n<p><figure id=\"attachment_6763\" aria-labelledby=\"figcaption_attachment_6763\" class=\"wp-caption aligncenter\" ><a href=\"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2023\/09\/pgsql-12.png\"><img decoding=\"async\" class=\"wp-image-6763 size-large\" src=\"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2023\/09\/pgsql-12-1024x598.png\" alt=\"Figure 1: Screenshot from the Azure portal of an Azure Cosmos DB for PostgreSQL cluster running PostgreSQL 16 (and powered by Citus 12.1.)\" width=\"640\" height=\"374\" srcset=\"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2023\/09\/pgsql-12-1024x598.png 1024w, https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2023\/09\/pgsql-12-300x175.png 300w, https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2023\/09\/pgsql-12-768x449.png 768w, https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2023\/09\/pgsql-12-1536x897.png 1536w, https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2023\/09\/pgsql-12.png 1700w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><\/a><figcaption id=\"figcaption_attachment_6763\" class=\"wp-caption-text\">Figure 1: Screenshot from the Azure portal of an Azure Cosmos DB for PostgreSQL cluster running PostgreSQL 16 (and powered by Citus 12.1.)<span style=\"font-size: 1rem; text-align: var(--bs-body-text-align);\">\u00a0<\/span><\/figcaption><\/figure><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Big news in the Postgres world:\u00a0PostgreSQL 16 was released just over 2 weeks ago. And today we&#8217;re announcing that Postgres 16 is\u00a0generally available\u00a0for production\u00a0workloads on Azure Cosmos DB for PostgreSQL. That\u2019s right,\u00a0in production:\u00a0this announcement\u00a0is not just a\u00a0preview of Postgres 16 support.\u00a0 Whether you need to provision a new distributed Postgres cluster in Azure Cosmos DB [&hellip;]<\/p>\n","protected":false},"author":103349,"featured_media":6762,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1838],"tags":[499,1836],"class_list":["post-6760","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-postgresql","tag-azure-cosmos-db","tag-postgresql"],"acf":[],"blog_post_summary":"<p>Big news in the Postgres world:\u00a0PostgreSQL 16 was released just over 2 weeks ago. And today we&#8217;re announcing that Postgres 16 is\u00a0generally available\u00a0for production\u00a0workloads on Azure Cosmos DB for PostgreSQL. That\u2019s right,\u00a0in production:\u00a0this announcement\u00a0is not just a\u00a0preview of Postgres 16 support.\u00a0 Whether you need to provision a new distributed Postgres cluster in Azure Cosmos DB [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-json\/wp\/v2\/posts\/6760","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-json\/wp\/v2\/users\/103349"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-json\/wp\/v2\/comments?post=6760"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-json\/wp\/v2\/posts\/6760\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-json\/wp\/v2\/media\/6762"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-json\/wp\/v2\/media?parent=6760"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-json\/wp\/v2\/categories?post=6760"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-json\/wp\/v2\/tags?post=6760"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}