Jump to content

User:Paulcolmer/sandbox

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Paulcolmer (talk | contribs) at 10:18, 26 September 2012. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

An in-memory data grid is a highly scalable, highly resilient, performance-centric software datastore, storing data in memory across geographically dispersed servers, using a non-relational, shared nothing architecture, in support of distributed applications.

In-memory data grids consist of the following characteristics:

  • Data is structured in a key-value store, rather than in a relational structure. Relational structures are used in relational database management systems (RDBMS).
  • The key-value store is accessed via a hash algorithm.
  • Then data can be distributed like a fabric, across one or more servers, in one or more locations.
  • Supports application programming interface (API) queries from distributed applications using Java or .NET development frameworks.
  • If a server in the data grid fails, the system is able to re-balance with no disruption to the applications that rely on the data.

In simple terms an in-memory data grid is analogous to the virtualisation of servers and operating systems, in that server and storage resources can be virtualised across a pool of servers. For the IMDG the data is virtualized across a pool of servers.

Here is a simplified recipe for understanding an IMDG, based on the well established concepts of RDBMS:

  1. Numbered list item

1. Take a relational database. 2. Restructure the database in a way that helps better meet the business need, using a non-relational structure. 3. Break up the database into many pieces to form one or more distributed clusters. 4. Replicate the distributed cluster topology across one or more locations, to provide resilience and data availability. 5. Allow the pieces to be connected to form a fabric and to run in the RAM of all the servers, to allow regular updates to occur. 6. Structure and manipulate the data through a series of vendor provided APIs, built on Java and/or .NET application frameworks. 7. This is an in-memory data grid.