Академический Документы
Профессиональный Документы
Культура Документы
DIAMOND SPONSORSHIPS
www.percona.com
Who Am I
Matt Yonkovit - Principal Consultant Percona
What We do
Lots o! Data
ORM S"c's
4ecause developers want to &e (ocused on &ein/ super developer nin<a6s = t*e o(ten turn to :3M6s :3M6s > like active record ? work /reat (or simple applications8 &ut tend to &ork w*en you *ave complex mappin/s
Missed o$$ort"nities
)*ile t*e MySQL community as a w*ole *as done an awesome <o&8 we did miss a (ew t*in/s+
:nline 1a&le 7lters > 7dd;Mod column ? Scale out -vs- Scale up 2lexi&le data types
Column Stores
,i.e. H&ase
%ocument Stores
,i.e. Mon/o8Couc*
Sca#e o"t
3emove t*e complexities and automate s*ardin/ Make (ull use o( multiple servers (or complex tasks
,i.e. map reduce
Easy to chan)e
C*an/e is a certainty in li(e... Asers will demand itB Make sure t*at you are not &ound to a ri/id structure
,7llow (or c*an/es on t*e (ly C(lexi&le sc*emaD
C"stom (eat"res
7dd support (or (eatures missin/ in MySQL or t*at solve a speci(ic need
,Erid2S >Mon/o? ,Super Columns >Cassandra? ,Lists;Sets >3edis?
,You do not *ave to t*ink a&out your data types and Csc*emaD desi/n ,%oes not mean add nodes will solve all your issues ,%oes not mean you can /et sloppy wit* code ,)ill not (ully replace a relational d&
4ad Code is 4ad Code
Hand#er Soc'et
%eveloped &y %eN7 %irect 7ccess to t*e 9nnod& stora/e en/ine8 &ypassin/ SQL @ey-!alue type access Yos*inori *it J#5@ QPS8 (aster t*en memcac*ed8 and JR (aster t*en Stock SQL
*ttp+;;yos*inorimatsuno&u.&lo/spot.com;.5"5;"5;usin/-mysKl-as-nosKl-story(or.*tml
Memcached
:racle recently /ot in on t*e (un8 introducin/ a Memcac*ed inter(ace (or 9nnod& @ey-!alue access Ases li&memcac*ed > known and used protocol? Promise t*e a&ility to use t*e distri&uted *as* capa&ilities o( memcac*ed to s*ard > not availa&le yet ?
%o you need transactionsF Can you risk data lossF )*at are your per(ormance reKuirementsF )*at level o( risk is accepta&leF Costs involvedF
-rd Party applications 9nte/ration wit* ot*er 3%4MS6s 7lready invested in SQLF :L1P type )orkloadsF 1ransactions Soins
Per!ormance.
Per(ormance (or &ot* MySQL and NoSQL solutions can vary wildly. 9mpacted &y+
S$ace
)it* Hu/e %atasets8 space can &e a premium Some NoSQL options can take up a lot more space t*en t*eir MySQL counter parts. RML 'xample >no redundant data?+
,..#E4 in Mon/o%4 ,NGIM4 in 9nnod&
Some solutions *ave you duplicate data (or per(ormance and simplicity
4eri!y
9 *ave run into a lot o( people w*o leap &e(ore t*ey test
,7skin/ (or trou&le
NoSQL O$tions
Mon)oD1
Nice Sson centric data stora/e
,%o not underestimate
No Native Soins 1rade per(ormance (or consistency %ata (ootprint can &e &i//er t*en MysKl in some cases
Redis
Pros: 2ast w*en (ully in memory8 &ut can use Cvirtual memoryD Supports Cclusterin/D Supports replication Super (ast Complex data types like lists Cons: Asin/ !irtual Memory prevents usin/ ot*er (eatures %ata loss possi&le No Native <oins @ey 7ccess only
Cassandra
Pros: 7uto-S*ardin/ o( data 3eplication Parallel Processin/ Super Columns are interestin/ Cons: 'ventual Consistency %ocumentation not as deep as ot*er solutions Speed is &y product o( addin/ more nodes Network C*atty %ura&ility issues
Hadoo$
Pros: Ereat wit* Super Lar/e %atasets >Peta&ytes? 'xtreme Parallelism Can do complex CPA intensive tasks via map reduce Cons: Can &e complex Needs time to produce results No Native Soins;9ndexes
+o'yo Ca*inet
Pros: Can 4e Super 2ast Cons: No 4uilt in S*ardin/
Multiple 1a&le 1ypes to %ura&ility;Consistency issues support di((erent reKuirements Lack o( %ocumentation 'm&edda&le Can 4o/ down i( you run out 3eplication o( memory Can use Memcac*ed protocol
Co"ch
3esistant to corruption M!CC 4ased >!ersionin/? Savascript 3est 9nter(ace 3eplication Map 3educe 'asy to Eet started No S*ardin/ Can &e slower t*en ot*er solutions
MySQL +ric's
1*ere are ways to solve t*e CNoSQLD issues in MySQL8 &ut t*ey are manual or add complexity
,Stora/e en/ines ,S*ard Query ,RML %ata ,S*ardin/ ,N%4;Cluster