Hacker News new | past | comments | ask | show | jobs | submit login

Part of the problem can be that operating systems and databases work in block sizes of 4k (8k on some UNIXes), which is appropriate for regular disks, and flash SSDs are organized in blocks of 64k, 128k, or even larger blocks, which need to be written en bloc for certain kinds of write (erasure).

That means if you write a 4k block, your SSD has to read its larger block, combine it with the new data, and write the big block back. So depending on your write patterns, you're suddenly writing at 1/8th or 1/16th the speed. Command queuing can help, but not for truly random writes.

It's actually even a bit more complicated: SSDs only need to erase the entire block when writing ones back over zeros, but it's probably safe to assume that most writes will end up doing something like that. Erasure is also slower than just writing.

Regarding the Wikipedia quote, it really depends a lot. Write speeds can be the same as read speeds if you're just writing 'fresh' blocks, but as soon as your drive needs to erase blocks, the story will be very different.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact