Domanda

Da tempo cerco soluzioni di cloud computing / archiviazione (ispirate a Google Bigtable). Ma non riesco a trovare una soluzione facile da usare e pronta per il business.

Sto cercando un Key = > Value DB semplice, tollerante ai guasti, come SimpleDB da Amazon.

Ho visto cose come:

  1. Il progetto CouchDB : database semplice e distribuito, tollerante ai guasti. Ma capisce solo JSON. Nessun connettore XML ecc.
  2. Eucalyptus : belle interfacce Amazon EC2. Standard aperti e amp; XML. Ma meno distribuito e meno tollerante ai guasti? Ci sono anche molti biglietti aperti con problemi XEN / VMWare.
  3. Cloudstore / Kosmosfs : Nizza distribuito, tollerante ai guasti fs. Ma è difficile da configurare. Ci sono dei connettori Java?
  4. Apache Hadoop : bel sistema che molto più che capacità di memorizzare i dati. Utilizza il proprio file system distribuito Hadoop ed è stato testato su cluster con 2000 nodi.
  5. * Amazon SimpleDB : impossibile trovare un'alternativa open source! È un sistema carino ma costoso per enormi quantità di dati. E sei dipendente da Amazon.

Esistono altre soluzioni migliori là fuori? Qual è il migliore da scegliere? Quale offre la più piccola quantità di SOF (Singe Point of Failure)?

È stato utile?

Soluzione

MongoDB è un'altra opzione molto simile a CouchDB, ma che utilizza un linguaggio di query molto simile a SQL anziché a map invece di map / riduci in JavaScript. Supporta inoltre indici, creazione di profili di query, replica e archiviazione di dati binari.

Ha un'enorme quantità di documentazione che potrebbe essere travolgente a prima vista, quindi suggerirei di iniziare con Tour dello sviluppatore

Altri suggerimenti

Che ne dici di memcached ?

Il blog High Scalability tratta questo problema; se c'è una soluzione open source per quello che stai cercando, sarà sicuramente lì.

Altri progetti includono:

Un altro buon elenco: Anti-RDBMS: un elenco di archivi di valori-chiave distribuiti

Wikipedia afferma che Yahoo entrambi contribuiscono a Hadoop e lo usano nella produzione ( articolo collegato da wikipedia ). Quindi direi che conta per la sua affidabilità, anche se non sono sicuro che valga come un database di valori K / V.

Non nell'elenco è il sistema Friendfeed che utilizza MySQL come semplice schema -less key / value store .

È difficile per me capire le tue priorità. CouchDB è semplice, tollerante agli errori e distribuito, ma in qualche modo lo si esclude perché non ha XML. I connettori XML e Java sono un requisito non dichiarato?

(Ad ogni modo, CouchDB dovrebbe in effetti essere escluso perché è giovane, la sua API non è stabile e non è un archivio di valori-chiave.)

Uso Google Google Base api, è Xml, gratuito, documentato, basato su cloud e ha connettori per molte lingue. Penso che riempirà il conto se vuoi anche l'hosting gratuito.

Ora se vuoi ospitare i tuoi server Tokyo cabinet è la tua risposta, la sua chiave = > value based, utilizza file flat ed è il database più veloce disponibile al momento (molto barebone rispetto a Oracle, ma incredibilmente bravo a archiviare e accedere ai dati, circa 1 milione di record al secondo, con circa 10byte di overhead (a seconda del motore di archiviazione)). Per quanto riguarda il business, TokyoCabinet è il cuore di un servizio chiamato Mixi, che è l'equivalente di Facebook + MyPage in Giappone, con diversi milioni di utenti pesanti, quindi in realtà è molto provato.

Se vuoi qualcosa come Bigtable, non puoi andare oltre HBase o Hypertable - sono entrambi cloni di Bigtable open-source. Una cosa da considerare, tuttavia, è se i tuoi requisiti sono davvero "abbastanza grandi" per Bigtable. Ridimensiona fino a migliaia di tablet server e, come tale, ha al suo interno un po 'di infrastruttura per consentire ciò (ad esempio, gestire le aspettative di guasti ai nodi regolari).

Se non prevedi di crescere almeno in decine di tablet server, potresti prendere in considerazione una delle alternative proposte: non puoi battere BerkelyDb per semplicità o MySQL per l'ubiquità. Se tutto ciò di cui hai bisogno è un archivio dati chiave / valore, puoi mettere un semplice wrapper 'dict' intorno all'interfaccia del database e cambiare il backend se ne superi uno.

Potresti voler guardare hypertable che è modellato sulla bigtable di Google.

Usa CouchDB

  • Cosa c'è che non va in JSON?
  • JSON a XML è banale

Potresti dare un'occhiata a questo (usando MySQL come archivio di valori-chiave):

http://bret.appspot.com/entry/how-friendfeed -Utilizza-mysql

Cloudera è una società che commercializza Apache Hadoop, con un certo valore aggiunto ovviamente, come la produttività, configurazione, addestramento e amp; servizi di supporto.

Invece di cercare qualcosa ispirato da il bigtable di Google- Perché non usare direttamente bigtable? Puoi scrivere un front-end su Google App-Engine.

Buona raccolta di strumenti di archiviazione per la tua domanda:

http: // www.metabrew.com/article/anti-rdbms-a-list-of-distributed-key-value-stores/

Tokyo Cabinet ha anche ricevuto una certa attenzione in quanto supporta schemi di tabelle, coppie di valori chiave e tabelle hash. Utilizza Lua come piattaforma di scripting incorporata e utilizza HTTP come protocollo di comunicazione. Ecco un grande dimostrazione .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top