-
Notifications
You must be signed in to change notification settings - Fork 10
Load test analysis
Toshiya Kobayashi edited this page Apr 30, 2026
·
6 revisions
$ ./load_test_temporal_HA-PG.sh
...
File Events Memory(bytes) Time(ms) Per-Event(KB) MATCHING BlobSize(B)
---------------------------------------------------------------------------------------------------------
Running once_within_100_events.json (HA-PG)...
once_within_100_events.json 100 11076896 854 108.2 10 1911
Running once_within_500_events.json (HA-PG)...
once_within_500_events.json 500 22225480 4033 43.4 10 1911
Running once_within_1k_events.json (HA-PG)...
once_within_1k_events.json 1000 35801992 7328 35.0 10 1911
Constant memory footprint increase is observed. Investigating heap dumps, confirmed that events suppressed by once_within are retained by ExpireJob. This is not a memory leak, but they will be eventually expired (= default 2h) and GC'ed.
So the case is similar to "unmatch" use case, where we immediately call eventHandle.unscheduleAllJobs so unmatched events are immediately GC'ed. It may be worth implementing the same for the once_within case, but it's very rare and less impacting.
(As of 2026/04/30)
Results of load_test_match_unmatch_noHA_HA-PG.sh
Before externalize_event_record
match/noHA:
Test Name Memory (bytes) Duration (ms)
------------------------------------------------------------------------
24kb_1k_events.json 6,449,488 206
24kb_5k_events.json 6,461,000 560
24kb_10k_events.json 6,474,504 843
match/HA-PG:
Test Name Memory (bytes) Duration (ms)
------------------------------------------------------------------------
24kb_1k_events.json (HA-PG) 7,956,584 8,005
24kb_5k_events.json (HA-PG) 8,601,696 37,046
24kb_10k_events.json (HA-PG) 9,277,488 73,397
unmatch/noHA:
Test Name Memory (bytes) Duration (ms)
------------------------------------------------------------------------
24kb_1k_events_unmatch.json 6,413,096 125
24kb_5k_events_unmatch.json 6,419,288 320
24kb_10k_events_unmatch.json 6,435,376 440
unmatch/HA-PG:
Test Name Memory (bytes) Duration (ms)
------------------------------------------------------------------------
24kb_1k_events_unmatch.json (HA-PG) 7,966,392 7,208
24kb_5k_events_unmatch.json (HA-PG) 8,543,304 33,522
24kb_10k_events_unmatch.json (HA-PG) 9,288,456 66,566
After externalize_event_record
match/noHA:
Test Name Memory (bytes) Duration (ms)
------------------------------------------------------------------------
24kb_1k_events.json 6,449,440 211
24kb_5k_events.json 6,457,592 593
24kb_10k_events.json 6,477,472 886
match/HA-PG:
Test Name Memory (bytes) Duration (ms)
------------------------------------------------------------------------
24kb_1k_events.json (HA-PG) 7,919,504 8,752
24kb_5k_events.json (HA-PG) 7,976,000 40,765
24kb_10k_events.json (HA-PG) 8,048,768 81,181
unmatch/noHA:
Test Name Memory (bytes) Duration (ms)
------------------------------------------------------------------------
24kb_1k_events_unmatch.json 6,413,304 123
24kb_5k_events_unmatch.json 6,422,512 333
24kb_10k_events_unmatch.json 6,435,480 491
unmatch/HA-PG:
Test Name Memory (bytes) Duration (ms)
------------------------------------------------------------------------
24kb_1k_events_unmatch.json (HA-PG) 7,953,256 7,362
24kb_5k_events_unmatch.json (HA-PG) 7,963,920 34,440
24kb_10k_events_unmatch.json (HA-PG) 7,923,408 67,595
Latency issue especially in "match" case.
After UPSERT+DELETE collapse fix -> No degration
match/HA-PG:
Test Name Memory (bytes) Duration (ms)
------------------------------------------------------------------------
24kb_1k_events.json (HA-PG) 7,930,544 7,943
24kb_5k_events.json (HA-PG) 8,015,232 37,920
24kb_10k_events.json (HA-PG) 7,979,288 74,324
unmatch/HA-PG:
Test Name Memory (bytes) Duration (ms)
------------------------------------------------------------------------
24kb_1k_events_unmatch.json (HA-PG) 7,864,872 7,447
24kb_5k_events_unmatch.json (HA-PG) 7,931,824 34,178
24kb_10k_events_unmatch.json (HA-PG) 7,935,280 66,154