Infinispan Features

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
back to top