用于附件的 CouchDB snappy
CouchDB snappy for attachments
我正在使用 CouchDB 1.6.1。在 Futon 中,在 Overview Configuration 下,attachments Section 有一个字段:compression_level 8。
这看起来像是 zlib 对我的缩小,另请参阅 http://docs.couchdb.org/en/latest/config/misc.html#attachments
在couchdb Section下,有字段:file_compression snappy
据我了解,附件是用 zlib 压缩的,而实际文件是用 snappy 压缩的?
如果是这样,有没有办法在 CouchDB 中使用 snappy 进行附件压缩?
没错:附件只支持gzip压缩,而docs等数据库元信息默认使用snappy(1.3版本起)。附件不支持 snappy 的原因很简单——snappy 不是标准 content encoding algorithm 并且没有浏览器支持它,而 gzip 几乎被每个 HTTP 客户端广泛支持。
因此,如果 CouchDB 使用 snappy 压缩存储附件,它必须使用 gzip 对其进行解码和编码,以保持广泛兼容性的方式发送回客户端。而且这种解码-编码操作相当 CPU 昂贵。所有其他选项都会导致与 HTTP 客户端不兼容,或者再次导致操作开销。对于 gzip 编码,CouchDB 只发送存储在数据库文件中的附件,而不对其内容进行任何额外操作。
我正在使用 CouchDB 1.6.1。在 Futon 中,在 Overview Configuration 下,attachments Section 有一个字段:compression_level 8。 这看起来像是 zlib 对我的缩小,另请参阅 http://docs.couchdb.org/en/latest/config/misc.html#attachments
在couchdb Section下,有字段:file_compression snappy
据我了解,附件是用 zlib 压缩的,而实际文件是用 snappy 压缩的?
如果是这样,有没有办法在 CouchDB 中使用 snappy 进行附件压缩?
没错:附件只支持gzip压缩,而docs等数据库元信息默认使用snappy(1.3版本起)。附件不支持 snappy 的原因很简单——snappy 不是标准 content encoding algorithm 并且没有浏览器支持它,而 gzip 几乎被每个 HTTP 客户端广泛支持。
因此,如果 CouchDB 使用 snappy 压缩存储附件,它必须使用 gzip 对其进行解码和编码,以保持广泛兼容性的方式发送回客户端。而且这种解码-编码操作相当 CPU 昂贵。所有其他选项都会导致与 HTTP 客户端不兼容,或者再次导致操作开销。对于 gzip 编码,CouchDB 只发送存储在数据库文件中的附件,而不对其内容进行任何额外操作。