Developing with Pivotal GemFire
Developing with Pivotal GemFire explains main concepts of application programming with Pivotal GemFire. It describes how to plan and implement regions, data serialization, event handling, delta propagation, transactions, and more.
For information about GemFire REST application development, see Developing REST Applications for Pivotal GemFire.
The Pivotal GemFire data storage and distribution models put your data in the right place at the right time. You should understand all the options for data storage in GemFire before you start configuring your data regions.
In addition to basic region management, partitioned regions include options for high availability, data location control, and data balancing across the distributed system.
In addition to basic region management, distributed and replicated regions include options for things like push and pull distribution models, global locking, and region entry versions to ensure consistency across GemFire members.
GemFire ensures that all copies of a region eventually reach a consistent state on all members and clients that host the region, including GemFire members that distribute region events.
For all regions, you have options to control memory use, back up your data to disk, and keep stale data out of your cache.
Data that you manage in GemFire must be serialized and deserialized for storage and transmittal between processes. You can choose among several options for data serialization.
GemFire provides versatile and reliable event distribution and handling for your cached data and system member events.
Delta propagation allows you to reduce the amount of data you send over the network by including only changes to objects rather than the entire object.
GemFire provides a SQL-like querying language called OQL that allows you to access data stored in GemFire regions.
Continuous querying continuously returns events that match the queries you set up.
GemFire provides a transactions API, with
rollbackmethods. These methods are much the same as the familiar relational database transactions methods.
A function is a body of code that resides on a server and that an application can invoke from a client or from another server without the need to send the function code itself. The caller can direct a data-dependent function to operate on a particular dataset, or can direct a data-independent function to operate on a particular server, member, or member group.