gaodayue commented on PR #9521: URL: https://github.com/apache/incubator-doris/pull/9521#issuecomment-1127505782
@xinyiZzz thanks for your reply, I will answer inline > The lru cache is used globally in Doris, and the resize is very low frequency. It will only be resized frequently when the BE is cold started. A bit of context for this PR: we observed several latency spikes after restarting BE and found that it's caused by the resize operation (see the graph below), so we'd like to improve the resize operation in order to avoid any query timeout.  The cluster uses 200G page cache per BE and resizing single shard to 8 million entries took >2 seconds. > Please provide test results to demonstrate the performance and memory usage benefits of singly linked list, especially at high concurrency. I wrote a simple program to test the resize speed. From the results, we can see that for large resize, this PR reduces the resize duration by 60%. This PR also reduces the memory usage, but it's not our main concern. ``` -- before the PR resize to 16 takes 5 us resize to 32 takes 6 us resize to 64 takes 6 us resize to 128 takes 14 us resize to 256 takes 23 us resize to 512 takes 49 us resize to 1024 takes 102 us resize to 2048 takes 193 us resize to 4096 takes 444 us resize to 8192 takes 813 us resize to 16384 takes 1708 us resize to 32768 takes 3391 us resize to 65536 takes 7104 us resize to 131072 takes 16235 us resize to 262144 takes 38272 us resize to 524288 takes 88278 us resize to 1048576 takes 184775 us resize to 2097152 takes 380625 us resize to 4194304 takes 774974 us resize to 8388608 takes 1573816 us resize to 16777216 takes 3170542 us -- after the PR resize to 16 takes 5 us resize to 32 takes 2 us resize to 64 takes 2 us resize to 128 takes 2 us resize to 256 takes 3 us resize to 512 takes 4 us resize to 1024 takes 8 us resize to 2048 takes 18 us resize to 4096 takes 36 us resize to 8192 takes 82 us resize to 16384 takes 170 us resize to 32768 takes 406 us resize to 65536 takes 753 us resize to 131072 takes 1754 us resize to 262144 takes 6720 us resize to 524288 takes 24822 us resize to 1048576 takes 58967 us resize to 2097152 takes 132347 us resize to 4194304 takes 278078 us resize to 8388608 takes 587134 us resize to 16777216 takes 1212146 us ``` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
