为什么cassandra会解压缩已压缩的数据

时间:2017-02-16 11:40:43

标签: cassandra datastax-java-driver

在cassandra 2.2.7中有关于数据压缩/解压缩的问题。

我使用java cassandra驱动程序启用压缩。 cassandra表也配置为使用sstable压缩。 cassandra.yaml中还有配置选项:

commitlog_compression:
- class_name: LZ4Compressor

在所有情况下都使用LZ4算法。

在我的情况下,LZ4将0.5G数据压缩到40Mb。在将数据发送到套接字驱动程序压缩之前,设置COMPRESSED标志并发送到cassandra服务器。通过调试,我看到确切地将40Mb写入了socker。 Cassandra服务器通过OutOfMemoryError接收,解压缩并消亡。

我认为它不会解压缩已压缩的数据并将其存储在目标表中。是否可以选择告诉cassandra在处理之前不解压缩数据?

更多细节。 Cassandra服务器有Server.Initial个类,用于初始化netty ChannelPipeline并附加几个ChannelHandler。其中一个ChannelHandlerFrame.Decompressor。它检查给定帧是否有COMPRESSED标志并解压缩数据(如果存在)。

0 个答案:

没有答案