如何确保pymongo对线协议使用快照压缩

时间:2018-07-02 15:48:15

标签: python mongodb compression pymongo snappy

我正在使用mongodb 3.6服务器和pymongo 3.4。

如何确保mongodb使用快速压缩进行数据传输?

在mongodb日志中,我看到启用了snappy:

app_metadata=(formatVersion=1),assert=(commit_timestamp=none,read_timestamp=none),block_allocation=best,block_compressor=snappy,

但是如何确定当我通过pymongo发出请求时,实际上已应用了快速压缩?我已经尝试过将mongodb:// localhost /?compressors = zlib添加到连接字符串中,但是添加Compressor = whatever似乎没有什么区别。

如何确保将压缩应用于有线协议? pymongo的版本有关系吗?

1 个答案:

答案 0 :(得分:1)

https://docs.mongodb.com/manual/reference/program/mongo/#cmdoption-mongo-networkmessagecompressors读为:

  当双方启用网络压缩时,

消息将被压缩。否则,双方之间的消息将不被压缩。

在客户端,我读了https://api.mongodb.com/python/current/changelog.html#changes-in-version-3-7-0

  

支持有线协议压缩

因为v3.7之前不支持。

您在日志中看到的block_compressor可能是存储压缩,而不是有线压缩。它是在mongodb config服务器端的存储选项中定义的,不能从客户端更改。