You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by re...@apache.org on 2024/01/16 18:48:14 UTC

(jackrabbit-oak) branch OAK-10544 updated (77d4026429 -> 1a0ce32914)

This is an automated email from the ASF dual-hosted git repository.

reschke pushed a change to branch OAK-10544
in repository https://gitbox.apache.org/repos/asf/jackrabbit-oak.git


    from 77d4026429 Merge branch 'trunk' into OAK-10544
     add d9afbe2309 Reindex command: save performance metrics in the StatisticsProvider.
     add 6ba090223c Add metrics collection to Pipelined strategy.
     add 1ec8cef305 Merge remote-tracking branch 'upstream/trunk' into OAK-10519
     add 2af7998a73 Add metrics collection to Pipelined strategy.
     add 25d17cea9c Merge branch 'apache:trunk' into OAK-10519
     add 076b3edad4 Merge remote-tracking branch 'origin/OAK-10519' into OAK-10519
     add 7b7fe5bfc3 Merge remote-tracking branch 'upstream/trunk' into OAK-10519
     add a5432af9bb Upgrade package version of index importer.
     add 2fed0e6931 Protected against potential NPE when cleaning up after test.
     add da5415bb7c Merge remote-tracking branch 'upstream/trunk' into OAK-10519
     add 0f86803ea2 Merge remote-tracking branch 'upstream/trunk' into OAK-10519
     add 6498fd81f0 Merge remote-tracking branch 'upstream/trunk' into OAK-10519
     add 44425615e8 Merge remote-tracking branch 'upstream/trunk' into OAK-10519
     add 81eb1b4581 Merge remote-tracking branch 'upstream/trunk' into OAK-10519
     add d7edc02a09 OAK-10538 - Pipeline strategy: eliminate unnecessary intermediate copy of entries in transform stage (#1194)
     add b138cf736c OAK-10545: oak-jcr: add test for observing effect of remapping a namespace prefix to a different namespace name - simplified not to use spi-commons
     add 392ede19fe OAK-10547 - Fix: Indexing job fails at the end of reindexing if it took more than 24h to run (#1203)
     add 2330bac4c8 Merge remote-tracking branch 'upstream/trunk' into OAK-10519
     add c6b6678cba Finish merge.
     add d1cd2bc18e OAK-10539: oak-search-elastic: migrate ingestion from Rest High Level Client to the new Java API Client (#1193)
     add 5be575223d OAK-10526 : set split doc maxRev to 'now' at split time, to avoid it being GCed too early
     add d177262672 Merge pull request #1190 from apache/OAK-10526
     add d28e5b3c41 OAK-10539: fix oak-search-elastic bundle import packages (#1207)
     add 0a0b252668 OAK-10550: add oak-search-elastic bundle test in oak-it-osgi (#1208)
     add e73cb97510 OAK-10526 : fix test regression for mongo 70 split doc (#1209)
     add 9d3d31127d OAK-10548: bump zookeeper to 3.9.1, re-organized optional import packages (#1205)
     add 38420f7d90 Merge remote-tracking branch 'upstream/trunk' into OAK-10519
     add fbee334bb1 Move MetricsUtils to a common package so it can be used from more packages and reduce code duplication.
     add 165b923938 Clean up some unused test code and shutdown executors created for tests.
     add 299002b63b OAK-6757: Convert oak-auth-ldap to OSGi R6 annotations (#1197)
     add 0ba9cc4f9d OAK-10542 : test reproducing ignorance of split deleted properties (#1195)
     add a5a95b11fe OAK-10552: remove jackson runtime dependencies and declare them as optional import packages (#1211)
     add 418aed922c Merge remote-tracking branch 'upstream/trunk' into OAK-10519
     add 04c9dbc4a2 Clarify intended use of MetricsUtils.setCounter().
     add 53ac34cf9d Rename method to make intention more clear.
     add df3970374c OAK-3349 Partial Compaction (#1216)
     add 21b542d2e8 OAK-10311 - Optimize SegmentBlob#equals for segment blobs that origin… (#1150)
     add 3df72cbeef OAK-3349 - Partial compaction Fixed license header
     add cd06034e14 Merge remote-tracking branch 'upstream/trunk' into OAK-10519
     add 92bb0b0518 Oak-10533: Merging Incremental Store failure: Operations, delete a node and adding node again is dumped as added node (#1189)
     add 162fbbc3de Merge remote-tracking branch 'upstream/trunk' into OAK-10519
     add 2af8c111ee Change PipelinedMetrics from interface to class, to avoid the Constant interface anti-pattern.
     add d536891dca Add missing parameter description
     add 9af1ec87cb Merge pull request #1182 from nfsantos/OAK-10519
     add e3dfba82dd OAK-9796: oak-segment-remote Redis tests fail with ARM processor (Apple M1)
     add 90d595d028 Merge pull request #1218 from mreutegg/OAK-9796
     add 8494c94520 OAK-10541 - Pipelined strategy: improve memory management of transform stage (#1202)
     add b3b1c587af OAK-10549 Improve performance of facet count at scale (Lucene) (#1215)
     add 0440e096dc OAK-10553: improved elastic statistical facets (#1217)
     add dc6de0138e OAK-10541: revert change to package version of org.apache.jackrabbit.oak.commons.sort
     add 1b49cf3551 OAK-10555: bump ES client to 8.11.1 (#1219)
     add 79ac7fd718 OAK-10549 Improve performance of facet count at scale (Lucene) - reduce memory usage of the test
     add 9a3deea518 OAK-9796: oak-segment-remote Redis tests fail with ARM processor (Apple M1)
     add e568fe4f19 Merge pull request #1221 from mreutegg/OAK-9796-2
     add 0346c6a657 OAK-10539: use assertEventually in ElasticReliabilityTest (#1222)
     add 84b9c5999a OAK-10542 : getLiveRevision must inspect split docs if local deleted … (#1198)
     add 53ea57245d OAK-10558: disable flaky ElasticReliabilityTest (#1227)
     add 1ce2d2ea54 OAK-10464 testcontainers dependency
     add fa4a1148cd OAK-10464 testcontainers dependency
     add 13ed6312d6 OAK-10464 - merge with trunk
     add 48a392b455 modified blob endpoint, logback, add testcontainer dependency
     add 1f5b852126 migrate mongo docker rule to testcontainer
     add f09fc4c292 Merge remote-tracking branch 'upstream/trunk' into issue/OAK-10464
     add af3ec3c081 minor dependency changes
     add 3a90933994 minor changes
     add 970cbfe7ad refactor dependency, removed unused ones
     add 7614372c48 Merge remote-tracking branch 'upstream/trunk' into issue/OAK-10464
     add 914d57bf7d Merge remote-tracking branch 'upstream/trunk' into issue/OAK-10464
     add 9ab85a6427 revert logback changes
     add 755a97609f revert logback changes
     add 57b351121e Merge remote-tracking branch 'upstream/trunk' into issue/OAK-10464
     add 352bb34e50 removed test container dependency from child modules
     add 15d5cec1d6 Merge remote-tracking branch 'upstream/trunk' into issue/OAK-10464
     add 246885a4c4 Merge remote-tracking branch 'upstream/trunk' into issue/OAK-10464
     add 5d322e710c OAK-10006 writes not possible during lease renewal
     add 97317f3c64 OAK-10006 Merge with  'trunk'
     add b889d21ff6 OAK-10543 added license header and increased versions for exported packages
     add 7e186ca9da OAK-10543 added license header and increased versions for exported packages
     add 31962232a0 OAK-10543 remove try/catch
     add a276998265 OAK-10543 remove duplicated testcontainers dependency
     add d2cea09ba7 OAK-10543 remove null initialisation
     add 66bde1cbf4 OAK-10006 added test for WriteAccessController and fixed tests in oak-segment-azure
     add ea80fc8a0e OAK-10006 deleted unused constructor
     add 7d07ff4b10 OAK-10006 modified constructor
     add e098e5b097 OAK-10006 modified constructor
     add eacc662390 OAK-10006 import statement
     add e96cfcb528 OAK-10006 import statements
     add 6467d7c812 OAK-10006 renew lease more often and do not block writes unnecessarily
     add 39778e38f6 OAK-10006 change sys property name
     add 6ce189059d OAK-10006 remove extra line
     add 8e59fd9506 OAK-10006 check values of system properties
     add b6edff5065 OAK-10006 check values of system properties
     add 524f95d1d5 OAK-10006 indivate units for system properties
     add 0d5997c269 OAK-10006 use rule to set system properties
     add f3c298bbfc OAK-10006 use rule to set system properties
     add eccd4e1b25 OAK-10006 use separate object for lock
     add d0aeefa7b8 OAK-10006 set system properties in test
     add 939c88e60d OAK-10006 add sys properties to log output
     add 490ba60306 OAK-10006 testWritesBlockedOnlyAfterFewUnsuccessfulAttempts
     add 8879671c7a Merge pull request #1204 from apache/issue/OAK-10006
     add 23a1e3c11f OAK-10559 : temporarily adding more info to an exception (#1229)
     add eb5fab024f OAK-10559 : safety sleep of 2min to verify test flakyness
     add edb02309e7 Merge pull request #1230 from apache/OAK-10559-2
     add 619e1bd20d Temporarily add console appender (#1231)
     add 41adb88c85 OAK-10559 : closing secondary to avoid test interference (#1232)
     add 73df7800c3 OAK-10558: ensure index name uniqueness in ElasticReliabilityTest (#1228)
     add e796745ebe OAK-10563 : Document mapping of actions to privileges
     add d7b595f547 Revert "Temporarily add console appender (#1231)"
     add 13a8548252 Revert "OAK-10559 : safety sleep of 2min to verify test flakyness"
     add 423cbe888e Revert "OAK-10559 : closing secondary to avoid test interference (#1232)"
     add cf91e1c30e OAK-10565: properly close all secondary stores; skip multi-store tests when not single persistence (#1235)
     add 261142624b OAK-10564: FunctionIndexCommonTest is flaky (#1234)
     add b88dee1cb8 OAK-10565: 1st instance of RDB store should drop tables
     add 8b63c6930d OAK-10568: ElasticIndexProviderServiceTest should support key based authentication (#1236)
     add 9281b6519d OAK-10569: OrderByCommonTest should eventually assert conditions (#1237)
     add 38caff7875 OAK-10382 : added flatfile command to the project (#1223)
     add fa8ab43a06 OAK-10572 : Best Practices: Clarify ac setup for non existing principals
     add a85cc6eee4 OAK-10574: Release Oak 1.60.0 - Candidate Release Notes (#1245)
     add 4e1d965b7b [maven-release-plugin] prepare release jackrabbit-oak-1.60.0
     add 98db7b6154 [maven-release-plugin] prepare for next development iteration
     add bacafcbad6 OAK-10576: do not use dynamic boosted fields when querying on specific fields (#1246)
     add f3d278259f OAK-10574: Release Oak 1.60.0 - cleanup project versions
     add 4c2cac63ee OAK-10500: document javadoc build workaround
     add 0b8f4ab2e7 OAK-10581 remove mock stubbing at the end of method
     add 0270a568fe OAK-10438 - Remove Mongo download strategy MULTITHREADED_TRAVERSE_WITH_SORT (#1250)
     add 6edd341b72 OAK-10580 - Support multiple include paths in regex path filtering (#1249)
     add b4f1aa6658 OAK-10584 : catch exception in getOldestRevisionToKeep when in read-only mode
     add 424a2a8c06 OAK-10584 : correct indenting
     add a411dc6e3c OAK-10584 : minor typo
     add f5dcec92c4 Merge pull request #1251 from apache/OAK-10584
     add c069c953f6 OAK-10571 - Names of metrics exported by indexing logic are inconsistent (#1241)
     add 6c3b65812f OAK-10526 : minor javadoc clarificationlet
     add e2da4d7f84 Issue/oak 10573 azure write timeout (#1244)
     add 6e5b58060b OAK-10591 - Bump netty dependency from 4.1.96.Final to 4.1.104.Final (#1257)
     add e9bb5933ad OAK-10590 - If includedPaths and excludedPaths are specified as a String instead of array of String, interpret them as a one-element array of Strings (#1254)
     add 997b31bffa OAK-10577 Advanced repository statistics (#1247)
     add f62ae952f3 OAK-10593: Upgrade jackson-databind dependency to 2.16.1 (#1259)
     add 71973a91d1 OAK-10589 - Improve regex path filtering to also handle cases where excludedPaths are defined (#1258)
     add b57bd4ee8e OAK-10424 : Allow Fast Query Size and Insecure Facets to be selectively enabled with query options for permitted principals
     add a7c3e4cd33 OAK-10598: Update Oak trunk and Oak 1.22 to Jackrabbit 2.20.14 (#1264)
     add 3d2c1437f7 OAK-10605: Update (shaded) Guava to 33.0.0 (#1270)
     add 5aa6d3d75e OAK-10606: azure/oak-blob-cloud-azure: update embedded Guava to 33.0.0 (#1272)
     add deeccbe0d4 OAK-10607 Rename Maven property "java.version" (#1271)
     add 1a0ce32914 Merge branch 'trunk' into OAK-10544

No new revisions were added by this update.

Summary of changes:
 RELEASE-NOTES.txt                                  | 127 ++--
 oak-api/pom.xml                                    |   2 +-
 oak-auth-external/pom.xml                          |   2 +-
 oak-auth-ldap/pom.xml                              |   7 +-
 .../ldap/impl/LdapIdentityProvider.java            |  21 +-
 .../ldap/impl/LdapProviderConfig.java              | 680 +++++++----------
 oak-authorization-cug/pom.xml                      |   2 +-
 oak-authorization-principalbased/pom.xml           |   2 +-
 oak-benchmarks-elastic/pom.xml                     |   2 +-
 oak-benchmarks-lucene/pom.xml                      |   2 +-
 oak-benchmarks-solr/pom.xml                        |   2 +-
 oak-benchmarks/pom.xml                             |   2 +-
 oak-blob-cloud-azure/pom.xml                       |   4 +-
 oak-blob-cloud/pom.xml                             |   2 +-
 oak-blob-plugins/pom.xml                           |   2 +-
 oak-blob/pom.xml                                   |   2 +-
 oak-commons/pom.xml                                |   2 +-
 .../oak/commons/sort/ExternalSortByteArray.java    |   8 +-
 oak-core-spi/pom.xml                               |   2 +-
 oak-core/pom.xml                                   |   2 +-
 .../oak/plugins/index/FormattingUtils.java         |  24 +-
 .../oak/plugins/index/IndexerMBeanImpl.java        |   3 +-
 .../jackrabbit/oak/plugins/index/MetricsUtils.java |  54 ++
 .../oak/plugins/index/importer/IndexImporter.java  |  44 +-
 .../oak/plugins/index/importer/package-info.java   |   2 +-
 .../index/progress/NodeCounterMBeanEstimator.java  |   8 +-
 .../query/SessionQuerySettingsProviderService.java |  89 +++
 .../oak/plugins/index/FormattingUtilsTest.java     |  88 +++
 .../index/importer/JsonDeserializationTest.java    |   7 +-
 oak-doc-railroad-macro/pom.xml                     |   2 +-
 oak-doc/README.md                                  |   8 +-
 oak-doc/pom.xml                                    |   2 +-
 .../site/markdown/nodestore/segment/overview.md    |  22 +-
 .../authentication/external/bestpractices.md       |  16 +-
 oak-doc/src/site/markdown/security/permission.md   |   2 +
 .../permission/permissionsandprivileges.md         |   2 +-
 oak-doc/src/site/markdown/security/privilege.md    |   3 +
 .../site/markdown/security/privilege/default.md    |   3 +-
 .../privilege/mappingprivilegestoactions.md        |  59 ++
 oak-examples/pom.xml                               |   2 +-
 oak-examples/standalone/pom.xml                    |   2 +-
 oak-examples/webapp/pom.xml                        |   2 +-
 oak-exercise/pom.xml                               |   2 +-
 oak-http/pom.xml                                   |   2 +-
 oak-it-osgi/pom.xml                                |   8 +-
 oak-it-osgi/test-bundles.xml                       |   1 +
 oak-it/pom.xml                                     |   2 +-
 oak-jackrabbit-api/pom.xml                         |   2 +-
 oak-jcr/pom.xml                                    |   3 +-
 .../oak/jcr/repository/RepositoryImpl.java         |  34 +-
 .../jackrabbit/oak/jcr/session/SessionContext.java |  14 +-
 .../apache/jackrabbit/oak/jcr/NamePathTest.java    |  20 +-
 .../oak/jcr/OakSegmentTarRepositoryStub.java       |  20 +-
 oak-lucene/pom.xml                                 |   2 +-
 .../plugins/index/lucene/LucenePropertyIndex.java  |  53 ++
 .../oak/plugins/index/lucene/util/FacetHelper.java |  26 +-
 .../oak/composite/CompositeNodeStoreQueryTest.java |  15 +-
 .../oak/composite/blueGreen/IndexUtils.java        |   3 +-
 .../oak/jcr/query/WhiteboardResultSizeTest.java    | 264 +++++++
 .../index/lucene/hybrid/ManyFacetsTest.java        | 280 +++++++
 .../plugins/index/lucene/util/FacetHelperTest.java |  14 -
 oak-parent/pom.xml                                 |  22 +-
 oak-pojosr/pom.xml                                 |   2 +-
 oak-query-spi/pom.xml                              |   2 +-
 .../oak/spi/query/SessionQuerySettings.java        |  20 +-
 .../spi/query/SessionQuerySettingsProvider.java    |  26 +-
 .../jackrabbit/oak/spi/query/package-info.java     |   2 +-
 oak-run-commons/pom.xml                            |   2 +-
 .../oak/index/IndexImporterSupportBase.java        |   2 +-
 .../jackrabbit/oak/index/IndexerSupport.java       |   2 -
 .../indexer/document/DocumentStoreIndexerBase.java |  40 +-
 .../document/flatfile/DefaultMemoryManager.java    | 252 -------
 .../flatfile/FlatFileNodeStoreBuilder.java         |  86 +--
 .../indexer/document/flatfile/MemoryManager.java   |  76 --
 .../indexer/document/flatfile/MergeRunner.java     | 358 ---------
 .../MultithreadedTraverseWithSortStrategy.java     | 562 --------------
 .../document/flatfile/NodeStateEntryWriter.java    |  27 +-
 .../document/flatfile/TraverseAndSortTask.java     | 352 ---------
 .../document/flatfile/analysis/StatsBuilder.java   | 165 +++++
 .../flatfile/analysis/modules/BinaryId.java        |  90 +++
 .../flatfile/analysis/modules/BinarySize.java      | 134 ++++
 .../analysis/modules/BinarySizeHistogram.java      | 150 ++++
 .../analysis/modules/DistinctBinarySize.java       | 201 +++++
 .../modules/DistinctBinarySizeHistogram.java       | 111 +++
 .../flatfile/analysis/modules/IndexedProperty.java | 102 +++
 .../flatfile/analysis/modules/ListCollector.java   |  68 ++
 .../flatfile/analysis/modules/NodeCount.java       |  87 +++
 .../flatfile/analysis/modules/NodeNameFilter.java  |  63 ++
 .../flatfile/analysis/modules/NodeTypeCount.java   |  66 ++
 .../flatfile/analysis/modules/PropertyStats.java   | 230 ++++++
 .../flatfile/analysis/modules/StatsCollector.java  |  40 +-
 .../flatfile/analysis/modules/Storage.java         |  81 ++
 .../modules/TimeMeasureCollector.java}             |  49 +-
 .../analysis/modules/TopLargestBinaries.java       | 144 ++++
 .../flatfile/analysis/stream/NodeData.java         |  64 ++
 .../flatfile/analysis/stream/NodeDataReader.java   |  37 +-
 .../flatfile/analysis/stream/NodeLineReader.java   | 227 ++++++
 .../flatfile/analysis/stream/NodeProperty.java     | 103 +++
 .../analysis/stream/NodeStreamConverter.java       | 103 +++
 .../stream/NodeStreamConverterCompressed.java      | 134 ++++
 .../flatfile/analysis/stream/NodeStreamReader.java | 166 +++++
 .../stream/NodeStreamReaderCompressed.java         | 155 ++++
 .../flatfile/analysis/utils/BloomFilter.java       | 162 ++++
 .../flatfile/analysis/utils/CountMinSketch.java    |  93 +++
 .../document/flatfile/analysis/utils/Hash.java     |  73 ++
 .../flatfile/analysis/utils/HyperLogLog.java       |  95 +++
 .../analysis/utils/HyperLogLog3Linear64.java       | 103 +++
 .../flatfile/analysis/utils/TopKValues.java        | 170 +++++
 .../pipelined/MongoRegexPathFilterFactory.java     | 149 ++++
 .../flatfile/pipelined/NodeStateEntryBatch.java    |  73 +-
 .../flatfile/pipelined/PipelinedMergeSortTask.java |  26 +-
 .../flatfile/pipelined/PipelinedMetrics.java       |  52 ++
 .../pipelined/PipelinedMongoDownloadTask.java      | 199 +++--
 .../flatfile/pipelined/PipelinedSortBatchTask.java | 110 ++-
 .../flatfile/pipelined/PipelinedStrategy.java      | 116 +--
 .../flatfile/pipelined/PipelinedTransformTask.java |  45 +-
 .../flatfile/pipelined/PipelinedUtils.java         |  65 ++
 .../pipelined/TransformStageStatistics.java        |  47 +-
 .../MergeIncrementalFlatFileStore.java             |  72 +-
 .../document/indexstore/IndexStoreUtils.java       |  14 +-
 .../oak/indexversion/PurgeOldIndexVersion.java     |   1 -
 .../oak/run/cli/BlobStoreFixtureProvider.java      |   1 -
 .../flatfile/FlatFileNodeStoreBuilderTest.java     |  21 -
 .../document/flatfile/FlatFileStoreTest.java       | 504 +------------
 .../indexer/document/flatfile/MergeRunnerTest.java | 301 --------
 .../MultithreadedTraverseWithSortStrategyTest.java | 128 ----
 .../document/flatfile/TraverseAndSortTaskTest.java |  92 ---
 .../flatfile/analysis/modules/BinarySizeTest.java  | 188 +++++
 .../analysis/modules/IndexDefinitions.java         |  88 +++
 .../analysis/modules/IndexedPropertyTest.java      |  70 ++
 .../flatfile/analysis/modules/NodeCountTest.java   |  55 ++
 .../analysis/modules/NodeTypeCountTest.java        |  58 ++
 .../flatfile/analysis/modules/NodeTypes.java       | 102 +++
 .../analysis/modules/PropertyStatsTest.java        |  74 ++
 .../flatfile/analysis/stream/NodeStreamTest.java   |  98 +++
 .../flatfile/analysis/stream/VarIntTest.java       |  32 +-
 .../flatfile/analysis/utils/BloomFilterTest.java   | 126 ++++
 .../analysis/utils/CountMinSketchTest.java         | 151 ++++
 .../flatfile/analysis/utils/HyperLogLogTest.java   | 188 +++++
 .../flatfile/analysis/utils/TopKValuesTest.java    |  43 +-
 .../pipelined/NodeStateEntryBatchTest.java         |  49 +-
 .../document/flatfile/pipelined/PipelinedIT.java   | 218 +++++-
 .../pipelined/PipelinedMergeSortTaskTest.java      |  75 +-
 .../pipelined/PipelinedMergeSortTaskTestBase.java  |  11 +-
 .../pipelined/PipelinedMongoDownloadTaskTest.java  | 192 ++++-
 .../pipelined/PipelinedSortBatchTaskTest.java      |  25 +-
 .../flatfile/pipelined/PipelinedUtilsTest.java     |  66 ++
 .../incrementalstore/IncrementalStoreIT.java       |   4 +-
 oak-run-elastic/pom.xml                            |   5 +-
 .../index/indexer/document/ElasticIndexerTest.java |  25 +-
 .../ElasticPurgeOldIndexVersionTest.java           |   3 +-
 oak-run/pom.xml                                    |   2 +-
 .../apache/jackrabbit/oak/run/AvailableModes.java  |   1 +
 .../apache/jackrabbit/oak/run/FlatFileCommand.java | 138 ++++
 .../oak/index/DocumentStoreIndexerIT.java          |  99 +++
 .../jackrabbit/oak/run/FlatFileCommandTest.java    |  98 +++
 oak-search-elastic/pom.xml                         | 103 +--
 .../plugins/index/elastic/ElasticConnection.java   |  23 +-
 .../index/elastic/ElasticIndexDefinition.java      |  20 +-
 .../elastic/index/ElasticBulkProcessorHandler.java | 242 +++---
 .../index/elastic/index/ElasticCustomAnalyzer.java |   8 +-
 .../index/ElasticCustomAnalyzerMappings.java       |   4 +-
 .../index/elastic/index/ElasticDocument.java       | 138 ++--
 .../index/elastic/index/ElasticIndexHelper.java    |  41 +-
 .../index/elastic/index/ElasticIndexWriter.java    |  49 +-
 .../index/elastic/query/ElasticRequestHandler.java | 133 ++--
 .../query/async/ElasticResultRowAsyncIterator.java |   9 +-
 .../query/async/facets/ElasticFacetProvider.java   |  16 +-
 .../facets/ElasticInsecureFacetAsyncProvider.java  |   6 +-
 .../facets/ElasticSecureFacetAsyncProvider.java    |  25 +-
 .../ElasticStatisticalFacetAsyncProvider.java      | 223 +++---
 .../index/elastic/ElasticConnectionRule.java       |  16 +-
 .../plugins/index/elastic/ElasticFacetTest.java    |   2 +-
 .../elastic/ElasticFunctionIndexCommonTest.java    |  14 +-
 .../elastic/ElasticIndexProviderServiceTest.java   |  45 +-
 .../index/elastic/ElasticPropertyIndexTest.java    |  10 +-
 .../index/elastic/ElasticReliabilityTest.java      |   8 +-
 .../plugins/index/elastic/ElasticTestServer.java   |   8 +-
 .../index/ElasticBulkProcessorHandlerTest.java     |  17 +-
 .../elastic/index/ElasticIndexWriterTest.java      |  48 +-
 oak-search-mt/pom.xml                              |   2 +-
 oak-search/pom.xml                                 |   2 +-
 .../index/search/spi/query/FulltextIndex.java      |  19 +
 .../oak/plugins/index/DynamicBoostCommonTest.java  |  15 +
 .../oak/plugins/index/FacetCommonTest.java         | 103 ++-
 .../oak/plugins/index/FunctionIndexCommonTest.java | 815 +++++++++++----------
 .../oak/plugins/index/OrderByCommonTest.java       | 219 +++---
 .../plugins/index/search/IndexDefinitionTest.java  | 163 +++--
 .../index/search/spi/query/FulltextIndexTest.java  |  13 +
 oak-security-spi/pom.xml                           |   2 +-
 oak-segment-aws/pom.xml                            |   2 +-
 oak-segment-azure/pom.xml                          |  14 +-
 .../oak/segment/azure/AzureArchiveManager.java     |  11 +-
 .../oak/segment/azure/AzureJournalFile.java        |  29 +-
 .../oak/segment/azure/AzurePersistence.java        |  55 +-
 .../oak/segment/azure/AzureRepositoryLock.java     |  52 +-
 .../segment/azure/AzureSegmentArchiveWriter.java   |  24 +-
 .../oak/segment/azure}/package-info.java           |   4 +-
 .../segment/azure/util/AzureRequestOptions.java    |  96 +++
 .../segment/azure/tool/SegmentCopyTestBase.java    |   5 +
 .../oak/segment/azure/AzureArchiveManagerTest.java | 110 ++-
 .../oak/segment/azure/AzureJournalFileTest.java    |   5 +-
 .../oak/segment/azure/AzureReadSegmentTest.java    |   4 +-
 .../oak/segment/azure/AzureRepositoryLockTest.java |  76 +-
 .../azure/AzureSegmentArchiveWriterTest.java       |   7 +-
 .../oak/segment/azure/AzureTarFileTest.java        |   7 +-
 .../oak/segment/azure/AzureTarFilesTest.java       |   7 +-
 .../oak/segment/azure/AzureTarWriterTest.java      |  12 +-
 .../azure/journal/AzureJournalReaderTest.java      |   3 +-
 .../azure/util/AzureRequestOptionsTest.java        |  78 ++
 oak-segment-remote/pom.xml                         |   6 +-
 .../remote/AbstractRemoteSegmentArchiveWriter.java |   2 +
 .../oak/segment/remote/WriteAccessController.java  |  39 +-
 .../oak/segment/remote/package-info.java           |   2 +-
 .../segment/remote/WriteAccessControllerTest.java  |  57 ++
 .../persistentcache/PersistentRedisCacheTest.java  |  23 +-
 oak-segment-tar/pom.xml                            |   4 +-
 .../oak/backup/impl/FileStoreBackupImpl.java       |  13 +-
 .../oak/backup/impl/FileStoreRestoreImpl.java      |  17 +-
 .../oak/segment/CheckpointCompactor.java           | 274 ++++---
 .../jackrabbit/oak/segment/ClassicCompactor.java   | 191 +++--
 .../apache/jackrabbit/oak/segment/Compactor.java   |  67 +-
 .../jackrabbit/oak/segment/CompactorUtils.java     |   3 +-
 .../jackrabbit/oak/segment/ParallelCompactor.java  | 303 ++++----
 .../apache/jackrabbit/oak/segment/SegmentBlob.java |  13 +
 .../segment/{file => }/SegmentWriterFactory.java   |   7 +-
 .../segment/file/AbstractCompactionStrategy.java   | 198 +++--
 .../file/AbstractGarbageCollectionStrategy.java    |  18 +-
 .../file/CleanupFirstCompactionStrategy.java       | 118 +--
 .../oak/segment/file/CompactedNodeState.java       |  69 ++
 .../oak/segment/file/CompactionResult.java         |  44 +-
 .../oak/segment/file/CompactionStrategy.java       |   8 +-
 .../oak/segment/file/CompactionWriter.java         | 105 +++
 .../oak/segment/file/DefaultCleanupContext.java    | 106 +++
 .../oak/segment/file/DefaultCleanupStrategy.java   |  63 +-
 .../oak/segment/file/FullCompactionStrategy.java   |   7 +-
 .../jackrabbit/oak/segment/file/GCIncrement.java   |  66 ++
 .../oak/segment/file/GCNodeWriteMonitor.java       |   7 +-
 .../segment/file/GarbageCollectionStrategy.java    |   1 +
 .../oak/segment/file/GarbageCollector.java         |   2 +
 .../jackrabbit/oak/segment/file/Reclaimers.java    |  15 +-
 .../oak/segment/file/TailCompactionStrategy.java   |   7 +-
 .../oak/segment/file/cancel/Canceller.java         |  13 +-
 .../segment/file/cancel/ShortCircuitCanceller.java |   6 +-
 .../oak/segment/file/tar/GCGeneration.java         |  20 +-
 .../jackrabbit/oak/segment/file/tar/TarReader.java |   3 +-
 .../segment/AbstractCompactorExternalBlobTest.java |  32 +-
 .../oak/segment/AbstractCompactorTest.java         | 106 ++-
 .../CheckpointCompactorExternalBlobTest.java       |  22 +-
 .../oak/segment/CheckpointCompactorTest.java       |  28 +-
 .../oak/segment/ClassicCompactorTest.java          |  16 +-
 .../jackrabbit/oak/segment/CompactorTestUtils.java |  14 +-
 .../segment/ParallelCompactorExternalBlobTest.java |  29 +-
 .../oak/segment/ParallelCompactorTest.java         |  39 +-
 .../oak/segment/file/CompactionStrategyTest.java   |  56 --
 .../file/DefaultGarbageCollectionStrategyTest.java | 130 ++++
 .../segment/file/FullCompactionStrategyTest.java   | 168 +++++
 .../oak/segment/file/GCIncrementTest.java          |  63 ++
 oak-shaded-guava/pom.xml                           |   6 +-
 oak-solr-core/pom.xml                              |   2 +-
 oak-solr-osgi/pom.xml                              |  58 +-
 oak-store-composite/pom.xml                        |   2 +-
 oak-store-document/pom.xml                         |   2 +-
 .../oak/plugins/document/Checkpoints.java          |   9 +-
 .../oak/plugins/document/ClusterNodeInfo.java      |   2 +-
 .../oak/plugins/document/NodeDocument.java         |  48 +-
 .../oak/plugins/document/SplitOperations.java      |  16 +-
 .../plugins/document/VersionGCSplitDocTest.java    |  17 +-
 .../document/VersionGarbageCollectorIT.java        | 619 ++++++++++------
 .../secondary/SecondaryStoreCacheServiceTest.java  |   2 +-
 oak-store-spi/pom.xml                              |   2 +-
 .../jackrabbit/oak/spi/filter/PathFilter.java      |  62 +-
 .../jackrabbit/oak/spi/filter/PathFilterTest.java  |  92 ++-
 oak-upgrade/pom.xml                                |   2 +-
 pom.xml                                            |   2 +-
 275 files changed, 12124 insertions(+), 6264 deletions(-)
 create mode 100644 oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/MetricsUtils.java
 create mode 100644 oak-core/src/main/java/org/apache/jackrabbit/oak/query/SessionQuerySettingsProviderService.java
 create mode 100644 oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/FormattingUtilsTest.java
 create mode 100644 oak-doc/src/site/markdown/security/privilege/mappingprivilegestoactions.md
 create mode 100644 oak-lucene/src/test/java/org/apache/jackrabbit/oak/jcr/query/WhiteboardResultSizeTest.java
 create mode 100644 oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/ManyFacetsTest.java
 copy oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/SegmentWriterFactory.java => oak-query-spi/src/main/java/org/apache/jackrabbit/oak/spi/query/SessionQuerySettings.java (62%)
 copy oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/Compactor.java => oak-query-spi/src/main/java/org/apache/jackrabbit/oak/spi/query/SessionQuerySettingsProvider.java (57%)
 delete mode 100644 oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/DefaultMemoryManager.java
 delete mode 100644 oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/MemoryManager.java
 delete mode 100644 oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/MergeRunner.java
 delete mode 100644 oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/MultithreadedTraverseWithSortStrategy.java
 delete mode 100644 oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/TraverseAndSortTask.java
 create mode 100644 oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/analysis/StatsBuilder.java
 create mode 100644 oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/analysis/modules/BinaryId.java
 create mode 100644 oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/analysis/modules/BinarySize.java
 create mode 100644 oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/analysis/modules/BinarySizeHistogram.java
 create mode 100644 oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/analysis/modules/DistinctBinarySize.java
 create mode 100644 oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/analysis/modules/DistinctBinarySizeHistogram.java
 create mode 100644 oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/analysis/modules/IndexedProperty.java
 create mode 100644 oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/analysis/modules/ListCollector.java
 create mode 100644 oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/analysis/modules/NodeCount.java
 create mode 100644 oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/analysis/modules/NodeNameFilter.java
 create mode 100644 oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/analysis/modules/NodeTypeCount.java
 create mode 100644 oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/analysis/modules/PropertyStats.java
 copy oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/cancel/ShortCircuitCanceller.java => oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/analysis/modules/StatsCollector.java (56%)
 create mode 100644 oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/analysis/modules/Storage.java
 rename oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/{MemoryManagerClient.java => analysis/modules/TimeMeasureCollector.java} (50%)
 create mode 100644 oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/analysis/modules/TopLargestBinaries.java
 create mode 100644 oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/analysis/stream/NodeData.java
 copy oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/Compactor.java => oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/analysis/stream/NodeDataReader.java (58%)
 create mode 100644 oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/analysis/stream/NodeLineReader.java
 create mode 100644 oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/analysis/stream/NodeProperty.java
 create mode 100644 oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/analysis/stream/NodeStreamConverter.java
 create mode 100644 oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/analysis/stream/NodeStreamConverterCompressed.java
 create mode 100644 oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/analysis/stream/NodeStreamReader.java
 create mode 100644 oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/analysis/stream/NodeStreamReaderCompressed.java
 create mode 100644 oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/analysis/utils/BloomFilter.java
 create mode 100644 oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/analysis/utils/CountMinSketch.java
 create mode 100644 oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/analysis/utils/Hash.java
 create mode 100644 oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/analysis/utils/HyperLogLog.java
 create mode 100644 oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/analysis/utils/HyperLogLog3Linear64.java
 create mode 100644 oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/analysis/utils/TopKValues.java
 create mode 100644 oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/pipelined/MongoRegexPathFilterFactory.java
 create mode 100644 oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/pipelined/PipelinedMetrics.java
 create mode 100644 oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/pipelined/PipelinedUtils.java
 delete mode 100644 oak-run-commons/src/test/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/MergeRunnerTest.java
 delete mode 100644 oak-run-commons/src/test/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/MultithreadedTraverseWithSortStrategyTest.java
 delete mode 100644 oak-run-commons/src/test/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/TraverseAndSortTaskTest.java
 create mode 100644 oak-run-commons/src/test/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/analysis/modules/BinarySizeTest.java
 create mode 100644 oak-run-commons/src/test/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/analysis/modules/IndexDefinitions.java
 create mode 100644 oak-run-commons/src/test/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/analysis/modules/IndexedPropertyTest.java
 create mode 100644 oak-run-commons/src/test/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/analysis/modules/NodeCountTest.java
 create mode 100644 oak-run-commons/src/test/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/analysis/modules/NodeTypeCountTest.java
 create mode 100644 oak-run-commons/src/test/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/analysis/modules/NodeTypes.java
 create mode 100644 oak-run-commons/src/test/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/analysis/modules/PropertyStatsTest.java
 create mode 100644 oak-run-commons/src/test/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/analysis/stream/NodeStreamTest.java
 copy oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/Compactor.java => oak-run-commons/src/test/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/analysis/stream/VarIntTest.java (52%)
 create mode 100644 oak-run-commons/src/test/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/analysis/utils/BloomFilterTest.java
 create mode 100644 oak-run-commons/src/test/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/analysis/utils/CountMinSketchTest.java
 create mode 100644 oak-run-commons/src/test/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/analysis/utils/HyperLogLogTest.java
 copy oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/cancel/ShortCircuitCanceller.java => oak-run-commons/src/test/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/analysis/utils/TopKValuesTest.java (50%)
 create mode 100644 oak-run-commons/src/test/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/pipelined/PipelinedUtilsTest.java
 create mode 100644 oak-run/src/main/java/org/apache/jackrabbit/oak/run/FlatFileCommand.java
 create mode 100644 oak-run/src/test/java/org/apache/jackrabbit/oak/run/FlatFileCommandTest.java
 copy {oak-segment-remote/src/main/java/org/apache/jackrabbit/oak/segment/remote => oak-segment-azure/src/main/java/org/apache/jackrabbit/oak/segment/azure}/package-info.java (93%)
 create mode 100644 oak-segment-azure/src/main/java/org/apache/jackrabbit/oak/segment/azure/util/AzureRequestOptions.java
 create mode 100644 oak-segment-azure/src/test/java/org/apache/jackrabbit/oak/segment/azure/util/AzureRequestOptionsTest.java
 copy oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/CompactorUtils.java => oak-segment-remote/src/main/java/org/apache/jackrabbit/oak/segment/remote/WriteAccessController.java (50%)
 create mode 100644 oak-segment-remote/src/test/java/org/apache/jackrabbit/oak/segment/remote/WriteAccessControllerTest.java
 rename oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/{file => }/SegmentWriterFactory.java (87%)
 create mode 100644 oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/CompactedNodeState.java
 create mode 100644 oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/CompactionWriter.java
 create mode 100644 oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/DefaultCleanupContext.java
 create mode 100644 oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/GCIncrement.java
 delete mode 100644 oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/CompactionStrategyTest.java
 create mode 100644 oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/DefaultGarbageCollectionStrategyTest.java
 create mode 100644 oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/FullCompactionStrategyTest.java
 create mode 100644 oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/GCIncrementTest.java