An information fabric, or the more simple form called a data fabric or data grid, uses a switched fabric concept as the basis for managing data in a distributed environment. Also referred to as a dynamic mesh architecture, Oracle Coherence automatically and dynamically forms a reliable, increasingly resilient switched fabric composed of any number of servers within a grid environment. Consider the attributes and benefits of this architecture:
The aggregate data throughput of the fabric is linearly proportional to the number of servers;
The in-memory data capacity and data-indexing capacity of the fabric is linearly proportional to the number of servers;
The aggregate I/O throughput for disk-based overflow and disk-based storage of data is linearly proportional to the number of servers;
The resiliency of the fabric increases with the extent of the fabric, resulting in each server being responsible for only 1/n of the failover responsibility for a fabric with an extent of n servers;
If the fabric is servicing clients, such as trading systems, the aggregate maximum number of clients that can be served is linearly proportional to the number of servers.
Oracle Coherence accomplishes these technical feats through a variety of algorithms:
Oracle Coherence dynamically partitions data across all data grid nodes;
Since each data grid node has a configurable maximum amount of data that it will manage, the capacity of the data grid is linearly proportional to the number of data grid nodes;
Since the partitioning is automatic and load-balancing, each data grid node ends up with its fair share of the data management responsibilities, allowing the throughput (in terms of network throughput, disk I/O throughput, query throughput, etc.) to scale linearly with the number of data grid nodes;
Oracle Coherence maintains a configurable level of redundancy of data, automatically eliminating single points of failure (SPOFs) by ensuring that data is kept synchronously up-to-date in multiple data grid nodes;
Oracle Coherence spreads out the responsibility for data redundancy in a dynamically load-balanced manner so that each server backs up a small amount of data from many other servers, instead of backing up all of the data from one particular server, thus amortizing the impact of a server failure across the entire data grid;
Each data grid node can handle a large number of client connections, which can be load-balanced by a hardware load balancer.