<?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-3802120172110116696</id><updated>2011-09-25T11:35:29.537-07:00</updated><category term='Streaming Replication'/><category term='PHP'/><category term='PostgreSQL pgpool-II'/><category term='PostgreSQL'/><category term='PostgreSQL Sylpheed'/><category term='pgpool-II'/><category term='tsunami'/><category term='Japan'/><category term='earthquake'/><title type='text'>Playing with PostgreSQL and pgpool</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://pgsqlpgpool.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3802120172110116696/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://pgsqlpgpool.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Tatsuo Ishii</name><uri>http://www.blogger.com/profile/02856952136007425773</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_1AMoWgR4rhQ/TAmZgDaQpWI/AAAAAAAAAAM/SZh9Xfl5BTs/S220/mixi.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>13</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3802120172110116696.post-5489845548123609057</id><published>2011-06-14T18:52:00.000-07:00</published><updated>2011-06-14T23:55:39.985-07:00</updated><title type='text'>LPI-Japan to start PostgreSQL certfication</title><content type='html'>LPI-Japan, a non-profit distributor of LPIC(Linux Professional Institute Certification) in Japan will start "OSS-DB" exam from July 1st, 2011. LPI-Japan is known as one of the largest distributor of LPIC in the world(according to LPI-Japan they have distributed 164k LPIC so far).&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.oss-db.jp/news/press/20110608_04.shtml"&gt;http://www.oss-db.jp/news/press/20110608_04.shtml&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;According to LPI-Japan, OSS-DB will be ready for several open source databases in the future. However the initial version will only support PostgreSQL(!)&lt;br /&gt;&lt;br /&gt;Representatives from Fujitsu, Hitach, Miracle Linux, NEC, NEC Soft., NTT, and SRA OSS attended the press announcement event.&lt;br /&gt;&lt;br /&gt;I hope OSS-DB will significantly contribute to making PostgreSQL more popular in Japan.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3802120172110116696-5489845548123609057?l=pgsqlpgpool.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsqlpgpool.blogspot.com/feeds/5489845548123609057/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsqlpgpool.blogspot.com/2011/06/lpi-japan-to-start-postgresql.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3802120172110116696/posts/default/5489845548123609057'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3802120172110116696/posts/default/5489845548123609057'/><link rel='alternate' type='text/html' href='http://pgsqlpgpool.blogspot.com/2011/06/lpi-japan-to-start-postgresql.html' title='LPI-Japan to start PostgreSQL certfication'/><author><name>Tatsuo Ishii</name><uri>http://www.blogger.com/profile/02856952136007425773</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_1AMoWgR4rhQ/TAmZgDaQpWI/AAAAAAAAAAM/SZh9Xfl5BTs/S220/mixi.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3802120172110116696.post-1185003412775830435</id><published>2011-03-14T17:46:00.000-07:00</published><updated>2011-03-15T15:24:24.407-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tsunami'/><category scheme='http://www.blogger.com/atom/ns#' term='Japan'/><category scheme='http://www.blogger.com/atom/ns#' term='earthquake'/><title type='text'>The 2011 off the Pacific coast of Tohoku Earthquake</title><content type='html'>Thanks to everyone who sent me emails regarding &lt;a href="http://www.jma.go.jp/jma/indexe.html"&gt;the 2011 off the Pacific coast of Tohoku Earthquake in Japan&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Fortunately I, my family and employees are all fine. My home town is in &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Tohoku&lt;/span&gt; area and my mother, brother and sister, who are living there, are still &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;sufferings&lt;/span&gt; from lack of water, gasoline and gas etc. even though they did not have the tsunami.&lt;br /&gt;&lt;br /&gt;Needless to say about those who had the tsunami. According to the goverment it is likely more than 10,000 people died. I would like to pray for the repose of their soul.&lt;br /&gt;&lt;br /&gt;We also worry about the Fukushima nuclear powerplant which has serious problems caused by the tsunami and the earthquake. This also heavily affects the electricity in other area including Tokyo. Due to lack of electiricity we are forced to have a power cut. Trains/metros in Tokyo are revolving only 50% comparing before.&lt;br /&gt;&lt;br /&gt;The most important thing we could do here is keeping on our businesses to make money and resources to help Tohoku and Japan. I'm sure we can rehabilitate Japan.&lt;br /&gt;&lt;br /&gt;Again I would like to thank to everyone who care about us.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3802120172110116696-1185003412775830435?l=pgsqlpgpool.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsqlpgpool.blogspot.com/feeds/1185003412775830435/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsqlpgpool.blogspot.com/2011/03/2011-off-pacific-coast-of-tohoku.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3802120172110116696/posts/default/1185003412775830435'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3802120172110116696/posts/default/1185003412775830435'/><link rel='alternate' type='text/html' href='http://pgsqlpgpool.blogspot.com/2011/03/2011-off-pacific-coast-of-tohoku.html' title='The 2011 off the Pacific coast of Tohoku Earthquake'/><author><name>Tatsuo Ishii</name><uri>http://www.blogger.com/profile/02856952136007425773</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_1AMoWgR4rhQ/TAmZgDaQpWI/AAAAAAAAAAM/SZh9Xfl5BTs/S220/mixi.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3802120172110116696.post-2494999856841885493</id><published>2011-03-05T15:07:00.000-08:00</published><updated>2011-03-05T15:40:07.897-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pgpool-II'/><category scheme='http://www.blogger.com/atom/ns#' term='Streaming Replication'/><category scheme='http://www.blogger.com/atom/ns#' term='PostgreSQL'/><title type='text'>Visiting Brussels</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-kyDcCVKkYDk/TXLDDE3_YLI/AAAAAAAAACc/TVCv7XWiwoE/s1600/img_3526.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="http://4.bp.blogspot.com/-kyDcCVKkYDk/TXLDDE3_YLI/AAAAAAAAACc/TVCv7XWiwoE/s320/img_3526.jpg" alt="" id="BLOGGER_PHOTO_ID_5580737345881071794" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;After visiting Paris, I moved to Brussels to join FOSDEM, the largest open source conference in Europe.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-SXaSL7omyB4/TXLEoxKdZSI/AAAAAAAAACk/Cjhafvx1hN4/s1600/P1010271.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="http://1.bp.blogspot.com/-SXaSL7omyB4/TXLEoxKdZSI/AAAAAAAAACk/Cjhafvx1hN4/s320/P1010271.JPG" alt="" id="BLOGGER_PHOTO_ID_5580739092936484130" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I gave a 45-minute &lt;a href="http://www.sraoss.co.jp/event_seminar/2011/20110206pgpool-II-V3.pdf"&gt;talk abut PostgreSQL and pgpool-II.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;After finishing the talk we enjoyed a small tour of the beautifull city.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-1SrEGgaRK5M/TXLFqslsexI/AAAAAAAAACs/kTUv7sKx04Y/s1600/img_3545.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="http://3.bp.blogspot.com/-1SrEGgaRK5M/TXLFqslsexI/AAAAAAAAACs/kTUv7sKx04Y/s320/img_3545.jpg" alt="" id="BLOGGER_PHOTO_ID_5580740225579907858" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;This is the famous "Grand Place".&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-1LeuenO15vE/TXLGRl0nMXI/AAAAAAAAAC0/KETAdvyDI8E/s1600/img_3568.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="http://2.bp.blogspot.com/-1LeuenO15vE/TXLGRl0nMXI/AAAAAAAAAC0/KETAdvyDI8E/s320/img_3568.jpg" alt="" id="BLOGGER_PHOTO_ID_5580740893778325874" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;There are nice &lt;b&gt;&lt;span lang="fr"&gt;Art Nouveau &lt;/span&gt;&lt;/b&gt;&lt;span lang="fr"&gt;caffes in the city.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-vw3KlDaQ2Kc/TXLGp23HI-I/AAAAAAAAAC8/fh8xHQSlKQs/s1600/img_3566.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="http://3.bp.blogspot.com/-vw3KlDaQ2Kc/TXLGp23HI-I/AAAAAAAAAC8/fh8xHQSlKQs/s320/img_3566.jpg" alt="" id="BLOGGER_PHOTO_ID_5580741310669071330" border="0" /&gt;&lt;/a&gt;I bought some laces in a old lace shop. They are hand-made and very nice.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-zfEix_ZGE4U/TXLHJZxQNyI/AAAAAAAAADE/8XDp8hKTDeU/s1600/img_3580.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="http://2.bp.blogspot.com/-zfEix_ZGE4U/TXLHJZxQNyI/AAAAAAAAADE/8XDp8hKTDeU/s320/img_3580.jpg" alt="" id="BLOGGER_PHOTO_ID_5580741852615685922" border="0" /&gt;&lt;/a&gt;There is a great chuch which has a big pipe organ. I was so impressed and bought a CD, recorded the acuall play of the organ!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3802120172110116696-2494999856841885493?l=pgsqlpgpool.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsqlpgpool.blogspot.com/feeds/2494999856841885493/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsqlpgpool.blogspot.com/2011/03/visiting-brussels.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3802120172110116696/posts/default/2494999856841885493'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3802120172110116696/posts/default/2494999856841885493'/><link rel='alternate' type='text/html' href='http://pgsqlpgpool.blogspot.com/2011/03/visiting-brussels.html' title='Visiting Brussels'/><author><name>Tatsuo Ishii</name><uri>http://www.blogger.com/profile/02856952136007425773</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_1AMoWgR4rhQ/TAmZgDaQpWI/AAAAAAAAAAM/SZh9Xfl5BTs/S220/mixi.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-kyDcCVKkYDk/TXLDDE3_YLI/AAAAAAAAACc/TVCv7XWiwoE/s72-c/img_3526.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3802120172110116696.post-4480656819594772103</id><published>2011-02-13T04:10:00.000-08:00</published><updated>2011-03-05T15:05:19.673-08:00</updated><title type='text'>Visiting Paris</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-KFQ9ygwPz84/TVfUfD74rNI/AAAAAAAAACE/iWUploNLFj0/s1600/img_3396.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 240px;" src="http://2.bp.blogspot.com/-KFQ9ygwPz84/TVfUfD74rNI/AAAAAAAAACE/iWUploNLFj0/s320/img_3396.jpg" alt="" id="BLOGGER_PHOTO_ID_5573156693991795922" border="0" /&gt;&lt;/a&gt;On &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;February&lt;/span&gt; 3rd 2011, I gave &lt;a href="http://www.postgresql-sessions.org/1/tatsuo_ishii_-_an_introduction_to_pgpool-ii_version_3"&gt;my first ta&lt;/a&gt;&lt;a href="http://www.postgresql-sessions.org/1/tatsuo_ishii_-_an_introduction_to_pgpool-ii_version_3"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;lk&lt;/span&gt; in Paris&lt;/a&gt;.&lt;br /&gt;The conference was called "&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;PostgreSQL&lt;/span&gt; session", sponsored and organized by a French &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;PostgreSQL&lt;/span&gt; company &lt;a href="http://www.dalibo.com/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;Dalibo&lt;/span&gt;&lt;/a&gt;. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;Dalibo&lt;/span&gt; started to give a series of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;PostgreSQL&lt;/span&gt; seminar in Paris and the conference I joined was the first one.&lt;br /&gt;&lt;br /&gt;Damien &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;Clochard&lt;/span&gt; of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;Dalibo&lt;/span&gt; was the organizer and he did an excellent job. Especially the room used for the conference was pretty &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_9"&gt;impressive&lt;/span&gt; for me. At a first it looked very old, but actually not, according to Jean-Paul &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;Argudo&lt;/span&gt; of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;Dalibo&lt;/span&gt;. The room was designed by an artist so that it looked very old.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-cE6D2cN6fnM/TVfO2MyCt5I/AAAAAAAAABk/tp-71nVMer8/s1600/img_3364.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 240px;" src="http://4.bp.blogspot.com/-cE6D2cN6fnM/TVfO2MyCt5I/AAAAAAAAABk/tp-71nVMer8/s320/img_3364.jpg" alt="" id="BLOGGER_PHOTO_ID_5573150494433654674" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The first picture is David Fetter, talking about &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;dblink&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-FDOx_cQv_i8/TVfQBXeir0I/AAAAAAAAABs/KDdQx0eVO6E/s1600/img_3371.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 240px;" src="http://1.bp.blogspot.com/-FDOx_cQv_i8/TVfQBXeir0I/AAAAAAAAABs/KDdQx0eVO6E/s320/img_3371.jpg" alt="" id="BLOGGER_PHOTO_ID_5573151785794842434" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The second picture is Philippe &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;Beaudoin&lt;/span&gt; of Bull. He talked about an interesting migration case in French &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_14"&gt;government&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-ir9_EOZ4Lp8/TVfSf6zB-AI/AAAAAAAAAB0/PKnWa8Gy82M/s1600/img_3366.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 240px;" src="http://2.bp.blogspot.com/-ir9_EOZ4Lp8/TVfSf6zB-AI/AAAAAAAAAB0/PKnWa8Gy82M/s320/img_3366.jpg" alt="" id="BLOGGER_PHOTO_ID_5573154509695350786" border="0" /&gt;&lt;/a&gt;The lunch was served as &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_15"&gt;described&lt;/span&gt; in the menu left. The meals were so delicious, I forgot to take pictures of them:-)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-FsnBP4ciNH0/TVfTrLgbarI/AAAAAAAAAB8/8g2-bJUaZxs/s1600/img_3375.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 240px;" src="http://1.bp.blogspot.com/-FsnBP4ciNH0/TVfTrLgbarI/AAAAAAAAAB8/8g2-bJUaZxs/s320/img_3375.jpg" alt="" id="BLOGGER_PHOTO_ID_5573155802670918322" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I would like to thank to all the people who organized and joined this great conference!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;After finishing the session, I enjoyed a small sightseeing of course.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-x-FKCyfNgz4/TVfVDvWBSxI/AAAAAAAAACM/yRa2Y2oN1Tw/s1600/img_3442.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 240px;" src="http://1.bp.blogspot.com/-x-FKCyfNgz4/TVfVDvWBSxI/AAAAAAAAACM/yRa2Y2oN1Tw/s320/img_3442.jpg" alt="" id="BLOGGER_PHOTO_ID_5573157324119427858" border="0" /&gt;&lt;/a&gt;&lt;a href="http://3.bp.blogspot.com/-si3FW6kv4tI/TVfVqk6DflI/AAAAAAAAACU/2uJvfJP5mQM/s1600/img_3460.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 240px;" src="http://3.bp.blogspot.com/-si3FW6kv4tI/TVfVqk6DflI/AAAAAAAAACU/2uJvfJP5mQM/s320/img_3460.jpg" alt="" id="BLOGGER_PHOTO_ID_5573157991332675154" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;In summary, the conference was great, meal was great and my trip was great. I hope to visit Paris again!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3802120172110116696-4480656819594772103?l=pgsqlpgpool.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsqlpgpool.blogspot.com/feeds/4480656819594772103/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsqlpgpool.blogspot.com/2011/02/visiting-paris.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3802120172110116696/posts/default/4480656819594772103'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3802120172110116696/posts/default/4480656819594772103'/><link rel='alternate' type='text/html' href='http://pgsqlpgpool.blogspot.com/2011/02/visiting-paris.html' title='Visiting Paris'/><author><name>Tatsuo Ishii</name><uri>http://www.blogger.com/profile/02856952136007425773</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_1AMoWgR4rhQ/TAmZgDaQpWI/AAAAAAAAAAM/SZh9Xfl5BTs/S220/mixi.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-KFQ9ygwPz84/TVfUfD74rNI/AAAAAAAAACE/iWUploNLFj0/s72-c/img_3396.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3802120172110116696.post-3794331634638079932</id><published>2010-12-27T20:04:00.000-08:00</published><updated>2010-12-27T20:35:19.696-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='pgpool-II'/><category scheme='http://www.blogger.com/atom/ns#' term='PostgreSQL'/><title type='text'>Playing with PHP PDO</title><content type='html'>&lt;a href="http://www.php.net/manual/en/intro.pdo.php"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;PHP&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;PDO&lt;/span&gt;(&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;PHP&lt;/span&gt; Data Object)&lt;/a&gt; allows you to access database including PostgreSQL within &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;PHP&lt;/span&gt; scripts. Good thing with &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;PDO&lt;/span&gt; is, you do not need to heavily modify your &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;PHP&lt;/span&gt; script even if you change the database product you want to use. This resembles to &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;JDBC&lt;/span&gt; driver or Perl &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;DBI&lt;/span&gt;. Moreover you could use database product dependent interface. Which means you can enjoy the full power of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;PostgreSQL&lt;/span&gt; with &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_9"&gt;sacrificing&lt;/span&gt; portability of course. There's no free lunch. In summary, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;PHP&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;PDO&lt;/span&gt; is great and I would like to recommend to anyone who is thinking about serious database programming in &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;PHP&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;One day I came across a complaint from &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;pgpool&lt;/span&gt;-II user. According to him, his &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;PHP&lt;/span&gt; client was blocked by &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;pgpool&lt;/span&gt;-II while trying to connect to it. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;Ok&lt;/span&gt;, this is a typical situation when user &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;misconfigured&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;num&lt;/span&gt;_&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;init&lt;/span&gt;_children and I thought he tried to connect &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;pgpool&lt;/span&gt;-II concurrently with more than &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;num&lt;/span&gt;_&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;initi&lt;/span&gt;_children sessions. But his answer is, no. I suspected the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_23"&gt;PDO&lt;/span&gt; internal but I was too lazy to look into &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_24"&gt;PDO&lt;/span&gt; source code. Instead I use &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_25"&gt;strace&lt;/span&gt; to see what &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_26"&gt;PDO&lt;/span&gt; is doing. To make the long story short, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_27"&gt;PDO&lt;/span&gt; releases the connection to &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_28"&gt;pgpool&lt;/span&gt;-II long after "$&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_29"&gt;dbh&lt;/span&gt; = null;"($&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_30"&gt;dbh&lt;/span&gt; is the "handle" of the connection. This should release the connection). So if his script continues and connects to &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_31"&gt;pgoool&lt;/span&gt;-II again after he thinks that he releases the connection, the script actually &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_32"&gt;has two&lt;/span&gt; concurrent connections to &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_33"&gt;pgpool&lt;/span&gt;-II. Of course this will create more connections than he thought.&lt;br /&gt;&lt;br /&gt;I think the reason why many people do not come up with similar complaint is, their script usually create just one connection and release it at the end of the script.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3802120172110116696-3794331634638079932?l=pgsqlpgpool.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsqlpgpool.blogspot.com/feeds/3794331634638079932/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsqlpgpool.blogspot.com/2010/12/playing-with-php-pdo.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3802120172110116696/posts/default/3794331634638079932'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3802120172110116696/posts/default/3794331634638079932'/><link rel='alternate' type='text/html' href='http://pgsqlpgpool.blogspot.com/2010/12/playing-with-php-pdo.html' title='Playing with PHP PDO'/><author><name>Tatsuo Ishii</name><uri>http://www.blogger.com/profile/02856952136007425773</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_1AMoWgR4rhQ/TAmZgDaQpWI/AAAAAAAAAAM/SZh9Xfl5BTs/S220/mixi.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3802120172110116696.post-9094217914384087734</id><published>2010-11-04T01:47:00.000-07:00</published><updated>2010-11-04T01:57:28.027-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pgpool-II'/><category scheme='http://www.blogger.com/atom/ns#' term='Streaming Replication'/><category scheme='http://www.blogger.com/atom/ns#' term='PostgreSQL'/><title type='text'>Tutorial to pgpool-II plus Streaming replication</title><content type='html'>I have written &lt;a href="http://pgpool.projects.postgresql.org/contrib_docs/simple_sr_setting/index.html"&gt;a tutorial&lt;/a&gt; to pgpool-II using PostgreSQL 9.0's streaming replication. The tutorial is designed to use minimum resource: a Linux box. On the box, pgpool-II, pgpoolAdmin(a PHP based pgpool-II GUI admin tool) and two PostgreSQL 9.0 instances.&lt;br /&gt;&lt;br /&gt;Though the tutorial system is surprisingly simple, you could learn:&lt;br /&gt;&lt;br /&gt;- How pgpool-II detects PostgreSQL failure and automatically promote a standby server to primary server&lt;br /&gt;&lt;br /&gt;- How pgpool-II re-sync the failed node by using "online recovery" capability&lt;br /&gt;&lt;br /&gt;Please enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3802120172110116696-9094217914384087734?l=pgsqlpgpool.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsqlpgpool.blogspot.com/feeds/9094217914384087734/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsqlpgpool.blogspot.com/2010/11/tutorial-to-pgpool-ii-plus-streaming.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3802120172110116696/posts/default/9094217914384087734'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3802120172110116696/posts/default/9094217914384087734'/><link rel='alternate' type='text/html' href='http://pgsqlpgpool.blogspot.com/2010/11/tutorial-to-pgpool-ii-plus-streaming.html' title='Tutorial to pgpool-II plus Streaming replication'/><author><name>Tatsuo Ishii</name><uri>http://www.blogger.com/profile/02856952136007425773</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_1AMoWgR4rhQ/TAmZgDaQpWI/AAAAAAAAAAM/SZh9Xfl5BTs/S220/mixi.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3802120172110116696.post-6376560531635566994</id><published>2010-09-12T02:23:00.000-07:00</published><updated>2010-09-12T03:28:26.216-07:00</updated><title type='text'>pgpool-II 3.0 officially released</title><content type='html'>After nearly one month testing, we finally sent out pgpool-II 3.0 to the door on September 10, 2010. On that day SRA OSS, Inc. celebrated its 5th Anniversary. We had several talks there including Masao Fujii, the author of Streaming replication of PostgreSQL 9.0. Another talk was given by Toshihiro Kitagwa, the major developer of pgpool-II, explaining how Streaming replication/Hot standby can be work with pgpool-II.&lt;br /&gt;About one hundred people joined the session. I was very happy to report "pgpool-II is out today" to them.&lt;br /&gt;&lt;br /&gt;The details of pgpool-II 3.0 can be found at: http://lists.pgfoundry.org/pipermail/pgpool-general/2010-September/002946.html&lt;br /&gt;&lt;br /&gt;From now on I would like to explain new features of pgpool-II 3.0, probably one feature per one blog entry.&lt;br /&gt;&lt;br /&gt;Today's topic is the "white function list" and "black function list".&lt;br /&gt;&lt;br /&gt;Background: pgpool-II needs to know the usage of functions in SELECT statements which will write to database. If such SELECT is given, pgpool-II should not do load balance. Instead it sends the SELECT to al DB nodes(in replication mode) or sends to the master node (in master/slave mode).&lt;br /&gt;&lt;br /&gt;Typical queries are:&lt;br /&gt;&lt;br /&gt;SELECT nextval('foo_sequence');&lt;br /&gt;SELECT setval('foo_sequence', 100);&lt;br /&gt;&lt;br /&gt;In previous version pgpool-II found nextval and setval in hard coded way. Problem is, user might want to create their own functions which does write. The work around was to use SQL comment. For example:&lt;br /&gt;&lt;br /&gt;/*NO LOAD BALANCE*/ SELECT my_writing_function();&lt;br /&gt;&lt;br /&gt;This is not only unpolished but forcing users to rewrite SQL statements in existing applications. In pgpool-II 3.0, you can use black function list in such cases:&lt;br /&gt;&lt;br /&gt;black_function_list = 'nextval,setval,my_writing_function'&lt;br /&gt;&lt;br /&gt;White_function_list works in exactly opposite way. Any functions &lt;span style="font-weight: bold;"&gt;not&lt;/span&gt; listed in the white_function_list are regarded as being write to database.&lt;br /&gt;&lt;br /&gt;Pgpool-II 3.0 also enhances the way to search functions in SELECT. Before it only searchs in the top level of SELECT. That is, if those functions are used in subquery or some such, it cannot detect the existence of the functions. Pgpool-II 3.0 does a recursive search against he parse tree and can find those functions anywhere.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3802120172110116696-6376560531635566994?l=pgsqlpgpool.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsqlpgpool.blogspot.com/feeds/6376560531635566994/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsqlpgpool.blogspot.com/2010/09/pgpool-ii-30-officially-released.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3802120172110116696/posts/default/6376560531635566994'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3802120172110116696/posts/default/6376560531635566994'/><link rel='alternate' type='text/html' href='http://pgsqlpgpool.blogspot.com/2010/09/pgpool-ii-30-officially-released.html' title='pgpool-II 3.0 officially released'/><author><name>Tatsuo Ishii</name><uri>http://www.blogger.com/profile/02856952136007425773</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_1AMoWgR4rhQ/TAmZgDaQpWI/AAAAAAAAAAM/SZh9Xfl5BTs/S220/mixi.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3802120172110116696.post-4667599636409754354</id><published>2010-08-17T19:53:00.000-07:00</published><updated>2010-08-17T20:12:30.139-07:00</updated><title type='text'>Pgpool-II 3.0/pgpoolAdmin 3.0 beta1 released</title><content type='html'>After 3 months of hard work, pgpool-II 3.0/pgpoolAdmin 3.0 beta1 is finally out.&lt;br /&gt;(&lt;a href="http://lists.pgfoundry.org/pipermail/pgpool-general/2010-August/002893.html"&gt;details&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;Please join the beta test program. Comments and suggestions are welcome!&lt;br /&gt;&lt;br /&gt;Many people helped us in making this reality. Especially I would like to thank to:&lt;br /&gt;&lt;br /&gt;Guillaume Lelarge: enhanced pcp commands, lots of patches, French translation and more...&lt;br /&gt;Masao Fujii: gave us valuable info about streaming replication of PostgreSQL 9.0&lt;br /&gt;Simon Riggs: gave us valuable info about Hot standby of PostgreSQL 9.0&lt;br /&gt;Toshihiro Kitagawa: did hard work on enhancing extended protocol processing&lt;br /&gt;Nozomi Anzai: updated/enhanced internal of pgpoolAdmin&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3802120172110116696-4667599636409754354?l=pgsqlpgpool.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsqlpgpool.blogspot.com/feeds/4667599636409754354/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsqlpgpool.blogspot.com/2010/08/pgpool-ii-30pgpooladmin-30-beta1.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3802120172110116696/posts/default/4667599636409754354'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3802120172110116696/posts/default/4667599636409754354'/><link rel='alternate' type='text/html' href='http://pgsqlpgpool.blogspot.com/2010/08/pgpool-ii-30pgpooladmin-30-beta1.html' title='Pgpool-II 3.0/pgpoolAdmin 3.0 beta1 released'/><author><name>Tatsuo Ishii</name><uri>http://www.blogger.com/profile/02856952136007425773</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_1AMoWgR4rhQ/TAmZgDaQpWI/AAAAAAAAAAM/SZh9Xfl5BTs/S220/mixi.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3802120172110116696.post-5217363109803343922</id><published>2010-08-15T03:57:00.000-07:00</published><updated>2010-08-15T19:49:29.388-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pgpool-II'/><category scheme='http://www.blogger.com/atom/ns#' term='Streaming Replication'/><category scheme='http://www.blogger.com/atom/ns#' term='PostgreSQL'/><title type='text'>PostgreSQL 9.0 and pgpool-II endurance test</title><content type='html'>I have started to run an endurance test of PostgreSQL 9.0beta4 and pgpool-II 3.0-dev on Aug 12 17:47.&lt;br /&gt;The hardware: two dual-core opteron 2.2GHz, 2GB mem.&lt;br /&gt;One is used for the streaming replication primary server and the other is used for the standby server.&lt;br /&gt;The load is provided by pgbench -N -c 10 (10 concurent users) -C (each time the transaction starts, pgbench connects to pgpool), which runs on the primary server.&lt;br /&gt;&lt;br /&gt;Up to now the test has lasted for about 88 hours. No errors, no OOM killer run because of memory leak. Totally 291 million transactions have been processed.&lt;br /&gt;&lt;br /&gt;Here is some TPS data. "excluding" means excluding connect/disconnect time. "including" means including connect/disconnect time. So it's not supprising that "excluding" is far better than "including". This is the reson why you want connection pooling.&lt;br /&gt;&lt;br /&gt;select avg(excluding) as excluding_avg,&lt;br /&gt;stddev(excluding) as excluding_stddev,&lt;br /&gt;avg(including) as including_avg,&lt;br /&gt;stddev(including) as including_stddev&lt;br /&gt;from endurance_test;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-family:monospace;"&gt;-[ RECORD 1 ]----+-----------------&lt;br /&gt;excluding_avg    | 1290.55333121045&lt;br /&gt;excluding_stddev | 18.6107550266789&lt;br /&gt;including_avg    | 916.442996303828&lt;br /&gt;including_stddev | 10.3926488799762&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3802120172110116696-5217363109803343922?l=pgsqlpgpool.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsqlpgpool.blogspot.com/feeds/5217363109803343922/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsqlpgpool.blogspot.com/2010/08/postgresql-90-and-pgpool-ii-endurance.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3802120172110116696/posts/default/5217363109803343922'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3802120172110116696/posts/default/5217363109803343922'/><link rel='alternate' type='text/html' href='http://pgsqlpgpool.blogspot.com/2010/08/postgresql-90-and-pgpool-ii-endurance.html' title='PostgreSQL 9.0 and pgpool-II endurance test'/><author><name>Tatsuo Ishii</name><uri>http://www.blogger.com/profile/02856952136007425773</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_1AMoWgR4rhQ/TAmZgDaQpWI/AAAAAAAAAAM/SZh9Xfl5BTs/S220/mixi.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3802120172110116696.post-5474849396696386653</id><published>2010-06-15T02:54:00.000-07:00</published><updated>2010-06-15T03:23:38.450-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PostgreSQL pgpool-II'/><title type='text'>pgpool-II and Hot Standby</title><content type='html'>PostgreSQL 9.0 will have a great feature called "Hot Standby". Unlike warm standby, which is just waiting for in case of master server goes down, it gives an access to the standby server for lots of useful purposes such as complex reporting query. However only read queries and other several commands are allowed to be sent to the standby server. According to the PostgreSQL 9.0 beta2 document, this is the list of allowed queries:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Query access - SELECT, COPY TO including views and SELECT rules&lt;/li&gt;&lt;li&gt;Cursor commands - DECLARE, FETCH, CLOSE&lt;/li&gt;&lt;li&gt;Parameters - SHOW, SET, RESET&lt;/li&gt;&lt;li&gt;Transaction management commands&lt;/li&gt;&lt;li&gt;BEGIN, END, ABORT, START TRANSACTION&lt;/li&gt;&lt;li&gt;SAVEPOINT, RELEASE, ROLLBACK TO SAVEPOINT&lt;/li&gt;&lt;li&gt;EXCEPTION blocks and other internal subtransactions &lt;/li&gt;&lt;li&gt;LOCK TABLE, though only when explicitly in one of these modes: ACCESS SHARE, ROW SHARE or ROW EXCLUSIVE.&lt;/li&gt;&lt;li&gt;Plans and resources - PREPARE, EXECUTE, DEALLOCATE, DISCARD&lt;/li&gt;&lt;li&gt;Plugins and extensions - LOAD&lt;/li&gt;&lt;/ul&gt;No problem for PostgreSQL experts of course. But I doubt it is super easy for ordinary PostgreSQL users to know which query is allowed and which is not just looking at the list.&lt;br /&gt;&lt;br /&gt;pgpool-II 3.0 (yes, that will be the new version number) will give you small help. Pgpool parses the query and automatically redirect it to the standby server if needed. If you have more than one standby servers, pgpool will choose one of them and send the query to it. The queries not allowed for the standby server, will be sent to the primary server. In short, you do not need to worry about the complex rule above if you use pgpool-II 3.0 + Hot Standby.&lt;br /&gt;&lt;br /&gt;Please note that there is a limitation here. Pgpool parses the query by using "raw parser" which understands the syntax of the query but does not understand the "depth psychology" aspect of the query. For example, if a SELECT calls a custom C function which modifies the database, pgpool will send it to the standby server because it does not know that the SELECT actually does write.&lt;br /&gt;&lt;br /&gt;It will be great that PostgeSQL's function does have a signature that confess it is going to write...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3802120172110116696-5474849396696386653?l=pgsqlpgpool.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsqlpgpool.blogspot.com/feeds/5474849396696386653/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsqlpgpool.blogspot.com/2010/06/pgpool-ii-and-hot-standby.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3802120172110116696/posts/default/5474849396696386653'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3802120172110116696/posts/default/5474849396696386653'/><link rel='alternate' type='text/html' href='http://pgsqlpgpool.blogspot.com/2010/06/pgpool-ii-and-hot-standby.html' title='pgpool-II and Hot Standby'/><author><name>Tatsuo Ishii</name><uri>http://www.blogger.com/profile/02856952136007425773</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_1AMoWgR4rhQ/TAmZgDaQpWI/AAAAAAAAAAM/SZh9Xfl5BTs/S220/mixi.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3802120172110116696.post-4604014249172233976</id><published>2010-06-09T20:41:00.000-07:00</published><updated>2010-06-09T21:56:01.054-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pgpool-II'/><category scheme='http://www.blogger.com/atom/ns#' term='Streaming Replication'/><category scheme='http://www.blogger.com/atom/ns#' term='PostgreSQL'/><title type='text'>Talk with the author of Streaming Replication</title><content type='html'>Yesterday I talked with Masao Fujii, the author of &lt;span style="font-weight:bold;"&gt;Streaming Replication&lt;/span&gt;. Streaming Replication(SR) is a long awaited feature, "built in replication" of PostgreSQL. The great feature will come with &lt;span style="font-weight:bold;"&gt;PostgreSQL 9.0&lt;/span&gt;, which is supposed to be released this Summer. With SR, &lt;span style="font-weight:bold;"&gt;pgpool-II&lt;/span&gt; will provide two important features: &lt;span style="font-style:italic;"&gt;load balancer&lt;/span&gt; and &lt;span style="font-style:italic;"&gt;failover control&lt;/span&gt;. Since SR is a master/slave type replication system, the standby server (slave) do not accept write queries such as INSERT, DELETE, UPDATE, CREATE TABLE and so on. Any write query sent to pgpool will be redirected to the primary server (master) and users do not need to worry about it. On the other hand, as SELECT can be executed both on the primary and the standby, pgpool will choose one of them and send the SELECT to it. This technique is known as "load balancing" and this will significantly improve the over all performance.&lt;br /&gt;&lt;br /&gt;One thing we were worried about was, what if the connection between the primary server and the standby server goes down? There's no easy way for pgpool to know it. If pgpool does not know that, SELECT can be sent to the standby whose data is far behind the primary. Apparently this is what users want to avoid. To overcome the problem, pgpool checks the transaction log number (&lt;span style="font-weight:bold;"&gt;LSN&lt;/span&gt;) on both the primary and the standby. If standby's LSN is too small comparing with the one on the primary, we might have a problem. So pgpool stops the load balancing and send SELECT only to the primary. How behind is "behind" should be defined by new directive in pgpool.conf. Good thing with this is, the technique will also detects the delay because of the heavy load of the standby.&lt;br /&gt;&lt;br /&gt;We will continue to discuss how to improve the usability of SR and pgpool-II.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3802120172110116696-4604014249172233976?l=pgsqlpgpool.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsqlpgpool.blogspot.com/feeds/4604014249172233976/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsqlpgpool.blogspot.com/2010/06/talk-with-author-of-streaming.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3802120172110116696/posts/default/4604014249172233976'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3802120172110116696/posts/default/4604014249172233976'/><link rel='alternate' type='text/html' href='http://pgsqlpgpool.blogspot.com/2010/06/talk-with-author-of-streaming.html' title='Talk with the author of Streaming Replication'/><author><name>Tatsuo Ishii</name><uri>http://www.blogger.com/profile/02856952136007425773</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_1AMoWgR4rhQ/TAmZgDaQpWI/AAAAAAAAAAM/SZh9Xfl5BTs/S220/mixi.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3802120172110116696.post-1243472777195059964</id><published>2010-06-07T03:01:00.000-07:00</published><updated>2010-06-07T03:09:03.281-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PostgreSQL Sylpheed'/><title type='text'>A mail client using PostgreSQL</title><content type='html'>Do you know &lt;a href="http://sylpheed.sraoss.jp/en/"&gt;sylpheed&lt;/a&gt;? It's an open source mail client and has been&lt;br /&gt;used by many people, who are using more than 30 different languages,&lt;br /&gt;all over the world for ten years now.&lt;br /&gt;&lt;br /&gt;Sylpheed was born in Japan and has been developed by Mr. Yamamoto, who&lt;br /&gt;has been working for our company since 2006. Recently he has made a&lt;br /&gt;commercial version of Sylpheed called "Sylpheed Pro".&lt;br /&gt;&lt;br /&gt;The most interesting feature with Sylpheed Pro is, it comes with&lt;br /&gt;PostgreSQL's nice &lt;span style="font-weight:bold;"&gt;full text search engine&lt;/span&gt;. If you install Sylpheed&lt;br /&gt;Pro, you have PostgreSQL running on your computer. Any mail received&lt;br /&gt;by Sylpheed Pro is automatically stored into PostgreSQL database so&lt;br /&gt;that it can be used later to execute full text search on your&lt;br /&gt;mails. How fast is it?  Usually you can find the mail what you are&lt;br /&gt;looking for within 1 second out of 10,000 mails.  Sylpheed Pro even&lt;br /&gt;can take care of attached documents including PDF, Word, Excel,&lt;br /&gt;OpenOffice files. It extracts the text part from those files.&lt;br /&gt;&lt;br /&gt;At present, Sylpheed Pro is sold in Japan only. However you could&lt;br /&gt;download a trial version of Sylpheed Pro and test it since Sylpheed&lt;br /&gt;Pro is a multi-lingual software. So if you do not care that the&lt;br /&gt;download page is written in Japanese, please try it from &lt;a href="https://www.sraoss.co.jp/prod_serv/package/sylpheed-pro/download"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Hint:&lt;br /&gt;&lt;br /&gt;There are six text boxes you need to fill in.&lt;br /&gt;&lt;br /&gt;[Last name] [Fist name]&lt;br /&gt;[Last name] [Fist name](please repeat)&lt;br /&gt;[email address]&lt;br /&gt;[company name]&lt;br /&gt;[you can leave it blank]&lt;br /&gt;&lt;br /&gt;then click *left* button (right button is "clear"!)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3802120172110116696-1243472777195059964?l=pgsqlpgpool.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsqlpgpool.blogspot.com/feeds/1243472777195059964/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsqlpgpool.blogspot.com/2010/06/mail-client-using-postgresql.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3802120172110116696/posts/default/1243472777195059964'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3802120172110116696/posts/default/1243472777195059964'/><link rel='alternate' type='text/html' href='http://pgsqlpgpool.blogspot.com/2010/06/mail-client-using-postgresql.html' title='A mail client using PostgreSQL'/><author><name>Tatsuo Ishii</name><uri>http://www.blogger.com/profile/02856952136007425773</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_1AMoWgR4rhQ/TAmZgDaQpWI/AAAAAAAAAAM/SZh9Xfl5BTs/S220/mixi.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3802120172110116696.post-2733595364681871696</id><published>2010-06-04T16:59:00.000-07:00</published><updated>2010-06-04T17:23:44.955-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pgpool-II'/><title type='text'>Refactoring pgpool-II</title><content type='html'>&lt;a href="http://pgfoundry.org/projects/pgpool/"&gt;Pgpool&lt;/a&gt; was born in 2003. When it was reborn as pgpool-II in 2007, we had made a big change of its architecture. For example, we gave a capability to pgpool to use more than 2 DB nodes.&lt;br /&gt;&lt;br /&gt;In 2010, we are refactoring pgpool-II again: disentangling the spaghetti code(there are tones of &lt;span style="color: rgb(255, 0, 0);"&gt;global variables&lt;/span&gt;, which is a bad sign), moving some codes from a file to more appropriate one and so on. I believe the work will make pgpool-II more solid, easier to understand by new developers.&lt;br /&gt;&lt;br /&gt;Of course we are not just refactoring pgpool-II. We will add nice features including adaption for Streaming replication/Hot Standby, which is one of the greatest features of upcoming PostgreSQL 9.0.&lt;br /&gt;&lt;br /&gt;We hope the work will be finished by August.&lt;br /&gt;&lt;br /&gt;Stay tuned.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3802120172110116696-2733595364681871696?l=pgsqlpgpool.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsqlpgpool.blogspot.com/feeds/2733595364681871696/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsqlpgpool.blogspot.com/2010/06/refactoring-pgpool-ii.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3802120172110116696/posts/default/2733595364681871696'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3802120172110116696/posts/default/2733595364681871696'/><link rel='alternate' type='text/html' href='http://pgsqlpgpool.blogspot.com/2010/06/refactoring-pgpool-ii.html' title='Refactoring pgpool-II'/><author><name>Tatsuo Ishii</name><uri>http://www.blogger.com/profile/02856952136007425773</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_1AMoWgR4rhQ/TAmZgDaQpWI/AAAAAAAAAAM/SZh9Xfl5BTs/S220/mixi.jpg'/></author><thr:total>0</thr:total></entry></feed>
