[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.
1 file changed
tree: 7fa1b2cb60184eaa86236a0735560c82190d3642
  1. .github/
  2. .idea/
  3. babel/
  4. bom/
  5. buildSrc/
  6. cassandra/
  7. core/
  8. druid/
  9. elasticsearch/
  10. example/
  11. file/
  12. geode/
  13. gradle/
  14. kafka/
  15. linq4j/
  16. mongodb/
  17. pig/
  18. piglet/
  19. plus/
  20. redis/
  21. release/
  22. server/
  23. site/
  24. spark/
  25. splunk/
  26. src/
  27. ubenchmark/
  28. .editorconfig
  29. .gitattributes
  30. .gitignore
  31. .ratignore
  32. .travis.yml
  33. appveyor.yml
  34. build.gradle.kts
  35. gradle.properties
  36. gradlew
  37. gradlew.bat
  38. LICENSE
  39. NOTICE
  40. README
  41. README.md
  42. settings.gradle.kts
  43. sqlline
  44. sqlline.bat
  45. sqlsh
  46. sqlsh.bat
README.md

Maven Central Travis Build Status CI Status AppVeyor Build Status

Apache Calcite

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.