Tiered Storage Overview
The goal of Tiered Storage
Automatically assigns data to different categories of storage types based on considerations of cost, performance, availability, and recovery. is to offer a cost-effective solution for storing large amounts of data while balancing cost with read/write performance. Data is divided into two logical layers or 'tiers'. By abstracting the complexity of tiered storage management, developers can focus on building and optimizing their applications without concern for the specifics of data placement and performance tuning.
Feature Overview
Data can be stored in two tiers. By strategically dividing data between these two tiers, Tiered Storage optimizes both performance and cost, ensuring that critical data operations are executed efficiently while maintaining overall storage expenses at a manageable level.
| Tier | Storage Location | Details |
|---|---|---|
| Hot | RAM |
This tier is designed for high-speed access. It stores data that should be accessed fast according to business requirement ensuring low latency and high throughput for read operations. |
| Warm | Disk | This tier is intended for data that is accessed less frequently. While it offers slower access times compared to the Hot Tier |
Typically, the Warm Tier
Part of GigaSpaces Tiered Storage Mechanism. Warm tier is SSD (recommended media) storage which is mostly used for data that is read-only and is less frequently used. contains all the data, while the Hot Tier holds a subset based on user-defined rules. The Warm Tier also acts as the persistence layer for all data. The distribution of data across these tiers is handled based on predefined rules and is seamless to client applications. Applications access data in both tiers via standard APIs, without needing to be aware of the tiered structure.
-
Data Distribution: The system transparently manages the placement of data between the Hot and Warm Tiers based on predefined rules. This ensures that the most critical data is readily accessible in the Hot Tier, while the full dataset remains stored in the Warm Tier.
-
Seamless Integration: Client applications interact with the data storage system using standard APIs. This abstraction means that applications do not need to be aware of the underlying tiered storage architecture. Whether data resides in RAM or on disk, the access and manipulation of data remain consistent and straightforward from the application's perspective.
Architectural Overview
In Tiered Storage, space data partitioning adheres to the standard methodology. Space
Where GigaSpaces data is stored. It is the logical cache that holds data objects in memory and might also hold them in layered in tiering. Data is hosted from multiple SoRs, consolidated as a unified data model. objects and documents are routed to partitions based on the routing
The mechanism that is in charge of routing the objects into and out of the corresponding partitions. The routing is based on a designated attribute inside the objects that are written to the Space, called the Routing Index. key property value. Partitions not only manage data in RAM but also on disk volumes. Consequently, within a Space partition, an object can reside in RAM, on disk, or in both locations. This dual-layered storage approach ensures efficient data management and access within each partition.
Kubernetes Environments
Tiered Storage implementation in Kubernetes
An open-source container orchestration system for automating software deployment, scaling, and management of containerized applications. involves managing disk volumes using standard resources:
-
StorageClass: A cluster-level resource abstracting the storage provisioner in a given environment. This resource must be created by an administrator before deploying a space with Tiered Storage.
-
StatefulSet: Represents a space, ensuring a fixed relation between space partition pods and disk volumes. Created by running the space helm install command.
-
PersistentVolumeClaim (PVC): Represents a disk volume attached to a partition. PVCs (one per space partition) are created automatically by the space helm install command.
Optimizing Tiered Storage Performance
To get the most out of Tiered Storage, keep the following query routing behaviors, configuration options, and monitoring features in mind.
1. Automatic Hot Tier (Cache) Routing
A query automatically targets only the Hot tier (avoiding disk reads) under the following conditions:
-
Complete Criteria Match: Analysis determines that 100% of the requested data resides within the Hot tier.
-
Sufficient Cached Entries: A maximum entry limit (max entries) is specified, and the Hot tier already contains enough matching entries to satisfy it.
If no limit is specified, or if the Hot Tier cannot guarantee all matching data is present, the query will search the disk.
2. Explicit Hot-Tier Searches (MEMORY_ONLY_SEARCH)
If you want to force queries to search only the Hot tier (in-memory) regardless of where the rest
REpresentational State Transfer. Application Programming Interface
An API, or application programming interface, is a set of rules that define how applications or devices can connect to and communicate with each other. A REST API is an API that conforms to the design principles of the REST, or representational state transfer architectural style. of the data resides, use the MEMORY_ONLY_SEARCH modifier:
-
Read API: Set the read modifier to
ReadModifier.MEMORY_ONLY_SEARCH. -
JDBC
Java DataBase Connectivity.
This is an application programming interface (API) for the Java programming language, which defines how a client may access a database. Connection: Add the ReadModifiersproperty during connection initialization:
3. Monitoring and Metrics
See: https://docs.gigaspaces.com/latest/admin/metrics-bundled.html - TieredStorage section
Primitive property types, date types, and array of primitives are supported in Tiered Storage.
In order to improve recovery time from tiered storage, counters initialization occurs in async mode, allowing the space to be ready before filling up statistics.
Push-down to Tier
In certain scenarios, pushing operations directly to the storage tier significantly improves performance. Instead of loading large database tables into memory, executing operations, and writing back to the database, operations run directly on the storage tier without consuming memory resources.
Direct tier operations bypass related Space filters, notifications, transactions, and lease expirations.
Aggregation Pushdown
Aggregations are pushed down to the storage tier when:
-
No cache rules are defined on the type.
-
No active transactions exist (or parameters are configured to ignore active transactions).
Custom aggregations must implement the corresponding SQLite query.
-
Documentation: GigaSpaces Custom Aggregators
Clear Pushdown
The clear operation is pushed to the tier by directly invoking SQLite's clear method, bypassing processing in the GigaSpaces engine. This behavior applies to both the GigaSpaces API and JDBC interfaces.
-
Unconditional Clear: If no conditions are specified, a "Drop and Recreate Table" approach is used.
-
Conditional Clear: If conditions are provided but the targeted field is not indexed, a protective exception/warning is raised.
Requirements for Clear Pushdown
To use pushdown instead of reading and clearing entries one by one, all of the following conditions must be met:
-
No active cache rules.
-
No replication targets configured.
-
No notify template for delete on this type (or the ignore notification flag is set).
-
No active transactions on related objects (or the ignore transaction flag is set).
-
Space is not configured for High Availability (HA).
-
No Space filter related to clear is active (or the ignore filter flag for clear is set).
Related Configuration Properties
| Configuration Property | Default Value / Info |
|---|---|
|
engine.TieredStorage.ClearTablePushdown.ignoreNotifyTemplates |
Enables ignoring notify templates |
|
engine.TieredStorage.ClearTablePushdown.ignoreActiveTransaction |
Enables ignoring active transactions |
|
engine.TieredStorage.ClearTablePushdown.ignoreFilter |
true |
|
engine.TieredStorage.ClearTablePushdown.chunkSize |
1000 |
|
engine.TieredStorage.ClearTablePushdown.chunkSize.min |
5 (Validation minimum) |
|
engine.TieredStorage.ClearTablePushdown.chunkSize.max |
50k (Validation maximum) |
Deployment
For details of how to deploy Tiered Storage in a Kubernetes environment, refer to Intelligent Tiering Details for Kubernetes
For details of how to deploy Tiered Storage in a Service Grid
A built-in orchestration tool which contains a set of Grid Service Containers (GSCs) managed by a Grid Service Manager. The containers host various deployments of Processing Units and data grids. Each container can be run on a separate physical machine. This orchestration is available for XAP only. environment, refer to Intelligent Tiering Details for Service Grid
In-Memory Data Grid - achieve unparalleled speed, persistence, and accuracy.