Oak
Oak copied to clipboard
A Scalable Concurrent Key-Value Map for Big Data Analytics
https://github.com/yahoo/Oak/blob/d3691702b54010ff0b67ca9b3a3190dc9b903b64/core/src/test/java/com/oath/oak/IteratorModificationTest.java#L194-L236 In line 211, the ``next()`` sometimes returns ``null`` instead of throwing a ``ConcurrentModificationException``. In the picture attached that scenario can be seen. 
https://github.com/yahoo/Oak/blob/d3691702b54010ff0b67ca9b3a3190dc9b903b64/core/src/main/java/com/oath/oak/InternalOakMap.java#L309 https://github.com/yahoo/Oak/blob/d3691702b54010ff0b67ca9b3a3190dc9b903b64/core/src/main/java/com/oath/oak/InternalOakMap.java#L383 https://github.com/yahoo/Oak/blob/d3691702b54010ff0b67ca9b3a3190dc9b903b64/core/src/main/java/com/oath/oak/InternalOakMap.java#L421 In all the lines above, the operation on the handle may return ``false``, meaning that the value is deleted and operation should restart. In particular, in line...
As it seems a user obtains an OakWBufferImpl when calling a compute(). Before returning this buffer to the user a writelock is taken. However, OakWBuffer offers a transform() operation which...
This class is a singleton so keeps a reference to all blocks/ByteBuffers at all time so off heap memory is never released even if oak is closed and not referenced...
If i create a new builder like this: `OakMapBuilder builder = new OakMapBuilder() .setKeySerializer(stringSer) .setValueSerializer(stringSer) .setComparator(comparator)` I get an exception: `java.lang.NullPointerException at com.oath.oak.Insert$BenchmarkState$1.calculateSize(Insert.java:75) at com.oath.oak.Insert$BenchmarkState$1.calculateSize(Insert.java:52) at com.oath.oak.InternalOakMap.(InternalOakMap.java:66) at com.oath.oak.OakMap.(OakMap.java:74) at...
Currently the iterators in Oak may return NULL (as value or entry) upon key that is concurrently deleted or not fully inserted. For example, look on class EntryTransformIterator method internalNext()....
The first Oak issue (!) 🥇 Rearranging the Oak Memory Management so it supports any Oak size and can get an external Memory Allocator. Hereby please find the new design:...