VMware vFabric GemFire 6.5: modern data management for modern applications
Just some of the properties of new, modern applications are that they tend to be highly interactive, data rich, include business processes, and are available over the web from PCs and mobile devices. Powering these applications are platforms that leverage virtualized infrastructure, provide just the right amount of functionality and can scale easily as demand shifts.
VMware’s vFabric Cloud Application Platform is just such a platform designed to run Spring applications most efficiently and deliver the modern application experience. An essential component of this platform is vFabric GemFire. vFabric GemFire in-memory distributed data management brings data to applications with low latency, high reliability and linear, dynamic scalability. We are pleased to announce vFabric GemFire version 6.5.
vFabric GemFire chief architect, Jags Ramnarayan, provides all of the details about the release in his latest blog post, but some of key new capabilities include:
- Simplified and Intuitive programming model: First, we simplified the programming model by reducing some of the boiler plate bootstrapping code that was required in the past and introduced pre-packaged templates for common configurations and topologies. Second, we launched the new Spring-Gemfire project to introduce a clean programming model for the Spring developer. Note that Spring-GemFire is not bundled with GemFire 6.5. If you are already familiar with the GemFire APIs or just getting started, I would recommend going through the new tutorial that walks through some of the new simplified programming APIs. And, not to worry - your existing application will continue to just run fine. The old APIs are fully supported.
- Database class reliability through Shared-nothing parallel persistence: A unique high performance design to pool disks across the cluster for storing and recovering data. GemFire always supported disk persistence and recovery for replicated data regions but now this capability has been extended for partitioned data also. The design principles adopted are fundamentally different than ones in typical clustered databases. For one, disk storage is shared nothing - each cache process owns its disk store eliminating process level contentions. Second, the design is tilted to favor memory i.e. there are no complex B-Tree data structures on disk; instead we assume complex query navigations will always be done through in-memory indexes. Third, the design uses rolling append-only log files to avoid disk seeks completely. Finally, the design preserves the rebalancing model in GemFire when capacity is increased or decreased - the disk data also relocates itself.
- Improved scale-out capabilities: Application deployments using the tiered model (client process embedding a local cache talking to a server farm) could see a 2X or more performance gain when accessing partitioned data. With 6.5, client processes gain knowledge about server side partitions and use it on the fly to direct traffic directly to the server with the required data set. Application clients subscribing to events using key based register interest or "continuous queries" now have their subscriptions registered on all the partitioned nodes. This allows each partition to process the subcription filters on the nodes where the data changes are applied dramatically reducing messaging traffic between peers unlike in the previous releases. The net effect is that more subscriptions can be processed and the event delivery latency to clients is also reduced.
- Colocated transactions: If each logical partition were to own the entire transactional working set then highly applications can scale linearly if the concurrent transaction load is uniformly spread across the data set and hence across all the partitions. Each partition can coordinate its transaction without any impact to other partitions with no locking requirements across partitions. GemFire 6.5 introduces a change to the distributed transaction design to detect cases where the data is colocated and avoids engaging the built-in distributed lock service.
The complete list of features added in 6.5, can be found in the Gemfire documentation. Also the blog post by Jags covers a lot more detail about th factors contributing to very high disk throughput. Download the new Gemfire 6.5 and take it for a spin.