代码之家  ›  专栏  ›  技术社区  ›  Nickpick

如何确保pymongo对wire协议使用snapy压缩

  •  0
  • Nickpick  · 技术社区  · 6 年前

    我使用的是MongoDB3.6服务器和PyMongo3.4。

    如何确保MongoDB使用Snappy压缩进行数据传输?

    在MongoDB日志中,我看到Snappy已启用:

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

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

    如何确保对有线协议应用压缩?Pymongo的版本有什么关系吗?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Alex Blex    6 年前

    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配置服务器端的存储选项中定义,不能从客户端更改。