Suppose you have an app with a standard architecture of the following type “UI+web service+database”, and you would like to scale it. In this case, a number of problems may arise, such as high database load, no synchronization between instances, etc. To solve these issues, the In-memory-data-grid (IMDG) technology can be used.
IMDG is a cluster key-value store designed for high-load projects that have large data sets and strict requirements for scalability, speed, and reliability.
This technology provides the following advantages: enhanced performance, reliability, scalability, data actuality, reduction of the database load, etc.
GigaSpaces is a typical example of IMDG solutions.
The list below describes a basic set of functions provided by GigaSpaces:
1. Quick creation of IMDG and its configuration
2. A flexible system for replication of cluster nodes (Asynchronous, Synchronous, Recovery, Mirror)
3. Support of “hot” cluster scaling. Clients can add instances to a cluster or delete them with no need to stop their work. GSAgent is used to manage these processes.
4. Support of single task execution in the whole cluster or in specific instances. Such approaches are often used when specific cluster nodes represent isolated logic parts.
5. Support of a servlet container. It allows deploying a Java app directly in the instance and, thus, reducing costs on remote access.
6. Support of automatic recovery of a cluster node in case of its failure. Support of functionality that determines how to add a node to a cluster.
7. Indices creation to store clusters or nodes
8. RMI (remote method invocation) support. For this purpose, GigaSpaces offers its own protocol.
9. Integration with Spring and Hibernate
When transferring a high-load app to GigaSpaces, you will get high operating speed, fault tolerance, resiliency, and scalability. Additionally, you can use an administrator console for monitoring a cluster, a flexible system of access rights both for users and for logic.
In comparison with a classic approach to building apps, the GigaSpaces technology is currently considered one of the most in-demand high performance systems on the market.
Some additional materials on GigaSpaces can be found at http://www.gigaspaces.com/.