We have a rather simple bucket setup: couchbase bucket with 1 replica on a 4 node cluster. It is storing simple key-value pairs (no views or indexes). We have run this setup for ~3 years on version 1.8 and then the last few months on version 2.5 of the enterprise edition.
We have had a process running for these last ~3 years that runs a stored procedure in the database, takes the ~16 result sets and hydrates an object graph and then stores that object in couchbase. The process runs every 15 min, asking the DB what’s changed, pulling the new data and updating the objects in couchbase.
Historically, our bucket would report 0% cache miss / 100% data in RAM (we have 60GB allocated to the bucket and our data is less than 30GB).
At some point, maybe around the time we upgraded both the server and the c# client from 1.8 to 2.5, we started seeing a lot of our data being pushed to disk, and our cache miss ratio going up.
My understanding of couchbase, which may have always been wrong, or it may have changed, was that the server would hold all keys and data in RAM unless the bucket ran out of space, at which point it would begin to shuffle the least used data to disk.
Has this changed? Am I missing something? How can I get my cache miss % and % in RAM numbers back to 0% / 100% ?