Coding for solid state drives

Walter Bright via Digitalmars-d digitalmars-d at puremagic.com
Sat Apr 25 13:16:32 PDT 2015


On 4/24/2015 10:24 PM, Vladimir Panteleev wrote:
> On Friday, 24 April 2015 at 08:27:06 UTC, Walter Bright wrote:
>> http://codecapsule.com/2014/02/12/coding-for-ssds-part-6-a-summary-what-every-programmer-should-know-about-solid-state-drives/
>>
>>
>> An interesting article. Anyone want to see if there are any modifications we
>> should make to std.stdio to work better with SSDs? (Such as changing the
>> buffer sizes.)
>
> This article seems to target operating system authors more than application
> programmers, as OS caches will invalidate most application-side changes.
>
> The HN comments are also mostly dismissive of this article:
> https://news.ycombinator.com/item?id=9431571



"The high-level optimizations are important: * Choose a good SSD * Read and 
Write in "page" multiples and "page" aligned * Use lots of parallel IOs (high 
queue depth) * Do not put unrelated data in the same "page"

A page used to be 4KB, SSDs are now switching to 8KB and will switch to 16KB 
later on. Just pick a reasonable size around that (16KB if you can do it will 
last you a while). Don't sweat the page multiples too much, the SSDs will most 
likely have to handle 4KB pages for a long while due to databases and such so 
they will keep some optimization around that size anyhow, it will make it easier 
for them if you use a larger size.

I wouldn't heed any of the advice on single-threading, the biggest performance 
boost comes from parallelism and writes are anyway buffered by the SSD (a good 
SSD has a super-cap to have a good sized write cache)."



More information about the Digitalmars-d mailing list