Hi all,

Currently, when the fallback is initiated for a column page in case of
local dictionary, we are keeping both encoded data
and actual data in memory and then we form the new column page without
dictionary encoding and then at last we free the Encoded Column Page.
Because of this offheap memory footprint increases.

We can reduce the offheap memory footprint. This can be done using decoder
based fallback mechanism.
This means, no need to keep the actual data along with encoded data in
encoded column page. We can keep only encoded data and to form a new column
page, get the dictionary data from encoded column page by uncompressing and
using dictionary data get the actual data using local dictionary generator
and put it in new column page created and compress it again and give to
consumer for writing blocklet.

The above process may slow down the loading, but it will reduces the memory
footprint. So we can give a property which will decide whether to take
current fallback procedure or decoder based fallback mechanism dring
fallback.
Any inputs or suggestions are welcomed.


Regards,
Akash

Reply via email to