commit | 022016611091fdc021686aaf1a44f5217b4b3d30 | [log] [tgz] |
---|---|---|
author | Laurent Goujon <laurent@apache.org> | Thu Apr 30 17:43:36 2020 -0700 |
committer | Laurent Goujon <laurentgo@users.noreply.github.com> | Wed May 06 20:37:38 2020 -0700 |
tree | 7fa1b2cb60184eaa86236a0735560c82190d3642 | |
parent | e455734d2eea628e802a463ef18cd107ddb57874 [diff] |
[CALCITE-3965] Avoid DiffRepository lock contention When many test cases using the same DiffRepository instances are running on multiple threads, it causes lots of contention because all methods are synchronized. One of the most used method is DiffRepository#expand(String, String) which do not alter the state of the tree in most cases. As the method content itself is thread-safe, remove the synchronized keyword as it does not bring any extra safety and just increase artificially the contention around the lock.
Apache Calcite is a dynamic data management framework.
It contains many of the pieces that comprise a typical database management system but omits the storage primitives. It provides an industry standard SQL parser and validator, a customisable optimizer with pluggable rules and cost functions, logical and physical algebraic operators, various transformation algorithms from SQL to algebra (and the opposite), and many adapters for executing SQL queries over Cassandra, Druid, Elasticsearch, MongoDB, Kafka, and others, with minimal configuration.
For more details, see the home page.