2010-11-14 4 views

risposta

7

Tokyo Cabinet e Tyrant sono LGPL e scritti in C. Kyoto Cabinet e Tycoon sono GPLv3 e scritti in C++.

Kyoto Tyrant supporta i record scaduti in memoria, quindi può sostituire memcached.

Lo sviluppatore afferma che Kyoto * non è il successore di Tokyo *, ma è solo una strategia di marketing; se non svilupperai un prodotto commerciale, usa Kyoto. È più nuovo e migliore.

E ti suggerisco di leggere il blog dello sviluppatore (giapponese e inglese) e di leggere attentamente i file di intestazione (se vuoi usare la libreria).

Buona fortuna.

+1

[Kyoto Tycoon * solo * ha un plug-in che espone un server memcached] (http://fallabs.com/mikio/tech-en/promenade.cgi?id=20). Tokyo Tyrant ha la stessa caratteristica meno la scadenza della chiave. – Tobu

13

Tokyo Cabinet è più completo e stabile, Kyoto è ancora troppo fresco (oggi è l'8 dicembre 2010) e presenta alcuni problemi. Kyoto, scritto in C++, è (molto) più semplice di Tokyo (scritto in C), ma questa semplicità lascia un po 'di spazio. La performance di Kyoto è leggermente peggiore di Tokyo, ma funziona meglio con i thread (almeno la documentazione lo promette).

Dalla documentazione ufficiale:

< < Nel 2007, Tokyo Gabinetto è stato sviluppato come il successore QDBM sui seguenti scopi. Sono stati raggiunti e il Gabinetto di Tokyo potrebbe sostituire i prodotti DBM convenzionali.

(...)

Nel 2009, Kyoto Gabinetto è stato sviluppato come un altro successore di QDBM. Rispetto al prodotto fratello (Tokyo Cabinet), sono stati perseguiti i seguenti vantaggi. Tuttavia, le prestazioni del Gabinetto di Tokyo sono superiori a quelle del Gabinetto di Kyoto, almeno nelle operazioni a thread singolo. >>

Ho usato entrambi, ma preferisco ancora Tokyo, perché ho avuto un problema con Kyoto: In Kyoto Cabinet Database using File Hash Database, how can avoid file size increasing? e nessuno è stato in grado di aiutarmi. Non so ancora come risolverlo.

Nella mia esperienza personale, ho trovato Kyoto più facile da compilare e installare, e anche più facile da usare. Ho avuto grossi problemi con le dipendenze della libreria di Tokyo e problemi nel collegare la libreria nativa con l'interfaccia Java. Con Kyoto tutto era buono e funziona bene al primo tentativo. Ma, come ho detto prima, sento più controllo sul database usando Tokyo.

+0

Ciao. Quali altri problemi di Kyoto hai affrontato? – Jeff

+0

Potete informarmi, il Gabinetto di Tokyo supporta l'implementazione B + Tree su memoria e come ottenerlo? Perché in alcuni articoli sul Web che ho trovato, supporta ma non riesce a trovare alcun documento che spieghi come farlo. Spiacente, per domande come questa, ma non riesci a trovare alcun utente esperto di Tokyo per risolvere questo problema. – Arpssss

+1

E adesso? ancora trovando Tokyo più consolidata di Kyoto? – amertkara

2

La differenza più importante tra i due per quanto riguarda i miei casi d'uso è che TC ha un "database di tabelle" mentre KC non ha.

Sì, è possibile serializzare dati arbitrari su stringa e archiviarli come valore articolo, ma non è possibile effettuare la ricerca per valore oppure è necessario scorrere l'intero set di dati e deserializzare ciascun elemento o reinventare la rotellina e manualmente indicizzare i dati.

Il TDB di Tokyo Cabinet offre eccellenti funzionalità di query per i dati nidificati (indici, confronto di stringhe numeriche e di stringa, anche espressioni regolari all'interno di "campi"). La cosa di Kyoto è solo un negozio KV; TC è anche un potente database orientato ai documenti.

1

Inoltre, in base ai test che ho fatto, il protocollo di Kyoto è basato solo su HTTP - più aperto, ma più lento del protocollo binario di Tokyo.

+1

KyotoTycoon è basato su HTTP: non a Kyoto. – MechanTOurS

+0

Sicuro. "Kyoto" non significa niente. Il prodotto si chiama Kyoto Cabinet (lib) e Kyoto Tycoon (server) – Nick

Problemi correlati