Description
In case of high frequency of updating table, memory consumption of kudu-tserver may be very high, and the memory in not tracked in the memory page.
This is the memory usage of a tablet, the memory consumption of tablet-xxx‘s peak is 3.6G, but none of its' childrens' memory can reach.
So I use pprof to get the heap sampling. The tserver started for long but the memory is still consuming by TabletBootstrap:PlayAlterSchemaRequest.
I change the `old_schemas_` in tablet_metadata.h to a fixed size vector,
// Previous values of 'schema_'.
// These are currently kept alive forever, under the assumption that
// a given tablet won't have thousands of "alter table" calls.
// They are kept alive so that callers of schema() don't need to
// worry about reference counting or locking.
std::vector<Schema*> old_schemas_;
The heap sampling then becomes
So, to make application layer more flexible, it could be better to make the size of the old_schemas configurable.