[ https://issues.apache.org/jira/browse/OAK-1471?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13921877#comment-13921877 ]
Tobias Bocanegra edited comment on OAK-1471 at 3/6/14 6:44 PM: --------------------------------------------------------------- here's the result on my box before the changes: {noformat} Benchmarks: ConcurrentEveryoneACLTest (oak 0.19-SNAPSHOT with everyone cache. modcount) 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 {noformat} {noformat} Benchmarks: ConcurrentReadAccessControlledTreeTest (oak 0.19-SNAPSHOT with everyone cache. modcount) 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 ----------------------------------------------------------- # ConcurrentReadAccessContro, C, min, 10%, 50%, 90%, max, N Oak-Tar , 1, 21, 22, 22, 24, 27, 221 Oak-Tar , 2, 27, 37, 57, 90, 133, 168 Oak-Tar , 4, 30, 43, 96, 223, 538, 173 Oak-Tar , 8, 27, 80, 202, 400, 883, 178 Oak-Tar , 10, 28, 86, 253, 485, 935, 177 Oak-Tar , 15, 27, 120, 381, 767, 1557, 183 Oak-Tar , 20, 33, 150, 536, 980, 2185, 188 Oak-Tar , 50, 28, 337, 1349, 2518, 4114, 210 {noformat} {noformat} Benchmarks: ConcurrentWriteACLTest (0.19-SNAPSHOT, with modcount) Fixtures: Oak-Mongo Admin User: true Runtime: 10 Num Items: 10 Concurrency: 1,2,4,8,10,15,20,50 -------------------------------------- Executing benchmarks as admin: true on Oak-Mongo ----------------------------------------------------------- # ConcurrentWriteACLTest , C, min, 10%, 50%, 90%, max, N Oak-Mongo , 1, 48, 58, 66, 77, 96, 150 Oak-Mongo , 2, 46, 54, 63, 81, 5765, 155 Oak-Mongo , 4, 49, 56, 68, 90, 10191, 149 Oak-Mongo , 8, 51, 57, 70, 2193, 9824, 148 Oak-Mongo , 10, 48, 59, 72, 2095, 10714, 148 Oak-Mongo , 15, 50, 62, 79, 4674, 12190, 140 Oak-Mongo , 20, 53, 64, 89, 5161, 12682, 135 Oak-Mongo , 50, 60, 76, 4244, 11767, 15224, 129 {noformat} {noformat} Model Name: MacBook Pro Model Identifier: MacBookPro10,1 Processor Name: Intel Core i7 Processor Speed: 2.6 GHz Number of Processors: 1 Total Number of Cores: 4 L2 Cache (per Core): 256 KB L3 Cache: 6 MB Memory: 16 GB {noformat} was (Author: tripod): here's the result on my box before the changes: {noformat} Benchmarks: ConcurrentEveryoneACLTest (oak 0.19-SNAPSHOT with everyone cache. modcount) 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 {noformat} {noformat} Benchmarks: ConcurrentReadAccessControlledTreeTest (oak 0.19-SNAPSHOT with everyone cache. modcount) 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 ----------------------------------------------------------- # ConcurrentReadAccessContro, C, min, 10%, 50%, 90%, max, N Oak-Tar , 1, 21, 22, 22, 24, 27, 221 Oak-Tar , 2, 27, 37, 57, 90, 133, 168 Oak-Tar , 4, 30, 43, 96, 223, 538, 173 Oak-Tar , 8, 27, 80, 202, 400, 883, 178 Oak-Tar , 10, 28, 86, 253, 485, 935, 177 Oak-Tar , 15, 27, 120, 381, 767, 1557, 183 Oak-Tar , 20, 33, 150, 536, 980, 2185, 188 Oak-Tar , 50, 28, 337, 1349, 2518, 4114, 210 {noformat} {noformat} Benchmarks: ConcurrentWriteACLTest (oak 0.19-SNAPSHOT with everyone cache. modcount) Fixtures: Oak-Mongo Runtime: 5 Num Items: 1000 Concurrency: 1,2,4,8,10,15,20,50 -------------------------------------- Executing benchmarks as admin: true on Oak-Mongo ----------------------------------------------------------- # ConcurrentWriteACLTest , C, min, 10%, 50%, 90%, max, N Oak-Mongo , 1, 106, 116, 128, 150, 177, 39 Oak-Mongo , 2, 102, 115, 134, 176, 3884, 37 Oak-Mongo , 4, 104, 115, 128, 1102, 5247, 41 Oak-Mongo , 8, 100, 113, 141, 4939, 7007, 43 Oak-Mongo , 10, 109, 116, 148, 5188, 8653, 44 Oak-Mongo , 15, 116, 123, 487, 5882, 9564, 45 Oak-Mongo , 20, 117, 126, 633, 6923, 10488, 51 Oak-Mongo , 50, 140, 167, 9123, 12829, 14685, 65 {noformat} {noformat} Model Name: MacBook Pro Model Identifier: MacBookPro10,1 Processor Name: Intel Core i7 Processor Speed: 2.6 GHz Number of Processors: 1 Total Number of Cores: 4 L2 Cache (per Core): 256 KB L3 Cache: 6 MB Memory: 16 GB {noformat} > Mod count in permission store requires cluster wide synchronization > ------------------------------------------------------------------- > > Key: OAK-1471 > URL: https://issues.apache.org/jira/browse/OAK-1471 > Project: Jackrabbit Oak > Issue Type: Bug > Components: core > Reporter: Marcel Reutegger > Assignee: Tobias Bocanegra > Priority: Critical > Fix For: 0.19 > > Attachments: OAK-1471.patch > > > The current permission store implementation keeps a mod count property on > some of the nodes to detect changes and update/invalidate a cache when > required. In general this introduces a contention point when there are > concurrent modifications of access control entries for a given user. Those > concurrent changes may introduce conflicts and commits may have to be retried > after a rebase. This still works somewhat OK when there is just a single oak > instance, because both segment and document store implementation will > eventually fall back to locking and serialize the commits. However, it does > not work well in a cluster, unless we apply the same locking cluster wide. > See also discussion here: > http://markmail.org/message/k64udmgc3ctaqmn2 -- This message was sent by Atlassian JIRA (v6.2#6252)