Thread: Tablespaces on a raid configuration
PostgreSQL 9.0.x
When PostgreSQL storage is using a relatively large raid 5 or 6 array is there any value in having your tables distributed across multiple tablespaces if those tablespaces will exists on the same raid array? I understand the value if you were to have the tablespaces on different raid arrays. But what about on the same one?
Thanks,
Lance Campbell
Software Architect
Web Services at Public Affairs
217-333-0382
On Fri, Mar 30, 2012 at 02:45:36PM +0000, Campbell, Lance wrote: > PostgreSQL 9.0.x > When PostgreSQL storage is using a relatively large raid 5 or 6 array is there any value in having your tables distributedacross multiple tablespaces if those tablespaces will exists on the same raid array? I understand the value ifyou were to have the tablespaces on different raid arrays. But what about on the same one? > > > Thanks, > > Lance Campbell > Software Architect > Web Services at Public Affairs > 217-333-0382 > I have seen previous discussions about using different filesystems versus a single filesystem and one advantage that multiple tablespaces have is that an fsync on one table/tablespace would not block or be blocked by an fsync on a different table/tablespace at the OS level. Regards, Ken
PostgreSQL 9.0.x
When PostgreSQL storage is using a relatively large raid 5 or 6 array is there any value in having your tables distributed across multiple tablespaces if those tablespaces will exists on the same raid array? I understand the value if you were to have the tablespaces on different raid arrays. But what about on the same one?
On 03/30/2012 10:45 AM, Campbell, Lance wrote: > > PostgreSQL 9.0.x > > When PostgreSQL storage is using a relatively large raid 5 or 6 > array is there any value in having your tables distributed across > multiple tablespaces if those tablespaces will exists on the same raid > array? I understand the value if you were to have the tablespaces on > different raid arrays. But what about on the same one? > > Not answering your question, but standard advice is not to use RAID 5 or 6, but RAID 10 for databases. Not sure if that still hold if you're using SSDs. cheers andrew
On Fri, Mar 30, 2012 at 10:02 AM, Andrew Dunstan <andrew@dunslane.net> wrote: > Not answering your question, but standard advice is not to use RAID 5 or 6, > but RAID 10 for databases. Not sure if that still hold if you're using SSDs. Yeah, for SSD the equations may change. Parity based RAID has two problems: performance due to writes having to do a read before writing in order to calculate parity and safety (especially for raid 5) since you are at greater risk of having a second drive pop while you're rebuilding your volume. In both things the SSD might significantly reduce the negative impacts: read and write performance are highly asymmetric greatly reducing or even eliminating observed cost of the 'write hole'. Also, huge sequential speeds and generally smaller device sizes mean very rapid rebuild time. Also, higher cost/gb can play in. Food for thought. merlin
On Fri, Mar 30, 2012 at 7:53 AM, ktm@rice.edu <ktm@rice.edu> wrote: > On Fri, Mar 30, 2012 at 02:45:36PM +0000, Campbell, Lance wrote: >> PostgreSQL 9.0.x >> When PostgreSQL storage is using a relatively large raid 5 or 6 array is there any value in having your tables distributedacross multiple tablespaces if those tablespaces will exists on the same raid array? I understand the value ifyou were to have the tablespaces on different raid arrays. But what about on the same one? >> >> >> Thanks, >> >> Lance Campbell >> Software Architect >> Web Services at Public Affairs >> 217-333-0382 >> > > I have seen previous discussions about using different filesystems versus > a single filesystem and one advantage that multiple tablespaces have is > that an fsync on one table/tablespace would not block or be blocked by > an fsync on a different table/tablespace at the OS level. Another advantage is that you can use a non-journaling FS for the WAL (ext2) and a journaling FS for the data (ext4 etc.). I was told that there's no reason to use a journaling fs for the WAL since the WAL is a journal. Craig
On 30.3.2012 16:53, ktm@rice.edu wrote: > On Fri, Mar 30, 2012 at 02:45:36PM +0000, Campbell, Lance wrote: >> PostgreSQL 9.0.x >> When PostgreSQL storage is using a relatively large raid 5 or 6 array is there any value in having your tables distributedacross multiple tablespaces if those tablespaces will exists on the same raid array? I understand the value ifyou were to have the tablespaces on different raid arrays. But what about on the same one? >> >> >> Thanks, >> >> Lance Campbell >> Software Architect >> Web Services at Public Affairs >> 217-333-0382 >> > > I have seen previous discussions about using different filesystems versus > a single filesystem and one advantage that multiple tablespaces have is > that an fsync on one table/tablespace would not block or be blocked by > an fsync on a different table/tablespace at the OS level. No. What matters is a physical device. If you have a drive that can do just 120 seeks/fsyncs per second (or more, depends on the speed), then even if you divide that into multiple filesystems you're still stuck with the total of 120 seeks. I.e. splitting that into 10 partitions won't give you 1200 seeks ... OP mentions he's using RAID-5 or 6 - that's pretty bad because it effectively creates one huge device. Splitting this into filesystem will behave rather bad, because all the drives are rather tightly coupled because of to the parity. If you can create the filesystems on different devices, then you're golden and this can really help. And it's not just about fsync operations - WAL is written in sequential manner. By placing it on the same device as data files you're effectively forcing it to be written randomly, because the the database has to write a WAL record, seeks somewhere else to read something, etc. Tomas
On Fri, Mar 30, 2012 at 9:32 PM, Tomas Vondra <tv@fuzzy.cz> wrote: > And it's not just about fsync operations - WAL is written in sequential > manner. By placing it on the same device as data files you're > effectively forcing it to be written randomly, because the the database > has to write a WAL record, seeks somewhere else to read something, etc. Or, if you put WAL on a journalled FS, even if it's on dedicated spindles ;-) a. -- Aidan Van Dyk Create like a god, aidan@highrise.ca command like a king, http://www.highrise.ca/ work like a slave.