Я знаю, что есть несколько сообщений в StackOverflow о REST и Thrift для HBase, но я хотел бы немного сфокусироваться на вопросе производительности.
Я играл со следующими библиотеками в Node.js для подключения к экземпляру HBase:
- node -hbase: https://github.com/wdavidw/node-hbase
- node -thrift: https://github.com/apache/thrift/tree/trunk/lib/nodejs
После некоторых проблем с выяснением причин, по которым я не получил ответы от шлюза Thrift, я, наконец, получил оба скрипта со следующими результатами (каждый вывод равен 1000 выполненных операций):
┌─[[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]
└──╼
Сценарии можно найти здесь: https://github.com/stelcheck/node-hbase-vs-thrift
Мой вопрос: кто-нибудь заметил большую разницу между REST и Thrift для HBase (или даже вообще для любых приложений/языков)?