Jake NoSQL pouzivate?
Tomas Vondra
tv na fuzzy.cz
Pondělí Březen 19 18:12:29 CET 2012
On 19 Březen 2012, 17:38, Jan Kasprzak wrote:
> Dobry den,
>
> mate nekdo nejake prakticke zkusenosti s distribuovanymi key-value
> ulozisti
> dat? Co pouzivate?
>
> Co bych potreboval ja (ad-hoc poradi bez uvedeni priorit):
Mě tady celkem chybí popis toho co tam vlastně chcete ukládat. To je IMHO
jeden z důležitých parametrů který ovlivňuje výběr NoSQL databáze (jinak
se to bude špatně používat, může to mít dopad na výkon apod.)
Chcete column store, K/V store nebo document store? Nebo vám stačí prostý
distribuovaný filesystém jako je HDFS?
> - replikace, tolerance k docasnemu vypadku (reboot stroje) i k trvalemu
> vypadku (stroj shorel a nikdy ze uz do klastru nevrati), moznost
> pridat dalsi stroj
> - zohledneni fyzicke topologie (napriklad delat repliky jinam nez do toho
> stejneho PDU nebo racku)
> - staci plne konzistentni operace (nepotrebuju evenutally-consistent
> zapisy a vector-clock jako ma Amazon Dynamo)
Výrok "stačí plně konzistentní operace" mi přijde nesmyslný, protože
"silná konzistence" je silnější požadavek než "eventually consistent."
Navíc výše vyžadujete odolnost k výpadkům (A) takže předpokládám že chcete
i odolnost proti partitioningu (P), což podle CAP teorému znamená že
nemůžete mít silnou konzistenci.
> - hodila by se i podpora velkych "value" (bloby, velke soubory, ...)
Co znamená "velkých"? To eliminuje některé K/V systémy (např. Redis umí
max. 512MB).
> - rozhrani minimalne pro Perl
> - podpora pro predem hlaseny vypadek vitana ("ted budu chtit rebootovat
> tento stroj").
> - pokud mozno psane v necem jinem nez Java (no flames, please;
> Java ma tendenci s sebou tahat spousty dalsich Javovych technologii
> a nedivat se na okolni ne-Javovy svet, navic prenositelnost na ruzne
> verze JVM je podle mych zkusenosti slaba).
No, zrovna Cassandra a Hadoop tímhle myslím přehnaně netrpí, ale chápu.
>
> Zatim jsem se dival na tyhle veci:
Z vámi uvedených bych volil HDFS pokud bych potřeboval jenom "prostý"
distribuovaný souborový systém, Cassandru nebo HBase pokud bych chtěl
column store, a asi CouchBase pokud bych chtěl document store a k/v. Ještě
bych koukal na MongoDB (ale to je jen document store).
Nicméně já nejsem "zaujatý" proti Javě ;-)
> - Project Voldemort (ale Java)
> - Apache Cassandra (taky Java, navic Facebook presel na HBase)
> - HBase (ale Java, navic to s sebou tahne cely Hadoop)
> - Riak (zatim muj favorit, i kdyz nevim jestli se nemam bat Erlangu :-)
> - CouchBase (nema plnohodnotne rozhrani pro Perl, jestli se nepletu)
Záleží na tom co myslíte plnohodnotným rozhraním ... CouchDB má záměrně
RESTful JSON API, o ničem dalším nevím. Navíc CouchDB + Membase vypadá
jako zajímavá kombinace (document store + k/v store).
T.
Další informace o konferenci Linux