We have an application that uses Couchbase Server 4.0 and Couchbase Lite to syncrhonize the data to different mobile devices.
Our application has documents (JSON) and those documents have attachments.
Right now, we have noticed that around 90% of our database size comes from the attachments (images, video, audio).
While we know that it is a recommended practice to store the attachments outside Couchbase, we would like to keep it this way so we can keep the nice replication it has for mobile devices.
Right now, it shows that the used memory is pretty much the same size of the database size on disk (see attached images).
But eventually, as more documents and attachments come, we will store more elements than the ones that we can keep in memory.
While the documents (JSON) are commonly used and edited, the attachments (images, videos) are usually static: they don’t change after they are created.
Our question is:
What can we expect once the memory limit is reached?
- Based on the eviction policy, the attachments would be left out, leaving free memory for the documents (JSON)?
- Would the performance be affected significantly in a bad way?
- We basically only access the attachments when they need to be sincronized to the client (mobile device).
Has anybody had any similar experience?
Is there a way to modify the cache behavior? Keep the attachments out of memory?