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");
С уважением.