keith-turner opened a new pull request, #31:
URL: https://github.com/apache/accumulo-access/pull/31

   This is an experimental commit that improves the performance of evaluating 
and parsing an expression at the same time by avoiding creation of a parse 
tree. Also some other steps were taken to avoid other object allocations.
   
   Seeing good performance with these changes when running the benchmark. 
Comparing the following with numbers from #30, seeing an increase from 8.415 to 
10.153 which is a 20% increase.  The perfomance numbers from #30 were run on 
the same hardware.
   
   ```
   Benchmark                                               Mode  Cnt   Score   
Error   Units
   AccessExpressionBenchmark.measureEvaluationAndParsing  thrpt   12  10.153 ± 
0.147  ops/us
   ```
   
   Not sure how this change fits in with overall code which is why it a WIP. 
Need to determine how it fits in with the existing parse tree code. For example 
could creating an expression only validate it w/o creating a parse tree?  Also 
this code could be slower than creating a parse tree for the case of having 
multiple authorizations sets.
   
   Another reason this is a WIP is that it could be improved to short circuit 
in "and" and "or" expression and switch to a validation mode when the result is 
known and avoid further set lookups.  This is something that is done in the 
parse tree and could give a further bump in performance.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to