Mon. Nov 18th, 2019

Infinispan 10.0.1.Final released, distributed cluster cache system

3 min read
Infinispan is an extremely scalable, highly available key/value data store and data grid platform. It is 100% open source and written in Java. The purpose of Infinispan is to expose a data structure that is distributed, highly concurrent and designed ground-up to make the most of modern multi-processor and multi-core architectures. It is often used as a distributed cache, but also as a NoSQL key/value store or object database.

Feature

In-memory local and clustered cache

  • Local, Invalidation, Replicated and Distributed cache modes
  • Specify how many copies of the data you want
  • Choose between storing object references or compact binary representations
  • Store data on-heap or off-heap

Clustering

  • UDP and TCP clustering
  • Multiple discovery algorithms for elastic node provisioning
  • Partition handling detects split brain scenarios and reduces availability to provide consistency in such situations
  • Cross-site clustering for geographic multiple site / disaster recovery scenarios
  • High-speed serialization built on JBoss Marshalling
  • Group entries so that they are co-located on the same node
  • Tune consistent hashing so that entries are stored on specific nodes

Expiration

  • Store immortal and mortal entries in the same cache
  • Entry mortality defined by lifespan or maximum idle time

Eviction

  • Define the maximum number of entries to be kept in memory
  • Define the maximum size of entries to be kept in memory
  • High performance LFU eviction strategy
  • Passivate evicted entries to a persistent store

Listeners

  • Register listeners to detect cache events
  • Support for local or clustered listeners
  • Pre- and post-notifications

Transactions

  • Concurrency control based on optimistic and pessimistic locks and total order
  • Support for XA and synchronization models
  • Support for Recovery
  • Integration with JTA/JTS

Persistence

  • Store data both in the cache and in an external persistent store
  • File, JDBC, JPA, Infinispan Remote Server, RocksDB stores available out-of-the-box

Indexing and querying

  • Indexed and indexless queries
  • Ickle, a query language with full-text capabilities
  • Grouping and aggregation
  • Continuous queries
  • Optionally stores indexes in the caches
  • Synchronous and asynchronous indexing engine
  • Lucene-based indexing powered by Hibernate Search
  • Elastic Search backend

Code execution

  • Distributed streams based on java.util.stream
  • Distributed executor
  • Server-side deployable tasks and scripts

Hot Rod Remote Protocol

  • High-performance, language-independent binary protocol
  • Topology-aware: Dynamically reacts to changes in the server nodes
  • Consistent-hash-aware: goes directly to the primary owner
  • Language-independent marshalling of data via ProtoBuf
  • Clients for Java, C++, C#, Python

Remote Server

  • HotRod, REST, Memcached and WebSocket
  • Compatibility mode ensures data portability between protocols
  • Deployable filters, converters and cache stores
  • Server-side code execution
  • Based on WildFly server code for performance, manageability and flexibility

Security

  • Cache and CacheManager authorization with support for custom auditing, optionally integrated with the JDK SecurityManager.
  • Remote client authentication based on SASL and integrated with the Security Realms in the server.
  • Clustering authentication and authorization integrated with the Security Realms in the server.

Configuration / Development

  • Fluent programmatic configuration API
  • Declarative XML configuration
  • Configuration templates
  • Single-jar for ease of integration
  • Atomic object factory supports other types of collections on top of Infinispan

Management and monitoring

  • Local and clustered statistics
  • Manage both embedded and server via JMX, RHQ and CLI
  • Web-based administration console for server

Integrations

  • JCache (JSR-107)
  • Hibernate second-level Cache
  • WildFly modules
  • Apache Lucene directory backed by Infinispan
  • Directory Provider for Hibernate Search
  • Spring Cache 3.x and 4.x
  • Spring Session
  • CDI
  • OSGi
  • Apache Spark
  • Apache Hadoop

Container/Cloud integrations

  • EC2
  • OpenShift/Kubernetes
  • Azure
  • Docker

Changelog v10.0.1.Final

Component Upgrade

  • [ISPN-10852] – Upgrade to protostream-4.3.0.Final

Bug

  • [ISPN-10722] – Mgmt console: home page load fails in case secured cache container
  • [ISPN-10856] – Proto lock files not committed during .Final release
  • [ISPN-10857] – Add infinispan-jboss-marshalling to server distribution for transcoding
  • [ISPN-10860] – Attributes with DataType.TRAIT are not metrics
  • [ISPN-10861] – Wildfly-modules integration tests marshalling failures
  • [ISPN-10862] – SpringCache unwrapping NullValue singleton fails with Java Serialization
  • [ISPN-10865] – NPE if DefaultCacheManager ClassWhiteList utilised on component start()
  • [ISPN-10866] – Wildfly InfinispanExtension Should always use jboss-marshalling
  • [ISPN-10867] – AsyncStoreWithoutEvictionFunctionalTestsegmented creates data directories in core directory
  • [ISPN-10876] – NPE when using PutMap with listener
  • [ISPN-10877] – REST API consistency fixes
  • [ISPN-10878] – TransportConfigurationBuilder.read(…) does not propagate properties

Download