Cacheonix Architecture

Overview

Cacheonix can be defined as a cached distributed shared associative memory.

Associative Memory

Data in Cacheonix is addressed using a key. Each key has a value associated with it. In Java the associative memory is represented by java.util.Map. Cacheonix API extends java.util.Map.

Shared Memory

The associative memory provided by Cacheonix is shared between a group of computers connected by a high-speed local network, or a cluster. All members of the cluster can read and write to Cacheonix.

Distributed Memory

The content of the associative memory is evenly distributed (partitioned) among the members of the cluster. Cacheonix cluster is symmetrical. There is no primary node in the cluster. All nodes in the cluster are equal. Cacheonix automatically repartitions the data when a new node joins to the cluster.

Cached Memory

Each Cacheonix node maintains a cache that greatly speeds up access to the frequently used data.

Cache Coherence

Cacheonix ensures that all nodes have a coherent view of the distributed shared memory while maintaining fast access to the cached data.

Replication for Fault Tolerance

Cacheonix supports creating one or more backup replicas of the data. A single replica guarantees continuous availability of data in presence of permanent failure of a single node.

A non-replicated configuration will suffer loss of the data belonged to the partition of the failed node.

Network Topology

Cacheonix uses multicast for the cluster membership management and TCP sockets for the inter-node communications.

Labels

 
(None)