boundary / high-scale-lib Goto Github PK
View Code? Open in Web Editor NEWA fork of Cliff Click's High Scale Library. Improved with bug fixes and a real build system.
A fork of Cliff Click's High Scale Library. Improved with bug fixes and a real build system.
Map<Long, Object> map = new NonBlockingHashMap<Long, Object>();
for (long i = 0;;i++) {
map.put(i, i);
map.remove(i);
}
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at org.cliffc.high_scale_lib.NonBlockingHashMap$CHM.resize(NonBlockingHashMap.java:863)
at org.cliffc.high_scale_lib.NonBlockingHashMap$CHM.access$3(NonBlockingHashMap.java:794)
at org.cliffc.high_scale_lib.NonBlockingHashMap.putIfMatch(NonBlockingHashMap.java:649)
at org.cliffc.high_scale_lib.NonBlockingHashMap.putIfMatch(NonBlockingHashMap.java:354)
at org.cliffc.high_scale_lib.NonBlockingHashMap.put(NonBlockingHashMap.java:313)
It is really serious bug because this make it unusable in many cases.
Same issue was addressed at
In the README file please add some notices about its limitation .
Not available LICENSE file in source directory structure
Please. Added license and copyright notice.
the fedora pakaging guideline is very strictly precise about this problem
https://fedoraproject.org/wiki/Packaging:LicensingGuidelines?rd=Packaging/LicensingGuidelines#License_Text
Thanks in advance
Regards
Hi, we would like to use this library in apache cassanda but we've hit a snag when trying to build from our .pom file
Would it be possible for you to publish this library to maven central?
see https://issues.apache.org/jira/browse/CASSANDRA-7128 for reference.
I believe there is a typo in get_impl
here: https://github.com/boundary/high-scale-lib/blob/master/src/main/java/org/cliffc/high_scale_lib/NonBlockingHashMap.java#L540
The line should instead read K == TOMBSTONE
.
You'll note that key
is what the user passed in, and users should never try to retrieve a TOMBSTONE
. In fact, I think Java's type safety prevents them from even getting a reference to the TOMBSTONE
.
This typo can effect the safety and efficiency of the get
operation as the hash table is no longer linearizable. A write, that is then marked with a TOMBSTONE
and copied to the new table will be set to TOMBSTONE
. If the copying and the get race, the copy could see a null
and return the null
, even though it should instead begin looking in the next table. It's a small race, but it's there.
It's also less efficient to reprobe up to reprobe_limit
on larger tables, but what's a few extra cycles among friends ;-).
Original software is Public Domain, pom.xml file here contains information package is MIT licensed. It creates confusion about correct license and LICENSE
file with proper content may make uncertainity lower.
Licensing information in README
usually helps too.
The following source files are without license headers.
Please, confirm the licensing of code and/or content/s, with adding license headers
https://fedoraproject.org/wiki/Packaging:LicensingGuidelines?rd=Packaging/LicensingGuidelines#License_Clarification
src/main/java/com/boundary/BitPrint.java
src/main/java/com/boundary/high_scale_lib/NonBlockingHashSetLong.java
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.