Hi, I created a test that created a node structure with 10k node, each having 1 ACL and 1 ACE for the everyone principle. then, with concurrent reader sessions, I read the nodes randomly.
Benchmarks: ConcurrentEveryoneACLTest (oak 0.19-SNAPSHOT with everyone cache) Fixtures: Oak-Tar Runtime: 5 Num Items: 1000 Concurrency: 1,2,4,8,10,15,20,50 -------------------------------------- Executing benchmarks as admin: false on Oak-Tar ----------------------------------------------------------- # ConcurrentEveryoneACLTest , C, min, 10%, 50%, 90%, max, N Oak-Tar , 1, 11, 12, 13, 14, 19, 391 Oak-Tar , 2, 12, 13, 14, 17, 27, 675 Oak-Tar , 4, 15, 16, 19, 23, 55, 1020 Oak-Tar , 8, 31, 50, 53, 56, 114, 743 Oak-Tar , 10, 56, 66, 70, 76, 142, 708 Oak-Tar , 15, 74, 104, 110, 117, 132, 687 Oak-Tar , 20, 92, 136, 145, 154, 169, 698 Oak-Tar , 50, 156, 353, 384, 411, 476, 670 Executing benchmarks as admin: true on Oak-Tar ----------------------------------------------------------- # ConcurrentEveryoneACLTest , C, min, 10%, 50%, 90%, max, N Oak-Tar , 1, 4, 5, 5, 6, 17, 900 Oak-Tar , 2, 5, 5, 6, 8, 21, 1526 Oak-Tar , 4, 6, 7, 8, 11, 26, 2318 Oak-Tar , 8, 13, 24, 26, 33, 68, 1420 Oak-Tar , 10, 19, 30, 33, 46, 79, 1395 Oak-Tar , 15, 40, 47, 52, 76, 120, 1345 Oak-Tar , 20, 36, 61, 67, 94, 145, 1395 Oak-Tar , 50, 115, 158, 179, 255, 310, 1325 then I simply disabled the gloabal everyone cache the result is really bad (the 50 cocurrent actually never completed after 2 minutes?): # ConcurrentEveryoneACLTest , C, min, 10%, 50%, 90%, max, N Oak-Tar , 1, 41, 42, 43, 49, 54, 112 Oak-Tar , 2, 56, 57, 62, 74, 125, 158 Oak-Tar , 4, 75, 96, 117, 132, 211, 171 Oak-Tar , 8, 261, 321, 346, 419, 471, 117 Oak-Tar , 10, 475, 495, 519, 6532, 6549, 70 Oak-Tar , 15, 7646, 7647, 7655, 7660, 7661, 15 Oak-Tar , 20, 26988, 26995, 27010, 27015, 27016, 20 On the bright side, the creation of the ACLs is better for higher concurrency without the modcount: with mod-count: # ConcurrentWriteACLTest , C, min, 10%, 50%, 90%, max, N Oak-Mongo , 1, 197, 211, 227, 276, 330, 21 Oak-Mongo , 2, 210, 212, 231, 1366, 4688, 22 Oak-Mongo , 4, 200, 208, 232, 3864, 4990, 24 Oak-Mongo , 8, 201, 238, 1520, 4480, 4554, 27 Oak-Mongo , 10, 202, 216, 1584, 5286, 6671, 28 Oak-Mongo , 15, 225, 740, 3005, 7695, 8254, 28 Oak-Mongo , 20, 219, 238, 3684, 8701, 10770, 34 Oak-Mongo , 50, 3951, 7631, 12557, 16893, 17828, 52 without mod-count: # ConcurrentWriteACLTest , C, min, 10%, 50%, 90%, max, N Oak-Mongo , 1, 201, 206, 219, 259, 268, 23 Oak-Mongo , 2, 185, 194, 216, 616, 4561, 24 Oak-Mongo , 4, 191, 194, 375, 2434, 3091, 20 Oak-Mongo , 8, 207, 469, 603, 2865, 3962, 38 Oak-Mongo , 10, 510, 676, 782, 1053, 1417, 65 Oak-Mongo , 15, 965, 1223, 1344, 1673, 2137, 56 Oak-Mongo , 20, 994, 1211, 1607, 2033, 2661, 66 Oak-Mongo , 50, 3359, 3496, 3947, 4655, 5559, 96 and a quick test with storing the permissions directly in the content: # ConcurrentWriteACLTest , C, min, 10%, 50%, 90%, max, N Oak-Tar , 1, 30, 32, 35, 39, 48, 143 Oak-Tar , 2, 71, 77, 79, 84, 106, 126 Oak-Tar , 4, 48, 159, 161, 164, 168, 125 Oak-Tar , 8, 313, 315, 324, 340, 347, 128 Oak-Tar , 10, 384, 395, 402, 418, 419, 130 Oak-Tar , 15, 580, 601, 615, 626, 630, 135 Oak-Tar , 20, 712, 803, 821, 847, 852, 140 Oak-Tar , 50, 533, 2053, 2134, 2163, 2168, 151 I'll keep you posted... regards, toby
