MongoDB
Dobré zlé a ošklivé Lukáš @almadcz Linhart
Jak si stojíte?
Not Only SQL "Idea je, že tak jako si vybíráte operační systémy a tak jako si vybíráte programovací jazyky a tak jako si vybíráte frameworky, můžete si vybrat databázové architektury."
Justin Sheehy (CTO Basho, Riak)
ACID Atomicita Konzistence Izolace Trvalost
BASE Basically Available
Soft state/Eventually consistent
CAP
...pokud ji chcete udělat
Proč měnit?
Sledování
Událostí
...a krabičky...
Přímočaré! [ # levy sloupec [ {'cotoje' : 'aktualne widget', 'pocetclanku' : 7}, {'cotoje' : 'muj widget', 'cotamje' : 'RSSko'}, ], # další sloupec
...ups (BLOCKINGLY) ALTER TABLE 8GB_configuration_table ADD DOWNTIME WHERE RPS > XX AND lupa_cz_hate > 500
Tak.
Jednoduché.
...jen vypustit data...
{
...ve... 'formátu pro' : [ 'RealTime Web', 'HTML 5', 'Web 2.0', 'Web 3.0', // all cool kids 'SF-based, YC-funded start-up' ]
}
...binárně rychle (BSON)
Replica Set
(jako cluster zadarmo)
Rychlééé!
"Líné" úpravy schématu
Automatické rozdělování
Replikace per dotaz
...napříč datacentry
Vnitřní indexy
Map
Reduce
GridFS
Updaty na místě
"Při použití kill -9 není žádná záruka ohledně toho, co se podaří a co se nepodaří obnovit. Jak stará je poslední záloha?"
-- Eliot Horowitz
"Kdykoli na to sáhnu, tak se to rozbije"
-- Petr Svoboda, provozák
32 bitů
Jedno vlákno pro zápis
Jak rychle umím psát...
Pozor na znalosti. a předpoklady
(hlavně školní)
Nevidím
schéma
Nebezpečný zápis...
...je nebezpečný
Eventuelní konzistence je složitá. Produktově.
Na velikosti záleží
Replikační set není load (write) balancing
Pozor na bindingy
Failover == downtime
Zabrané místo
db.coll.runCommand( "compact" ) ...bez indexů
Máte problém? Upgrade!
Co si odnést MongoDB je Dobré • ...ale vyzkoušejte na co •
Ověřujte předpoklady • 40 let stability relačních databází • Nejprve CAP, potom produkt • Podívejte se i na alternativy •
Couch, Riak, HBase, Cassandra...
•
Buďte připraveni na změnu
•
Otázky?
Díky!
Hole by Bùi Linh Ngân http://www.flickr.com/photos/75199686@N00/2715287035/ Hands in the air - in concert by Martin Fisch http://www.flickr.com/photos/45409431@N00/3272079115/ View of Banff from Gondola by mjb84 http://www.flickr.com/photos/15607207@N00/3910666497/ Bouquet of Booms by Steve Juvertson http://www.flickr.com/photos/44124348109@N01/23623670/ CAP theorem by Craig Brown http://nosqltips.blogspot.com/2011/04/cap-diagram-for-distribution.html http://3.bp.blogspot.com/jt3tZEGkvaw/TbzFI6DZjMI/AAAAAAAAAAw/RyvAOEpqBWo/s1600/CAP_Diagram_dist+copy.jpg A gas jar of nitrogen dioxide gas (NO2) to the right. A dilute copper(II) nitrate solution on the left with nitrogen dioxide gas above the solution. by Shandchem http://www.flickr.com/photos/14508691@N08/5188151426/ Richard Talmadge - Project Moon Base (1953) by Kamil Antosiewicz Monika Powalisz http://www.flickr.com/photos/mononukleoza/4966825873/ Nirim St., Tel Aviv by Tomer Lichtash http://www.flickr.com/photos/72202041@N00/6607330/ THE Boxes By aka*kirara http://www.flickr.com/photos/14481505@N04/2892007034/ Simplicity-II-outtakes by Bappaditya Dasgupta http://www.flickr.com/photos/78313041@N00/99713163/ The Joy Of Release by Emily Jane Morgan http://www.flickr.com/photos/47655932@N06/4488866299/ building block by eflon http://www.flickr.com/photos/23094783@N03/4294106756/ Bison by Allan Harris http://www.flickr.com/photos/50638285@N00/4901324925/ York Autograss by Darren Clare http://www.flickr.com/photos/54361879@N08/5653490309/ 110606-N-TU221-408 By U.S. Department of Defense Current Photos http://www.flickr.com/photos/39955793@N07/5811868587/in/faves-49054580@N02/ Foto nuovo gattino - 3 by notoriousxl http://www.flickr.com/photos/15579777@N05/3322249141/ Is Moose! by Dirk Talamasca http://www.flickr.com/photos/82377414@N00/1441442789/ inspire by lululemon athletica http://www.flickr.com/photos/30011527@N05/5197327623/ 8bit_colors by Alexander Lane http://www.flickr.com/photos/alexlane/1779591809/ The Cup of Yes and No (RAM) by dailyinvention http://www.flickr.com/photos/96162367@N00/71147684/ SML Notebooks / 20090903.10D.52443 / SML by See-ming Lee http://www.flickr.com/photos/48973657@N00/3882941631/ Blind (Faith) by dollen http://www.flickr.com/photos/39804614253@N01/1761955352/ whoops by Brandon Martin-Anderson http://farm1.static.flickr.com/22/27378956_6aea69c1be_o.png Scratching bear by Tambako The Jaguar http://www.flickr.com/photos/8070463@N03/4283191966/ Another lovely lion picture! ;) by Tambako the Jaguar http://www.flickr.com/photos/tambako/3690585568/in/photostream/ equilibrium by Andy http://www.flickr.com/photos/88996417@N00/427383721/ Open Book by melanie http://www.flickr.com/photos/61173086@N00/1451941259/ HMNZS Wellington (F69) #2 by Pieter Pieterse http://www.flickr.com/photos/49488259@N00/62704514/ maple leaf in sunder by razor blade Berlin, October 3rd 2007 by Karl-Ludwig Poggemann http://www.flickr.com/photos/hinkelstone/1478281677/ 60836 [GIF] by Undertow851 http://www.flickr.com/photos/57907353@N04/5800729770/ Laptops being ghosted by sHzaam http://www.flickr.com/photos/62111802@N00/3117313476/ Filing Cabinet Front By Vegansoldier http://www.flickr.com/photos/24283435@N08/3234644372/ Pi pie by Paul Smith http://www.flickr.com/photos/37996584546@N01/2190712270/ 661 - Blue Tile - Pattern by Patrick Hoesly http://www.flickr.com/photos/60057912@N00/4514759637/ Catching a ride by Valerie Everett http://www.flickr.com/photos/66742614@N00/2351029408/ Cars awaiting shredding by dave_7 http://www.flickr.com/photos/21612624@N00/5053506216/ Strategie oblique by gualtiero http://www.flickr.com/photos/29931767@N00/126238354/ Tomatoes by The Ewan http://www.flickr.com/photos/16168774@N00/2962762666/