Plugin Pipeline Performance Results

June 24, 2025 ยท View on GitHub

Performance Tests

The failure detection performance tests below will execute a long query, and monitoring will not begin until the FailureDetectionGraceTime has passed. A network outage will be triggered after the NetworkOutageDelayMillis has passed. The FailureDetectionInterval multiplied by the FailureDetectionCount represents how long the monitor will take to detect a failure once it starts sending probes to the host. This value combined with the time remaining from FailureDetectionGraceTime after the network outage is triggered will result in the expected failure detection time.

For more information please refer to the failover specific performance tests section.

Pgx Enhanced Failure Monitoring Performance with Different Failure Detection Configuration

FailureDetectionGraceTimeFailureDetectionIntervalFailureDetectionCountNetworkOutageDelayMillisMinFailureDetectionTimeMillisMaxFailureDetectionTimeMillisAvgFailureDetectionTimeMillis
30000500035000386053881438690
300005000310000336063369533652
300005000315000286122866428640
300005000320000236112370323661
300005000325000185811865118629
300005000330000136521371013685
300005000335000136231370613676
300005000340000136161370713665
300005000345000136471370713673
300005000350000136481370813689
6000100011000657287627050
6000100012000557257395666
6000100013000459847164659
6000100014000356837513638
6000100015000256426602622
6000100016000156817291667
6000100017000155127501830
6000100018000161017201661
6000100019000152617741623
60001000110000158017721662

Pgx Failover Performance with Different Enhanced Failure Monitoring Configuration

FailureDetectionGraceTimeFailureDetectionIntervalFailureDetectionCountNetworkOutageDelayMillisMinFailureDetectionTimeMillisMaxFailureDetectionTimeMillisAvgFailureDetectionTimeMillis
30000500035000394453980339566
300005000310000343483527234605
300005000315000294562955429491
300005000320000244462532624681
300005000325000193111982119499
300005000330000143201547914637
300005000335000143411545314672
300005000340000143221451914423
300005000345000143951553114719
300005000350000144441550314678
6000100011000733098477907
6000100012000640966246494
6000100013000532564035623
6000100014000435845264439
6000100015000331440273619
6000100016000227948842899
6000100017000234525132428
6000100018000238525322453
6000100019000228125122419
60001000110000241025112456

MySQL Enhanced Failure Monitoring Performance with Different Failure Detection Configuration

FailureDetectionGraceTimeFailureDetectionIntervalFailureDetectionCountNetworkOutageDelayMillisMinFailureDetectionTimeMillisMaxFailureDetectionTimeMillisAvgFailureDetectionTimeMillis
30000500035000384043893538524
300005000310000334383348033461
300005000315000284062847328451
300005000320000234322349123464
300005000325000184651849718482
300005000330000134071346513442
300005000335000134131355913470
300005000340000133931348213448
300005000345000134351349313463
300005000350000134121347813436
6000100011000634388856882
6000100012000535154845414
6000100013000438945104451
6000100014000335934993417
6000100015000234125252404
6000100016000139314691426
6000100017000142815191456
6000100018000138215141445
6000100019000138815331444
60001000110000140615201459

MySQL Failover Performance with Different Enhanced Failure Monitoring Configuration

FailureDetectionGraceTimeFailureDetectionIntervalFailureDetectionCountNetworkOutageDelayMillisMinFailureDetectionTimeMillisMaxFailureDetectionTimeMillisAvgFailureDetectionTimeMillis
30000500035000392373949839334
300005000310000339763571434512
300005000315000291982943029282
300005000320000238572576824539
300005000325000192151942419299
300005000330000139821575614516
300005000335000142711596714661
300005000340000139291431814223
300005000345000138571576914511
300005000350000140001579714577
6000100011000721794937710
6000100012000624263066284
6000100013000524367435562
6000100014000380743164198
6000100015000318833663295
6000100016000220623852281
6000100017000220134422529
6000100018000223623782313
6000100019000228523602327
60001000110000224423772313

Plugin Benchmarks

The plugin benchmarks measure the performance overhead of different plugin operations with varying numbers of plugins in the pipeline. Each benchmark ran with 0, 1, 2, 5, and 10 plugins to demonstrate how performance scales with plugin count. We have identified that there is a larger overhead than what is desired and we plan on reducing this overhead in the future.

Plugin Manager Operation Benchmarks

Operationns/opB/opallocs/op
Connect-0739.83208
Connect-1120548811
Connect-2160566214
Connect-52640120823
Connect-105920207738
Execute-0437.12085
Execute-1855.73878
Execute-2125654411
Execute-52266100820
Execute-104218193735
InitHostProvider-0125.1642
InitHostProvider-1258.71803
InitHostProvider-2274.31953
InitHostProvider-5267.71953
InitHostProvider-10253.51763
NotifyConnectionChanged-0227.52723
NotifyConnectionChanged-1283.12884
NotifyConnectionChanged-2341.43045
NotifyConnectionChanged-5532.93528
NotifyConnectionChanged-10812.343213
ReleaseResources-0396.6481
ReleaseResources-1540.91411
ReleaseResources-2638.22271
ReleaseResources-5891.05341
ReleaseResources-1012289281