sistemi di Cache - Hypertable vs Memcached
-
12-09-2019 - |
Domanda
Voglio realizzare un sistema di cache per la nostra applicazione, abbiamo iniziato l'integrazione con Memcached. Recentemente ho iniziato a sentire di Hypertable, e ho visto alcuni grandi punti di riferimento fatto con quello ..
Tuttavia, non ho potuto trovare un buon confronto tra i due.
Solo per ottenere le cose a posto : So che Hypertable è considerato più vicino a un DB che ad una cache. D'altra parte, non è esattamente un RDBMS - in realtà, è esattamente non un RDBMS. Essa ha i suoi vantaggi, ma la questione è se che valgono il costo delle prestazioni (se del caso)?
Soluzione
Hypertable è un'implementazione di concetti in BigTable di Google. Cioè un DB colonna orientato che ha proprietà di essere altamente denormalizzato il che significa che doesn' t necessità si unisce.
Memcached è uno strato in memoria cache che agisce come un distribuito tabella hash , mantenendo la vostra applicazione di dover colpire il DB attuale.
Entrambi si prestano bene ad essere distribuito e lavorare bene con MapReduce topologie di stile ma servono scopi diversi. Memcached / DHT sta per servire per velocizzare l'accesso ai dati in memoria mentre Hypertable / BigTable sono reali meccanismi per la memorizzazione permanente dei dati sul disco.
Altri suggerimenti
Memcached è utilizzato per accelerare le cose, per esempio risultati di query SQL, senza andare a DB, memorizzando tutto in memoria (RAM).
Hypertable (HBase, Cassandra, MongoDB etc.) e altri sono memoria permanente NoSQL DB (dati archiviati e recuperati da dischi rigidi). Non si possono dare le prestazioni della lettura / scrittura da / a RAM (ad esempio memcached). Quindi queste non vengono confrontati gli uni agli altri.
Un caso d'uso migliore è quello di utilizzare NoSQL DB per la memorizzazione permanente, e utilizzando memcached come cache di accesso front-side tra web-application e (NoSQL o qualsiasi) DB.