[ 
https://issues.apache.org/jira/browse/OAK-9762?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17940338#comment-17940338
 ] 

Alejandro Moratinos commented on OAK-9762:
------------------------------------------

Hi [~angela] 

I've done some changes and ran a small set of benchmark comparing to trunk. I 
used PrinicipalBasedReadTest (it's not a typo the test is called like that). 

All the benchmark runs were executed using the same command:
{code:java}
 java -Dwarmup=5 -Druntime=120 -jar target/oak-benchmarks-1.77-SNAPSHOT.jar 
benchmark --concurrency 1,3,5,10,20 Oak-Segment-Tar 
PrinicipalBasedReadTest{code}
*Branch test runs:*
{noformat}
Run #1
# PrinicipalBasedReadTest          C     min     10%     50%     90%     max    
 N       mean 
Import deep tree: 2911
All paths: 123545
Oak-Segment-Tar                    1      26      28      29      31     65    
4125      29
Oak-Segment-Tar                    3      34      42      48      54     84    
7518      48
Oak-Segment-Tar                    5      58      71      76      82    139    
7850      76
Oak-Segment-Tar                   10      81     167     183     197    303    
6582     182
Oak-Segment-Tar                   20     106     295     361     424    698    
6672     360
 
Run #2
# PrinicipalBasedReadTest          C     min     10%     50%     90%     max    
 N       mean 
Import deep tree: 2953
All paths: 123545
Oak-Segment-Tar                    1      27      29      30      32     78    
3938      30
Oak-Segment-Tar                    3      33      41      47      54     96    
7560      48
Oak-Segment-Tar                    5      55      70      76      81    122    
7936      76
Oak-Segment-Tar                   10      98     176     188     200    267    
6393     188
Oak-Segment-Tar                   20     117     326     381     437    667    
6300     380

Run #3
# PrinicipalBasedReadTest          C     min     10%     50%     90%     max    
 N       mean 
Import deep tree: 2848
All paths: 123545
Oak-Segment-Tar                    1      26      26      27      29     63    
4312      28
Oak-Segment-Tar                    3      32      40      45      53    136    
7820      46
Oak-Segment-Tar                    5      58      72      77      82    130    
7794      77
Oak-Segment-Tar                   10     105     165     180     196    360    
6651     181
Oak-Segment-Tar                   20     128     305     362     414    625    
6652     361{noformat}
*Trunk test runs:*
{noformat}
Run #1
# PrinicipalBasedReadTest          C     min     10%     50%     90%     max    
 N       mean 
Import deep tree: 2794
All paths: 123545
Oak-Segment-Tar                    1      28      28      30      32     97    
3994      30
Oak-Segment-Tar                    3      35      44      50      56    112    
7223      50
Oak-Segment-Tar                    5      60      72      78      83    159    
7683      78
Oak-Segment-Tar                   10      63     159     178     195    337    
6749     178
Oak-Segment-Tar                   20     103     299     359     415    613    
6703     358

Run #2
# PrinicipalBasedReadTest          C     min     10%     50%     90%     max    
 N       mean 
Import deep tree: 2905
All paths: 123545
Oak-Segment-Tar                    1      27      29      30      32     76    
3985      30
Oak-Segment-Tar                    3      34      43      48      54     96    
7457      48
Oak-Segment-Tar                    5      56      72      77      83    153    
7744      77
Oak-Segment-Tar                   10      83     155     175     197    409    
6807     176
Oak-Segment-Tar                   20     126     302     351     399    608    
6852     351

Run #3
# PrinicipalBasedReadTest          C     min     10%     50%     90%     max    
 N       mean 
Import deep tree: 2917
All paths: 123545
Oak-Segment-Tar                    1      28      29      31      33    103    
3815      31
Oak-Segment-Tar                    3      36      44      50      56    153    
7189      50
Oak-Segment-Tar                    5      41      69      76      82    169    
7912      76
Oak-Segment-Tar                   10     100     165     180     195    307    
6667     180
Oak-Segment-Tar                   20     156     306     364     421    598    
6608     364{noformat}
Comparing results I do not see any huge improvement that would worth the risk 
to implement these changes on the Principal permission evaluation. Please do 
check the changes I've shared in this draft PR 
[https://github.com/apache/jackrabbit-oak/pull/2207] 

> Implement 
> org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.AbstractTreePermission.canReadAll
> --------------------------------------------------------------------------------------------------------------------
>
>                 Key: OAK-9762
>                 URL: https://issues.apache.org/jira/browse/OAK-9762
>             Project: Jackrabbit Oak
>          Issue Type: Improvement
>          Components: authorization-principalbased
>            Reporter: Angela Schreiber
>            Assignee: Angela Schreiber
>            Priority: Major
>
> given that _oak-authorization-principalbased_ does not allow for deny 
> entries, implementing {{TreePermission.canReadAll}} should be straight 
> forward to implement.
> while this won't help with repeated item access with an absolute path, i 
> would expect some performance improvements when it comes to traversal (see 
> also OAK-9761)
> cc: [~joerghoh], [[email protected]]



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to