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]
