[
https://issues.apache.org/jira/browse/OAK-11171?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17890839#comment-17890839
]
Alejandro Moratinos edited comment on OAK-11171 at 10/23/24 6:25 AM:
---------------------------------------------------------------------
Created a new benchmark test to test external user login added to local and
external groups using cached membership provider.
Executed different set of benchmarks with different set of parameters. All test
were executed with 30s of runtime and 15s of warmup with different concurrency
threads setup. Cache expiration is set with a large value to ensure values are
kept through benchmark execution.
300 users, 10 external groups, 10 local groups
{code:java}
## No cache
java -Xmx2048m -Dprofile=false -Druntime=30 -Dwarmup=15 -jar
target/oak-benchmarks-1.71-SNAPSHOT.jar benchmark \
--dynamicMembership true --numberOfUsers 300 --concurrency 1,5,10,20,50 \
--numberOfGroups 10 --numberOfLocalGroups 10 --cacheExpiration 0 \
--report false CachedMembershipLoginTest Oak-Segment-Tar
Apache Jackrabbit Oak 1.71-SNAPSHOT
# CachedMembershipLoginTest C min 10% 50% 90% max
N mean
Oak-Segment-Tar 1 4 4 4 5 33
6770 4
Oak-Segment-Tar 5 10 16 18 20 61
8431 18
Oak-Segment-Tar 10 25 36 38 41 81
7825 38
Oak-Segment-Tar 20 44 72 75 79 183
7747 78
Oak-Segment-Tar 50 46 172 184 330 808
7311 206
Unique users 300 out of total 300. Groups 10. Err 0. Seed 1729165820373
## Cache
java -Xmx2048m -Dprofile=false -Druntime=30 -Dwarmup=15 -jar
target/oak-benchmarks-1.71-SNAPSHOT.jar benchmark \
--dynamicMembership true --numberOfUsers 300 --concurrency 1,5,10,20,50 \
--numberOfGroups 10 --numberOfLocalGroups 10 --cacheExpiration 10000000 \
--report false CachedMembershipLoginTest Oak-Segment-Tar
Apache Jackrabbit Oak 1.71-SNAPSHOT
# CachedMembershipLoginTest C min 10% 50% 90% max
N mean
Oak-Segment-Tar 1 1 2 2 2 27
14615 2
Oak-Segment-Tar 5 3 7 8 10 86
18042 8
Oak-Segment-Tar 10 8 13 15 18 49
19051 16
Oak-Segment-Tar 20 17 29 32 37 194
17872 34
Oak-Segment-Tar 50 13 77 81 156 457
16045 94
Unique users 300 out of total 300. Groups 10. Err 0. Seed 1729234661753{code}
300 users, 100 groups and 10 local groups
{code:java}
## No Cache
java -Xmx2048m -Dprofile=false -Druntime=30 -Dwarmup=15 -jar
target/oak-benchmarks-1.71-SNAPSHOT.jar benchmark \
--dynamicMembership true --numberOfUsers 300 --concurrency 1,5,10,20,50 \
--numberOfGroups 100 --numberOfLocalGroups 10 --cacheExpiration 0 \
--report false CachedMembershipLoginTest Oak-Segment-Tar
Apache Jackrabbit Oak 1.71-SNAPSHOT
# CachedMembershipLoginTest C min 10% 50% 90% max
N mean
Oak-Segment-Tar 1 41 43 44 47 102
671 45
Oak-Segment-Tar 5 125 184 192 201 267
779 193
Oak-Segment-Tar 10 233 412 446 480 625
676 446
Oak-Segment-Tar 20 428 872 960 1037 1839
633 957
Oak-Segment-Tar 50 798 2122 2450 2718 5039
629 2473
Unique users 300 out of total 300. Groups 100. Err 0. Seed 1729167541161
## Cache
java -Xmx2048m -Dprofile=false -Druntime=30 -Dwarmup=15 -jar
target/oak-benchmarks-1.71-SNAPSHOT.jar benchmark \
--dynamicMembership true --numberOfUsers 300 --concurrency 1,5,10,20,50 \
--numberOfGroups 100 --numberOfLocalGroups 10 --cacheExpiration 10000000 \
--report false CachedMembershipLoginTest Oak-Segment-Tar
Apache Jackrabbit Oak 1.71-SNAPSHOT
# CachedMembershipLoginTest C min 10% 50% 90% max
N mean
Oak-Segment-Tar 1 12 13 13 15 46
2103 14
Oak-Segment-Tar 5 38 56 64 72 148
2325 65
Oak-Segment-Tar 10 60 118 129 143 373
2268 133
Oak-Segment-Tar 20 109 246 272 302 773
2120 284
Oak-Segment-Tar 50 326 648 699 1334 2716
1899 797
Unique users 300 out of total 300. Groups 100. Err 0. Seed 1729170222022{code}
100 users, 200 groups and 100 local groups
{code:java}
## No Cache
java -Xmx2048m -Dprofile=false -Druntime=30 -Dwarmup=15 -jar
target/oak-benchmarks-1.71-SNAPSHOT.jar benchmark \
--dynamicMembership true --numberOfUsers 100 --concurrency 1,5,10,20,50 \
--numberOfGroups 200 --numberOfLocalGroups 100 --cacheExpiration 0 \
--report false CachedMembershipLoginTest Oak-Segment-Tar
Apache Jackrabbit Oak 1.71-SNAPSHOT
# CachedMembershipLoginTest C min 10% 50% 90% max
N mean
Oak-Segment-Tar 1 358 367 375 385 409
80 375
Oak-Segment-Tar 5 2115 2370 2420 2463 2491
65 2412
Oak-Segment-Tar 10 5028 5395 5640 5805 5984
60 5611
Oak-Segment-Tar 20 10090 10304 11285 12178 12757
60 11262
Oak-Segment-Tar 50 14954 15543 28794 33096 34039
74 25654
Unique users 97 out of total 100. Groups 200. Err 0. Seed 1729235215305
## Cache
java -Xmx2048m -Dprofile=false -Druntime=30 -Dwarmup=15 -jar
target/oak-benchmarks-1.71-SNAPSHOT.jar benchmark \
--dynamicMembership true --numberOfUsers 100 --concurrency 1,5,10,20,50 \
--numberOfGroups 200 --numberOfLocalGroups 100 --cacheExpiration 10000000 \
--report false CachedMembershipLoginTest Oak-Segment-Tar
Apache Jackrabbit Oak 1.71-SNAPSHOT
# CachedMembershipLoginTest C min 10% 50% 90% max
N mean
Oak-Segment-Tar 1 25 26 28 461 573
158 190
Oak-Segment-Tar 5 63 117 128 147 2393
942 160
Oak-Segment-Tar 10 137 234 255 289 790
1107 272
Oak-Segment-Tar 20 233 468 536 976 2444
998 606
Oak-Segment-Tar 50 643 1317 1451 3534 7357
759 2012
Unique users 100 out of total 100. Groups 200. Err 0. Seed 1729235457138{code}
100 users, 1200 groups and 100 local groups
{code:java}
## No Cache
java -Xmx2048m -Dprofile=false -Druntime=30 -Dwarmup=15 -jar
target/oak-benchmarks-1.71-SNAPSHOT.jar benchmark \
--dynamicMembership true --numberOfUsers 100 --concurrency 1,5,10,20,50 \
--numberOfGroups 1200 --numberOfLocalGroups 100 --cacheExpiration 0 \
--report false CachedMembershipLoginTest Oak-Segment-Tar
Apache Jackrabbit Oak 1.71-SNAPSHOT
# CachedMembershipLoginTest C min 10% 50% 90% max
N mean
Oak-Segment-Tar 1 3123 3123 3134 3173 3185
13 3139
Oak-Segment-Tar 5 14616 14675 15289 15698 15744
15 15246
Oak-Segment-Tar 10 27534 32217 34787 37053 38323
20 34477
Oak-Segment-Tar 20 41631 45477 66119 69066 69123
20 62596
Oak-Segment-Tar 50 107535 114668 154058 175837 176512
50 150076
Unique users 69 out of total 100. Groups 1200. Err 0. Seed 1729171093374
## Cache
java -Xmx2048m -Dprofile=false -Druntime=30 -Dwarmup=15 -jar
target/oak-benchmarks-1.71-SNAPSHOT.jar benchmark \
--dynamicMembership true --numberOfUsers 100 --concurrency 1,5,10,20,50 \
--numberOfGroups 1200 --numberOfLocalGroups 100 --cacheExpiration 10000000 \
--report false CachedMembershipLoginTest Oak-Segment-Tar
Apache Jackrabbit Oak 1.71-SNAPSHOT
# CachedMembershipLoginTest C min 10% 50% 90% max
N mean
Oak-Segment-Tar 1 170 1067 2477 2753 2785
13 2354
Oak-Segment-Tar 5 736 778 14244 15009 15176
16 9877
Oak-Segment-Tar 10 1687 1764 34183 35392 35404
13 26713
Oak-Segment-Tar 20 3116 3353 59325 67689 71273
33 40481
Oak-Segment-Tar 50 8123 9187 39456 108810 117207
73 54874
Unique users 78 out of total 100. Groups 1200. Err 0. Seed 1729236152455{code}
To test a configuration with short cache time which is closest to reality
executed a test with 30s cache expiration time
{code:java}
java -Xmx2048m -Dprofile=false -Druntime=30 -Dwarmup=15 -Druntime=40 -jar
target/oak-benchmarks-1.71-SNAPSHOT.jar benchmark \
--dynamicMembership true --numberOfUsers 100 --concurrency 1,5,10,20,50 \
--numberOfGroups 1200 --numberOfLocalGroups 100 --cacheExpiration 30000 \
--report false CachedMembershipLoginTest Oak-Segment-Tar
Apache Jackrabbit Oak 1.71-SNAPSHOT
# CachedMembershipLoginTest C min 10% 50% 90% max
N mean
Oak-Segment-Tar 1 182 2050 2528 2555 2589
17 2395
Oak-Segment-Tar 5 685 694 14276 14692 14834
17 12682
Oak-Segment-Tar 10 2009 2186 32604 34728 36387
25 26588
Oak-Segment-Tar 20 3008 3619 62627 67037 67603
24 52872
Oak-Segment-Tar 50 7188 10529 138560 167500 168827
56 124069
Unique users 72 out of total 100. Groups 1200. Err 0. Seed 1729171927509 {code}
In general the results obtained with the cache version outperforms the
non-cached version seeing huge reduction in execution times.
was (Author: JIRAUSER307002):
Created a new benchmark test to test external user login added to local and
external groups using cached membership provider.
Executed different set of benchmarks with different set of parameters. All test
were executed with 30s of runtime and 15s of warmup with different concurrency
threads setup. Cache expiration is set with a large value to ensure values are
kept through benchmark execution.
## 300 users, 10 external groups, 10 local groups
{code:java}
## No cache
java -Xmx2048m -Dprofile=false -Druntime=30 -Dwarmup=15 -jar
target/oak-benchmarks-1.71-SNAPSHOT.jar benchmark \
--dynamicMembership true --numberOfUsers 300 --concurrency 1,5,10,20,50 \
--numberOfGroups 10 --numberOfLocalGroups 10 --cacheExpiration 0 \
--report false CachedMembershipLoginTest Oak-Segment-Tar
Apache Jackrabbit Oak 1.71-SNAPSHOT
# CachedMembershipLoginTest C min 10% 50% 90% max
N mean
Oak-Segment-Tar 1 4 4 4 5 33
6770 4
Oak-Segment-Tar 5 10 16 18 20 61
8431 18
Oak-Segment-Tar 10 25 36 38 41 81
7825 38
Oak-Segment-Tar 20 44 72 75 79 183
7747 78
Oak-Segment-Tar 50 46 172 184 330 808
7311 206
Unique users 300 out of total 300. Groups 10. Err 0. Seed 1729165820373
## Cache
java -Xmx2048m -Dprofile=false -Druntime=30 -Dwarmup=15 -jar
target/oak-benchmarks-1.71-SNAPSHOT.jar benchmark \
--dynamicMembership true --numberOfUsers 300 --concurrency 1,5,10,20,50 \
--numberOfGroups 10 --numberOfLocalGroups 10 --cacheExpiration 10000000 \
--report false CachedMembershipLoginTest Oak-Segment-Tar
Apache Jackrabbit Oak 1.71-SNAPSHOT
# CachedMembershipLoginTest C min 10% 50% 90% max
N mean
Oak-Segment-Tar 1 1 2 2 2 27
14615 2
Oak-Segment-Tar 5 3 7 8 10 86
18042 8
Oak-Segment-Tar 10 8 13 15 18 49
19051 16
Oak-Segment-Tar 20 17 29 32 37 194
17872 34
Oak-Segment-Tar 50 13 77 81 156 457
16045 94
Unique users 300 out of total 300. Groups 10. Err 0. Seed 1729234661753{code}
### 300 users, 100 groups and 10 local groups
{code:java}
## No Cache
java -Xmx2048m -Dprofile=false -Druntime=30 -Dwarmup=15 -jar
target/oak-benchmarks-1.71-SNAPSHOT.jar benchmark \
--dynamicMembership true --numberOfUsers 300 --concurrency 1,5,10,20,50 \
--numberOfGroups 100 --numberOfLocalGroups 10 --cacheExpiration 0 \
--report false CachedMembershipLoginTest Oak-Segment-Tar
Apache Jackrabbit Oak 1.71-SNAPSHOT
# CachedMembershipLoginTest C min 10% 50% 90% max
N mean
Oak-Segment-Tar 1 41 43 44 47 102
671 45
Oak-Segment-Tar 5 125 184 192 201 267
779 193
Oak-Segment-Tar 10 233 412 446 480 625
676 446
Oak-Segment-Tar 20 428 872 960 1037 1839
633 957
Oak-Segment-Tar 50 798 2122 2450 2718 5039
629 2473
Unique users 300 out of total 300. Groups 100. Err 0. Seed 1729167541161
## Cache
java -Xmx2048m -Dprofile=false -Druntime=30 -Dwarmup=15 -jar
target/oak-benchmarks-1.71-SNAPSHOT.jar benchmark \
--dynamicMembership true --numberOfUsers 300 --concurrency 1,5,10,20,50 \
--numberOfGroups 100 --numberOfLocalGroups 10 --cacheExpiration 10000000 \
--report false CachedMembershipLoginTest Oak-Segment-Tar
Apache Jackrabbit Oak 1.71-SNAPSHOT
# CachedMembershipLoginTest C min 10% 50% 90% max
N mean
Oak-Segment-Tar 1 12 13 13 15 46
2103 14
Oak-Segment-Tar 5 38 56 64 72 148
2325 65
Oak-Segment-Tar 10 60 118 129 143 373
2268 133
Oak-Segment-Tar 20 109 246 272 302 773
2120 284
Oak-Segment-Tar 50 326 648 699 1334 2716
1899 797
Unique users 300 out of total 300. Groups 100. Err 0. Seed 1729170222022{code}
## 100 users, 200 groups and 100 local groups
{code:java}
## No Cache
java -Xmx2048m -Dprofile=false -Druntime=30 -Dwarmup=15 -jar
target/oak-benchmarks-1.71-SNAPSHOT.jar benchmark \
--dynamicMembership true --numberOfUsers 100 --concurrency 1,5,10,20,50 \
--numberOfGroups 200 --numberOfLocalGroups 100 --cacheExpiration 0 \
--report false CachedMembershipLoginTest Oak-Segment-Tar
Apache Jackrabbit Oak 1.71-SNAPSHOT
# CachedMembershipLoginTest C min 10% 50% 90% max
N mean
Oak-Segment-Tar 1 358 367 375 385 409
80 375
Oak-Segment-Tar 5 2115 2370 2420 2463 2491
65 2412
Oak-Segment-Tar 10 5028 5395 5640 5805 5984
60 5611
Oak-Segment-Tar 20 10090 10304 11285 12178 12757
60 11262
Oak-Segment-Tar 50 14954 15543 28794 33096 34039
74 25654
Unique users 97 out of total 100. Groups 200. Err 0. Seed 1729235215305
## Cache
java -Xmx2048m -Dprofile=false -Druntime=30 -Dwarmup=15 -jar
target/oak-benchmarks-1.71-SNAPSHOT.jar benchmark \
--dynamicMembership true --numberOfUsers 100 --concurrency 1,5,10,20,50 \
--numberOfGroups 200 --numberOfLocalGroups 100 --cacheExpiration 10000000 \
--report false CachedMembershipLoginTest Oak-Segment-Tar
Apache Jackrabbit Oak 1.71-SNAPSHOT
# CachedMembershipLoginTest C min 10% 50% 90% max
N mean
Oak-Segment-Tar 1 25 26 28 461 573
158 190
Oak-Segment-Tar 5 63 117 128 147 2393
942 160
Oak-Segment-Tar 10 137 234 255 289 790
1107 272
Oak-Segment-Tar 20 233 468 536 976 2444
998 606
Oak-Segment-Tar 50 643 1317 1451 3534 7357
759 2012
Unique users 100 out of total 100. Groups 200. Err 0. Seed 1729235457138{code}
## 100 users, 1200 groups and 100 local groups
{code:java}
## No Cache
java -Xmx2048m -Dprofile=false -Druntime=30 -Dwarmup=15 -jar
target/oak-benchmarks-1.71-SNAPSHOT.jar benchmark \
--dynamicMembership true --numberOfUsers 100 --concurrency 1,5,10,20,50 \
--numberOfGroups 1200 --numberOfLocalGroups 100 --cacheExpiration 0 \
--report false CachedMembershipLoginTest Oak-Segment-Tar
Apache Jackrabbit Oak 1.71-SNAPSHOT
# CachedMembershipLoginTest C min 10% 50% 90% max
N mean
Oak-Segment-Tar 1 3123 3123 3134 3173 3185
13 3139
Oak-Segment-Tar 5 14616 14675 15289 15698 15744
15 15246
Oak-Segment-Tar 10 27534 32217 34787 37053 38323
20 34477
Oak-Segment-Tar 20 41631 45477 66119 69066 69123
20 62596
Oak-Segment-Tar 50 107535 114668 154058 175837 176512
50 150076
Unique users 69 out of total 100. Groups 1200. Err 0. Seed 1729171093374
## Cache
java -Xmx2048m -Dprofile=false -Druntime=30 -Dwarmup=15 -jar
target/oak-benchmarks-1.71-SNAPSHOT.jar benchmark \
--dynamicMembership true --numberOfUsers 100 --concurrency 1,5,10,20,50 \
--numberOfGroups 1200 --numberOfLocalGroups 100 --cacheExpiration 10000000 \
--report false CachedMembershipLoginTest Oak-Segment-Tar
Apache Jackrabbit Oak 1.71-SNAPSHOT
# CachedMembershipLoginTest C min 10% 50% 90% max
N mean
Oak-Segment-Tar 1 170 1067 2477 2753 2785
13 2354
Oak-Segment-Tar 5 736 778 14244 15009 15176
16 9877
Oak-Segment-Tar 10 1687 1764 34183 35392 35404
13 26713
Oak-Segment-Tar 20 3116 3353 59325 67689 71273
33 40481
Oak-Segment-Tar 50 8123 9187 39456 108810 117207
73 54874
Unique users 78 out of total 100. Groups 1200. Err 0. Seed 1729236152455{code}
To test a configuration with short cache time which is closest to reality
executed a test with 30s cache expiration time
{code:java}
java -Xmx2048m -Dprofile=false -Druntime=30 -Dwarmup=15 -Druntime=40 -jar
target/oak-benchmarks-1.71-SNAPSHOT.jar benchmark \
--dynamicMembership true --numberOfUsers 100 --concurrency 1,5,10,20,50 \
--numberOfGroups 1200 --numberOfLocalGroups 100 --cacheExpiration 30000 \
--report false CachedMembershipLoginTest Oak-Segment-Tar
Apache Jackrabbit Oak 1.71-SNAPSHOT
# CachedMembershipLoginTest C min 10% 50% 90% max
N mean
Oak-Segment-Tar 1 182 2050 2528 2555 2589
17 2395
Oak-Segment-Tar 5 685 694 14276 14692 14834
17 12682
Oak-Segment-Tar 10 2009 2186 32604 34728 36387
25 26588
Oak-Segment-Tar 20 3008 3619 62627 67037 67603
24 52872
Oak-Segment-Tar 50 7188 10529 138560 167500 168827
56 124069
Unique users 72 out of total 100. Groups 1200. Err 0. Seed 1729171927509 {code}
In general the results obtained with the cache version outperforms the
non-cached version seeing huge reduction in execution times.
> Create benchmark
> ----------------
>
> Key: OAK-11171
> URL: https://issues.apache.org/jira/browse/OAK-11171
> Project: Jackrabbit Oak
> Issue Type: Technical task
> Components: security
> Reporter: Alejandro Moratinos
> Assignee: Alejandro Moratinos
> Priority: Major
>
> Create or modify actual benchmarks to test external group caching feature
--
This message was sent by Atlassian Jira
(v8.20.10#820010)