0.7.0 Jul 29, 2016: SerDe API changes; Added MemoryMappedFile
leerho
released this
29 Jul 23:05
·
2792 commits
to master
since this release
Quantiles and FrequentItems Sketches:
- API changes to ArrayOfDoublesSerDe, ArrayOfItemsSerDe, ArrayOfLongsSerDe, ArrayOfStringsSerDe, ArrayOfUtf16StringsSerDe
- Changed the SerDe TYPE, which was a static final constant, quite fragile from a maintenance point-of-view, and had to be assigned by the class developer.
- TYPE has been changed to a more robust TypeID, which is automatically assigned using hashCode() based on the to a SerDe class and can be overridden by the SerDe class developer.
This is used to detect incorrect SerDe instances. Refer to the Javadocs and code documentation of ArrayOfItemsSerDe.
- Corrected problem of downsampling with quantiles/Union: If you set k to a lower value, it was ignored with the first sketch update with a larger k.
All Sketches:
Changed the leaf-node classes to final. These classes are not designed to be extended.
Static analyzers
- Ran FindBugs, which found a few minor coding issues, which have been corrected.
- Running PMD and Checkstyle found a lot of "style" issues. All of the style issues that I agree with have been corrected.
- The /tools directory has a FindBugsExcludeFilter.xml and a SketchesCheckstyle.xml that you can use to run these static checkers yourself.
- They are not yet integrated into the maven pom.xml.
Memory Package
- Added MemoryMappedFile to the Memory package.
- This capability allows mapping a file, which can be larger than 2GB, into native memory and the ability to write any changes back to that file.
- It is similar to, but much simpler than Java's FileChannel.map() function that returns a MappedByteBuffer, which is restricted to files less than 2GB.
- This capability should be considered experimental and is not thread safe.