VMware GemFire is an enterprise grade, high speed in-memory data and compute grid for high-performance, low latency applications where data must be consistent, up to date and delivered with sub-millisecond response times at scale, across multiple data centers.
VMware GemFire pools memory, CPU, network resources, and optionally local disk across multiple processes to manage application objects and behavior. It uses dynamic replication and data partitioning techniques to implement high availability, high performance, scalability, and fault tolerance. In addition to being a distributed data container, VMware GemFire is an in-memory data management system that provides reliable asynchronous event notifications and guaranteed message delivery.
Caches are an abstraction that describe a node in a VMware GemFire distributed system. Application architects can arrange these nodes in peer-to-peer or client/server topologies.
Within each cache, you define data regions. Data regions are analogous to tables in a relational database and manage data in a distributed fashion as name/value pairs. A replicated region stores identical copies of the data on each cache member of a distributed system. A partitioned region spreads the data among cache members. After the system is configured, client applications can access the distributed data in regions without knowledge of the underlying system architecture. You can define listeners to create notifications about when data has changed, and you can define expiration criteria to delete obsolete data from a region.
VMware GemFire locators provide both member discovery and load-balancing services. You configure clients with a list of locator services and the locators maintain a dynamic list of member servers.
VMware GemFire uses continuous querying to enable event-driven architectures. VMware GemFire ties events and data together so that when an event is processed, the data required to process the event is available without additional queries to a disk-based database. Clients can subscribe to change notifications so that they can execute tasks when a specific piece of data changes.
In addition to peer-to-peer and client/server topologies, VMware GemFire supports multi-site configurations that allow you to scale horizontally between disparate, loosely-coupled distributed systems over a wide geographically separated network. A wide-area network (WAN) is the main use case for the multi-site topology.