Thread: Tablespaces on a raid configuration

Tablespaces on a raid configuration

From
"Campbell, Lance"
Date:

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

 

Re: Tablespaces on a raid configuration

From
"ktm@rice.edu"
Date:
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

Re: Tablespaces on a raid configuration

From
Greg Spiegelberg
Date:
On Fri, Mar 30, 2012 at 8:45 AM, Campbell, Lance <lance@illinois.edu> 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?



Our application is a combination of OLTP and OLAP.  We've successfully split the database into 3 different tablespaces.

 1. RAID Group A is RAID 10 contains /var/lib/pgsql/data and the OLTP database (default tablespace)
 2. RAID Group B is a RAID 10 for the indexes on the data warehouse (index tablespace)
 3. RAID Group C is a RAID 5 containing the actual data warehouse (data tablespace)

A more optimum configuration would include another RAID 10 for the indexes for the OLTP but we ran out of drives to create a RAID Group D and the above configuration works well enough.

Before going with RAID 5, please review http://www.baarf.com/.

-Greg

Re: Tablespaces on a raid configuration

From
Andrew Dunstan
Date:

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

Re: Tablespaces on a raid configuration

From
Merlin Moncure
Date:
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

Re: Tablespaces on a raid configuration

From
Craig James
Date:
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

Re: Tablespaces on a raid configuration

From
Tomas Vondra
Date:
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

Re: Tablespaces on a raid configuration

From
Aidan Van Dyk
Date:
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.