Apache Geode CHANGELOG

Glossary

This glossary defines terms used in Apache Geode documentation.

ACK wait threshold

A time-to-wait for message acknowledgment between system members.

administrative event

See event.

API

Application Programming Interface. Geode provides APIs to cached data for Java applications.

application program

A program designed to perform a specific function directly for the user or, in some cases, for another application program. Geode applications use the Geode application programming interfaces (APIs) to modify cached data.

attribute

Querying: A named member of a data object. The public fields and methods of an object may be accessed as attributes in the context of a query.

Region: See region attributes.

attribute path

A sequence of attributes separated by a dot (.), applied to objects where the value of each attribute is used to apply the next attribute.

blocking

A behavior associated with synchronization functions. Blocking behavior is exhibited as waiting for a signal to proceed, regardless of how long it takes. See also timeout.

cache

In-memory Geode data storage created by an application or cache server for data storage, distribution, and management. This is the point of access for Java applications for all caching features, and the only view of the cache that is available to the application. Cache creation creates a connection to the cluster. See also local and remote.

cache-local

Residing or occurring in the local cache.

cache.xml

Common name for the XML file that declares the initial configuration of a cache. This file is used to customize the behavior of the Geode cache server process and can be used by any Java application. Applications can also configure the cache through the Geode Java APIs. You can give this file any name.

cache event

See event.

cache listener

User-implemented plug-in for receiving and handling region entry events. A region’s cache listener is called after an entry in the local cache is modified. See also cache writer.

cache loader

User-implemented plug-in for loading data into a region. A region’s cache loader is used to load data that is requested of the region but is not available in the cluster. For a distributed region, the loader that is used can be in a different cache from the one where the data-request operation originated. See also netSearch and netLoad.cache misses, where a requested key is not present or has a null value in the local cache.

cache miss

The situation where a key’s value is requested from a cache and the requested key is not present or has a null value. Geode responds to cache misses in various ways, depending on the region and system configuration. For example, a client region goes to its servers to satisfy cache misses. A region with local scope uses its data loader to load the value from an outside data source, if a loader is installed on the region.

cache server

A long-lived, configurable Geode cluster member process that can service client connections.

cache transaction

A native Geode transaction, managed by Geode and not by JTA. This type of transaction operates only on data available from the Geode cache in the local member. See also JTA and global transaction.

cache writer

User-implemented plug-in intended for synchronizing the cache with an outside data source. A region’s cache writer is a synchronous listener to cache data events. The cache writer has the ability to cancel a data modification. See also cache listener and netWrite.

client

A Geode application that is configured as a standalone cluster member, with regions configured as client regions. Client configuration uses the <client-cache> cache.xml element and the ClientCache API.

client region

A Geode cache region that is configured to go to one or more Geode servers, in a separate Geode cluster, for all data distribution activities. Among other things, client regions go to servers to satisfy cache misses, distribute data modifications, and to run single queries and continuous queries.

cluster configuration service

The cluster configuration service saves cluster configurations created by gfsh commands to the locators in a cluster and distributes the configurations to members of the cluster.

collection

Used in the context of a query for a group of distinct objects of homogeneous type, referred to as elements. Valid collections include the java.util.Collection as well as Set, Map, List, and arrays. The elements in a collection can be iterated over. Iteration over a Map traverses its entries as instances of Map.Entry. A region can also be treated as a collection of its values.

commit

A transactional operation that merges a transaction’s result into the cache. Changes are made in an “all or none” fashion. Other changes from outside the current transaction are kept separate from those being committed.

concurrency-level

Region attribute that specifies an estimate of the number of threads ever expected to concurrently modify values in the region. The actual concurrency may vary; this value is used to optimize the allocation of system resources.

conflation

Combining entries in a message queue for better performance. When an event is added to queue, if a similar event exists in the queue, there are two ways to conflate the events. One way is to remove the existing entry from wherever it resides in the queue, and add the new entry to the end of the queue. The other way is to replace the existing entry with the new entry, where it resides in the queue, and add nothing to the end of the queue. In Geode, region entry update events, server events going to clients, and gateway sender events going to remote clusters can all be conflated.

connection

The connection used by an application to access a Geode system. A Java application connects to its Geode cluster when it creates its cache. The application must connect to a cluster to gain access to the Geode functionalities. A client connects to a running Geode server to distribute data and events between itself and the server tier. These client connections are managed by server connection pools within the client applications. Gateway senders connect to a remote gateway receiver to distribute data events between sites.

consumer

Geode member process that receives data and/or events from other members. Peer consumers are often configured with replicated regions, so all changes in the cluster arrive into the local cache. Client consumers can register subscriptions with their servers so that updates are automatically forwarded from the server tier. See producer.

coordinator

The member of the cluster that sends out membership views. This is typically the locator in Geode.

data accessor

In the context of a region, a member configured to use a region, but not store any data for it in the member’s local cache. Common use cases for data accessors are thin clients, and thin producer and consumer applications. Accessors can put data into the region and receive events for the region from remote members or servers, but they store no data in the application. See also data store.

data entry

See entry.

data fabric

Also referred to as an in-memory data grid or an enterprise data fabric. Geode is an implementation of a data fabric. A data fabric is a distributed, memory-based data management platform that uses cluster-wide resources – memory, CPU, network bandwidth, and optionally local disk – to manage application data and application logic (behavior). The data fabric uses dynamic replication and data partitioning techniques to offer continuous availability, very high performance, and linear scalability for data intensive applications, all without compromising on data consistency even when exposed to failure conditions.

data-policy

Region attribute used to determine what events the region receives from remote caches, whether data is stored in the local cache, and whether the data is persisted to disk. For disk persistence, writes are performed according to the cache disk-store configuration.

data region (region)

A logical grouping of data within a cache. Regions usually contain data entries (see entry). Each region has a set of region attributes governing activities such as expiration, distribution, data loading, events, and capacity control. In addition, a region can have an application-defined user attribute.

data store

In the context of a region, a member configured to store data for the region. This is used mostly for partitioned regions, where data is spread across the cluster among the data stores. See also data accessor.

deadlock

A situation in which two or more processes are waiting indefinitely for events that will never occur.

destroy

Distributed: To remove a cached object across the distributed cache.

Local: To remove a cached object from the local cache only.

disk region

A persistent region.

disk-store

Cache element specifying location and write behavior for disk storage. Used for persistence and overflow of data. The cache can have multiple disk stores, which are specified by name for region attributes, client subscription queues (for servers), and WAN gateway sender queues.

distributed cache

A collection of caches spread across multiple machines and multiple locations that functions as a single cache for the individual applications.

distributed system

One or more Geode system members or clusters that have been configured to communicate cache events with each other, forming a single, logical system.

distributed-ack scope

Data distribution setting that causes synchronous distribution operations, which wait for acknowledgment from other caches before continuing. Operations from multiple caches can arrive out of order. This scope is slower but more reliable than distributed-no-ack.

distributed-no-ack scope

Data distribution setting that causes asynchronous distribution operations, which return without waiting for a response from other caches. This scope produces the best performance, but is prone to race conditions.

entry

A data object in a region consisting of a key and a value. The value is either null (invalid) or a Java object. A region entry knows what region it is in. An entry can have an application-defined user attribute. See also region data, entry key, and entry value.

entry key

The unique identifier for an entry in a region.

entry value

The data contained in an entry.

event

An action recognized by the Geode system members, which can respond by executing callback methods. The Geode API produces two types of events: cache events for detail-level management of applications with data caches and administrative events for higher-level management of the cluster and its components. An operation can produce administrative events, cache events, or both.

eviction-attributes

Region attribute that causes the cache to limit the size of the region by removing old entries to make space for new ones.

expiration

A cached object expires when its time-to-live or idle timeout counters are exhausted. A region has one set of expiration attributes for itself and one set for all of its entries.

expiration action

The action to be taken when a cached object expires. The expiration action specifies whether the object is to be invalidated or destroyed and whether the action is to be performed only in the local cache or throughout the cluster. A destroyed object is completely removed from the cache. A region is invalidated by invalidating all entries contained in the region. An entry is invalidated by having its value marked as invalid. Region.getEntry.getValue returns null for an invalid entry.

In Geode, expiration attributes are set at the region level for the region and at the entry level for entries. See also idle timeout and time-to-live.

factory method

An interface for creating an object which at creation time can let its subclasses decide which class to instantiate. The factory method helps instantiate the appropriate subclass by creating the correct object from a group of related classes.

forced disconnect

Forcible removal of a member from membership without the member’s consent.

gateway receiver

A gateway receiver defines connection information for receiving region events that were distributed from a gateway sender in a multi-site deployment.

gateway sender

A gateway sender defines a single remote cluster site and an associated queue for distributing region events in a multi-site deployment.

gemfire.properties

Common name for the file used for cluster configuration, including system member connection and communication behavior, logging and statistics files and settings, and security settings. Applications can also configure the cluster through the Geode Java APIs. You can give this file any name.

global scope

Data distribution setting that provides locking across the cluster for load, create, put, invalidate, and destroy operations on the region and its entries. This scope is the slowest, but it guarantees consistency across the cluster.

global transaction

A JTA-controlled transaction in which multiple resources, such as the Geode cache and a JDBC database connection, participate. JTA coordinates the completion of the transaction with each of the transaction’s resources. See also JTA and cache transaction.

HTTP

World Wide Web’s Hypertext Transfer Protocol. A standard protocol used to request and transmit information over the Internet or other computer network.

idle timeout

The amount of time a region or region entry may remain in the cache without being accessed before being expired. Access to an entry includes any get operation and any operation that resets the entry’s time-to-live counter. Region access includes any operation that resets an entry idle timeout and any operation that resets the region’s time-to-live.

Idle timeout attributes are set at the region level for the region and at the entry level for entries. See also time-to-live and expiration action.

initial capacity

Region attribute. The initial capacity of the map used for storing region entries.

invalid

The state of an object when the cache holding it does not have the current value of the object.

invalidate

Distributed: To mark an object as being invalid across the distributed cache.

Local: To mark an object as being invalid in the local cache only.

JDBC

Java DataBase Connectivity. A programming interface that lets Java applications access a database via the SQL language.

JMX

Java Management eXtensions. A set of specifications for dynamic application and network management in the J2EE development and application environment.

JNDI

Java Naming and Directory Interface. An interface to naming and directory services for Java applications. Applications can use JNDI to locate data sources, such as databases to use in global transactions. Geode allows its JNDI to be configured in a cache.xml configuration file.

JTA

Java Transaction API. The local Java interfaces between a transaction manager (JTS) and the parties involved in a global transaction. Geode can be a member of a JTA global transaction. See also global transaction.

JVM

Java Virtual Machine. A virtual machine capable of handling Java bytecode.

key constraint

Enforcing a specific entry key type. The key-constraint region attribute, when set, constrains the entries in the region to keys of the specified object type.

listener

An event handler. The listener registers its interest in one or more events, such as region entry updates, and is notified when the events occur.

load factor

Region attribute. The load factor of the map used for storing entries.

local

Local cache: The part of the distributed cache that is resident in the current member’s memory. This term is used to differentiate the cache where a specific operation is being performed from other caches in the same cluster or in another cluster. See also remote.

Region with local scope: A region whose scope is set to local. This type of region does not distribute anything with other members in the cluster.

Region shortcuts: In the RegionShortcut and settings, LOCAL means the scope is set to local. All client regions have local scope. In the ClientRegionShortcut settings, LOCAL means the region does not connect to the client’s servers.

local scope

Data distribution setting that keeps data private and visible only to threads running within the local member. A region with local scope is completely contained in the local cache. Client regions are automatically given local scope.

locator

Geode process that tracks system members and provides current membership information to joining members so they can establish communication. For server systems, the locator also tracks servers and server load and, when a client requests a server connection, the locator sends the client to one of the least loaded servers. .

LRU

Least recently used. Used to refer to region entry or entries most eligible for eviction due to lack of interest by client applications. Geode offers eviction controllers that use the LRU status of a region’s entries to determine which to evict to free up space. Possible eviction actions are local destroy and overflow. See also resource manager.

machine

Any Geode-supported physical machine or Virtual Machine.

member

A process that has defined a connection to a Geode cluster and created a Geode cache. This can be a Java or Native Client application. This can also be a Geode process such as a locator or cacheserver. The minimal Geode process configuration is a single member that is connected to a cluster.

message queue

A first-in, first-out data structure in a Geode system member that stores messages for distribution in the same order that the original operations happened in the local member. Each thread has its own queue. Depending on the kind of queue, the messages could be going between two members of a cluster, a client and server, or two members in different clusters. See also conflation.

mirroring

See replicate.

multicast

A form of UDP communications where a datagram is sent to multiple processes in one network operation.

named region attributes

Region attributes that are stored in the member memory and can be retrieved through their region attributes refid setting. Geode provides standard predefined named region attributes, that are stored using region shortcut refids. You can use any stored attributes that you wish, setting an id when you create them and using the id setting in the refid you want to use to retrieve them.

netLoad

The method used by Geode to load an entry value into a distributed region. The netLoad operation invokes all remote cache loaders defined for the region until either the entry value is successfully loaded or all loaders have been tried.

netSearch

The method used by Geode to search remote caches for a data entry that is not found in the member’s local cache region. This method operates only on distributed regions with a data-policy of empty, normal and preloaded.

netWrite

The method used by Geode to invoke a cache writer for region and region entry events. This method operates only on distributed regions. For each event, if any cache writer is defined for the region, the netWrite operation invokes exactly one of them.

network partitioning

A situation that arises from a communications partition that causes processes to become unaware of one another.

OQL

Object Query Language, SQL-92 extended for querying object data. Geode supports a subset of OQL.

off-heap memory

Memory that is not on the standard Java heap and that is not managed by the JVM and its garbage collector.

overflow

Eviction option for eviction controllers. This causes the values of LRU entries to be moved to disk when the region reaches capacity. Writes are performed according to the cache disk-store configuration.

oplog / operation log

The files in a disk-store used for the cache operations.

partition

The memory in each member that is reserved for a specific partitioned region’s use.

partitioned region

A region that manages large volumes of data by partitioning it into manageable chunks and distributing it across multiple machines. Defining partition attributes or setting the region attribute data-policy to partition makes the region a partitioned region.

peer

A Geode member application that is not configured as a client. Peer configuration uses the <cache> cache.xml element and the Cache API. Peers can also be configured as servers to client applications and as gateway-receivers or gateway-senders to remote clusters.

persistent region

A region with the attribute data-policy set to persistent-replicate.

persistent-partition

A region attribute setting identifying a region as a partitioned region whose data is persisted to disk. With persistence, all region entry keys and values are stored in an operation log on disk as well as being stored in memory. Also referred to as disk region. Writes are performed according to the cache disk-store configuration.

persistent-replicate

A region attribute setting identifying a region as a replicate whose data is persisted to disk. With persistence, all region entry keys and values are stored in an operation log on disk as well as being stored in memory. Also referred to as disk region. Writes are performed according to the cache disk-store configuration.

producer

A Geode member process that puts data into the cache for consumption by other members. Producers may be configured with empty regions, where the data they put into the cache is not stored locally, but causes cache update events to be sent to other members. This is a common configuration in peer members and for client processes. See consumer.

pull model

Data distribution model where each process receives updates only for the data in which the process has explicitly expressed interest. In a Geode peer member, this is accomplished using a distributed, non-replicated region and creating the data entries that are of interest in the local region. When updates happen for the region in remote caches, the only updates that are forwarded to the local cache are those for entries that are already defined in the local cache. In a Geode client, you get pull behavior by specifically subscribing to the entries of interest. See push model.

push model

Data distribution model where each process receives updates for everything in the data set. In a Geode peer member, this is accomplished using a replicated region. All data modifications, creations, and deletes in remote caches are pushed to the replicated region. In a Geode client, you get push behavior by registering interest in all keys in the region. See pull model.

query string

A fully-formed SQL statement that can be passed to a query engine and executed against a data set. A query string may or may not contain a SELECT statement.

race condition

Anomalous behavior caused by the unexpected dependence on the relative timing of events. Race conditions often result from incorrect assumptions about possible ordering of events.

range-index

An XPath index optimized for range-queries with the added index maintenance expense of sorting the set of values. A range index allows faster retrieval of the set of nodes with values in a certain range. See also structure-index and value-index.

region

A logical grouping of data within a cache. Regions usually contain data entries (see entry). Each region has a set of region attributes governing activities such as expiration, distribution, data loading, events, and capacity control. In addition, a region can have an application-defined user attribute.

region attributes

The class of attributes governing the creation, distribution, and management of a region and its entries.

region data

All of the entries directly contained in the region.

region entry

See entry.

region shortcut

Enums RegionShortcut and ClientRegionShortcut defining the main region types in Geode for peers/servers and clients, respectively. Region shortcuts are predefined named region attributes.

remote

Resident or running in a cache other than the current member’s cache, but connected to the current member’s cache through Geode. For example, if a member does not have a data entry in the region in its local cache, it can do a netSearch in an attempt to retrieve the entry from the region in a remote cache within the same cluster. Or, if the member is a client, it can send a request to a server in an attempt to retrieve the entry from the region in a remote server cache in the server’s cluster. In multi-site installations, a gateway sends events from the local cache to remote caches in other clusters. See also local.

replicated region

A region with data-policy set to replicate or persistent-replicate.

replicate

Region data-policy specification indicating to copy all distributed region data into the local cache at region creation time and to keep the local cache consistent with the distributed region data.

resource manager

Geode process that works with your JVM’s tenured garbage collection (GC) to control heap use and protect your JVM from hangs and crashes due to memory overload. The manager prevents the cache from consuming too much memory by evicting old data and, if the collector is unable to keep up, by refusing additions to the cache until the collector has freed an adequate amount of memory. Eviction is done for regions configured for LRU eviction based on heap percentage. See also LRU and eviction-attributes.

rollback

A transactional operation that excludes a transaction’s changes from the cache, leaving the cache undisturbed.

scope

Region attribute: In non-partitioned regions, a distribution property for data identifying whether it is distributed and, if so, whether distribution acknowledgements are required and whether distributed synchronization is required. A distributed region’s cache loader and cache writer (defined in the local cache) can be invoked for operations originating in remote caches. A region that is not distributed has a local scope. See also replicate.

Querying: The data context for the part of the query currently under evaluation. The expressions in a SELECT statement’s FROM clause can add to the data that is in scope in the query.

SELECT statement

A statement of the form SELECT projection_list FROM expressions WHERE expressions that can be passed to the query engine, parsed, and executed against data in the local cache.

serialization

The process of converting an object or object graph to a stream of bytes.

server

A Geode member application that is configured as a peer in its own system and as a server to connecting Geode client applications.

server group

An optional logical grouping of servers in a server clusters. There is always the default server group made up of all available server in the server clusters. Clients can specify the server group in their server pool configuration. Then the pool only connects to those servers. If no group is specified, the default is used.

server connection pool

The cache entity that manages client connections to servers.

socket

The application interface for TCP/IP communications. UDP provides unicast and multicast datagram sockets, while TCP provides server and connection sockets. TCP server sockets are used by server processes to create connection sockets between the server and a client.

SQL

Structured Query Language.

SSL

Secure Socket Layer. A protocol for secure communication between Java VMs.

standalone distributed system

A cluster configured for no communication with peers. Client applications are generally defined with standalone clusters, so there is no peer communication and all event and data communication is done between the client member and the server tier.

statistics enabled

Region attribute. Specifies whether to collect statistics for the region.

struct

A data type that has a fixed number of elements, each of which has a field name and can contain an object value.

structure-index

An XPath index that is basically a pre-computed query. Any legal XPath expression can be used. The index maintains lists of all nodes that match the expression used to create it. If a query is performed that has the same expression as the index then the result is available without XPath evaluation. See also range-index and value-index.

system member

See member.

TCP

The Transmission Control Protocol is a part of the internet protocol (IP) suite that provides unicast communications with guaranteed delivery. The TCP protocol is connection-based, meaning that a TCP socket can only be used to send messages between one pair of processes at a time. Compare to UDP.

timeout

A behavior associated with synchronization functions. Timeout behavior is exhibited as refusal to wait longer than a specified time for a signal to proceed. See also blocking.

time-to-live

The amount of time a region or region entry may remain in the cache without being modified before being expired. Entry modification includes creation, update, and removal. Region modification includes creation, update, or removal of the region or of any of its entries.

Time-to-live attributes are set at the region level for the region and at the entry level for entries. See also idle timeout and expiration action.

transaction

See cache transaction and global transaction.

transaction listener

User-implemented plug-in for receiving and handling transaction events. A transaction listener is called after a transaction commits. See also transaction writer.

transaction writer

User-implemented plug-in intended for synchronizing the cache with an outside data source. A transaction writer is a synchronous listener to cache transactions. The transaction writer has the ability to veto a transaction. See also transaction listener.

transactional view

The result of a history of transactional operations for a given open transaction.

transport layer

The network used to connect the Geode system members in a Geode system.

TTL

See time-to-live.

UDP

The User Datagram Protocol is a part of the internet protocol (IP) suite that provides simple, unreliable transmission of datagram messages from one process to another. Reliability must be implemented by applications using UDP. The UDP protocol is connectionless, meaning that the same UDP socket can be used to send or receive messages to or from more than one process. Compare to TCP.

unicast

A message sent from one process to another process (point-to-point communications). Both UDP and TCP provide unicast messaging.

URI

Uniform Resource Identifier. A unique identifier for abstract or physical resources on the World Wide Web.

user attribute

An optional object associated with a region or a data entry where an application can store data about the region or entry. The data is accessed by the application only. Geode does not use these attributes. Compare to region attributes, which are used by Geode.

value constraint

Enforcing a specific entry value type. The value-constraint region attribute, when set, constrains the entries in the region to values of the specified object type. Value constraints can be used to provide object typing for region querying and indexing. The value-constraint is only checked in the cache that does the entry put or create operation. When the entry is distributed to other caches, the value constraint is not checked.

value-index

An XPath index that operates much as a structure-index does, but that separates the nodes that match the XPath expression into sets mapped by each node’s value. This allows further filtering of the nodes to be evaluated in a query by going directly to those with a specific value. See also structure-index and range-index.

view

A collection of member identifiers that defines the membership group.

Virtual Machine

A completely isolated operating system installation within your normal operating system. This is generally implemented by software emulation or hardware virtualization.

VMware virtual machine

Also referred to as a VMware VM. A VMware VM is a tightly isolated software container that can run its own operating systems and applications as if it were a physical computer. A VMware VM behaves exactly like a physical computer and contains it own virtual (ie, software-based) CPU, RAM hard disk and network interface card (NIC). An operating system can’t tell the difference between a VMware VM and a physical machine, nor can applications or other computers on a network. Even the VMware VM thinks it is a “real” computer. Nevertheless, a VMware VM is composed entirely of software and contains no hardware components whatsoever.

XML

EXtensible Markup Language. An open standard for describing data, XML is a markup language similar to HTML. Both are designed to describe and transform data, but where HTML uses predefined tags, XML allows tags to be defined inside the XML document itself. Thus, virtually any data item can be identified. The XML programmer creates and implements data-appropriate tags whose syntax is defined in a DTD file or an XSD (XML schema definition.)

XML schema definition

The definition of the structure, content, and semantics used in an XML document. The definition can be used to verify that each item of content in a document adheres to the specification of the element in which the content is placed. The XML schema is a superset of DTD. Unlike DTD, XML schemas are written in XML syntax, which, although more verbose than DTD, are more descriptive and can have stronger typing. Files containing XML schema definitions generally have the XSD extension.

XPath

A language that describes a way to locate and process items in Extensible Markup Language (XML) documents by using an addressing syntax based on a path through the document’s logical structure or hierarchy.

XSD

See XML schema definition.