{"id":7931,"date":"2016-05-16T17:18:35","date_gmt":"2016-05-16T15:18:35","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/a-look-at-postgresql-9-6-the-wait-interface\/"},"modified":"2016-05-16T17:18:35","modified_gmt":"2016-05-16T15:18:35","slug":"a-look-at-postgresql-9-6-the-wait-interface","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/a-look-at-postgresql-9-6-the-wait-interface\/","title":{"rendered":"A look at PostgreSQL 9.6  &#8211; The wait interface"},"content":{"rendered":"<p>For a long time there was no real wait interface in PostgreSQL core. Now, with the upcoming <a href=\"http:\/\/www.postgresql.org\/docs\/9.6\/static\/release-9-6.html\" target=\"_blank\" rel=\"noopener\">9.6<\/a>, <a href=\"http:\/\/www.postgresql.org\/docs\/9.6\/static\/monitoring-stats.html#PG-STAT-ACTIVITY-VIEW\" target=\"_blank\" rel=\"noopener\">pg_stat_activity<\/a> was extended to provide more meaningful information for what a session is currently waiting on.  If you are interested in reading through the history: It all started <a href=\"http:\/\/www.postgresql.org\/message-id\/CA+TgmoYd3GTz2_mJfUHF+RPe-bCy75ytJeKVv9x-o+SonCGApw@mail.gmail.com\" target=\"_blank\" rel=\"noopener\">here<\/a>. Lets have a look at it by doing same simple tests.<\/p>\n<p>When I want to see what a session is waiting for I&#8217;ll at least need two sessions: One doing some work and the other for querying the wait event information. Obviously I&#8217;ll need to know my backend process identifier which I then can use to query pg_stat_activity. PostgreSQL provides a function to get the backend process id:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\n(postgres@[local]:5432) [postgres] &gt; select * from pg_backend_pid();\n pg_backend_pid \n----------------\n           3048\n(1 row)\n<\/pre>\n<p>Using this session lets create a table and populate it with some rows: <\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\n(postgres@[local]:5432) [postgres] &gt; create table t1 (a int);\nCREATE TABLE\n(postgres@[local]:5432) [postgres] &gt; insert into t1 (a) values ( generate_series(1,1000000) );\nINSERT 0 1000000\n<\/pre>\n<p>If you are fast enough to switch to the other session and query for the wait event you&#8217;ll see this:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\n(postgres@[local]:5432) [postgres] &gt; select wait_event_type,wait_event from pg_stat_activity where pid = 3048;\n wait_event_type |  wait_event  \n-----------------+--------------\n LWLockNamed     | WALWriteLock\n(1 row)\n<\/pre>\n<p>So, what does this mean? The <a href=\"http:\/\/www.postgresql.org\/docs\/9.6\/static\/monitoring-stats.html#WAIT-EVENT-TABLE\" target=\"_blank\" rel=\"noopener\">documentation<\/a> gives the answer:<\/p>\n<ul>\n<li><b>LWLockNamed<\/b>: The backend is waiting for a specific named lightweight lock. Each such lock protects a particular data structure in shared memory. wait_event will contain the name of the lightweight lock.<\/li>\n<li><b>WALWriteLock<\/b>: Waiting for WAL buffers to be written to disk.<\/li>\n<\/ul>\n<p>Makes sense: Changed data needs to be written to the <a href=\"http:\/\/www.postgresql.org\/docs\/9.6\/static\/runtime-config-wal.html\" target=\"_blank\" rel=\"noopener\">WAL<\/a>. <\/p>\n<p>Another example: In one session I&#8217;ll start a transaction and update one row in the table without closing\/committing the same: <\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\n(postgres@[local]:5432) [postgres] &gt; begin;\nBEGIN\nTime: 0.103 ms\n(postgres@[local]:5432) [postgres] &gt; update t1 set a = 2 where a = 1;\nUPDATE 1\nTime: 56.086 ms\n(postgres@[local]:5432) [postgres] &gt; \n<\/pre>\n<p>In a third session lets try to update the same row:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\n(postgres@[local]:5432) [postgres] &gt; select * from pg_backend_pid();\n pg_backend_pid \n----------------\n           3397\n(1 row)\n\nTime: 0.220 ms\n(postgres@[local]:5432) [postgres] &gt; update t1 set a = 2 where a = 1;\n<\/pre>\n<p>This should cause a wait event, but which one?<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\n(postgres@[local]:5432) [postgres] &gt; select wait_event_type,wait_event from pg_stat_activity where pid = 3397;\n wait_event_type |  wait_event   \n-----------------+---------------\n Lock            | transactionid\n(1 row)\n<\/pre>\n<p>Another event type and another event:<\/p>\n<ul>\n<li><b>Lock<\/b>: The backend is waiting for a heavyweight lock. Heavyweight locks, also known as lock manager locks or simply locks, primarily protect SQL-visible objects such as tables. However, they are also used to ensure mutual exclusion for certain internal operations such as relation extension. wait_event will identify the type of lock awaited.<\/li>\n<li><b>transactionid<\/b>: Waiting for a transaction to finish<\/li>\n<\/ul>\n<p>In PostgreSQL <a href=\"http:\/\/dbi-services.com\/blog\/transactional-ddl\/\" target=\"_blank\" rel=\"noopener\">DDL is transactional<\/a>, too, so we should be able to create another wait event when we try to modify the table in one session:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\n(postgres@[local]:5432) [postgres] &gt; begin;\nBEGIN\nTime: 0.085 ms\n(postgres@[local]:5432) [postgres] &gt; alter table t1 add column b int;\nALTER TABLE\nTime: 0.318 ms\n(postgres@[local]:5432) [postgres] &gt; \n<\/pre>\n<p>&#8230; and then try to update a row in another session:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\n(postgres@[local]:5432) [postgres] &gt; update t1 set a = 2 where a = 1;\n<\/pre>\n<p>What is reported?<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\n(postgres@[local]:5432) [postgres] &gt; select wait_event_type,wait_event from pg_stat_activity where pid = 3397;\n wait_event_type | wait_event \n-----------------+------------\n Lock            | relation\n(1 row)\n<\/pre>\n<ul>\n<li><b>Lock<\/b>: The backend is waiting for a heavyweight lock. Heavyweight locks, also known as lock manager locks or simply locks, primarily protect SQL-visible objects such as tables. However, they are also used to ensure mutual exclusion for certain internal operations such as relation extension. wait_event will identify the type of lock awaited.<\/li>\n<li><b>relation<\/b>: Waiting to acquire a lock on a relation.<\/li>\n<\/ul>\n<p>Currently there are <a href=\"http:\/\/www.postgresql.org\/docs\/9.6\/static\/monitoring-stats.html#WAIT-EVENT-TABLE\" target=\"_blank\" rel=\"noopener\">68 documented wait events<\/a> and I am sure more will show up during the next releases. This is a huge help if you need to troubleshoot sessions because now you do not need extensions any more and do not need to compile PostgreSQL with <a href=\"http:\/\/www.postgresql.org\/docs\/current\/static\/dynamic-trace.html\" target=\"_blank\" rel=\"noopener\">dynamic tracing<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>For a long time there was no real wait interface in PostgreSQL core. Now, with the upcoming 9.6, pg_stat_activity was extended to provide more meaningful information for what a session is currently waiting on. If you are interested in reading through the history: It all started here. Lets have a look at it by doing&hellip;&nbsp;<\/p>\n","protected":false},"author":28,"featured_media":0,"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":[4133],"tags":[67,230],"class_list":["post-7931","post","type-post","status-publish","format-standard","hentry","category-database","tag-performance","tag-wait-event"],"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>A look at PostgreSQL 9.6 - The wait interface - 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\/a-look-at-postgresql-9-6-the-wait-interface\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"A look at PostgreSQL 9.6 - The wait interface\" \/>\n<meta property=\"og:description\" content=\"For a long time there was no real wait interface in PostgreSQL core. Now, with the upcoming 9.6, pg_stat_activity was extended to provide more meaningful information for what a session is currently waiting on. If you are interested in reading through the history: It all started here. Lets have a look at it by doing&hellip;&nbsp;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/a-look-at-postgresql-9-6-the-wait-interface\/\" \/>\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=\"2016-05-16T15:18:35+00:00\" \/>\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=\"3 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\\\/a-look-at-postgresql-9-6-the-wait-interface\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/a-look-at-postgresql-9-6-the-wait-interface\\\/\"},\"author\":{\"name\":\"Open source Team\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/0b4548362cac3eeff8b3eaf329e3530a\"},\"headline\":\"A look at PostgreSQL 9.6 &#8211; The wait interface\",\"datePublished\":\"2016-05-16T15:18:35+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/a-look-at-postgresql-9-6-the-wait-interface\\\/\"},\"wordCount\":482,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#organization\"},\"keywords\":[\"Performance\",\"wait event\"],\"articleSection\":[\"Database\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/a-look-at-postgresql-9-6-the-wait-interface\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/a-look-at-postgresql-9-6-the-wait-interface\\\/\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/a-look-at-postgresql-9-6-the-wait-interface\\\/\",\"name\":\"A look at PostgreSQL 9.6 - The wait interface - dbi services | Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\"},\"datePublished\":\"2016-05-16T15:18:35+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/a-look-at-postgresql-9-6-the-wait-interface\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/a-look-at-postgresql-9-6-the-wait-interface\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/a-look-at-postgresql-9-6-the-wait-interface\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"A look at PostgreSQL 9.6 &#8211; The wait interface\"}]},{\"@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":"A look at PostgreSQL 9.6 - The wait interface - 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\/a-look-at-postgresql-9-6-the-wait-interface\/","og_locale":"en_US","og_type":"article","og_title":"A look at PostgreSQL 9.6 - The wait interface","og_description":"For a long time there was no real wait interface in PostgreSQL core. Now, with the upcoming 9.6, pg_stat_activity was extended to provide more meaningful information for what a session is currently waiting on. If you are interested in reading through the history: It all started here. Lets have a look at it by doing&hellip;&nbsp;","og_url":"https:\/\/www.dbi-services.com\/blog\/a-look-at-postgresql-9-6-the-wait-interface\/","og_site_name":"dbi services | Blog","article_publisher":"https:\/\/www.facebook.com\/dbiservices\/","article_published_time":"2016-05-16T15:18:35+00:00","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":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/a-look-at-postgresql-9-6-the-wait-interface\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/a-look-at-postgresql-9-6-the-wait-interface\/"},"author":{"name":"Open source Team","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/0b4548362cac3eeff8b3eaf329e3530a"},"headline":"A look at PostgreSQL 9.6 &#8211; The wait interface","datePublished":"2016-05-16T15:18:35+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/a-look-at-postgresql-9-6-the-wait-interface\/"},"wordCount":482,"commentCount":0,"publisher":{"@id":"https:\/\/www.dbi-services.com\/blog\/#organization"},"keywords":["Performance","wait event"],"articleSection":["Database"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/a-look-at-postgresql-9-6-the-wait-interface\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/a-look-at-postgresql-9-6-the-wait-interface\/","url":"https:\/\/www.dbi-services.com\/blog\/a-look-at-postgresql-9-6-the-wait-interface\/","name":"A look at PostgreSQL 9.6 - The wait interface - dbi services | Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"datePublished":"2016-05-16T15:18:35+00:00","breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/a-look-at-postgresql-9-6-the-wait-interface\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/a-look-at-postgresql-9-6-the-wait-interface\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/a-look-at-postgresql-9-6-the-wait-interface\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"A look at PostgreSQL 9.6 &#8211; The wait interface"}]},{"@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\/7931","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=7931"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/7931\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=7931"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=7931"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=7931"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}