! Database!Fatal!Flash!Flaws!No!One! Talks!About! !!

!
!
!
!
!!
!
!
!!!!!!
Marc!Staimer,!President!&!CDS!Dragon!Slayer!Consulting!
!
!
W
h
i
t
e
!
P
A
P
E
R
!
Database!Fatal!Flash!Flaws!No!One!
Talks!About!!!
And!How!to!Avoid!Them!
!
WHITE!PAPER!•!Database!Fatal!Flash!Flaws!No!One!Talks!About!–!And!How!to!Avoid!Them
!
Database!Fatal!Flash!Flaws!No!One!Talks!About!
Marc!Staimer,!President!&!CDS!of!Dragon!Slayer!Consulting!
!
Introduction!
Flash! storage! has! been! touted! for! several! years! now! as! the! answer! to! inadequate! database!
performance.!! There! are! some! very! good! reasons! why! this! is! so.!! Flash! storage! is! generally! much! faster! than!
hard! disk! drives! (HDD).!! It! has! much! lower! latency,! much! greater! write! IOPS,! throughput,! and! read!
IOPS.!!Therefore!it!must!fix!database!performance!problems!!Not!so!fast.!!Sometimes!it!does!and!sometimes!it!
does!not.!!There!are!several!flash!issues!such!as!steady!state!performance,!write!amplification,!wear!life,!and!
electron!leakage!caused!high!bit!error!rates!that!can!sabotage!the!performance!gains!while!overwhelming!the!
budget.!!These!issues!(and!several!others!as!well)!are!rarely!discussed,!except!after!the!fact!when!performance!
is!no!longer!meeting!requirements.!
This! white! paper! examines! these! issues! in! detail! looking! at! how! they! specifically! affect! databases! and! the!
structured!applications!that!depend!on!those!databases.!!There!will!also!be!discussion!about!the!pros!and!cons!
of! common! workarounds.! It! then! examines! how!Tegile’s! Intelliflash™! storage! systems! actually! solve! those!
unpleasant!database!fatal!flash!flaws.!
!
!
Dragon!Slayer!Consulting!•!Summer!2014!
!
2
WHITE!PAPER!•!Database!Fatal!Flash!Flaws!No!One!Talks!About!–!And!How!to!Avoid!Them
!
Table!of!Contents!
Introduction!.......................................................................................................................!2!
SQL!Database!Performance!Issues!......................................................................................!4!
How!DBAs!Frequently!Respond!...................................................................................................!4!
Tuning!.............................................................................................................................................!4!
ScaleVup!..........................................................................................................................................!4!
ScaleVout!.........................................................................................................................................!4!
Why!Flash!Storage!..........................................................................................................................!5!
General!Host!Based!Flash!Storage!Drives!Pros!and!Cons!...............................................................!5!
General!Flash!Storage!Hybrid!System!Pros!and!Cons!.....................................................................!5!
General!All!Flash!Array!(AFA)!System!Pros!and!Cons!.....................................................................!6!
Flash!Storage!SQL!Database!Surprises!............................................................................................!6!
Database!Fatal!Flash!Flaws!.................................................................................................!6!
How!Flash!Storage!Actually!Writes!and!Reads!Data!.......................................................................!6!
Flash!Idiosyncrasies,!Issues,!or!Flaws!That!Are!Often!Fatal!to!SQL!Databases!...............................!7!
How!Tegile!IntelliFlash™!Storage!Arrays!Solve!SQL!Database!Flash!Fatal!Flaws!...................!8!
Eliminating!The!Bits!Per!Cell!Tradeoffs!...........................................................................................!9!
Reducing!Write!Amplification!Increasing!Wear!Life!.......................................................................!9!
Eliminating/Mitigating!WriteVCliff!..................................................................................................!9!
Steady!state!performance!..............................................................................................................!9!
Eliminating!ReadVDisturb!................................................................................................................!9!
Correcting!High!BER!........................................................................................................................!9!
Tegile!IntelliFlash!SQL!Database!Proof!Points!..............................................................................!9!
Grass!Valley!....................................................................................................................................!9!
St.!Paul!Housing!Authority!..............................................................................................................!9!
USVYellow!Pages!...........................................................................................................................!10!
Unnamed!Hedge!Fund!..................................................................................................................!10!
In!Summary!......................................................................................................................!10!
For!More!Information!......................................................................................................!10!
!
!
Dragon!Slayer!Consulting!•!Summer!2014!
!
3
WHITE!PAPER!•!Database!Fatal!Flash!Flaws!No!One!Talks!About!–!And!How!to!Avoid!Them
!
SQL!Database!Performance!Issues!
SQL! databases! are! typically! IOPS! (inputs! and! outputs! per! second)! intensive.! ! ! Meaning! that! they! require! the!
compute!infrastructure!to!deliver!high!amounts!of!IOPS!to!deliver!a!consistent!satisfied!user!experience.!!SQL!
database! IOPS! requirements! are! rapidly! increasing! because! of! application! proliferation! dependent! on! those!
databases.!!Those!IOPS!can!be!delivered!via!memory!or!storage.!!Memory!or!DRAM!is!a!very!expensive!option!
although! justifiable! in! some! cases.! ! Storage! is! much! less! expensive,! delivers! much! fewer! IOPS,! therefore!
requiring! a! lot! more! of! tehm! to! meet! modern! database! requirements.! This! puts! high! stress! on! the! storage!
infrastructure.!!!
How!DBAs!Frequently!Respond!
Database!administrators!(DBA)!have!been!endeavoring!to!cope!with!the!IOPS!performance!growth!for!years!by!
delving!into!their!bag!of!software!performance!enhancement!tricks.!Most!will!try!to!fix!the!IOPS!performance!
problem!before!adding!or!changing!their!storage!hardware.!!
Tuning!
One!of!the!first!things!they!attempt!is!HDD!IO!tuning.!!HDD!IO!is!optimally!sizing!SQL!database!files!and!then!
placing!them!on!different!LUNs!and!RAID!groups.!!Doing!this!delivers!the!maximum!hard!disk!drive!subsystem!
throughput.! ! But! it! requires! the! DBA! to! possess! extensive! SQL! database! as! well! as! storage! subsystem!
knowledge.!!Next!up!is!application!tuning,!which!is!another!way!of!saying!recoding!the!SQL.!!Application!tuning!
is!a!timeVconsuming,!laborVintensive!task.!!A!common!DBA!tuning!trick!is!to!pin!certain!data!into!memory!or!
cache.!!Doing!so!will!reduce!trips!to!the!disk!subsystem!and!decrease!query!latencies.!Another!tool!is!memory!
tuning!or!“rightVsizing”!the!SQL!database!buffers.!!Although,!this!one!tends!not!to!be!used!as!often!because!of!
its!hit!or!miss!nature.!!RightVsizing!SQL!database!buffers!is!as!much!art!as!science.!It!comes!from!experience!and!
DBA!intuition!based!on!“wait”!events,!buffer!hit!ratios,!system!swapping,!and!paging.!
Each!of!these!tools!is!dependent!on!the!DBA’s!inherent!expertise.!!All!of!them!take!effort,!labor,!and!time.!!And!
far!too!frequently!these!tuning!tricks!just!do!not!achieve!the!desired!performance!gains.!
When!tuning!fails!to!address!SQL!database!performance!issues,!the!next!step!is!to!spend!money.!!The!DBA!can!
scaleVup!the!database,!scaleVout!the!database,!or!buy!higher!IOPS!flash!storage.!
ScaleRup!
ScalingVup!is!the!process!of!moving!to!a!bigger,!more!powerful!server!for!the!SQL!database!such!as!64,!96,!128,!
or!256!processors!with!more!memory,!IO,!bandwidth,!PCIe!slots,!etc.!!It’s!simple!but!with!a!high!cost!in!both!
capital! expenditures! and! operating! expenditures.! ! Besides! more! expensive! hardware,! there’s! the! additional!
software!costs.!!SQL!database!licensing!escalates!rapidly!because!they’re!based!on!cores.!!ScalingVup!assumes!
processing!is!the!performance!bottleneck!and!that’s!rarely!the!case.!!
ScaleRout!
ScalingVout!is!the!next!approach!and!has!two!distinctive!options.!The!first!option!is!based!on!spreading!queries!
across! multiple! unique! database! instances.! It! requires! more! instances! of! the! current! database! with! a! twist.!!
There!are!several!variations!of!this!technique!including:!!
•
Sharding! (the! process! of! dividing! database! data! along! a! specific! application! boundary! among! multiple!
database!instances);!!
•
Read!only!slaves!(writes!are!dedicated!to!a!master!database!then!replicated!or!mirrored!to!the!readVslaves!
where!all!reads!are!routed);!!
•
PeerRtoRpeer! replication! (only! used! when! database! updates! are! infrequent,! maintains! multiple! database!
copies!where!replication!is!required!to!update!the!other!database!engines!when!a!change!has!been!made);!!
•
Linked!servers!and!distributed!queries!(local!database!queries!remote!databases!as!if!they!were!part!of!
the!local!database);!!
•
Distributed! partitioned! views! (ideal! for! update! intensive! apps,! the! primary! SQL! database! table! data! is!
partitioned!among!tables!in!numerous!distributed!databases!based!on!a!partitioning!key);!!
•
Data! dependent! routing! (partitions! the! data! to! multiple! databases! while! placing! responsibility! on! the!
application!or!middleware!to!route!the!queries!to!the!correct!database).!!!
Spreading! queries! across! multiple! unique! database! instances! is! not! for! amateurs! requiring! wideVranging! DBA!
knowledge,! skill,! expertise,! as! well! as! continuous! adjustments! and! tuning.! ! The! underlying! database!
Dragon!Slayer!Consulting!•!Summer!2014!
!
4
WHITE!PAPER!•!Database!Fatal!Flash!Flaws!No!One!Talks!About!–!And!How!to!Avoid!Them
!
performance!problem!assumption!is!that!it’s!the!result!of!database!size!or!scale.!!Sometimes!that!is!the!case.!!
And! when! it! is,! it! can! sometimes! be! solved! by! spreading! queries! across! multiple! unique! database! instances!
leveraging!the!additional!compute!nodes!and!database!instances.!
Option! two! is! the! implementation! of! clustered! or! distributed! database.! ! Both! utilize! multiple! commoditized!
servers.!!Clustered!SQL!databases!are!a!shared!everything!architecture.!!It!creates!a!bigger!database!via!the!use!
of! clustering.! ! Distributed! SQL! databases! are! a! shared! nothing! architecture! built! on! grid! technology! (the!
underpinnings!of!cloud!technology)!for!elasticity!and!scalability.!!They!tend!to!require!less!DBA!expertise!and!
budget! than! multiple! instances! of! standard! SQL! databases;! however,! it’s! a! ripVout! and! replacement! of! those!
traditional!databases.!!And!once!again,!the!underlying!database!performance!problem!assumption!is!that!the!
bottleneck! is! not! enough! compute! power.! ! When! that’s! the! case! clustered! or! distributed! SQL! databases! can!
resolve!the!performance!issue.!
All! of! the! DBA! issues! discussed! up! until! this! point! have! been! manually! laborVintensive! options.! ! They’re! time!
consuming,!often!frustrating,!and!don’t!always!solve!the!problem.!!This!is!why!so!many!DBAs!have!turned!to!
flash!storage!as!the!answer!to!their!performance!issues.!!!
Why!Flash!Storage!
Flash! storage! (a.k.a.! NAND)! drives! produce! thousands! to! millions! of! IOPS! in! a! small!
package.! Flash! storage! is! fast! producing! as! much! as! 3! orders! of! magnitude! more!
random! IOPS! than! Enterprise! HDDs.! ! It! also! draws! much! less! power! and! cooling!
(reduced! operating! expenses)! than! HDDs! because! there! are! no! moving! parts,! does!
not! require! an! entire! flash! drive! to! be! rebuilt! when! a! block! fails,! and! does! not!
fragment! as! HDDs! do! eliminating! defragmentation! requirements.! ! But! it’s! those!
incredible!IOPS!that!make!flash!storage!of!all!kinds!so!attractive!to!the!DBA.!!Just!as!
importantly,!flash!storage!does!not!preclude!the!use!of!any!of!the!other!performance!
enhancing!efforts!just!discussed.!!Flash!storage!is!in!fact!SQL!database!methodology!agnostic.!!It!can!and!does!
for!the!most!part!instantly!increase!the!SQL!database!IOPS.!
SQL! database! flash! storage! is! implemented! as! either! host! flash! storage! drives! (DDR3! DIMMs,! PCIe! cards,! or!
SAS/SATA! solid! state! drives! (SSD)),! or! as! a! SAN! block! (iSCSI! and/or! Fibre! Channel)! connected! or! NAS! (NFS! or!
SMB)!file!system!connected!flash!storage!system.!!Flash!storage!systems!come!in!hybrid!storage!systems!(mix!
of!SSD!and!HDD)!and!all!flash!arrays!(AFA).!!Both!flash!storage!drives!and!flash!storage!systems!have!their!pros!
and!cons.!!
General!Host!Based!Flash!Storage!Drives!Pros!and!Cons!
The! host! based! flash! storage! drives! SQL! database! “pros”! include:! lowest! SQL!
database! to! flash! storage! latency;! simple! implementations/operations;! and!
relatively!low!$/IOPS.!!!
The! host! based! flash! storage! drive! SQL! database! “cons”! include:! limited!
1
scalability;! limited! ECC;! limited! DRAM;! NAND! chip! quality;! cost! in! $/GB! capacity;! TCO! is! high;! caching ! often!
limited! to! write! through! (read)! caching;! write! back! caching! creates! shorter! wearVlife! and! greater! writeV
amplification;!difficult!to!impossible!pinning!SQL!database!indexes!and/or!hot!data!into!the!flash!storage!cache;!
and!flash!storage!availability,!resilience,!continuity,!and!data!protection!are!nominal!at!best.!!!In!addition,!flash!
storage!in!one!host!is!not!addressable!from!another!without!additional! costly!licensed!software!that!clusters!
the!hosts!and!storage.!
General!Flash!Storage!Hybrid!System!Pros!and!Cons!
Flash! storage! hybrid! system! SQL! database! “pros”! include:! high! performance! IOPS! for! active! data! with! lower!
cost! storage! of! inactive! or! cold! data! (Dragon! Slayer! Consulting! surveys! put!
inactive!data!as!>!90%!of!all!IT!organizational!data);!inline!deduplication!and/or!
compression! increases! both! flash! and! HDD! usable! capacities! with! nominal!
impact! on! latency! and! performance! even! improving! performance! by! keeping!
more! data! in! cache;! excellent! total! usable! capacities;! exceptional! data!
protection! and! resilience! (zero! space! snapshots,! clones,! replication,! and! ECC);!
relatively!low!overall!$/IOPS;!relatively!low!cost!in!$/GB.!!!
1
!Caching!is!a!mandatory!requirement!when!data!must!be!shared!on!external!storage!such!as!when!a!hypervisor!is!involved.!
Dragon!Slayer!Consulting!•!Summer!2014!
!
5
WHITE!PAPER!•!Database!Fatal!Flash!Flaws!No!One!Talks!About!–!And!How!to!Avoid!Them
!
!Flash! storage! hybrid! system! SQL! database! “cons”! include:! inline! dedupe! may! have! a! noticeable! negative!
impact!on!SQL!database!latency!and!performance;!there!are!several!hybrids!with!somewhat!constrained!usable!
flash!capacities;!hybrids!that!do!flash!caching!ordinarily!use!only!writeVthrough!(read)!caching;!may!not!be!able!
to!pin!or!fix!SQL!database!indexes!and/or!hot!data!into!the!flash!storage!cache;!storage!tiering!forces!all!writes!
to!start!on!flash!increasing!write!amplification!and!shortening!wearVlife!(same!issue!with!write!caching);!$/IOPS!
is!lower!than!HDD!systems!and!higher!than!AFAs;!$/GB!is!lower!than!AFAs!and!higher!than!all!HDD!systems.!!!
General!All!Flash!Array!(AFA)!System!Pros!and!Cons!
AFA! system! SQL! database! “pros”! include:! large! amounts! of! total! storage!
system! IOPS;! inline! deduplication! and! compression! increases! both! flash!
usable! with! nominal! impact! on! latency! and! performance;! fair! to! quite! good!
total!usable!flash!capacities;!exceptional!data!protection!and!resilience!(zero!
space!snapshots,!clones,!replication,!and!ECC);!best!overall!$/IOPS;!okay!but!
improving! cost! in! $/GB! especially! when! dedupe! and! compression! are! taken!
into!account!and!the!capacity!is!usable!capacity.!!!
AFA! system! SQL! database! “cons”! include:! inline! dedupe! may! have! a! noticeable! negative! impact! on! SQL!
database! latency! and! performance;! maximum! flash! usable! capacities/scalability! lags! behind! hybrid! and! HDD!
storage! systems;! write! amplification! tends! to! be! higher! than! hybrids! that! use! writeVthrough! cache! creating!
shorter!wearVlife!(same!issue!as!write!caching!or!storage!tiering);!$/GB!is!currently!higher!than!all!other!storage!
systems!(but!the!gap!is!shrinking).!!!
Flash!Storage!SQL!Database!Surprises!
DBAs! find! that! while! flash! storage! of! all! kinds! is! initially! an! IOPS! performance! godsend! that! performance!
frustratingly! declines! almost! immediately! degenerating! fairly! rapidly! until! it! levels! off! at! a! much! lower! level.!!
The! test! performance! is! higher! than! the! production.! ! This! is! the! result! of! planning! to! firstVoutVofVbox!
performance!versus!steady!state.!!Anyone!with!a!flash!storage!based!laptop!experiences!this.!!That!and!several!
other! flash! storage! performance! and! data! corruption! issues! from! electron! leakage,! read! disturb,! and! cell!
failures!will!reduce!SQL!database!performance!as!well!as!stability!if!they’re!not!properly!handled.!!!!
Database!Fatal!Flash!Flaws!
Most! nonVstorage! experts! have! a! lot! of! misconceptions! about! flash! storage.! ! From! how! data! is! programmed!
(written! to),! how! it’s! erased,! even! issues! caused! by! excessive! reads! are! an! annoying! surprise! to! most! DBAs.!!
Flash! caching! is! yet! another! area! of! confusion.! ! To! understand! the! flash! issues! that! cause! DBAs! heartburn!
requires!a!brief!level!set!on!how!flash!storage!actually!works.!
How!Flash!Storage!Actually!Writes!and!Reads!Data!
Flash!storage!is!a!nonVvolatile!storage!medium.!!Data!can!be!written!to!it!(programmed)!and!erased!from!flash!
storage.! ! The! two! different! types! are! NOR! and! NAND.! ! Based! on! price/performance! reasons,! today! the! vast!
majority!of!commercial!flash!storage!is!NAND.!!Data!storage!in!general!is!recorded!as!binary!zeros!and!ones.!!
For!HDDs!it’s!based!on!the!magnetic!polarity!of!plus!or!minus.!!Flash!storage!is!different!and!nonVintuitive!in!
how! it! captures! and! changes! data.! ! It’s! electrical! storage! not! magnetic! storage.! ! Flash! states! are! based! on!
voltage!levels!within!a!cell!measured!as!bits!per!cell.!!One!bit!per!cell!is!call!single!level!cell!(SLC).!Two!bits!per!
cell!is!called!multiVlevel!cell!(MLC).!!Three!bits!per!cell!is!call!tripleVlevel!cell!(TLC).!!SLC!has!two!unique!states!
per!cell!(0,1),!MLC!has!four!unique!states!per!cell!(00,!01,!10,!11),!and!TLC!has!eight!unique!states!per!cell!(000,!
001,!010,!011,!111,!110,!101,!100).!!The!amount!of!voltage!required!reading!a!cell!increases!with!the!number!of!
states.!!This!has!a!huge!impact!on!the!flash!performance!(latency),!bit!error!rates!(BER),!and!life!expectancy!or!
programVerase!cycles!(P/E)!also!known!as!writeVerase!cycles.!P/E!cycles!are!the!number!of!times!a!flash!cell!can!
be!written!to!and!erased!before!it!essentially!stops!functioning.!It’s!colloquially!known!as!flash!“wearVlife”.!!!
Unlike! HDDs,! flash! stored! data! cannot! be! changed! in! place.! ! This! is! because! of! the! way! flash! storage!
programs/writes!and!erases!data.!!Data!is!written!in!pages!of!256!bytes,!2K!bytes,!or!4K!bytes!plus!a!few!bytes!
for! storing! error! correcting! code! checksums.! ! Pages! are! combined! into! blocks.! ! Blocks! are! commonly! 16KB,!
128KB,!256KB,!or!512KB.!!Data!is!written!randomly!in!bytes!but!can!only!be!erased!in!blocks.!!In!fact,!once!a!
block!has!been!written!to!it!cannot!be!written!to!again!until!it’s!erased.!!That!means!if!only!2KB!is!written!to!a!
512KB!block,!the!remaining!510KB!is!inaccessible!until!the!whole!block!is!erased.!Each!time!a!block!is!erased!
the!wearVlife!is!shortened.!!That!unused!capacity!now!has!a!shorter!wearVlife.!!Known!as!writeVamplification,!
it’s!just!one!flash!idiosyncrasy!that!has!serious!database!consequences.!!
Dragon!Slayer!Consulting!•!Summer!2014!
!
6
WHITE!PAPER!•!Database!Fatal!Flash!Flaws!No!One!Talks!About!–!And!How!to!Avoid!Them
!
Flash!Idiosyncrasies,!Issues,!or!Flaws!That!Are!Often!Fatal!to!SQL!Databases!
There! are! seven! key! flash! idiosyncrasies,! issues,! or! flaws! that! can! have! a! meaningful! negative! effect! on! SQL!
database!performance.!!They!are:!bits!per!cell!tradeoffs,!P/E!cycles!(wearVlife),!write!amplification,!write!cliff,!
steady!state!performance!(versus!firstVoutVofVbox!performance!or!FOB),!read!disturb,!and!high!bit!error!rates.!!
Bits%per%cell%tradeoffs!are!determined!by!the!flash!storage!being!SLC,!eMLC!,!MLC,!and!TLC.!More!bits!per!
cell!results!in!lower!cost!flash!storage!but!also!lower!performance.!!As!bits!per!cell!increase!so!does!the!
voltage!required!to!program!and!read!the!cell.!!Increased!voltage!adds!latency,!increases!bit!errors,!and!
reduces!flash!storage!wearAlife.!!SLC!has!highest!performance,!lowest!latency,!longest!wearAlife!
(measured!in!P/E!cycles)!and!highest!cost!per!GB,!whereas!TLC!the!slowest!performance,!highest!latency,!
shortest!wearAlife,!and!lowest!cost!per!GB.!!The!eMLC!and!MLC!flash!storage!fall!inAbetween!with!eMLC!
tending!towards!SLC!and!MLC!tending!towards!TLC.
SQL database performance consequences: SQL database performance will obviously vary by the flash
type utilized. But there is a value tradeoff of cost versus performance measured as cost/IOPS that must
be taken into account. In addition, at some point the SQL database performance bottleneck will be
pushed into the storage controller or the SQL database server resources making additional flash IOPS
impossibleBtoButilize.
P/E%cycles%(wear5life)!are!determined!by!flash!type!(SLC,!eMLC,!MLC,!TLC).!!SLC!is!typically!rated!between!
100K!and!1M!P/E!cycles,!eMLC!from!30K!to!40K!P/E!cycles,!MLC!ranges!between!3K!to!10K!P/E!cycles,!
and!TLC!from!500!to!1K!P/E!cycles.!Wear!leveling!algorithm!techniques!in!the!flash!storage!drive!help!
mitigate!the!issue;!although,!it!often!requires!more!sophistication!and!processing!power!found!in!a!
storage!array!system!for!best!results.
SQL database performance consequences: Flash storage wearDlife can be a major problem for SQL
databases when it comes to data reliability. Cells, pages, and blocks that wear out can cause data loss
thatBdestabilizesBtheBSQLBdatabase.BB
Write amplification shortens the flash usable capacity wearAlife because unused capacity is consistently
erased without ever being programmed or written to. There tends to be a series of tradeoffs when it
comes to write amplification. Smaller flash storage blocks reduce the amount of waste and write
amplification.!!The!downside!being!a!much!greater!number!of!blocks!for!the!flash!drive!controller!to!track!
for data obsolescence (data no longer valid), being marked for erasure (a.k.a. garbage collection), then
being made available in the pool of writeable blocks. That additional processing adds latency, reduces
IOPS, and requires additional flash storage controller DRAM. Large block sizes reduce flash drive
controller processing and latency but has higher wearAlife. The better bet is when the flash storage array
system caches writes to flash in DRAM and serializes the data to cache. Doing so very nearly eliminates
write amplification. It also enables costly system DRAM to be shared across all system flas(ECC) that
often!only!occur!in!flash!storage!systems.
SQL database performance consequences: Reduced write amplification is good, but the extra cost and
higher latency diminishes SQL database performance. Increased write amplification will cause faster cell,
page, and block failures leading to data loss and corrupted databases. DRAM caching has the best
potentialBofBsignificantlyBreducingBwriteBamplificationBwhileBincreasingBSQLBdatabaseBperformance.
Write cliff occurs when the flash storage performance drops suddenly, and permanently, all at once over
time. This is predominantly a flash storage drive issue and not so much of a flash storage system issue.
It can still be a flash storage system issue when the system’s flash capacity consumption exceeds 90%
and the garbage collection process has becomes more frequent while working harder and slower. Write
cliff is far more prevalent with flash storage drives generally and flash storage systems not architected
specifically!for!the!idiosyncrasies!of!flash.!
SQL database performance consequences: Write cliff will show up as a sudden rapid database
performanceBdeclineBthatBdoesBnotBrecover.
Dragon!Slayer!Consulting!•!Summer!2014!
!
7
WHITE!PAPER!•!Database!Fatal!Flash!Flaws!No!One!Talks!About!–!And!How!to!Avoid!Them
!
Steady'state performance vs First'Out'of'Box (FOB) performance is the state of the flash storage when
it has experienced enough P/E cycles to stabilize the write performance to a predictable sustained level.
Enough<P/E<cycles<are<generally<when<most<of<the<flash<storage<blocks<have<been<written<to<at<least<once.<
FOB performance is the flash storage’s best performance. The gap between FOB and steadyCstate
performance is nonCtrivial often approaching an order of magnitude (i.e. steady state is approximately
10%<of<FOB.)<<
SQL database performance consequences: A failure to plan SQL database performance around flash
storage steady state will lead to the unpleasant experience of either living with lower SQL database
performance;than;expected;or;spending;more;money;on;additional;flash;storage;than;was;budgeted.;
Read'disturb<occurs<when<reads<of<a<NAND<cell<causes<data<to<change<on<bordering<or<nearby<NAND<cells<
within<the<flash<block.<Since<all<cells<on<flash<NAND<chips<exist<on<the<same<die<there<is<occasionally<cross<
coupling<between<bordering<cells<in<a<block.<The<energy<required<passing<through<a<cell<to<read<its<state<
periodically<bleeds<enough<of<a<charge<off<an<adjacent<cell<that<pushes<that<cell's<state<past<its<threshold<
changing<its<state.<<ReadCdisturb<is<more<likely<to<occur<as<the<bits<per<cell<increase<because<more<energy<
is<required<to<pass<through<the<cells.<<Because<the<reads<required<to<cause<a<read<disturb<is<measured<in<9<
figures<it’s<not<that<frequent;<however,<when<it<occurs<data<is<changed<or<lost.<<Flash<storage<drives<and<
systems<attempt<to<prevent<readCdisturb<by<setting<a<block<read<threshold<since<last<erase<cycle<that<
copies<the<block<to<another<erased<or<unused<block<resetting<the<counter.<<Correcting<readCdisturb<
occurrences<requires<more<sensitive<error<detection<and<correction<codes<(ECC)<that<often<only<occur<in<
flash<storage<systems.
SQL database performance consequences: Read>disturb is more likely to occur in databases where the
same data has an exceedingly high read rate and the flash storage does not have safeguards built>in.
When;it;does;occur;SQL;databases;will;most;likely;become;corrupted.
High bit error rates (BER) are endemic to flash storage. Error correction codes (ECC) are used to monitor
and correct errors. The good news is that as NAND flash continues to shrink (now at 19nm heading to
14nm and 10nm) price per GB continues to decline. The bad news is that NAND die shrinkage causes BER
to increase geometrically requiring ECC algorithm capabilities, sensitivity, and complexity to increase
right along with it. This in turn requires greater amounts of the flash storage controller’s resources to
manage that ECC. Therefore as NAND dies shrink, cost per GB drops, but overhead and IOPS latencies
rise.<Many flash PCIe and SSDs do not adjust their ECC algorithms enough to manage the increased BER
requiring<the<storage<system<or<server<to<handle<it.<<
SQL database performance consequences: Uncorrected high BER will cause corrupted SQL databases.
Today;19nm;NAND;flash;requires;41;ECC;corrections;per;1KB;of;data.;;Future;advances;to;smaller;die;sizes;
will require even more ECC corrections. Many flash storage controllers at the drive level do not have that
capability.;;Some;do,;whereas;most;flash;storage;systems;also;have;more;extensive;ECC;capabilities.
Flash! storage! is! an! outstanding! SQL! database! performance! storage! technology! if! implemented! correctly! and!
while!addressing!each!of!these!flaws!effectively.!Otherwise,!it!is!likely!to!cause!dashed!expectations!and!severe!
SQL!database!operational!and!financial!headaches.!!
How!Tegile!IntelliFlash™!Storage!Arrays!Solve!SQL!Database!Flash!Fatal!Flaws!
Tegile! designed,! developed,! and! implemented! their! IntelliFlash! hybrid! and! all! flash! arrays! to! transparently!
eliminate,!manage,!and!overcome!these!SQL!database!flash!fatal!flaws!transparently.!!!
All!Tegile!IntelliFlash!storage!systems!from!the!smallest!to!the!largest!deliver!these!capabilities:!!
Dragon!Slayer!Consulting!•!Summer!2014!
!
8
WHITE!PAPER!•!Database!Fatal!Flash!Flaws!No!One!Talks!About!–!And!How!to!Avoid!Them
!
Eliminating!The!Bits!Per!Cell!Tradeoffs!
IntelliFlash!eliminates!the!SQL!database!price!performance!tradeoffs!by!making!the!lower!cost!MLC!flash!drives!
perform! and! behave! similar! to! SLC.! ! It! speeds! up! MLC! flash! performance! through! clever! use! of! the! DRAM.!
DRAM!is!up!10!times!faster!than!SLC!flash.!!IntelliFlash!utilizes!the!DRAM!to!coalesce!the!writes!to!sequentialize!
them!to!the!write!flash.!That!sequentialization!enables!larger!block!sizes!(more!on!that!in!the!next!paragraph),!
meaning! fewer! blocks! to! track! per! flash! storage! drive,! that! reduce! both! write! and! read! latencies! from! flash!
storage! drives! improving! performance.! DRAM! coalescence! also! increases! the! MLC! wearVlife.! ! SQL! database!
IntelliFlash!latencies!have!a!consistent!1ms!or!less!(better!than!most!SLC!flash!storage)!with!the!cost!of!MLC!
thus!eliminating!the!price!performance!tradeoffs.!!
Reducing!Write!Amplification!Increasing!Wear!Life!
IntelliFlash! DRAM! coalescence! eliminates! the! random! nature! of! writes! to! flash! that! is! so! prevalent! in! SQL!
databases!(server!virtualization!too).!!This!allows!IntelliFlash!to!utilize!larger!block!sizes!with!exceptionally!high!
efficiencies!(i.e.!minimal!unused!pages!in!blocks)!making!write!amplification!a!nonVissue!while!delivering!very!
high!wearVlife!and!endurance.!!
Eliminating/Mitigating!WriteRCliff!
IntelliFlash! flash! storage! arrays! have! the! builtVin! software,! processing! power,! memory,! and! capacities! that!
make!writeVcliff!a!nonVevent!in!a!well!designed!flash!storage!system.!!
Steady!state!performance!
IntelliFlash! storage! arrays! increase! the! ramp! to! process! to! steady! state! flash! performance! through! it’s! large!
flash!capacities,!intelligent!use!of!deduplication!and!compression,!and!DRAM!sequentialization!of!writes.!!That!
use!of!DRAM!caching!also!means!the!steady!state!issue!does!not!affect!writes.!!!
IntelliFlash!adds!another!treat!to!the!hybrid!systems.!!Inline!deduplication!and!compression!allows!up!to!10x!
more! data! to! reside! in! flash! read! cache.! ! This! allows! the! pinning! of! all! of! the! very! performanceVsensitive!
portions!of!databases!in!flash.!!The!result!is!significantly!lower!SQL!database!latencies,!increased!SQL!database!
cache! hits,! reduced! HDD! paging,! and! much! improved! overall! database! performance.! IntelliFlash! clearly!
mitigates!the!impact!of!steady!state.!
Eliminating!ReadRDisturb!
Intelliflash! flash! storage! arrays! utilize! the! block! read! threshold! since! last! erase! cycle! that! copies! the! block! to!
another!erased!or!unused!block!resetting!the!counter.!!Thus!eliminating!readVdisturb!issues.!!
Correcting!High!BER!
Intelliflash!flash!storage!arrays!have!a!major!edge!in!detecting,!correcting,!and!overcoming!high!levels!of!flash!
storage!BER.!!It!starts!with!the!highly!sensitive!and!extensive!endVtoVend!error!detection!and!correction!codes!
from!the!IO!through!the!CPU!to!memory!to!flash!and!even!on!to!HDDs!and!back.!!It!even!eliminates!HDD!silent!
data! corruption! through! checksum! matching! with! the! blocks.! ! There! is! no! better! endVtoVend! error! detection!
and! correction! in! the! market! today.! ! Additionally,! IntelliFlash! storage! systems! include! zero! capacity!
instantaneous! writeable! snapshots,! cloning,! and! replication.! ! That! data! protection! capability! empowers!
IntelliFlash!to!keep!a!good!copy!of!the!data!in!another!volume!or!system!should!it!not!be!able!to!autocorrect!a!
BER.!!
Tegile!IntelliFlash!SQL!Database!Proof!Points!
IntelliFlash!has!been!shipping!for!several!years.!!It’s!not!just!marketing!theory!but!production!proven.!!Tegile!
has!numerous!SQ!database!user!proof!points.!!Here!are!just!a!few:!
Grass!Valley!!!
Grass! Valley! is! a! well! know! manufacturer! of! broadcast! quality! digital! video! equipment.! Their!
implementation!of!IntelliFlash!storage!reduced!their!SQL!database!server!CPU!utilization!down!from!90%!to!2%,!
improve!database!response!times!from!30ms!to!1ms,!while!increasing!database!throughput!by!10x.!!That!CPU!
utilization!reduction!additionally!allowed!them!to!reduce!the!number!of!cores!the!database!runs!on!reducing!
their!SQL!database!licensing!costs.!!!
!St.!Paul!Housing!Authority!
The!St.!Paul!Housing!Authority!saw!a!5x!increase!in!SQL!database!performance!utilizing!IntelliFlash!
storage.! ! IntelliFlash! also! reduced! their! power! and! cooling! consumption! by! 66%.! ! But,! it! was! their! database!
Dragon!Slayer!Consulting!•!Summer!2014!
!
9
WHITE!PAPER!•!Database!Fatal!Flash!Flaws!No!One!Talks!About!–!And!How!to!Avoid!Them
!
backups! that! were! causing! them! the! most! heartburn.! ! Backups! forced! them! to! shutdown! their! database!
extended!periods!of!time.!!IntelliFlash!reduced!those!backup!windows!by!more!than!80%.!!
!
!!USRYellow!Pages!
The!Florida!based!USVYellow!Pages!have!seen!their!SQL!and!SAP!queries!improve!as!much!as!20x!while!
database!latencies!are!a!consistent!1ms.!
Unnamed!Hedge!Fund!
An! unnamed! Hedge! fund! experienced! a! 3! to! 5x! increase! in! data! warehouse! ingestion! rates! on! the!
IntelliFlash.!!So!instead!of!running!a!single!data!warehouse!analytics!job!on!what!kind!of!trade!should!they!run!
the! next! day,! they! now! run! three! or! more.! ! This! empowered! them! to! perform! far! more! detailed! “whatVif”!
analysis!while!the!markets!are!closed.!
In!Summary!
There!are!numerous!flash!storage!issues!that!most!DBAs!simply!do!not!know!about.!!Those!issues!can!and!do!
have!a!nasty!impact!on!SQL!database!performance.!!Solving!these!problems!requires!the!flash!storage!vendor!
to!address!them!specifically.!!Tegile!IntelliFlash!hybrid!and!all!flash!arrays!do!just!that.!
For!More!Information!!
Contact!Tegile!Systems,!Inc.!at:!www.tegile.com!or!via!Email:[email protected].!!!
!
Paper!sponsored!by!Tegile!Systems,!Inc.!!About!the!author:!Marc!Staimer!is!the!founder,!senior!analyst,!and!CDS!of!Dragon!
Slayer! Consulting! in! Beaverton,! OR.! The! consulting! practice! of! more! than! 16! years! has! focused! in! the! areas! of! strategic!
planning,!product!development,!and!market!development.!With!over!34!years!of!marketing,!sales!and!business!experience!
in! infrastructure,! storage,! server,! software,! databases,! and! virtualization,! he’s! considered! one! of! the! industry’s! leading!
[email protected].!
!
Dragon!Slayer!Consulting!•!Summer!2014!
!
10