Stacey Schneider is focused on helping evangelize how cloud technologies are transforming application development and delivery for VMware. Prior to its acquisition, Stacey led marketing and community management for application management software provider Hyperic, now a part of VMware’s management portfolio. Before her work in the cloud, she also held various technical leadership positions at CRM software pioneer Siebel Systems, including Director of Technology Product Marketing, managing the Technology Competency in Europe, and the Globalization professional services practice. She was also a part of Siebel’s Nexus project, which focused on building portable web applications that could be deployed across java application servers as well as .NET. Stacey is also the managing principal of SiliconSpark, a consulting agency that has helped over 12 software companies go to market on the web and across the cloud over the past 4 years. Stacey has posted 39 posts at DZone. You can read more from them at their website. View Full User Profile

Updated GemFire 7 Delivers Fast, Reliable Data at Cloud-Scale

10.30.2012
| 1745 views |
  • submit to reddit

Doubling-down on in-memory data

Download GemFire 7Memory is faster than disk. People realize that when they need to support high performance on-line applications. Recently many traditional database providers latched onto this and started “washing” their offerings with in-memory variations. At the same time, new companies are jumping into the In-Memory Data Grid (IMDG) space with unproven offerings. However, enterprise data is not something many are willing to experiment on.

VMware has virtually pioneered the IMDG, even before it was a category. Its vFabric GemFire team has been at this for a while now with a proven, production-grade offering called GemFire. In its latest release, GemFire 7.0 brings a couple of key enhancements for developers and IT pros alike:

  • Improving developer productivity
  • Increasing operational efficiencies

These improvements are in addition to the already proven data consistency and reliability that many have come to expect form GemFire in their scale-out data architectures. Once more, VMware has shown, both the technical knowhow and the necessary experience in enterprise-grade in-memory data to support on Cloud-scale.

Modern application development meets modern data

GemFire 7.0 helps developers get productive quickly. While developers always had the GemFire API to write transactional, web-oriented applications, the Spring Data GemFire project makes that experience even easier by enabling a declarative approach with the familiar Spring Framework. Do take a look at the GemFire documentation as we’ve added a section on the Spring Data GemFire project. In the documentation, you’ll find several samples of either approach.

Increasingly, developers are looking to support mobile devices with their applications. I’m excited to announce that GemFire 7.0 now supports JSON documents natively. GemFire now delivers the very same scale-out, low latency and real-time query capabilities for JSON document content often used in mobile devices. GemFire also enables you to query across both key-value/object data as well as JSON documents. Additional, GemFire’s renowned support for ACID transactions and the unique continuous query capabilities are extended to JSON documents. Bottom line, you get all the benefits of GemFire with support for this popular document data format.

Making it easier for IT Operations

Under the covers, GemFire 7 brings a completely redesigned JMX federated MBeans strategy to manage and monitor GemFire. Because it is integrated directly into all of the GemFire processes, JMX standard enables IT to administer the entire GemFire distributed system, either natively or using additional 3rd party tools like JConsole.

GemFire 7 also updates the command shell called gfsh (pronounced “gee – fish”), which amongst many other things allows admins to easily start and stop GemFire servers and locators, configure individual members, create and populate regions, deploy JARs dynamically, detect and debug deadlocks, manage disk-stores and import and export data snapshots.

paulsvFabric GemFire 7.0 also introduces GemFire Pulse, a Web browser-based monitoring dashboard that allows you to view and monitor the current status of the entire GemFire cluster.

Using Pulse, admins can examine many of the vital GemFire information in real time, including the total amount of memory, CPU, and disk space used by members, uptime statistics, client connections, WAN connections, and critical notifications. Pulse also connects to a GemFire JMX manager to provide a complete view of the GemFire deployment. Using the browser-based Pules UI you can drill down from a high-level cluster view to examine individual members and even regions within a specific member, to filter the type of information and level of detail. See GemFire Pulse for more information

Data at Cloud-scale

GemFire supports a variety of topologies depending upon your situation. You can handle the simple cases and move to more sophisticated deployments as your data needs change.

In any one of these deployments, GemFire’s performance goes beyond simple data delivery. Its architecture is built to assure speedy recovery of failed members while keeping up with the explosion in structured and unstructured data many of the organizations are currently experiencing. Here are some of the characteristics that drive GemFire architecture.

Data Consistency

Most products in the IMDG category strive to increase data performance by shifting their focus away from disk. Many of these implementations, however, tend to suffer from either being too relaxed with respect to data consistency, lack support for managing referential data integrity, or are limited by the available process memory of a single machine.

In contrast to these products, GemFire manages data by distribution across cluster of nodes. Using dynamic replication and partitioning capabilities, GemFire delivers the necessary flexibility of full replication or fault tolerant partitions, across selected nodes or persistence regions within these nodes.

Regardless of the partitioning strategy, GemFire ensures that all copies of a data eventually reach a consistent state on all members and clients that host the region. This consistency checking is enabled by default, and, applies even to GemFire members that replicate region events across WAN.

For detail description of the GemFire consistency model please see Consistency for Distributed Updates.

Horizontal Scalability

As modern applications increasingly put strain on traditional database technology, GemFire’s distributed data management capability allows applications to scale while serving millions of real-time users, potentially across geographically dispersed regions.

GemFire is designed with the goal of completely eliminating the bottlenecks associated with managing data on disk. It manages its data in-memory, across a cluster of nodes to achieve near linear throughput increase while in the same time supporting an increasing number of concurrent clients. It is important to point out that GemFire can deliver that level of scalability using commodity hardware or virtualized infrastructure.

Long-distance Data Synchronization

GemFire enables its data grid to span across long distances. Whether this is in town or across continents, GemFire assures local data access based on its linearly scalable Active-Active data synchronization solution.

To further enhance the Active-Active data synchronization, GemFire transparently handles network performance and reliability issues by resolving any data inconsistencies that may arise when these peers return online. This feature enables each application instance to realize the required data access performance while ensuring data consistency even in most unreliable network scenarios.

Native Support for Memcached Clients by Using Gemcached

Gemcached is a lightweight adapter that now allows memcached clients to automatically connect to GemFire. GemFire includes an embedded Gemcached server which listens for connections from memcached clients. The Gemcached server transparently translates the traditional memcached protocol connections to the underlying GemFire APIs. This improvement gives memcached clients an immediate access to rich GemFire features such as replication and high-availability without the need for modification of existing code. For more information on GemCached see the vFabric GemFire Users Guide.

Data Querying

Just like in previous versions, objects managed in memory by GemFire can be easily queried using familiar, SQL-like syntax including many of the advanced querying constructs like projections and aggregations. Using its new paging architecture, GemFire further reduces its indexing footprint while increasing performance.

Additional Information

The highlights above are just scratching the surface, for more insight on what’s new in GemFire 7 check here:

Release notes:
https://www.vmware.com/support/vfabric-gemfire/doc/vfabric-gemfire-rn-7.0.0.html

Complete documentation:
https://www.vmware.com/support/pubs/vfabric-gemfire.html

GemFire Community:
https://www.vmware.com/go/gemfcomm

Mark Chmarny

About Mark Chmarny

During his 15+ year career, Mark Chmarny has worked across various industries and most recently as a Cloud Architect at EMC where he developed Cloud Computing solutions for both Service Provider and Enterprise customers. At VMware, Mark is a Data Solution Evangelist in the Cloud Application Platform group. Mark received a Mechanical Engineering degree from Technical University in Vienna, Austria and a BA in Communication Arts from Multnomah University in Portland, OR.

 

 

0
Published at DZone with permission of its author, Stacey Schneider.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)