ZStandard Compression не работает в MongoDB v4.2.7

  • Настроить:

Я использую MongoDB v4.2.7 вместе с драйвером.Net MongoDB v2.11.0(бета v) на машине с Windows 10.

  • Код
var mongoClientSettings = new MongoClientSettings();

mongoClientSettings.Compressors = new List<CompressorConfiguration>() {
       new CompressorConfiguration(CompressorType.ZStandard)
    };

var client = new MongoClient(mongoClientSettings);

IMongoDatabase testdb = client.GetDatabase("testdb");

var eaiRequestLogsCollection = testdb.GetCollection<EAIRequestsLogMDB>("EAIRequestsLogs");

eaiRequestLogsCollection.InsertMany(eAIRequestsLogMDBs);
  • Конфиг

Я отредактировал свой файл mongod.cfg следующим образом:

storage:
  dbPath: C:\Program Files\MongoDB\Server\4.2\data
  journal:
    enabled: true
  engine: "wiredTiger"
  wiredTiger:
      collectionConfig:
         blockCompressor: "zstd"
  • Проблема:

После того, как коллекция и документы добавлены успешно, я запустил db.printCollectionStats() на оболочке монго, и я получил block_compressor=snappy в разделе WiredTiger, пока он должен быть block_compressor=zstd.

Ниже приведен снимок экрана вывода d b.Stats(1024*1024*1024), а также "dataSize": 0,08773485571146011 и "storageSize": 0,009387969970703125.

1 ответ

Я разместил вопрос на форумах сообщества разработчиков MongoDB, и мне сообщили, что мой код на C# устанавливает сетевое сжатие, а не block_compressor.

Это правильный код на C#, который у меня сработал:

var client = new MongoClient("mongodb://127.0.0.1:27017");
IMongoDatabase testdb = client.GetDatabase("testdb");

testdb.CreateCollection("EAIRequestsLogs", new CreateCollectionOptions()
 {
   StorageEngine = new BsonDocument 
   {
        { "wiredTiger", new BsonDocument 
           {
               {  "configString" , "block_compressor=zstd"}
           } 
        }
   }
 });
var eaiRequestLogsCollection = testdb.GetCollection<EAIRequestsLogMDB>("EAIRequestsLogs");

С уважением.

Другие вопросы по тегам