There are applications that need something in between - great performance but some of those features, too. In our case, the motivation were internal caches in Hibernate Second Level Cache. Therefore Infinispan 8.0.1.Final brings the simple cache - alternative implementation of the AdvancedCache interface optimized for maximum performance when you need just the basics.
The table below shows which features are available in simple cache:
|Basic map-like API||✔|
|Cache listeners (non-clustered)||✔|
|Persistence (cache stores and loader)||✘|
|Map Reduce Framework||✘|
|Distributed Executors Framework||✘|
|Store as binary||✘|
Configuring simple cache is as simple as adding one attribute to the XML configuration:
While configuration schema allows to set up the unsupported features, doing so results in an exception when the cache is created.
You can also configure simple cache programmatically:
So, what kind of performance improvement can you expect? We had run basic (single-threaded) benchmark using JMH and this is what we got:
|Implementation||get() (operations/s)||put() (operations/s)|
This gives us about 5✕ speedup for reads and 6✕ for writes. Your mileage may vary, but it's certain that simple cache provides substantial performance benefits.
So, if your use-case allows it, try out simple cache and let us know. It's as simple as one configuration attribute!