Waiting for 9.2 – pg_basebackup from slave

On 25th of January, Simon Riggs committed patch:

Allow pg_basebackup from standby node with safety checking.
Base backup follows recommended procedure, plus goes to great
lengths to ensure that partial page writes are avoided.
 
Jun Ishizuka and Fujii Masao, with minor modifications

Continue reading Waiting for 9.2 – pg_basebackup from slave

Waiting for 9.2 – Trigger Depth

On 25th of January, Alvaro Herrera committed patch:

Add pg_trigger_depth() function
 
This reports the depth level of triggers currently in execution, or zero
if not called from inside a trigger.
 
No catversion bump in this patch, but you have to initdb if you want
access to the new function.
 
Author: Kevin Grittner

Continue reading Waiting for 9.2 – Trigger Depth

Change in anonymization of plans on explain.depesz.com

As you perhaps know, explain.depesz.com has anonymization feature.

Couple of days ago Filip contacted me and sent a patch that stopped anonymization of typecasts.

I thought about the patch, and what it achieves, changed it's internals, but kept the effect. And today, it got released.

Continue reading Change in anonymization of plans on explain.depesz.com

Waiting for 9.2 – split of current_query in pg_stat_activity

On 19t of January, Magnus Hagander committed patch:

Separate state from query string in pg_stat_activity
 
This separates the state (running/idle/idleintransaction etc) into
it's own field ("state"), and leaves the query field containing just
query text.
 
The query text will now mean "current query" when a query is running
and "last query" in other states. Accordingly,the field has been
renamed from current_query to query.
 
Since backwards compatibility was broken anyway to make that, the procpid
field has also been renamed to pid - along with the same field in
pg_stat_replication for consistency.
 
Scott Mead and Magnus Hagander, review work from Greg Smith

Continue reading Waiting for 9.2 – split of current_query in pg_stat_activity

Waiting for 9.2 – NULLS from pg_*_size() functions

On 19t of January, Heikki Linnakangas committed patch:

Make pg_relation_size() and friends return NULL if the object doesn't exist.
 
That avoids errors when the functions are used in queries like "SELECT
pg_relation_size(oid) FROM pg_class", and a table is dropped concurrently.
 
Phil Sorber

Continue reading Waiting for 9.2 – NULLS from pg_*_size() functions

What is the point of social sites? / Do czego służą serwisy społecznościowe?

[wersja polska poniżej / polish version below]

For a quite long time there is a number of social services/sites out there. myspace, facebook, google+, twitter and probably hundreds of others.

I don't have anything against them, but one thing bugs me, and perhaps someone reading this could help me: what is the point of these sites? I mean literally, let's assume you are talking with an alien from other galaxy, and you want to explain why people are using these sites. I am that alien. Tested twitter and google+, and can't find any use in my life for them. But millions of other people do. Which means that (most likely) I'm missing out on something. “Being social" is terribly vague. Can anyone of you tell me what is possible (or significantly easier) that wasn't possible before (or was much harder) thanks to these services?

I am very serious about it – I doubt that it will turn me into user, but at the very least I want to understand what drives people to use it.

[wersja polska / polish version]

Od długiego czasu istnieje szereg serwisów społecznościowych. myspace, facebook, google +, Twitter i pewnie setki innych (a to tylko te światowe, w Polsce są/były grono, nasza-klasa, blip i pewnie inne).

Nie mam nic przeciwko nim, ale jedna rzecz mnie męczy, i może któryś czytelnik może mi pomóc: jaki jest sens tych site'ów? Chodzi mi o całkowicie dosłowny sens. Załóżmy, że rozmawiasz z obcymi z innej galaktyki, i chcesz wyjaśnić, czemu ludzie korzystają z tego. Ja jestem ten kosmita. Testowałem twittera i google +, i nie mogę znaleźć żadnego przypadku w moim życiu gdzie chciałbym ich użyć. Ale miliony znajdują sens i zastosowanie. Oznacza to (najprawdopodobniej), że brakuje mi czegoś. “Społeczność" jest mało konkretna. Czy ktoś z was mi powiedzieć, co jest możliwe (lub znacznie prostsze), a nie było możliwe (lub było o wiele trudniejsze) przed postaniem tych serwisów?

Piszę całkiem serio – nie sądzę bym stał się użytkownikiem, ale przynajmniej (może) zrozumiem co powoduje, że ludzie korzystają z tego.

OmniPITR 0.3.0

Just released version 0.3.0 of our tool for handling WAL based replication in PostgreSQL – OmniPITR.

Version jump is related to addition of another tool – omnipitr-synch. This tool is used to copy PostgreSQL data dir (including all tablespaces of course) to remote location(s).

While this process is usually simple (call pg_start_backup(), transfer data, call pg_stop_backup()), thanks to the tool it can be wrapped as single call, with standardized logging, and tested logic. It also makes it trivial, and cheap, to setup more than one new slave at a time, without need to read data off master more than once.

Tips N’ Tricks – getting sizes of relations without locks

If you have production DB servers, chances are you're running variant of these queries:

SELECT SUM(pg_relation_size(oid)) FROM pg_class WHERE relkind = 'i'
SELECT SUM(pg_relation_size(oid)) FROM pg_class WHERE relkind = 'r'

To get summarized size of tables and/or indexes in your database (for example for graphing purposes).

This (getting pg_relation_size for rows in pg_class) has one problem – it can lock, or it can fail.

Continue reading Tips N' Tricks – getting sizes of relations without locks