Details
-
Sub-task
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
-
None
-
Reviewed
Description
Currently we have a separate cache for partitions and partition col stats which results in some calls iterating through each of these for retrieving/updating. For example, to modify a partition col stat, currently we need to lock table, partition and partition col stats caches which are all separate hashmaps. We can get better performance by organizing hierarchically. For example, we can have a partition, partition col stats and table col stats cache per table to improve on the previous mechanisms. This will also result in better concurrency, since now instead of locking the whole cache, we can selectively lock the table cache and modify multiple tables in parallel.
In addition, currently, the prewarm mechanism populates all the caches initially (it skips tables that do not pass whitelist/blacklist filter) and it is a blocking call. This patch also makes prewarm non-blocking so that the calls for tables that are already cached can be served from the memory and the ones that are not can be served from the rdbms.
Attachments
Attachments
Issue Links
- links to