[ 
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)

Reply via email to