Re: How to change the compression of one existing collection?

From: Kevin Adistambha <kevinadi@xxxxxxxxxxx>
To: mongodb-user <mongodb-user@xxxxxxxxxxxxxxxx>
Date: Mon, 2 May 2016 00:11:34 -0700 (PDT)
Why ads?


Hi Matthieu,

I have a DB with several (quite big) collections, on Mongo 3.2.5 and 
WiredTiger with snappy compression on. 

I would like to change the compression setting on one small collection I 
have to test it uncompressed. Is there a possibility to do that on a 
secondary without having to resync the whole DB?

It is not possible to change the block_compressor option of an existing 
collection.

However, you can create a new collection with the required options and 
replace the old collection:

   1. Create a new collection with the parameters you need, as described in 
   the Specify Storage Engine Options 
   <https://docs.mongodb.org/manual/reference/method/db.createCollection/#specify-storage-engine-options
   page. E.g.: db.createCollection( "uncompressed", { storageEngine: { 
   wiredTiger: { configString: 'block_compressor=none' }}}) 
   2. Copy all data from the existing collection into the new collection. 
   *Note:* Please refrain from adding new data into the old collection 
   during this stage. 
   3. Drop the old collection and rename the new collection using 
   db.collection.renameCollection() 
   <https://docs.mongodb.org/manual/reference/method/db.collection.renameCollection/>, 
   so that the new collection replaces the old collection. 

Please note that by setting a custom field in the collection’s 
block_compressor setting, this setting will be permanently set on the 
collection and cannot be overridden.

Is there a possibility to do that on a secondary without having to resync 
the whole DB?

It is possible to mix different storage engines in a replica set, but it is 
currently not possible (as of MongoDB 3.2) to set different storage engine 
*options* for a collection in a replica set. I.e., if you custom-specify a 
collection to use no compressor, the collection will not be using 
compression across all secondaries as well (since collection creation 
options are replicated to the secondaries, and cannot be changed once the 
collection is created).

Best regards,
Kevin


-- 
You received this message because you are subscribed to the Google Groups "mongodb-user"
group.

For other MongoDB technical support options, see: https://docs.mongodb.org/manual/support/
--- 
You received this message because you are subscribed to the Google Groups "mongodb-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mongodb-user+unsubscribe@xxxxxxxxxxxxxxxx.
To post to this group, send email to mongodb-user@xxxxxxxxxxxxxxxx.
Visit this group at https://groups.google.com/group/mongodb-user.
To view this discussion on the web visit https://groups.google.com/d/msgid/mongodb-user/12d5933c-c65b-45ac-9fb2-d4190b9c309c%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Why ads?