Re: Hot Standby (v9d)
Andres Freund <andres@anarazel.de>
From: Andres Freund <andres@anarazel.de>
To: Hannu Krosing <hannu@krosing.net>
Cc: Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>, Tom Lane <tgl@sss.pgh.pa.us>, jd@commandprompt.com, Simon Riggs <simon@2ndQuadrant.com>, Gregory Stark <stark@enterprisedb.com>, Mark Kirkwood <markir@paradise.net.nz>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2009-02-03T14:55:45Z
Lists: pgsql-hackers
Hi, On 02/03/2009 02:26 PM, Hannu Krosing wrote: >> I don't see any way around the fact that when a tuple is removed, it's >> gone and can't be accessed by queries. Either you don't remove it, or >> you kill the query. > Actually we came up with a solution to this - use filesystem level > snapshots (like LVM2+XFS or ZFS), and redirect backends with > long-running queries to use fs snapshot mounted to a different > mountpoint. Isn't that really, really expensive? A single write on the master logical volume yields writes of PE size for _every_ single snapshot (the first time the block is touched) - considering that there could quite many such snapshots I don't think that this is really feasible - io quite possible might be saturated. The default PE size is 4MB - but on most bigger systems it is set to a bigger size, so its just getting worse for bigger systems. Sure, one might say, that this is an LVM deficiency - but I do knot know of any snapshot-able block layer doing it that way. Andres