MongoDB + wiredTiger + compression - is compression performed on client or server?

MongoDB 2.8-rc0 supports compression through the wiredtiger storage engine, as described in the release notes .

My question is, is the data compressed in the API at the client level or at the server? Basically I want to know if enabling compression will reduce network bandwidth requirements (and how a side effect of increasing bandwidth and decreasing latency) if my server and client are on different hosts. Or is it the equivalent of running the old mmap storage engine on top of a transparently compressed disk, as described in this jira for example ?

There is some information about the new storage device here , but I don't have much experience with mongoDB and am looking for feedback from someone who has already experimented with it.

+3


source to share


2 answers


Not a StackOerflow theme, so this really needs to be migrated. I'm sure that when they are labeled as such, you get something.

The inclusion of WiredTiger in MongoDB 2.8 (Release Candidate since writing) is an alternative storage engine for the standard baseline "mmap" solution that was current prior to this release.

The main "short" answer here is that "compression" is handled by the server, and this pretty much addresses many of the issues that MongoDB's data storage format has been rather overkill in previous releases.



To refer to the "compression" capabilities between "client" and "server" (which means between hosts), the existing protocol uses BSON over wired transfers (optionally encrypted over SSL), but the changes do not allow "over the wire" compression without external utilities.

So part of the point where the WiredTiger storage engine is turned on comes down to reducing the size of the file store rather than transferring it over the network.

+4


source


Since compression is a feature of the storage engine, compression occurs on the server side, which does not reduce the bandwidth requirement.



+2


source







All Articles