User:Paulcolmer/sandbox
Welcome to this sandbox page, a space to experiment with editing.
You can either edit the source code ("Edit source" tab above) or use VisualEditor ("Edit" tab above). Click the "Publish changes" button when finished. You can click "Show preview" to see a preview of your edits, or "Show changes" to see what you have changed. Anyone can edit this page and it is automatically cleared regularly (anything you write will not remain indefinitely). Click here to reset the sandbox. You can access your personal sandbox by clicking here, or using the "Sandbox" link in the top right.Creating an account gives you access to a personal sandbox, among other benefits. Do NOT, under any circumstances, place promotional, copyrighted, offensive, or libelous content in sandbox pages. Doing so WILL get you blocked from editing. For more info about sandboxes, see Wikipedia:About the sandbox and Help:My sandbox. New to Wikipedia? See the contributing to Wikipedia page or our tutorial. Questions? Try the Teahouse! |
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:
- 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.