[ 
https://issues.apache.org/jira/browse/GEODE-7004?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Kamilla Aslami updated GEODE-7004:
----------------------------------
    Description: 
PartitionedPutBenchmark with Security Manager enabled shows a performance 
degradation:
{noformat}
org.apache.geode.benchmark.tests.PartitionedPutBenchmark
              average ops/second  Baseline:    313077.71  Test:    303114.88  
Difference:   -3.2%
       ops/second standard error  Baseline:       714.84  Test:       511.86  
Difference:  -28.4%
   ops/second standard deviation  Baseline:     12360.75  Test:      8850.96  
Difference:  -28.4%
      YS 99th percentile latency  Baseline:      2901.00  Test:      2802.00  
Difference:   -3.4%
                  median latency  Baseline:   1586175.00  Test:   1613823.00  
Difference:   +1.7%
         90th percentile latency  Baseline:   2289663.00  Test:   2303999.00  
Difference:   +0.6%
         99th percentile latency  Baseline:   3213311.00  Test:   3289087.00  
Difference:   +2.4%
       99.9th percentile latency  Baseline:  72220671.00  Test:  61636607.00  
Difference:  -14.7%
                 average latency  Baseline:   1838420.24  Test:   1898668.38  
Difference:   +3.3%
      latency standard deviation  Baseline:   3840098.38  Test:   3827737.37  
Difference:   -0.3%
          latency standard error  Baseline:       396.30  Test:       401.43  
Difference:   +1.3%

{noformat}
In stats, we noticed a higher CPU utilization and less puts.

 

 

When Security Manager is enabled, every put operation calls 
IntegratedSecurityService.authorize method, which creates new 
ResourcePermission object. Every execution of ResourcePermission constructor 
takes 0.8 ms. With the optimization, ResourcePermission constructor execution 
takes 0.1 ms.

  was:
PartitionedPutBenchmark with Security Manager enabled shows a performance 
degradation:
{noformat}
org.apache.geode.benchmark.tests.PartitionedPutBenchmark
              average ops/second  Baseline:    313077.71  Test:    303114.88  
Difference:   -3.2%
       ops/second standard error  Baseline:       714.84  Test:       511.86  
Difference:  -28.4%
   ops/second standard deviation  Baseline:     12360.75  Test:      8850.96  
Difference:  -28.4%
      YS 99th percentile latency  Baseline:      2901.00  Test:      2802.00  
Difference:   -3.4%
                  median latency  Baseline:   1586175.00  Test:   1613823.00  
Difference:   +1.7%
         90th percentile latency  Baseline:   2289663.00  Test:   2303999.00  
Difference:   +0.6%
         99th percentile latency  Baseline:   3213311.00  Test:   3289087.00  
Difference:   +2.4%
       99.9th percentile latency  Baseline:  72220671.00  Test:  61636607.00  
Difference:  -14.7%
                 average latency  Baseline:   1838420.24  Test:   1898668.38  
Difference:   +3.3%
      latency standard deviation  Baseline:   3840098.38  Test:   3827737.37  
Difference:   -0.3%
          latency standard error  Baseline:       396.30  Test:       401.43  
Difference:   +1.3%

{noformat}
In stats, we noticed a higher CPU utilization and less puts.

The prototype:

[https://github.com/kamilla1201/geode/commit/fc89092a514347b7b6704634c60ffe8837eced81]

 

When Security Manager is enabled, every put operation calls 
IntegratedSecurityService.authorize method, which creates new 
ResourcePermission object. Every execution of ResourcePermission constructor 
takes 0.8 ms. With the optimization, ResourcePermission constructor execution 
takes 0.1 ms.


> Optimize ResourcePermission constructor 
> ----------------------------------------
>
>                 Key: GEODE-7004
>                 URL: https://issues.apache.org/jira/browse/GEODE-7004
>             Project: Geode
>          Issue Type: Improvement
>          Components: security
>            Reporter: Kamilla Aslami
>            Assignee: Kamilla Aslami
>            Priority: Major
>              Labels: performance
>
> PartitionedPutBenchmark with Security Manager enabled shows a performance 
> degradation:
> {noformat}
> org.apache.geode.benchmark.tests.PartitionedPutBenchmark
>               average ops/second  Baseline:    313077.71  Test:    303114.88  
> Difference:   -3.2%
>        ops/second standard error  Baseline:       714.84  Test:       511.86  
> Difference:  -28.4%
>    ops/second standard deviation  Baseline:     12360.75  Test:      8850.96  
> Difference:  -28.4%
>       YS 99th percentile latency  Baseline:      2901.00  Test:      2802.00  
> Difference:   -3.4%
>                   median latency  Baseline:   1586175.00  Test:   1613823.00  
> Difference:   +1.7%
>          90th percentile latency  Baseline:   2289663.00  Test:   2303999.00  
> Difference:   +0.6%
>          99th percentile latency  Baseline:   3213311.00  Test:   3289087.00  
> Difference:   +2.4%
>        99.9th percentile latency  Baseline:  72220671.00  Test:  61636607.00  
> Difference:  -14.7%
>                  average latency  Baseline:   1838420.24  Test:   1898668.38  
> Difference:   +3.3%
>       latency standard deviation  Baseline:   3840098.38  Test:   3827737.37  
> Difference:   -0.3%
>           latency standard error  Baseline:       396.30  Test:       401.43  
> Difference:   +1.3%
> {noformat}
> In stats, we noticed a higher CPU utilization and less puts.
>  
>  
> When Security Manager is enabled, every put operation calls 
> IntegratedSecurityService.authorize method, which creates new 
> ResourcePermission object. Every execution of ResourcePermission constructor 
> takes 0.8 ms. With the optimization, ResourcePermission constructor execution 
> takes 0.1 ms.



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)

Reply via email to