lhotari commented on PR #24623:
URL: https://github.com/apache/pulsar/pull/24623#issuecomment-3210050682
I have updated the test to be more realistic. There's now a way to simulate
that the cached entries are 8kB of size. I added a required internal interface
`EntryLengthFunction` and integration in the `PulsarTestContext` framework to
support this.
The test now tests with 10 topic partitions, producer throughput of
50000msg/s and with 250MB cache size.
PIP430 implementation is again superior to others, with the cache hit
percentage of 98.4%. It turns out that the previous default cache strategy
(76.85%) beats cacheEvictionByMarkDeletedPosition (59.97%) and PR12258 (52.09%)
when the cache size is the main constraint.
```shell
❯ ENABLE_MANUAL_TEST=true NETTY_LEAK_DETECTION=off mvn -pl pulsar-broker
test -Dtest=BrokerEntryCacheRollingRestartTest
...
{ cat pulsar-broker/target/rolling_restarts_result_header.txt; cat
pulsar-broker/target/rolling_restarts_result_*.csv } | duckdb -markdown -c
"select description, round(avg(hits), 2), round(avg(misses),2), avg(produced),
avg(consumed), avg(bk_reads), avg(bk_read_entries) from read_csv('/dev/stdin')
group by description order by 3"
```
| description | round(avg(hits), 2) |
round(avg(misses), 2) | avg(produced) | avg(consumed) | avg(bk_reads) |
avg(bk_read_entries) |
|------------------------------------|--------------------:|----------------------:|--------------:|--------------:|--------------:|---------------------:|
| PIP430 | 98.6 | 1.4
| 1549271.0 | 15504486.2 | 2351.0 | 216622.0 |
| PIP430disabled | 76.85 | 23.15
| 1549220.8 | 15515415.4 | 60024.2 | 3592180.0 |
| cacheEvictionByMarkDeletedPosition | 59.97 | 40.03
| 1548167.6 | 15514712.0 | 78794.2 | 6208959.4 |
| PR12258 | 52.09 | 47.91
| 1518004.4 | 15213489.2 | 76129.4 | 7280525.8 |
details:
```shell
❯ { cat pulsar-broker/target/rolling_restarts_result_header.txt; cat
pulsar-broker/target/rolling_restarts_result_*.csv } | duckdb -markdown -c
"select * from read_csv('/dev/stdin') "
```
| description | produced | consumed | consumers |
bk_reads | bk_read_entries | hits | misses | restarts | ts
|
|------------------------------------|---------:|---------:|----------:|---------:|----------------:|------:|-------:|---------:|-------------------------|
| PR12258 | 1532416 | 15361949 | 10 |
66934 | 6394537 | 58.37 | 41.63 | 3 | 2025-08-21
10:37:53.371 |
| PR12258 | 1549702 | 15531430 | 10 |
71797 | 6764940 | 56.44 | 43.56 | 3 | 2025-08-21
10:38:26.935 |
| PR12258 | 1528875 | 15308816 | 10 |
80130 | 7702434 | 49.69 | 50.31 | 3 | 2025-08-21
10:39:00.267 |
| PR12258 | 1505071 | 15088036 | 10 |
84316 | 8105838 | 46.28 | 53.72 | 3 | 2025-08-21
10:39:33.859 |
| PR12258 | 1473958 | 14777215 | 10 |
77470 | 7434880 | 49.69 | 50.31 | 3 | 2025-08-21
10:40:08.021 |
| cacheEvictionByMarkDeletedPosition | 1544173 | 15475687 | 10 |
120594 | 9723958 | 37.17 | 62.83 | 3 | 2025-08-21
10:40:50.853 |
| cacheEvictionByMarkDeletedPosition | 1549344 | 15526299 | 10 |
79955 | 6216643 | 59.96 | 40.04 | 3 | 2025-08-21
10:41:23.889 |
| cacheEvictionByMarkDeletedPosition | 1549034 | 15523969 | 10 |
59132 | 4410078 | 71.59 | 28.41 | 3 | 2025-08-21
10:41:56.936 |
| cacheEvictionByMarkDeletedPosition | 1548770 | 15520337 | 10 |
69089 | 5418665 | 65.09 | 34.91 | 3 | 2025-08-21
10:42:30.026 |
| cacheEvictionByMarkDeletedPosition | 1549517 | 15527268 | 10 |
65201 | 5275453 | 66.02 | 33.98 | 3 | 2025-08-21
10:43:03.221 |
| PIP430disabled | 1549267 | 15520017 | 10 |
187155 | 10236574 | 34.04 | 65.96 | 3 | 2025-08-21
10:43:46.284 |
| PIP430disabled | 1549413 | 15511496 | 10 |
23154 | 1573744 | 89.85 | 10.15 | 3 | 2025-08-21
10:44:19.389 |
| PIP430disabled | 1549397 | 15507742 | 10 |
39678 | 2336104 | 84.94 | 15.06 | 3 | 2025-08-21
10:44:52.413 |
| PIP430disabled | 1548853 | 15515587 | 10 |
19009 | 1490084 | 90.4 | 9.6 | 3 | 2025-08-21
10:45:25.498 |
| PIP430disabled | 1549174 | 15522235 | 10 |
31125 | 2324394 | 85.03 | 14.97 | 3 | 2025-08-21
10:45:58.584 |
| PIP430 | 1549565 | 15507910 | 10 |
1113 | 99113 | 99.36 | 0.64 | 3 | 2025-08-21
10:46:41.442 |
| PIP430 | 1549340 | 15501783 | 10 |
2674 | 247181 | 98.41 | 1.59 | 3 | 2025-08-21
10:47:14.526 |
| PIP430 | 1549189 | 15501577 | 10 |
2349 | 212708 | 98.63 | 1.37 | 3 | 2025-08-21
10:47:47.508 |
| PIP430 | 1549287 | 15501902 | 10 |
2750 | 256654 | 98.34 | 1.66 | 3 | 2025-08-21
10:48:20.539 |
| PIP430 | 1548974 | 15509259 | 10 |
2869 | 267454 | 98.28 | 1.72 | 3 | 2025-08-21
10:48:53.543 |
--
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]