Description
The API to configure the KuduSession memory is very confusing. It's not obvious how to pick good values for SetMutationBufferSpace(), SetMutationBufferMaxNum(), and SetMutationBufferFlushWatermark(). My understanding is that a user might:
- pick some amount of memory M to be used for the mutation buffer space, though this isn't obvious (high values increase throughput, but too high and the writes may overwhelm tservers)
- set the flush watermark pct to (1/NumBuffers) where NumBuffers = ( M / 7MB) , and where 7MB is Kudu's internal buffer size
(formula from tlipcon) - Set SetMutationBufferMaxNum(0) since the max buffers wouldn't be necessary.
This is what Impala does at the moment, but this is very complicated.