-1

I have created a search engine which is implemented in Java. I want to put this program to a server and test it. My program is very dependent to disk I/O and any improvements to disks would directly affect its performance. The first thing that comes to my mind is to use SSD instead of HDD. RAID-0 seems interesting but I need RAID-5 too. Could you please tell me what techniques/hardware are usually used in these kinds of situations?

Update (Usage):

The program uses a lot of small accesses. Usually it retrieves and returns HTML documents/images/js/css files. Also, the amount of reading is a lot higher than writing. Can't say an exact number though since the system hasn't been tested in mass usage.

1 Answers1

2

SSD is great at small random reads, compared to regular drives. That said, if this is going to be anything more than a science project, you need some form of protection. RAID 0 is not protection at all- it simply makes it so that if any drive fails, you lose all your data. If you are going with SSD, you'd be well served to use a RAID-1 with two drives. It'll make it so you can withstand a single failure. Depending on the type of RAID controller you use, you might have some flexibility or advantages.

First, if it's a decent controller, you'll actually get the read performance of both drives, although the write performance will only be that of one drive. Second, if it's a little flexible and you can afford this type of degradation, you might be able to find a controller that will let you "mirror" an SSD to a normal platter drive. This would make your reads as fast as an SSD, your writes as fast as either the SSD or the platter (depending on whether you're doing random or sequential IO), and in the event that you lose your SSD, would degrade your overall performance to that of the platter drive.

Basil
  • 8,851
  • 3
  • 38
  • 73