Hi,
I am not an expert in handling hard disk and I have a (simple?) question:
In order to use the egdb with the best performances is it preferable to use a raid0 configuration or do you prefer a raid1 configuration.
My feeling is that the striping approach of the raid0 configuration is inefficient because we always read a very small block on the disk and never a big file (excepting the initialize phase before a game).
As a consequence I believe that the raid1 approach may be better, allowing to read different blocks in parallel on several disk.
Is it a good understanding or am I wrong?

hard disk handling
Re: hard disk handling
I wouldn't bother with raid at all if you want to have the best possible performance on a spinning disk drive; raid 0 may be faster when you read large files, but it comes at a cost of reliability. (If one drives failes, you lose all your data)
I think raid 0 can possibly be faster on small files as well, but if the data-read frequeltly crosses the stripe-boundaries it will be a lot slower, because you have to wait for both disks to deliver the data. Only testing with your application can tell.
Instead, maybe you can put half of the databases on one disk, and the other half on another disk.
Because the program is multithreaded, you can read 2 databases simultaneously from the 2 drives, where both threads have optimal throughput (big files) and optimal latency time for small files.
Better yet, use a SSD drive.
Raid 1 is intended to increase drive reliability for servers. It generally comes with a large performance loss.
Michel
I think raid 0 can possibly be faster on small files as well, but if the data-read frequeltly crosses the stripe-boundaries it will be a lot slower, because you have to wait for both disks to deliver the data. Only testing with your application can tell.
Instead, maybe you can put half of the databases on one disk, and the other half on another disk.
Because the program is multithreaded, you can read 2 databases simultaneously from the 2 drives, where both threads have optimal throughput (big files) and optimal latency time for small files.
Better yet, use a SSD drive.
Raid 1 is intended to increase drive reliability for servers. It generally comes with a large performance loss.
Michel
Re: hard disk handling
Hi Michel,
Thank you Michel. Due to the existence of the miroring I imagined a controller in RAID1 could handled simultaneously two different accesses but I understand it is not the case. It's a pity isn'it?
You are right SSD is today the best solution. In only 256Gb (or even 128Gb) the most useful part of the 8 pieces egdb may be accessed rather quickly for a real gain in performance.
MichelG wrote:I wouldn't bother with raid at all if you want to have the best possible performance on a spinning disk drive; raid 0 may be faster when you read large files, but it comes at a cost of reliability. (If one drives failes, you lose all your data)
I think raid 0 can possibly be faster on small files as well, but if the data-read frequeltly crosses the stripe-boundaries it will be a lot slower, because you have to wait for both disks to deliver the data. Only testing with your application can tell.
Instead, maybe you can put half of the databases on one disk, and the other half on another disk.
Because the program is multithreaded, you can read 2 databases simultaneously from the 2 drives, where both threads have optimal throughput (big files) and optimal latency time for small files.
Better yet, use a SSD drive.
Raid 1 is intended to increase drive reliability for servers. It generally comes with a large performance loss.
Michel
Thank you Michel. Due to the existence of the miroring I imagined a controller in RAID1 could handled simultaneously two different accesses but I understand it is not the case. It's a pity isn'it?
You are right SSD is today the best solution. In only 256Gb (or even 128Gb) the most useful part of the 8 pieces egdb may be accessed rather quickly for a real gain in performance.
Gérard
Re: hard disk handling
A good hardware RAID controller can divide read actions over the different disks for RAID1, as far as I know.
The performance loss is only for write actions (data has to be written twice).
The performance loss is only for write actions (data has to be written twice).
Lasst die Maschinen verhungern, Ihr Narren...
Lasst sie verrecken!
Schlagt sie tot -- die Maschinen!
Lasst sie verrecken!
Schlagt sie tot -- die Maschinen!
Re: hard disk handling
Hi Idjarn,
For the time being I use a RAID 0 configuration.
Due to the mirroring, my understanding is that a good controller in RAID1 can also (like in RAI0) use several disks in parallel in order to read a (big) file. Unfortunatly this parallel read cannot be used for accessing our egdb because we read only very small blocks. Ideally we need a controller able to take several access requests in parallel but this is another subject isn'it?ildjarn wrote:A good hardware RAID controller can divide read actions over the different disks for RAID1, as far as I know.
The performance loss is only for write actions (data has to be written twice).
For the time being I use a RAID 0 configuration.
Gérard
Re: hard disk handling
Gerard, i agree with Michel why not use a SSD (256 GByte will do i guess for a 8p DB).
At least these sizes are now affordable.
I also use nowadays a SSD for my 7p DB.
Bert
At least these sizes are now affordable.
I also use nowadays a SSD for my 7p DB.
Bert