This results in space savings for even smallish documents, for several reasons:
- Englishy language compresses by a factor of 4.
- We use a whole double to store every number, so arrays of small numbers compress by a factor of 10 (counting protobuf overhead).
- Our protobuf format has to use multiple type tags for every datum term -- we have a type for the term, then a type for the datum. Compressing away protobuf overhead alone gives pretty good savings (although this is harder to quantify).
This results in space savings for even smallish documents, for several reasons: