GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - apache/geode: Apache Geode

BranchesTags
Open more actions menu

Latest commit

 

History

11,437 Commits
11,437 Commits

Folders and files

NameName
Last commit message
Last commit date
.github
.github
 
 
boms
boms
 
 
build-tools
build-tools
 
 
ci
ci
 
 
dev-tools
dev-tools
 
 
docker
docker
 
 
etc
etc
 
 
extensions
extensions
 
 
geode-assembly
geode-assembly
 
 
geode-book
geode-book
 
 
geode-common
geode-common
 
 
geode-concurrency-test
geode-concurrency-test
 
 
geode-connectors
geode-connectors
 
 
geode-core
geode-core
 
 
geode-cq
geode-cq
 
 
geode-deployment
geode-deployment
 
 
geode-docs
geode-docs
 
 
geode-dunit
geode-dunit
 
 
geode-gfsh
geode-gfsh
 
 
geode-http-service
geode-http-service
 
 
geode-jmh
geode-jmh
 
 
geode-junit
geode-junit
 
 
geode-log4j
geode-log4j
 
 
geode-logging
geode-logging
 
 
geode-lucene
geode-lucene
 
 
geode-management
geode-management
 
 
geode-membership
geode-membership
 
 
geode-memcached
geode-memcached
 
 
geode-old-client-support
geode-old-client-support
 
 
geode-old-versions
geode-old-versions
 
 
geode-pulse
geode-pulse
 
 
geode-rebalancer
geode-rebalancer
 
 
geode-serialization
geode-serialization
 
 
geode-server-all
geode-server-all
 
 
geode-tcp-server
geode-tcp-server
 
 
geode-unsafe
geode-unsafe
 
 
geode-wan
geode-wan
 
 
geode-web-api
geode-web-api
 
 
geode-web-management
geode-web-management
 
 
geode-web
geode-web
 
 
gradle/wrapper
gradle/wrapper
 
 
proposals
proposals
 
 
static-analysis
static-analysis
 
 
.asf.yaml
.asf.yaml
 
 
.gitattributes
.gitattributes
 
 
.gitignore
.gitignore
 
 
BUILDING.md
BUILDING.md
 
 
CODE_OF_CONDUCT.md
CODE_OF_CONDUCT.md
 
 
KEYS
KEYS
 
 
LICENSE
LICENSE
 
 
NOTICE
NOTICE
 
 
README.md
README.md
 
 
TESTING.md
TESTING.md
 
 
build.gradle
build.gradle
 
 
gradle.properties
gradle.properties
 
 
gradlew
gradlew
 
 
gradlew.bat
gradlew.bat
 
 
settings.gradle
settings.gradle
 
 

Repository files navigation

Apache Geode logo

Build Status CodeQL License Maven Central Javadoc homebrew Docker Pulls Docker Pulls (legacy)

Contents

  1. Overview
  2. How to Get Apache Geode
  3. Main Concepts and Components
  4. Location of Directions for Building from Source
  5. Geode in 5 minutes
  6. Application Development
  7. Documentation
  8. Wiki
  9. How to Contribute
  10. Export Control

Overview

Apache Geode is a data management platform that provides real-time, consistent access to data-intensive applications throughout widely distributed cloud architectures.

Apache Geode pools memory, CPU, network resources, and optionally local disk across multiple processes to manage application objects and behavior. It uses dynamic replication and data partitioning techniques to implement high availability, improved performance, scalability, and fault tolerance. In addition to being a distributed data container, Apache Geode is an in-memory data management system that provides reliable asynchronous event notifications and guaranteed message delivery.

Apache Geode is a mature, robust technology originally developed by GemStone Systems. Commercially available as GemFire™, it was first deployed in the financial sector as the transactional, low-latency data engine used in Wall Street trading platforms. Today Apache Geode technology is used by hundreds of enterprise customers for high-scale business applications that must meet low latency and 24x7 availability requirements.

How to Get Apache Geode

You can download Apache Geode from the website, run a Docker image, or install with Homebrew on OSX. Application developers can load dependencies from Maven Central.

Maven

<dependencies>
    <dependency>
        <groupId>org.apache.geode</groupId>
        <artifactId>geode-core</artifactId>
        <version>$VERSION</version>
    </dependency>
</dependencies>

Gradle

dependencies {
  implementation "org.apache.geode:geode-core:$VERSION"
}

Main Concepts and Components

Caches are an abstraction that describe a node in an Apache Geode distributed system.

Within each cache, you define data regions. Data regions are analogous to tables in a relational database and manage data in a distributed fashion as name/value pairs. A replicated region stores identical copies of the data on each cache member of a distributed system. A partitioned region spreads the data among cache members. After the system is configured, client applications can access the distributed data in regions without knowledge of the underlying system architecture. You can define listeners to receive notifications when data has changed, and you can define expiration criteria to delete obsolete data in a region.

Locators provide clients with both discovery and server load balancing services. Clients are configured with locator information, and the locators maintain a dynamic list of member servers. The locators provide clients with connection information to a server.

Apache Geode includes the following features:

  • Combines redundancy, replication, and a "shared nothing" persistence architecture to deliver fail-safe reliability and performance.
  • Horizontally scalable to thousands of cache members, with multiple cache topologies to meet different enterprise needs. The cache can be distributed across multiple computers.
  • Asynchronous and synchronous cache update propagation.
  • Delta propagation distributes only the difference between old and new versions of an object (delta) instead of the entire object, resulting in significant distribution cost savings.
  • Reliable asynchronous event notifications and guaranteed message delivery through optimized, low latency distribution layer.
  • Data awareness and real-time business intelligence. If data changes as you retrieve it, you see the changes immediately.
  • Integration with Spring Framework to speed and simplify the development of scalable, transactional enterprise applications.
  • JTA compliant transaction support.
  • Cluster-wide configurations that can be persisted and exported to other clusters.
  • Remote cluster management through HTTP.
  • REST APIs for REST-enabled application development.
  • Rolling upgrades may be possible, but they will be subject to any limitations imposed by new features.

Building this Release from Source

See BUILDING.md for instructions on how to build the project.

Running Tests

See TESTING.md for instructions on how to run tests.

Geode in 5 minutes

Geode requires installation of JDK version 17 or later. After installing Apache Geode, start a locator and server:

$ gfsh
gfsh> start locator
gfsh> start server

Create a region:

gfsh> create region --name=hello --type=REPLICATE

Write a client application (this example uses a Gradle build script):

build.gradle

plugins {
  id 'java'
  id 'application'
}

application {
  mainClass = 'HelloWorld'
}

repositories { mavenCentral() }
dependencies {
  implementation "org.apache.geode:geode-core:$VERSION"
  runtimeOnly 'org.slf4j:slf4j-log4j12:1.7.36'
}

src/main/java/HelloWorld.java

import java.util.Map;
import org.apache.geode.cache.Region;
import org.apache.geode.cache.client.*;

public class HelloWorld {
  public static void main(String[] args) throws Exception {
    ClientCache cache = new ClientCacheFactory()
      .addPoolLocator("localhost", 10334)
      .create();
    Region<String, String> region = cache
      .<String, String>createClientRegionFactory(ClientRegionShortcut.CACHING_PROXY)
      .create("hello");

    region.put("1", "Hello");
    region.put("2", "World");

    for (Map.Entry<String, String>  entry : region.entrySet()) {
      System.out.format("key = %s, value = %s\n", entry.getKey(), entry.getValue());
    }
    cache.close();
  }
}

Build and run the HelloWorld example:

$ gradle run

The application will connect to the running cluster, create a local cache, put some data in the cache, and print the cached data to the console:

key = 1, value = Hello
key = 2, value = World

Finally, shutdown the Geode server and locator:

gfsh> shutdown --include-locators=true

For more information see the Geode Examples repository or the documentation.

Application Development

Apache Geode applications can be written in these client technologies:

  • Java client or peer
  • REST
  • Memcached

The following libraries are available external to the Apache Geode project:

  • Spring Data GemFire
  • Spring Cache
  • Python

Export Control

This distribution includes cryptographic software. The country in which you currently reside may have restrictions on the import, possession, use, and/or re-export to another country, of encryption software. BEFORE using any encryption software, please check your country's laws, regulations and policies concerning the import, possession, or use, and re-export of encryption software, to see if this is permitted. See http://www.wassenaar.org/ for more information.

The U.S. Government Department of Commerce, Bureau of Industry and Security (BIS), has classified this software as Export Commodity Control Number (ECCN) 5D002.C.1, which includes information security software using or performing cryptographic functions with asymmetric algorithms. The form and manner of this Apache Software Foundation distribution makes it eligible for export under the License Exception ENC Technology Software Unrestricted (TSU) exception (see the BIS Export Administration Regulations, Section 740.13) for both object code and source code.

The following provides more details on the included cryptographic software:

  • Apache Geode is designed to be used with Java Secure Socket Extension (JSSE) and Java Cryptography Extension (JCE). The JCE Unlimited Strength Jurisdiction Policy may need to be installed separately to use keystore passwords with 7 or more characters.
  • Apache Geode links to and uses OpenSSL ciphers.

About

Apache Geode

geode.apache.org/

Topics

apachedatagridgeode

Resources

Readme
Apache-2.0 license

Code of conduct

Code of conduct

Security policy

Security policy
Activity
Custom properties

Stars

2.4k stars

Watchers

194 watching

Forks

696 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.