In our application we write fairly large K/V pairs - about 60Kbyte each. These are image chips. We set a fairly long TTL on these - 1 week.
When we need a image chip we request it from Couchbase via a GAT operation. If it exists we re-set the TTL to 1 week with the goal to keep those chips access alive in the cache, and let the stale content expire.
The problem we are seeing is that a GAT operation does not simply update the TTL in the metadata but causes the entire K/V (with new TTL) to be appended to the end of the disk file. This causes fragmentation to grow quite quickly of the document store, requiring lots of compactions to keep it in control.
So my question is why does a TTL update (metadata) even require this to occur and is there a way to tune around this?
We should be able to update just the meta-data for GAT, instead of rewriting the whole doc.