OldSQL'vs.'NoSQL'vs.'NewSQL' OnNew'OLTP' - USENIX

Transcription

c.

OldOLTP RememberhowweusedtobuyairplaneHcketsinthe1980s Bytelephone ) Commerceatthespeedoftheintermediary rediblestretchgoal!!!! HPTS(1985)VoltDB2

HowhasOLTPChangedin25Years?Theinternet Clientisnolongeraprofessionalterminaloperator InsteadAuntMarthaisusingthewebherself SendsvolumethroughtheroofVoltDB3

HowhasOLTPChangedin25Years?PDAsandsensors YourcellphoneisatransacHonoriginator Everythingisbeinggeo- ‐posiHonedbysensors(marathonrunners,yourcar, .) SendsvolumethroughtheroofVoltDB4

HowhasOLTPChangedin25Years?ThedefiniHons — Theoncomingdatatsunamiiso endeviceandsystem- ‐generated transacHon— High- ‐throughputACIDwriteoperaHonsareanewrequirement rementsVoltDB5

ExamplesMaintainthestateofmulH- usiondetecHonRiskmanagementonWallStreetVoltDB6

drespondinreal- ‐HmeYouo enneedreal- ‐HmeanalyHcsVoltDBVoltDB777

SoluHonChoices OldSQL LegacyRDBMSvendors NoSQL GiveupSQLandACIDforperformance NewSQL PreserveSQLandACID GetperformancefromanewarchitectureVoltDB8

OldSQLTradiHonalSQLvendors(the“elephants”) CodelinesdaHngfromthe1980’s “bloatware” Notverygoodatanything— almarketIknowof MediocreperformanceonNewOLTP— Atlowvelocityitdoesn’tmaeer— OtherwiseyougettotearyourhairoutVoltDB9

DBMSLandscapeOther appsDBMSappsData WarehouseVoltDBOLTP10

DBMSLandscape–PerformanceNeedsOther appshighlowhighData WarehouseVoltDBhighOLTP11

OneSizeDoesNotFitAll- ‐- ‐PictoriallyElephants only get“the crevices”NoSQLArrayDBMSsOpensourceVoltDBColumn storesLow-overheadHadoopMain memory DBs12

RealityCheck TPC- ‐CCPUcycles OntheShoreDBMSprototype ElephantsshouldbesimilarVoltDB13

TheElephants AreslowbecausetheyspendalloftheirHmeonoverhead!!! Notonusefulwork Wouldhavetore- ‐architecttheirlegacycodetodobeeerVoltDB14

ToGoaLotFasterYouHaveto Focusonoverhead BeeerB- ‐treesaffectsonly4%ofthepathlength GetridofALLmajorsourcesofoverhead Mainmemorydeployment–getsridofbufferpool— Leavingother75%ofoverheadintact— i.e.winis25%VoltDB15

LongTermElephantOutlook Upagainst“ TheInnovatorsDilemma” Steamshovelexample Diskdriveexample SeethebookbyClaytonChristensonformoredetails Longtermdriintothesunset Themostlikelyscenario UnlesstheycansolvethedilemmaVoltDB16

NoSQL GiveupSQL GiveupACIDVoltDB17

GiveUpSQL? wleveloperaHons pplicaHon 30yearsofRDBMSexperience Hardtobeatthecompiler e, ) Storedproceduresaregood!— perrecord— Movethecodetothedata,nottheotherwayaroundVoltDB18

GiveUpACID ryourhairoutbydoingdatabase“heavyli ing”inusercode Canyouguaranteeyouwon’tneedACIDtomorrow?ACID goodness, in spite of what these guys sayVoltDB19

WhoNeedsACID? Fundstransfer OranybodymovingsomethingfromXtoY Anybodywithintegrityconstraints Backoutiffails ceptableoutcome AnybodywithamulH- ‐recordstate E.g.moveandshootVoltDB20

WhoneedsACIDinreplicaHon Anybodywithnon- ‐commutaHveupdates Forexample, and*don’tcommute Anybodywithintegrityconstraints Can’tsellthelastitemtwice . 21

NoSQLSummary Appropriatefornon- ‐transacHonalsystems aHve NotagoodfitforNewOLTP UsetherighttoolforthejobInteres5ng Tworecently- reamazinglysimilarto(youguessedit!)SQLVoltDB22

NewSQL SQL ACID PerformanceandscalabilitythroughmoderninnovaHveso warearchitectureVoltDB23

NewSQL g(1stbigsourceofoverhead) Hmestamporder MVCC YourgoodideagoeshereVoltDB24

NewSQL verhead) Mainmemory(atleastfordatathatisnotcold) SomeotherwaytoreducebufferpoolcostVoltDB25

NewSQL bigsourceofoverhead) SomeinnovaHveuseofB- ‐trees Single- ‐threading YourgoodideagoeshereVoltDB26

NewSQL NeedsasoluHontowrite- ‐aheadlogging(4thbigsourceofoverhead) Obviousanswerisbuilt- ‐inreplicaHonandfailover NewOLTPviewsthisasarequirementanyway Somedetails On- ‐linefailover? On- ‐linefailback? LANnetworkparHHoning? WANnetworkparHHoning?VoltDB27

ANewSQLExample–VoltDB Main- ‐memorystorage Singlethreaded,runXactstocompleHon Nolocking Nolatching Built- ‐inHAanddurability Nolog(inthetradiHonalsense)VoltDB28

Yabut:WhatAboutMulHcore? ForAK- s i.e.convertmulH- ‐coretoKsinglecoresVoltDB29

WherealltheHmegoes revisitedBeforeVoltDBVoltDB30

CurrentVoltDBStatus RunsasubsetofSQL(whichisgetnglarger) OnVoltDBclusters(inmemoryoncommoditygear) NoWANsupportyet Workingonitrightnow 50XapopularOldSQLDBMSonTPC- ‐C 5- ‐7XCassandraonVoltDBK- ‐Vlayer Scalesto384cores(biggestironwecouldgetourhandson) Clearlynotethisisanopensourcesystem!VoltDB31

SummaryOldOLTPNewOLTPOldSQLforNewOLTP Tooslow DoesnotscaleNoSQLforNewOLTP Lacksconsistencyguarantees Low- ‐levelinterfaceNewSQLforNewOLTP Fast,scalableandconsistent SupportsSQLVoltDB32

theNewSQLdatabaseyou’llneveroutgrowThankYou

the NewSQL database you'll never outgrow OldSQL'vs.'NoSQL'vs.'NewSQL' onNew'OLTP' Michael Stonebraker, CTO VoltDB, Inc.