2017-02-23 142 views
0

HBase имеет собственную систему кэширования и для чтения запросов он будет выполнять поиск из кэша до получения данных из HDFS. Но его производительность кеша может быть затруднена размером памяти JVM, и именно по этой причине я хочу использовать Redis в качестве кэша HBase.Могу ли я улучшить производительность чтения HBase, используя Redis в качестве кеша?

+0

просто не делайте этого, недействительность кэша является одной из двух основных проблем программирования – AdamSkywalker

ответ

0

Пожалуйста, не делайте этого. Использование одной базы данных в качестве кеша для другой базы данных может легко превратиться в кошмарную ситуацию. Работа с сценариями недействительности кэша сама по себе может быть сложной задачей.

  1. Если вам нужен кеш в памяти на уровне приложения, я все равно буду отговаривать его, но это отдельное обсуждение.
  2. На уровне базы данных, если кеш блоков HBase недостаточно хорош для вашего прецедента, либо HBase не является хорошей системой для вашего варианта использования, либо вы не используете его правильно. Если ваша единственная проблема заключается в том, что у вас много памяти/флэш-памяти (SSD), но HBase не может ее правильно использовать из-за ограничений JVM; вы можете использовать bucketcache HBase, который можно использовать для кэширования блоков с кучи или на твердотельном хранилище (hbase.bucketcache.ioengine). Я бы посоветовал вам ознакомиться с основами кэширования HBase here.