2013-05-24 11 views
10

So che ci sono un paio di post su StackOverflow su REST e Thrift per HBase, ma vorrei concentrarmi un po 'sulla questione delle prestazioni.HBase: Prestazioni di risparmio vs Riposo

Ho giocato con le seguenti librerie di Node.js per connettersi a un'istanza HBase:

Dopo un po ' problemi nel capire perché non otterrei le risposte dal gateway Thrift, finalmente ho entrambi gli script in esecuzione, con i seguenti risultati (ogni uscita equivale a 1000 operazioni completate):

┌─[[email protected]]─[~/Sources/node-hbase] 
└──╼ node hbase.js 
hbase-write: 99ms 
hbase-write: 3412ms 
hbase-write: 3854ms 
hbase-write: 3924ms 
hbase-write: 3808ms 
hbase-write: 9035ms 
hbase-read: 216ms 
hbase-read: 4676ms 
hbase-read: 3908ms 
hbase-read: 3498ms 
hbase-read: 4139ms 
hbase-read: 3781ms 
completed 
┌─[[email protected]]─[~/Sources/node-hbase] 
└──╼ node thrift.js 
hbase-write: 4ms 
hbase-write: 931ms 
hbase-write: 1061ms 
hbase-write: 988ms 
hbase-write: 839ms 
hbase-write: 807ms 
hbase-read: 2ms 
hbase-read: 435ms 
hbase-read: 562ms 
hbase-read: 414ms 
hbase-read: 427ms 
hbase-read: 423ms 
completed 
┌─[[email protected]]─[~/Sources/node-hbase] 
└──╼ 

Gli script utilizzati possono essere trovate qui: https://github.com/stelcheck/node-hbase-vs-thrift

La mia domanda è, qualcuno ha notato come grande di una differenza tra riposo e di risparmio per HBase (o anche solo in generale per tutte le applicazioni/lingue)?

+0

Secondo benchmark collegati in http://stackoverflow.com/questions/11025901/is-there-any-performance-benchmark-for-thrift-on-hbase, Thrift è davvero molto veloce ... ma per quanto riguarda REST ? A quanto pare, non dovrebbe esserci molta differenza dopo tutto ... –

risposta

5

REST fornisce come XML o JSON in modo che lo schema sia presente nei dati stessi. Il risparmio non lo fa: è solo un carico di byte che può essere deserializzato solo contro un'entità generata (in base alla definizione IDL di risparmio).

Quindi, a prescindere da come i dati vengono compressi, la parsimonia è destinata ad essere più veloce in quanto non ha schemi con esso, al "costo" di essere dipendente da altri oggetti per interpretare i dati binari.

+0

Questo deve spiegare una parte della differenza, ma sicuramente non tutto? Inoltre, se riduco la frequenza del registro da 1000 richieste a 100, vedo chiaramente che va veloce per un po ', quindi attendo ... in pratica, ogni 200-300 richieste. –

2

si consiglia di provare questo: https://github.com/alibaba/node-hbase-client

Si collega direttamente al server regione & Zookeeper.

+0

Sembra davvero fantastico! Anzi, preferirei non dover usare Thrift o REST alla fine. –

+0

Dnode? https://github.com/substack/dnode – xrDDDD