如何确保 pymongo 对有线协议使用 snappy 压缩
How to ensure pymongo is using snappy compression for wire protocol
我正在使用 mongodb 3.6 服务器和 pymongo 3.4。
如何确保 mongodb 正在使用 snappy 压缩进行数据传输?
在 mongodb 日志中,我看到 snappy 已启用:
app_metadata=(formatVersion=1),assert=(commit_timestamp=none,read_timestamp=none),block_allocation=best,block_compressor=snappy,
但是,当我通过 pymongo 发出请求时,我如何确定实际应用了 snappy 压缩?我已经尝试将 mongodb://localhost/?compressors=zlib 添加到连接字符串,但添加 compressors=whatever 似乎没有任何区别。
如何确保对有线协议应用压缩? pymongo 的版本重要吗?
https://docs.mongodb.com/manual/reference/program/mongo/#cmdoption-mongo-networkmessagecompressors 读作:
Messages are compressed when both parties enable network compression. Otherwise, messages between the parties are uncompressed.
在客户端我读到https://api.mongodb.com/python/current/changelog.html#changes-in-version-3-7-0:
Support for wire protocol compression
因为它在 v3.7 之前不受支持。
您在日志中看到的 block_compressor
可能是存储压缩,而不是线路压缩。它在 mongodb 配置服务器端的存储选项中定义,不能从客户端更改。
我正在使用 mongodb 3.6 服务器和 pymongo 3.4。
如何确保 mongodb 正在使用 snappy 压缩进行数据传输?
在 mongodb 日志中,我看到 snappy 已启用:
app_metadata=(formatVersion=1),assert=(commit_timestamp=none,read_timestamp=none),block_allocation=best,block_compressor=snappy,
但是,当我通过 pymongo 发出请求时,我如何确定实际应用了 snappy 压缩?我已经尝试将 mongodb://localhost/?compressors=zlib 添加到连接字符串,但添加 compressors=whatever 似乎没有任何区别。
如何确保对有线协议应用压缩? pymongo 的版本重要吗?
https://docs.mongodb.com/manual/reference/program/mongo/#cmdoption-mongo-networkmessagecompressors 读作:
Messages are compressed when both parties enable network compression. Otherwise, messages between the parties are uncompressed.
在客户端我读到https://api.mongodb.com/python/current/changelog.html#changes-in-version-3-7-0:
Support for wire protocol compression
因为它在 v3.7 之前不受支持。
您在日志中看到的 block_compressor
可能是存储压缩,而不是线路压缩。它在 mongodb 配置服务器端的存储选项中定义,不能从客户端更改。