High Water Mark and Low Water Mark in Couchbase

Hi Team,

Could anyone help me to understand High Water Mark and Low Water Mark in Couchbase.
I tried to search in CB docs but I did not find proper definition. How to set it in CB UI.


Hello @Debasis_Mallick

The HWM/LWM are levels of memory usage that are used to control items in the Data Service’s cache.
See the documentation on ejection in the Data Service. Memory | Couchbase Docs

" For each bucket, available memory is managed according to two watermarks, which are mem_low_wat and mem_high_wat. If data is continuously loaded into the bucket, its quantity eventually increases to the value indicated by the mem_low_wat watermark. At this point, no action is taken. Then, as still more data is loaded, the data’s quantity increases to the value indicated by the mem_high_wat watermark. If, based on the bucket’s configuration, items can be ejected from the bucket, the Data Service ejects items from the bucket until the quantity of data has decreased to the mem_low_wat watermark. In cases where ejection cannot free enough space to support continued data-ingestion, the Data Service stops ingesting data, error messages are sent to clients, and the system displays an insufficient memory notification. When sufficient memory is again available, data-ingestion resumes.

Items are selected for ejection based on metadata that each contains, indicating whether the item can be classified as Not Recently Used (NRU). If an item has not been recently used, it is a candidate for ejection."

It’s incredibly rare to change the HWM/LWM in Couchbase Server, the defaults are well tested and service the vast majority of use-cases. Maybe what you’re trying to achieve can be done without changing these ?

Ian McCloy (Couchbase, Dir Product)