Skip to content
Go to file
Cannot retrieve contributors at this time
154 lines (120 sloc) 4.75 KB
Release 2.5.0
- (TZ) Added convenience API for multi-map (PH-Tree with duplicates): PhTreeMultiMapF.
Release 2.4.0
- (TZ for Improbable) Added missing public API for filtered queries: PhTree.query(min, max, filter)
Release 2.3.0
- (TZ for Improbable) Fixed bug in compute()/computeIfPresent() in V13
- (TZ for Improbable) Added missing compute functions fot PhTreeF, PhTreeSolid and PhTreeSolidF
- (TZ for Improbable) Minor cleanup
Release 2.2.0
- (TZ for Improbable) Added Java 8 Map API to V13 and V16 (putIfAbsent(), compute(), ...)
Only compute() and computeIfPresent() are currently optimized. The other methods use a naive implementation.
- (TZ for Improbable) Several minor speed improvements to V13 and V16, including reduced garbage creation.
Release 2.1.0
- (TZ for Improbable) Some cleanup and javadoc updates
- (TZ for Improbable) Improvements for running multiple PH-Trees concurrently:
- removed AtomicInt entry counter
- Changed Object/array pools to be unsynchronized and local (to the tree) instead of global and synchronized.
Release 2.0.2
- (TZ) Fixed NullPointerException in getStats()
Release 2.0.1
This release contains some minor fixes and documentation updates.
Release 2.0.0
There are three new versions of the PH-tree:
- v13 has a new much better kNN query then previous versions, but has otherwise only small improvements over
the previous v11. v13 is the best version for less than 8 dimensions.
- v16 and v16HD are reimplementations of the PH-Tree. The basic concept is still the same, except that the internal
structure of nodes is now a B+Tree instead of the previous AHC/LHC nodes. Advantages:
* Much simpler code.
* Insertion/removal performance scales much better with dimensionality.
* The v16HD version supports theoretically up to 2^31 dimensions.
* Downside: memory requirements have increased, they are now on par with R*Trees or kD-trees.
* Internal B+Tree structure (with configurable page sizes) makes it more suitable for disk based storage.
* **API Contract Change**: The PH-Tree now stores keys (long[]/double[]) internally. Modifying them
after storing them in the tree will make the tree invalid.
- The `PhTree` factory class will automatically choose one of v13, v16 and v16HD, depending on the number of dimensions.
- (TZ) Fixed bug PhTreeF kNN: distance was not returned.
- (TZ) Fixed bug in CritBit (used by old PH-Tree), see
- (TZ) Update: PhTreeRevisited.pdf v1.2
- (TZ) Updated API classes to improve extensibility
- (TZ) Fixed bug in kNN for rectangles with 0 distance
- (TZ) Added kNN queries support for rectangle data
- (TZ) Added v11, lots of API changes
- (TZ) Added kNN-queries
- (TZ) Added (spherical) range queries
- (TZ) Numerous fixes, improvements, clean-up
- (TZ) Some API changes getDIM() -> getDim(), ...
- (TZ) Added PhTreeRevisited.pdf
- (TZ) Fixed possible NPE (in Critbit64COW) when using trees with k>6
- (TZ) Fixed memory waste in NodeEntries
- (TZ) Proper NoGC iterator for avoiding any object creation (+bug fix)
- (TZ) Changed iterator recursion to loops
- (TZ) Removed some old iterators and NV usage
- (TZ) PhQuery interface added. This allows resetting & reusing of query iterators.
- (TZ) Smaller NodeEntries + Avoid NodeEntry creation in some situations
- (TZ) Added experimental iterator that does not create new long[]...
- Added clear() method
- Fixed bug that prevented internal iterators from being reused (-> performance)
- Fixed another bug that caused queryAll to skip some matching keys.
See TestIndexQueries.testBug64Neg_2()
- Fixed bug that caused queryAll to skip some matching keys.
- (TZ) Fixed bug that prevented internal iterators from being reused
- (TZ) Fixed another bug that caused queryAll to skip some matching keys.
See TestIndexQueries.testBug64Neg_2()
- (TZ) Fixed bug that caused queryAll to skip some matching keys.
- API change! Refactored the API for simplification and removal of old non-value API.
- Significantly reduced object creation during insert/update/delete/query. This should reduce
GC problems.
- New queryAll() function that returns a list of results instead of an iterator. This should
be faster especially for small expected result sets.
You can’t perform that action at this time.