<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-12493181</id><updated>2012-01-13T19:24:52.151+09:00</updated><title type='text'>A Hacker's Diary</title><subtitle type='html'>Some thoughts around PostgreSQL and OpenSource.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://pgsnaga.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12493181/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://pgsnaga.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Satoshi Nagayasu</name><uri>http://www.blogger.com/profile/09706093898823214408</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/__8NhvlYdsEo/SxjOinCW9mI/AAAAAAAAAF4/rMu3gKvTQlc/S220/snaga.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>21</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-12493181.post-479547027493011407</id><published>2011-11-15T19:02:00.001+09:00</published><updated>2011-11-15T22:52:35.699+09:00</updated><title type='text'>xlogdump 0.5.1 released</title><summary type='text'>The latest xlogdump has been released.

This version allows users to lookup object names from object ids for built-in database objects by reading the lookup table file instead of the system catalog.
----------------------------------------------------------------------
2011-11-15  Satoshi Nagayasu &lt;satoshi.nagayasu@gmail.com&gt;
        * Version 0.5.1
        * Allows to lookup the object names for</summary><link rel='replies' type='application/atom+xml' href='http://pgsnaga.blogspot.com/feeds/479547027493011407/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12493181&amp;postID=479547027493011407' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12493181/posts/default/479547027493011407'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12493181/posts/default/479547027493011407'/><link rel='alternate' type='text/html' href='http://pgsnaga.blogspot.com/2011/11/xlogdump-051-released.html' title='xlogdump 0.5.1 released'/><author><name>Satoshi Nagayasu</name><uri>http://www.blogger.com/profile/09706093898823214408</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/__8NhvlYdsEo/SxjOinCW9mI/AAAAAAAAAF4/rMu3gKvTQlc/S220/snaga.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12493181.post-4331631282050846555</id><published>2011-10-28T23:07:00.012+09:00</published><updated>2011-11-04T13:49:32.507+09:00</updated><title type='text'>Performance impact of the pg_stat_statements module (Updated: Nov-04-2011)</title><summary type='text'>When I tweeted that I thought pg_stat_statements should be integrated to the core a few weeks ago, Josh responded me that it would be up to submitting a patch and figuring out the performace overhead.

So, before starting a patch work, I've decided to figure out the performance impact of the pg_stat_statements module.

The right pic is the results from pgbench, averages from 5 times runs each, </summary><link rel='replies' type='application/atom+xml' href='http://pgsnaga.blogspot.com/feeds/4331631282050846555/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12493181&amp;postID=4331631282050846555' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12493181/posts/default/4331631282050846555'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12493181/posts/default/4331631282050846555'/><link rel='alternate' type='text/html' href='http://pgsnaga.blogspot.com/2011/10/performance-impact-of-pgstatstatements.html' title='Performance impact of the pg_stat_statements module (Updated: Nov-04-2011)'/><author><name>Satoshi Nagayasu</name><uri>http://www.blogger.com/profile/09706093898823214408</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/__8NhvlYdsEo/SxjOinCW9mI/AAAAAAAAAF4/rMu3gKvTQlc/S220/snaga.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-NQXP52hWZ3o/Tqq2dGTOyhI/AAAAAAAAAO8/PUhLOLsOZ70/s72-c/pgstatstatements.png' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12493181.post-8672149833700651805</id><published>2011-10-22T23:12:00.004+09:00</published><updated>2011-10-22T23:28:22.662+09:00</updated><title type='text'>Loading data into UNLOGGED tables, and considering ALTER TABLE</title><summary type='text'>UNLOGGED table has been introduced in 9.1, and it would improve INSERT/UPDATE/DELETE performance in several situations. At this time, I'm curious how it would work well on data loading.

To load large amount of rows into PostgreSQL, WAL logging would be a performance penalty, especially under the situation that have several tables on different spindles, because WAL logging forces data loading </summary><link rel='replies' type='application/atom+xml' href='http://pgsnaga.blogspot.com/feeds/8672149833700651805/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12493181&amp;postID=8672149833700651805' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12493181/posts/default/8672149833700651805'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12493181/posts/default/8672149833700651805'/><link rel='alternate' type='text/html' href='http://pgsnaga.blogspot.com/2011/10/data-loading-into-unlogged-tables-and.html' title='Loading data into UNLOGGED tables, and considering ALTER TABLE'/><author><name>Satoshi Nagayasu</name><uri>http://www.blogger.com/profile/09706093898823214408</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/__8NhvlYdsEo/SxjOinCW9mI/AAAAAAAAAF4/rMu3gKvTQlc/S220/snaga.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-vpMQFSb1jaI/TqLNutOGDVI/AAAAAAAAAO0/KWAXqYy8j4w/s72-c/table.png' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12493181.post-7679136934893656025</id><published>2011-10-21T02:43:00.002+09:00</published><updated>2011-10-21T02:56:37.580+09:00</updated><title type='text'>Index-only scans and heap block reads</title><summary type='text'>As you may know, the Index-only scans feature has been committed to the PostgreSQL repository and it's available to all the developers.

I'm very curious about such performance feature, and always want to understand what would change the things better and how it works. So, I just tried the index-only scans to determine what would be changed.

The right figure shows PostgreSQL index scans and </summary><link rel='replies' type='application/atom+xml' href='http://pgsnaga.blogspot.com/feeds/7679136934893656025/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12493181&amp;postID=7679136934893656025' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12493181/posts/default/7679136934893656025'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12493181/posts/default/7679136934893656025'/><link rel='alternate' type='text/html' href='http://pgsnaga.blogspot.com/2011/10/index-only-scans-and-heap-block-reads.html' title='Index-only scans and heap block reads'/><author><name>Satoshi Nagayasu</name><uri>http://www.blogger.com/profile/09706093898823214408</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/__8NhvlYdsEo/SxjOinCW9mI/AAAAAAAAAF4/rMu3gKvTQlc/S220/snaga.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-qybaK24Ad_k/TqBcPrTYHKI/AAAAAAAAAOk/RNnGBps2KPw/s72-c/indexonlyscan.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12493181.post-2338367185965955517</id><published>2011-10-07T22:03:00.001+09:00</published><updated>2011-10-07T22:04:12.813+09:00</updated><title type='text'>pgbench on UNLOGGED table(s), Round 2</title><summary type='text'>As one pointed out in a comment in the last post, I have tried additional pgbench runs for "synchronous_commit = off" and "fsync = off".

The results are shown in the right pic.

It shows that "sync_commit = off" and "fsync = off" are almost the same, and these are faster as much as "UNLOGGED", except a tiny behind.

I think the tiny behind means the difference between "sync_commit = off (or </summary><link rel='replies' type='application/atom+xml' href='http://pgsnaga.blogspot.com/feeds/2338367185965955517/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12493181&amp;postID=2338367185965955517' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12493181/posts/default/2338367185965955517'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12493181/posts/default/2338367185965955517'/><link rel='alternate' type='text/html' href='http://pgsnaga.blogspot.com/2011/10/pgbench-on-unlogged-tables-round-2.html' title='pgbench on UNLOGGED table(s), Round 2'/><author><name>Satoshi Nagayasu</name><uri>http://www.blogger.com/profile/09706093898823214408</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/__8NhvlYdsEo/SxjOinCW9mI/AAAAAAAAAF4/rMu3gKvTQlc/S220/snaga.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-g5oF7QBN8Ds/To7zqeETHPI/AAAAAAAAAOg/JWpY-IECj8U/s72-c/unlogged2.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12493181.post-8832573570366977440</id><published>2011-10-04T19:46:00.005+09:00</published><updated>2011-10-05T00:30:23.996+09:00</updated><title type='text'>pgbench on UNLOGGED table(s)</title><summary type='text'>To satisfy my curiosity, I just tried a quick run for pgbench with UNLOGGED tables.

Under the pgbench transaction model, a kind of tpc-b, changing the history table attribute to "UNLOGGED" did not contribute to the performance.

However, changing all tables to "UNLOGGED" improved the performance *substantially*. :)

The results shown in the right image are averages of running pgbench 10 times </summary><link rel='replies' type='application/atom+xml' href='http://pgsnaga.blogspot.com/feeds/8832573570366977440/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12493181&amp;postID=8832573570366977440' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12493181/posts/default/8832573570366977440'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12493181/posts/default/8832573570366977440'/><link rel='alternate' type='text/html' href='http://pgsnaga.blogspot.com/2011/10/pgbench-on-unlogged-tables.html' title='pgbench on UNLOGGED table(s)'/><author><name>Satoshi Nagayasu</name><uri>http://www.blogger.com/profile/09706093898823214408</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/__8NhvlYdsEo/SxjOinCW9mI/AAAAAAAAAF4/rMu3gKvTQlc/S220/snaga.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-1_RAbDkoqAg/Tori-HGxC1I/AAAAAAAAAOc/0PrgPKkH-DQ/s72-c/unlogged.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12493181.post-1676471719096139492</id><published>2011-09-26T23:21:00.002+09:00</published><updated>2011-09-26T23:36:01.908+09:00</updated><title type='text'>xlogdump 0.5.0 released</title><summary type='text'>Hi, pg folks,

xlogdump is a tool for extracting data from WAL segment files. I'm pleased to announce the latest version of xlogdump, 0.5.0, after a few weeks from the previous release 0.4.0.

I think xlogdump would be helpful to understand PostgreSQL behaviors, and you can enjoy brand-new features in this version, so please try it if you're interested in it.

In this version 0.5.0, xlogdump is </summary><link rel='replies' type='application/atom+xml' href='http://pgsnaga.blogspot.com/feeds/1676471719096139492/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12493181&amp;postID=1676471719096139492' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12493181/posts/default/1676471719096139492'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12493181/posts/default/1676471719096139492'/><link rel='alternate' type='text/html' href='http://pgsnaga.blogspot.com/2011/09/xlogdump-050-released.html' title='xlogdump 0.5.0 released'/><author><name>Satoshi Nagayasu</name><uri>http://www.blogger.com/profile/09706093898823214408</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/__8NhvlYdsEo/SxjOinCW9mI/AAAAAAAAAF4/rMu3gKvTQlc/S220/snaga.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-6o3Q9aPuhFk/ToCKIvCfGhI/AAAAAAAAAOY/0H8Pu9cD_RA/s72-c/xlogdump.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12493181.post-82433715242164362</id><published>2011-09-04T13:13:00.002+09:00</published><updated>2011-09-21T13:38:04.067+09:00</updated><title type='text'>xlogdump 0.4.0</title><summary type='text'>I'm pleased to announce the latest release of xlogdump. xlogdump is a tool for extracting data from WAL segment files.

Here is xlogdump README:
https://github.com/snaga/xlogdump/blob/master/README.xlogdump

xlogdump was originally developed by Tom Lane and Diogo Biazus around five years ago, but not be maintained these few years.

So, I picked it up and have fixed some problems and enhanced. It </summary><link rel='replies' type='application/atom+xml' href='http://pgsnaga.blogspot.com/feeds/82433715242164362/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12493181&amp;postID=82433715242164362' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12493181/posts/default/82433715242164362'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12493181/posts/default/82433715242164362'/><link rel='alternate' type='text/html' href='http://pgsnaga.blogspot.com/2011/09/xlogdump-040.html' title='xlogdump 0.4.0'/><author><name>Satoshi Nagayasu</name><uri>http://www.blogger.com/profile/09706093898823214408</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/__8NhvlYdsEo/SxjOinCW9mI/AAAAAAAAAF4/rMu3gKvTQlc/S220/snaga.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12493181.post-8263966513401648005</id><published>2011-03-01T12:02:00.001+09:00</published><updated>2011-03-01T12:02:47.784+09:00</updated><title type='text'>PostgreSQL Query Cache - "pqc"</title><summary type='text'>I would like to introduce a new open source software, PostgreSQL Query Cache, which enables to improve query performance extremely (10x~100x) by caching query results in front of backends.

PostgreSQL Query Cache:
waits connections on the different port from the clients.
delegates queries in front of the backends, like a proxy.
intercepts and caches SELECT query results.
also manages lifecycle of</summary><link rel='replies' type='application/atom+xml' href='http://pgsnaga.blogspot.com/feeds/8263966513401648005/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12493181&amp;postID=8263966513401648005' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12493181/posts/default/8263966513401648005'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12493181/posts/default/8263966513401648005'/><link rel='alternate' type='text/html' href='http://pgsnaga.blogspot.com/2011/03/postgresql-query-cache-pqc.html' title='PostgreSQL Query Cache - &quot;pqc&quot;'/><author><name>Satoshi Nagayasu</name><uri>http://www.blogger.com/profile/09706093898823214408</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/__8NhvlYdsEo/SxjOinCW9mI/AAAAAAAAAF4/rMu3gKvTQlc/S220/snaga.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12493181.post-8138871624172290839</id><published>2010-05-15T15:52:00.021+09:00</published><updated>2010-05-17T02:30:54.923+09:00</updated><title type='text'>5 steps to implement a PostgreSQL replication system</title><summary type='text'>Yesterday, I tried to build a PostgreSQL master-slave replication system with new feature "Streaming Replication (SR)", which is coming in the next PostgreSQL major release 9.0 as a built-in replication solution, and it worked well on my servers.

I feel it is very easy to configure, so I have decided to make some memos here for building a PostgreSQL master-slave replication system.

Here are 5 </summary><link rel='replies' type='application/atom+xml' href='http://pgsnaga.blogspot.com/feeds/8138871624172290839/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12493181&amp;postID=8138871624172290839' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12493181/posts/default/8138871624172290839'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12493181/posts/default/8138871624172290839'/><link rel='alternate' type='text/html' href='http://pgsnaga.blogspot.com/2010/05/5-steps-to-implement-postgresql.html' title='5 steps to implement a PostgreSQL replication system'/><author><name>Satoshi Nagayasu</name><uri>http://www.blogger.com/profile/09706093898823214408</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/__8NhvlYdsEo/SxjOinCW9mI/AAAAAAAAAF4/rMu3gKvTQlc/S220/snaga.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/__8NhvlYdsEo/S-5KedWe7ZI/AAAAAAAAAIw/uPH5mf5Wok8/s72-c/aaa.jpg' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12493181.post-6700142229449482332</id><published>2010-03-28T17:26:00.012+09:00</published><updated>2010-04-01T21:52:48.264+09:00</updated><title type='text'>PostgreSQL 9 TestFest Japan on Apr.4</title><summary type='text'>Some Japanese PostgreSQL developers are inspired by the SFPUG’s TestFest announce, and we are now planning to have our TestFest at 3am-10am Apr.4 in Tokyo/Japan, which is equivalent to 11am-6pm Apr.3 PST in SanFrancisco.

PostgreSQL 9 is going to be a very exciting release, and we hope to try   many new things around PostgreSQL 9. So we have decided to have our  TestFest  as an all-night event, </summary><link rel='replies' type='application/atom+xml' href='http://pgsnaga.blogspot.com/feeds/6700142229449482332/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12493181&amp;postID=6700142229449482332' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12493181/posts/default/6700142229449482332'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12493181/posts/default/6700142229449482332'/><link rel='alternate' type='text/html' href='http://pgsnaga.blogspot.com/2010/03/postgresql-9-testfest-japan-on-apr4.html' title='PostgreSQL 9 TestFest Japan on Apr.4'/><author><name>Satoshi Nagayasu</name><uri>http://www.blogger.com/profile/09706093898823214408</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/__8NhvlYdsEo/SxjOinCW9mI/AAAAAAAAAF4/rMu3gKvTQlc/S220/snaga.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12493181.post-7593060178153433836</id><published>2009-12-28T04:05:00.016+09:00</published><updated>2009-12-28T23:48:15.112+09:00</updated><title type='text'>PostgreSQL Cluster: “Too Many Projects” problem</title><summary type='text'>“Too Many Projects” problem

The “too many projects” problem of PostgreSQL Cluster was raised and discussed in the PostgreSQL Clustering Developer Meeting at the JPUG Conference.

Nowadays, the PostgreSQL developer community has many clustering/replication projects, but many of them are not production ready. Though, new project is starting, and old project is still unmature.

I think this is one </summary><link rel='replies' type='application/atom+xml' href='http://pgsnaga.blogspot.com/feeds/7593060178153433836/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12493181&amp;postID=7593060178153433836' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12493181/posts/default/7593060178153433836'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12493181/posts/default/7593060178153433836'/><link rel='alternate' type='text/html' href='http://pgsnaga.blogspot.com/2009/12/postgresql-cluster-too-many-projects.html' title='PostgreSQL Cluster: “Too Many Projects” problem'/><author><name>Satoshi Nagayasu</name><uri>http://www.blogger.com/profile/09706093898823214408</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/__8NhvlYdsEo/SxjOinCW9mI/AAAAAAAAAF4/rMu3gKvTQlc/S220/snaga.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/__8NhvlYdsEo/SzevbZ5my7I/AAAAAAAAAGo/Q141gw4up7c/s72-c/43750308.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12493181.post-8128709649421103647</id><published>2009-12-05T04:05:00.008+09:00</published><updated>2009-12-05T04:53:34.500+09:00</updated><title type='text'>Back to the OpenSource world</title><summary type='text'>
Finally, I’m back to the OpenSource world.

In 2004, I started working as a PostgreSQL developer and database engineer. While I was working as a PostgreSQL engineer, I was joining several PostgreSQL cluster projects, including Slony-II. Unfortunately, some were not happen, but it gave me great experiences.

At the same time, I was working as a director of Japan PostgreSQL Users Group (JPUG), and</summary><link rel='replies' type='application/atom+xml' href='http://pgsnaga.blogspot.com/feeds/8128709649421103647/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12493181&amp;postID=8128709649421103647' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12493181/posts/default/8128709649421103647'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12493181/posts/default/8128709649421103647'/><link rel='alternate' type='text/html' href='http://pgsnaga.blogspot.com/2009/12/back-to-opensource-world.html' title='Back to the OpenSource world'/><author><name>Satoshi Nagayasu</name><uri>http://www.blogger.com/profile/09706093898823214408</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/__8NhvlYdsEo/SxjOinCW9mI/AAAAAAAAAF4/rMu3gKvTQlc/S220/snaga.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm4.static.flickr.com/3282/2755995736_d3f6ddba57_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12493181.post-114463365193707464</id><published>2006-04-10T10:34:00.000+09:00</published><updated>2006-04-10T10:52:52.580+09:00</updated><title type='text'>New Explain Format</title><summary type='text'>Bruce has just added a new todo item. - Allow EXPLAIN output to be more easily processed by scriptsI think the well-formed xml is a better format to express the tree structure of the explain output. I don't know xml can be processed easily by *scripts*, but it is easy for the utility programs using xml processing libraries. And xml elements can have many attributes which can be used to hold rows,</summary><link rel='replies' type='application/atom+xml' href='http://pgsnaga.blogspot.com/feeds/114463365193707464/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12493181&amp;postID=114463365193707464' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12493181/posts/default/114463365193707464'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12493181/posts/default/114463365193707464'/><link rel='alternate' type='text/html' href='http://pgsnaga.blogspot.com/2006/04/new-explain-format.html' title='New Explain Format'/><author><name>Satoshi Nagayasu</name><uri>http://www.blogger.com/profile/09706093898823214408</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/__8NhvlYdsEo/SxjOinCW9mI/AAAAAAAAAF4/rMu3gKvTQlc/S220/snaga.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12493181.post-114463089423107566</id><published>2006-04-10T09:56:00.000+09:00</published><updated>2006-04-10T10:51:36.103+09:00</updated><title type='text'>PL/Java 1.2.0 compilation error on PG8.0.0 or 8.0.1</title><summary type='text'>According to the PL/Java release page, PL/Java 1.2.0 still has full support for 8.0.x.However, PL/Java 1.2.0 can't be compiled with 8.0.0 or 8.0.1, because a number of arguments of DefineCustomIntVariable() has been changed between 8.0.1 and 8.0.2. So I got a following error on 8.0.1. PL/Java 1.2.0 can be compiled only on 8.0.2 or later. Should it be fixed in future release?gcc -c -Wno-long-long </summary><link rel='replies' type='application/atom+xml' href='http://pgsnaga.blogspot.com/feeds/114463089423107566/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12493181&amp;postID=114463089423107566' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12493181/posts/default/114463089423107566'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12493181/posts/default/114463089423107566'/><link rel='alternate' type='text/html' href='http://pgsnaga.blogspot.com/2006/04/pljava-120-compilation-error-on-pg800.html' title='PL/Java 1.2.0 compilation error on PG8.0.0 or 8.0.1'/><author><name>Satoshi Nagayasu</name><uri>http://www.blogger.com/profile/09706093898823214408</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/__8NhvlYdsEo/SxjOinCW9mI/AAAAAAAAAF4/rMu3gKvTQlc/S220/snaga.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12493181.post-112458398557000916</id><published>2005-08-21T09:17:00.000+09:00</published><updated>2005-08-21T09:27:13.820+09:00</updated><title type='text'>PCTFREE on Pg</title><summary type='text'>I've done a quick hack for a space reservation in a page to use same page on tuple updating. It's similar to Oracle's PCTFREE stuff. heap_update() can use a (reserved) free space on the same page, but heap_insert() can't.I allocated 1024 bytes for reserve space in each page, then it shows an improvement on the pgbench score 10% or more on my box.-------------- normal -------------------starting </summary><link rel='replies' type='application/atom+xml' href='http://pgsnaga.blogspot.com/feeds/112458398557000916/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12493181&amp;postID=112458398557000916' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12493181/posts/default/112458398557000916'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12493181/posts/default/112458398557000916'/><link rel='alternate' type='text/html' href='http://pgsnaga.blogspot.com/2005/08/pctfree-on-pg.html' title='PCTFREE on Pg'/><author><name>Satoshi Nagayasu</name><uri>http://www.blogger.com/profile/09706093898823214408</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/__8NhvlYdsEo/SxjOinCW9mI/AAAAAAAAAF4/rMu3gKvTQlc/S220/snaga.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12493181.post-112403095017623097</id><published>2005-08-14T23:44:00.000+09:00</published><updated>2005-08-14T23:49:59.436+09:00</updated><title type='text'>CRC64 and MMX</title><summary type='text'>I've done experimental implementation of CRC64 routines using MMX 64 bit registers.It makes COMP_CRC64() 10~30% faster than the marco written in C on my PentiumIII laptop.But my Pentium4 box shows the MMX code is slower 2~3 times than plain C code.What's happened in the processor?#define COMP_CRC64_MMX(crc, data, len) do {   uint64                __crc0 = (crc).crc0;   unsigned char *__data = (</summary><link rel='replies' type='application/atom+xml' href='http://pgsnaga.blogspot.com/feeds/112403095017623097/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12493181&amp;postID=112403095017623097' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12493181/posts/default/112403095017623097'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12493181/posts/default/112403095017623097'/><link rel='alternate' type='text/html' href='http://pgsnaga.blogspot.com/2005/08/crc64-and-mmx.html' title='CRC64 and MMX'/><author><name>Satoshi Nagayasu</name><uri>http://www.blogger.com/profile/09706093898823214408</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/__8NhvlYdsEo/SxjOinCW9mI/AAAAAAAAAF4/rMu3gKvTQlc/S220/snaga.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12493181.post-111736216730664466</id><published>2005-05-29T19:21:00.000+09:00</published><updated>2005-05-29T23:29:42.810+09:00</updated><title type='text'>Documents for OSS RDBMS evaluation</title><summary type='text'>Interesting documents have been published from the Northeast Asia OSS Promotion Forum.http://www.ipa.go.jp/software/open/forum/NEAforum.htmlI hope these documents can be useful for the OSS RDBMS guys.Interesting for you?</summary><link rel='replies' type='application/atom+xml' href='http://pgsnaga.blogspot.com/feeds/111736216730664466/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12493181&amp;postID=111736216730664466' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12493181/posts/default/111736216730664466'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12493181/posts/default/111736216730664466'/><link rel='alternate' type='text/html' href='http://pgsnaga.blogspot.com/2005/05/documents-for-oss-rdbms-evaluation.html' title='Documents for OSS RDBMS evaluation'/><author><name>Satoshi Nagayasu</name><uri>http://www.blogger.com/profile/09706093898823214408</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/__8NhvlYdsEo/SxjOinCW9mI/AAAAAAAAAF4/rMu3gKvTQlc/S220/snaga.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12493181.post-111501498395037475</id><published>2005-05-02T15:22:00.000+09:00</published><updated>2005-05-02T15:24:41.700+09:00</updated><title type='text'>'IN PROGRESS' transactions at the end of recoverying.</title><summary type='text'>If there are 'IN PROGRESS' transactions at the end of recoverying, what can the recoverying node do? If the 'IN PROGRESS' transaction is found, the recoverying RM can't determine it's going to be committed or aborted. The RM can't know even it is the end of transaction or not (it's still continuing).So the recoverying RM must ask another node what to do for 'IN PROGRESS' transactions.When asking,</summary><link rel='replies' type='application/atom+xml' href='http://pgsnaga.blogspot.com/feeds/111501498395037475/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12493181&amp;postID=111501498395037475' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12493181/posts/default/111501498395037475'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12493181/posts/default/111501498395037475'/><link rel='alternate' type='text/html' href='http://pgsnaga.blogspot.com/2005/05/in-progress-transactions-at-end-of.html' title='&apos;IN PROGRESS&apos; transactions at the end of recoverying.'/><author><name>Satoshi Nagayasu</name><uri>http://www.blogger.com/profile/09706093898823214408</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/__8NhvlYdsEo/SxjOinCW9mI/AAAAAAAAAF4/rMu3gKvTQlc/S220/snaga.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12493181.post-111501165810584728</id><published>2005-05-02T14:26:00.000+09:00</published><updated>2005-05-02T14:27:38.106+09:00</updated><title type='text'>Transaction isolation on recovery</title><summary type='text'>Recovery can be realized only replaying WS log sequencially?  I'm not sure that.If there is a WS log sequence as below.(1) XID=101, INSERT INTO t1 VALUES ( 1, 'Name 1' );(2) XID=102, INSERT INTO t1 VALUES ( 2, 'Name 2' );(3) XID=102, ABORT;(4) XID=101, COMMIT;(2) and (3) must be ignored when the RM recover.  But if the recovery session replays this sequence in a single transaction,(1) XID=501, </summary><link rel='replies' type='application/atom+xml' href='http://pgsnaga.blogspot.com/feeds/111501165810584728/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12493181&amp;postID=111501165810584728' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12493181/posts/default/111501165810584728'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12493181/posts/default/111501165810584728'/><link rel='alternate' type='text/html' href='http://pgsnaga.blogspot.com/2005/05/transaction-isolation-on-recovery.html' title='Transaction isolation on recovery'/><author><name>Satoshi Nagayasu</name><uri>http://www.blogger.com/profile/09706093898823214408</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/__8NhvlYdsEo/SxjOinCW9mI/AAAAAAAAAF4/rMu3gKvTQlc/S220/snaga.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12493181.post-111501559388863369</id><published>2005-05-01T15:32:00.000+09:00</published><updated>2005-05-02T15:33:13.890+09:00</updated><title type='text'>Some thoughts on recovery</title><summary type='text'>1.) Recovery ScenariosI think there are two types of the recovery scenario.- Adding a new node to the cluster.- Adding a crashed node to the cluster.The difference is, a crashed node is still having old snapshot when it crashed, so we can recovery with only WS log replaying.However, if the older WS log has gone by reusing log files, and no one has enough older WS data required for recovering a </summary><link rel='replies' type='application/atom+xml' href='http://pgsnaga.blogspot.com/feeds/111501559388863369/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12493181&amp;postID=111501559388863369' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12493181/posts/default/111501559388863369'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12493181/posts/default/111501559388863369'/><link rel='alternate' type='text/html' href='http://pgsnaga.blogspot.com/2005/04/some-thoughts-on-recovery_30.html' title='Some thoughts on recovery'/><author><name>Satoshi Nagayasu</name><uri>http://www.blogger.com/profile/09706093898823214408</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/__8NhvlYdsEo/SxjOinCW9mI/AAAAAAAAAF4/rMu3gKvTQlc/S220/snaga.jpg'/></author><thr:total>0</thr:total></entry></feed>
