New option to cache data - #6500
Conversation
|
Reading over @keith-turner's notes in #6023, I'm not sure that this is the implementation that he envisioned. He said,
Accumulo has a Block Cache Manager SPI and provides two implementations (Lru and TinyLFU) that store uncompressed cached blocks on heap. There are also two other implementations that use the on-heap block cache as a L1 cache and then use some other facility for storing blocks off-heap. Those implementations are https://github.com/keith-turner/accumulo-ohc and https://github.com/dlmarion/accumulo-shared-offheap-cache. I think what @keith-turner was suggesting is that the SPI implementation could cache the off-heap blocks in a compressed manner and handle the compression / decompression. This would likely require no changes to Accumulo code. |
Closes issue #6023
Implements a new optional compressed block cache for
RFileblocks. Currently Accumulo's primary block cache stores uncompressed blocks for tablets with high compression ratios. This means cached data takes up more space on the Heap than the corresponding on-disk footprint, reducing the number of distinct blocks that can be held in memory.The changes here add an optional compressed data cache to
TabletServersandScanServers. When enabled blocks are compressed before being stored in the secondary cache and transparently decompressed when read. The feature is disabled by default, so existing deployments are unchanged unless the new properties are used.Changes:
CompressedBlockCacheto compress blocks before storing them and decompressing them on retrieval