Chronicle Map
Redisson
Our great sponsors
Chronicle Map | Redisson | |
---|---|---|
4 | 3 | |
2,676 | 22,677 | |
0.5% | 1.1% | |
8.5 | 9.9 | |
7 days ago | 3 days ago | |
Java | Java | |
Apache License 2.0 | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Chronicle Map
-
GC, hands off my data!
I decided to start with an overview of what open-source options are currently available. When it comes to the implementation of the on-heap cache mechanism, the options are numerous – there is well known: guava, ehcache, caffeine and many other solutions. However, when I began researching cache mechanisms offering the possibility of storing data outside GC control, I found out that there are very few solutions left. Out of the popular ones, only Terracotta is supported. It seems that this is a very niche solution and we do not have many options to choose from. In terms of less-known projects, I came across Chronicle-Map, MapDB and OHC. I chose the last one because it was created as part of the Cassandra project, which I had some experience with and was curious about how this component worked:
-
Off-heap memory in Java
Chronicle-Map: Chronicle Map is an in-memory, key-value store, designed for low-latency, and/or multi-process applications.
-
Solution for hash-map with >100M values
https://github.com/OpenHFT/Chronicle-Map - Maybe a better offheap map
I've wrangled data sets in the ~600gb range using nothing but plain old Java and a few beefy boxes. This can all be kept in memory, but you have to go off-heap. You can use Chronicle Map and Chronicle Values to model this data and work with it off-heap in a way that's still very clean and object oriented. 128gb of RAM is cheap these days, whether you're in the cloud or not.
Redisson
-
Kotlin Spring WebFlux, R2DBC and Redisson microservice in k8s 👋✨💫
Source code you can find in the GitHub repository. he main idea of this project is the implementation of microservice using Kotlin, Spring WebFlux, PostgresSQL, and Redis with metrics and monitoring and deploying it to k8s. For interacting with PostgresSQL we will use reactive Spring Data R2DBC and for Redis caching using Redisson.
-
Implement Hibernate 2nd level Cache with Redis, Spring Boot, and Spring Data JPA
4. We use the open-source library Redisson to connect to Redis instance and use Redis as Hibernate 2nd level cache. Please see their Github repo for more information.
What are some alternatives?
Jedis - Redis Java client
Hazelcast - Hazelcast is a unified real-time data platform combining stream processing with a fast data store, allowing customers to act instantly on data-in-motion for real-time insights.
MapDB - MapDB provides concurrent Maps, Sets and Queues backed by disk storage or off-heap-memory. It is a fast and easy to use embedded Java database engine.
Ehcache - Ehcache 3.x line
Vert.x - Vert.x is a tool-kit for building reactive applications on the JVM
Dropwizard Circuit Breaker - A circuit breaker design pattern for dropwizard
JetBrains Xodus - Transactional schema-less embedded database used by JetBrains YouTrack and JetBrains Hub.
JGroups - The JGroups project
Apache ZooKeeper - Apache ZooKeeper
H2 - H2 is an embeddable RDBMS written in Java.
Atomix - A Kubernetes toolkit for building distributed applications using cloud native principles