arne-bdt opened a new pull request, #3245:
URL: https://github.com/apache/jena/pull/3245

   Added optional indexing strategies for `GraphMem2Roaring `and its 
`RoaringTripleStore`.
   
   GitHub issue resolved #3226
   
   Pull request Description:
   - added new enum `org.apache.jena.mem2.IndexingStrategy`.java with the 
following strategies:
     - EAGER, LAZY, LAZY_PARALLEL, MANUAL, MINIMAL
   
   - implemented all strategies in 
`org.apache.jena.mem2.store.roaring.RoaringTripleStore` and added the following 
methods:
     - `#getIndexingStrategy`
     - `#clearIndex`
     - `#initializeIndex`
     - `#initializeIndexParallel`
     - `#isIndexInitialized`
   - implemented additional tests for `RoaringTripleStore`
   
   - extended `GraphMem2Roaring `to support the indexing strategies and added 
new methods:
     - `#getIndexingStrategy`
     - `#clearIndex`
     - `#initializeIndex`
     - `#initializeIndexParallel`
     - `#isIndexInitialized`
   - implemented additional tests for `GraphMem2Roaring`
   - refactored `RoaringTripleStore` by extracting:
     - `org.apache.jena.mem2.store.roaring.NodesToBitmapsMap`
     - `org.apache.jena.mem2.store.roaring.TripleSet`
     - `org.apache.jena.mem2.store.roaring.strategies.StoreStrategy`
     - `org.apache.jena.mem2.store.roaring.strategies.EagerStoreStrategy`
     - `org.apache.jena.mem2.store.roaring.strategies.LazyStoreStrategy`
     - `org.apache.jena.mem2.store.roaring.strategies.ManualStoreStrategy`
     - `org.apache.jena.mem2.store.roaring.strategies.MinimalStoreStrategy`
   
   - added new record `FastHashSet.IndexedKey` to pair index and key of an entry
   - added new methods to `org.apache.jena.mem2.collection.FastHashSet`:
     - `#indexedKeyIterator`
     - `#indexedKeySpliterator`
     - `#indexedKeyStream`
     - `#indexedKeyStreamParallel`
   - added `org.apache.jena.mem2.iterator.SparseArrayIndexedIterator`
   - added `org.apache.jena.mem2.spliterator.SparseArrayIndexedSpliterator`
   - added tests for new methods and classes
   - fixed minor bugs in existing `SparseArraySpliteratorTest `and 
`SparseArraySubSpliteratorTest`
   
   - updated `org.apache.jena.mem.graph.helper.Context` and 
`GraphTripleNodeHelperCurrent` to support parameterized benchmarks for the new 
indexing strategies
   - updated existing benchmark tests with reasonable default parameters for 
the new indexing strategies
   - added benchmark test `org.apache.jena.mem.graph.TestGraphInitializeIndex` 
to evaluate the performance of `#initializeIndex` vs. `#initializeIndexParallel`
   
   ----
   
    - [x] Tests are included.
    -  **On the [Apache Jena website](https://github.com/apache/jena-site/) 
there is no special documentation for the GraphMem2Roaring. Only the javadoc 
may need an update. Does this have to be part of this PR?**
    - [x] Commits have been squashed to remove intermediate development commit 
messages.
    - [x] Key commit messages start with the issue number (GH-xxxx)
   
   By submitting this pull request, I acknowledge that I am making a 
contribution to the Apache Software Foundation under the terms and conditions 
of the [Contributor's 
Agreement](https://www.apache.org/licenses/contributor-agreements.html).
   
   ----
   
   See the [Apache Jena "Contributing" 
guide](https://github.com/apache/jena/blob/main/CONTRIBUTING.md).
   


-- 
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: pr-unsubscr...@jena.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: pr-unsubscr...@jena.apache.org
For additional commands, e-mail: pr-h...@jena.apache.org

Reply via email to