A maintained fork of Cliff Click's high-scale-lib with bug fixes, improvements, and versioned Maven builds.
High Scale Lib is a collection of concurrent and highly scalable Java utilities that serve as direct replacements for standard java.util.* and java.util.concurrent.* collections. It provides better performance in multi-threaded environments by offering lock-free data structures that scale linearly with CPU count, addressing the bottleneck issues common in traditional synchronized collections.
Java developers building high-performance, multi-threaded applications that require scalable concurrent data structures, particularly those working on systems with many CPUs where traditional collections become bottlenecks.
Developers choose High Scale Lib because it provides proven, production-ready concurrent data structures that offer linear scalability to 768 CPUs, with maintained bug fixes and proper versioning through Maven Central, making it more reliable than the original unmaintained version.
A fork of Cliff Click's High Scale Library. Improved with bug fixes and a real build system.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
NonBlockingHashMap scales linearly to 768 CPUs, as stated in the README, effectively eliminating bottlenecks in highly concurrent environments.
Offers drop-in replacements for Hashtable and ConcurrentHashMap via bootclasspath modification, maintaining API compatibility with improved performance.
Boundary's fork provides regular bug fixes and Maven Central releases, ensuring reliability over the original unmaintained version.
Uses non-blocking algorithms for data structures like NonBlockingHashMap, reducing lock contention and improving throughput in multi-threaded scenarios.
Replacing JDK classes requires -Xbootclasspath/p JVM flags, which complicates deployment, debugging, and containerization in modern environments.
The README admits single-threaded performance may be slightly lower due to optimizations for concurrency, making it inefficient for non-parallel workloads.
Differences in iteration order and lack of synchronization can break applications relying on undocumented JDK behaviors, as noted in the README's SpecJBB example.