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.
   
   
![image](https://user-images.githubusercontent.com/1198446/168571937-1e01780a-bc8e-44ca-af62-712978711751.png)
   
   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]

Reply via email to