InfoQ

News

Dynamic Management Capabilities Added to Gemfire Enterprise 6.0

Posted by Dave West on Jun 23, 2009

Community
Architecture,
.NET,
Java
Topics
Clustering & Caching ,
Data Access ,
Artifacts & Tools
Tags
In-Memory Persistence ,
GemStone ,
GemFire ,
Caching

Gemstone has announced the release of Gemfire Enterprise 6.0 with features that support, "dynamic adjustment of compute resources to meet service demands without any interruption to operations." Gemfire provides an in-memory persistence layer, a "data fabric," as a middle tier between applications and data sources to enhance performance by offering data access services as memory speeds. (See InfoQ, May 8, 2008.) This new release extends Gemfire's management functions allowing dynamic management of the data fabric.

With built-in instrumentation that captures throughput and latency metrics, GemFire enables applications to sense changing performance patterns and proactively provision extra resources and trigger rebalancing of predictable data access throughput and latency without the need to overprovision capacity. Together, the new features combine to offer unprecedented improvements in ease-of-use and manageability of data over a distributed architecture.

Although cloud computing is not explicitly mentioned, Gemfire Enterprise 6.0 does offer cloud-like functionality; e.g., "support for the 'data elasticity' required to manage dynamically changing workloads across globally dispersed data centers."

In addition to the dynamic management features at the core of this release, the 6.0 version offers:

  • "Data aware application behavior routing" - with a set of extensions that enhance scalability and parallelization by balancing data and application behavior to increase throughput.
  • API extensions for C++ and C# - in addition to current Java APIs
  • Cost-based query optimization for higher performance and smaller memory footprint.
  • Some developer productivity enhancements based on the ability to browse and edit data across the entire data fabric, execute ad hoc queries, and creation of real-time table views.

The developer productivity tools are responsive to the needs of teams engaged in iterative development, i.e. agile teams.

 

Gemstone has a long history as a provider of object database solutions, but is better known today for its Gemfire and Maglev (scalable Ruby development environment) offerings. One of the "surprises" discussed by Kent Beck in his QCon San Francisco talk in 2009, was the "flattening of data models" and the need for alternatives to the highly structured data solutions offered by relational databases. To the extent that the trend noted by Kent continues, the developer community might find solutions like Gemfire and the Gemstone object DB of increasing interest.

Oracle Coherence Data Grid by Cameron Purdy Posted Jun 29, 2009 2:10 PM
Native C++ caching, not just API by Jags Ramnarayan Posted Jul 2, 2009 10:39 AM
Re: Native C++ caching, not just API by Cameron Purdy Posted Jul 2, 2009 10:54 PM
  1. Back to top

    Oracle Coherence Data Grid

    Jun 29, 2009 2:10 PM by Cameron Purdy

    This is similar to Oracle Coherence, which also provides:



    * "Data aware application behavior routing"

    * Full-featured API for C++ and C#

    * Cost-based query optimization



    Peace,



    Cameron Purdy | Oracle Coherence

    coherence.oracle.com/

  2. Back to top

    Native C++ caching, not just API

    Jul 2, 2009 10:39 AM by Jags Ramnarayan

    Cameron,

    Isn't it true that Coherence offers an C++ API to the clustered cache services in JVMs? GemStone built a native cache implementation in C++ - so we can manage native C++/C# objects without serialization, deserialization, with eviction, native disk overflow in the C++ process, memory management, etc. All this besides being able to converse with a cluster of JVMs that host data in a highly partitioned or replicated manner using a simple, portable "on the wire" object representation. Turns out, interoperating between Java, C++ and .NET applications using GemFire is far more efficient than using efficient formats like Google Protocol Buffers (by a factor of 2 or higher).


    There is a lot more on GemFire 6.0 on our GemFire community site

    regards,
    Jags Ramnarayan

  3. Back to top

    Re: Native C++ caching, not just API

    Jul 2, 2009 10:54 PM by Cameron Purdy

    Hi Jags -



    Isn't it true that Coherence offers an C++ API to the clustered cache services in JVMs?



    Among other things, that is certainly true.



    GemStone built a native cache implementation in C++



    Yes, Coherence has had a native C++ cache implementation for a few releases now. Since Coherence 3.4 (about a year ago), we have also had a near cache implementation. And a continuous query cache implementation. We even have local indexes and query support :-)



    All this besides being able to converse with a cluster of JVMs that host data in a highly partitioned or replicated manner using a simple, portable "on the wire" object representation.



    Yes, Coherence introduced the Portable Object Format (POF) a full three years ago now, with implementations in C#, C++ and Java. It sounds like you have done something very similar. It would have been nice if there had been a standard format back then, but now there are things like Google Protocol Buffers.



    Turns out, interoperating between Java, C++ and .NET applications using GemFire is far more efficient than using efficient formats like Google Protocol Buffers (by a factor of 2 or higher).



    Of course ;-) Some of our customers use Google Protocol Buffers. Google Protocol Buffers may not be as optimized as POF, but they are supported by Coherence. In fact, we even support customers plugging in their own proprietary wire / serialization formats, which are surprisingly common in banks.



    Peace,



    Cameron Purdy | Oracle Coherence

Educational Content

Brian Marick on 4 Challenges and 5 Guiding Values of Agile Software Development

Brian Marick takes us through a quick tour of the most important values and challenges to adopting Agile successfully (they aren't the typical challenges and values we hear in the community).

Are You a Software Architect?

The line between development and architecture is tricky. Does it exist at all? Is an ivory tower actually needed? There's a balance in the middle, but how do you move from developer to architect?

Agile – A Way of Life and Pragmatic Use of Authority

The word 'authority' sometimes produces an allergic response in hard-line agilists. Freedom and authority – both are bad if misused and both are good if used in right spirit for a noble cause.

Getting Started with Grails, Second Edition

"Getting Started with Grails" brings you up to speed on this modern web framework. Companies as varied as LinkedIn, Wired, and Taco Bell are all using Grails. Are you ready to get started as well?

Using ITIL V3 as a Foundation for SOA Governance

Those familiar with only ITIL V2 often scoff at the thought that ITIL could serve as a governance framework for SOA. With ITIL V3, the focus of the framework shifted towards service-orientation.

Adrian Colyer on AspectJ, tc Server and dm Server

SpringSource CTO Adrian Colyer discusses AspectJ, SpringSource's dm Server and tc Server products, OSGi and Scrum.

Adam Wiggins on Heroku

Heroku's Adam Wiggins talks about Rails, Background Jobs, Add-Ons, Ruby, and how Heroku manages to work around Ruby's inefficiencies using Erlang and other languages.

SOA as an Architectural Pattern: Best Practices in Software Architecture

For Grady Booch the foundation of a good architecture is patterns, SOA being just one of many patterns. In this Second Life presentation, Booch attempts to bring more clarity on what architecture is.