Skip to content

Commit

Permalink
[CN-1000] Add Tiered Storage page (#185)
Browse files Browse the repository at this point in the history
* Add Tiered Storage page

* Address PR comments
  • Loading branch information
cagric0 authored Apr 4, 2024
1 parent d6c3afd commit d823b7e
Show file tree
Hide file tree
Showing 6 changed files with 81 additions and 1 deletion.
18 changes: 18 additions & 0 deletions docs/modules/ROOT/examples/hazelcast-tiered-storage.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
apiVersion: hazelcast.com/v1alpha1
kind: Hazelcast
metadata:
name: hazelcast-sample
spec:
clusterSize: 3
repository: 'docker.io/hazelcast/hazelcast-enterprise'
licenseKeySecretName: hazelcast-license-key
localDevices:
- name: device-sample
blockSize: 4096
readIOThreadCount: 4
writeIOThreadCount: 4
pvc:
accessModes: ["ReadWriteOnce"]
requestStorage: 8Gi
nativeMemory:
size: 1280M
10 changes: 10 additions & 0 deletions docs/modules/ROOT/examples/map-tiered-store.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
apiVersion: hazelcast.com/v1alpha1
kind: Map
metadata:
name: map-sample
spec:
hazelcastResourceName: hazelcast-sample
inMemoryFormat: NATIVE
tieredStore:
memoryCapacity: 128M
diskDeviceName: device-sample
1 change: 1 addition & 0 deletions docs/modules/ROOT/nav.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
* xref:serialization-configuration.adoc[Serialization]
* xref:scaling-upgrading.adoc[Scaling & Upgrading]
* xref:cp-subsystem.adoc[Enabling CP Subsystem]
* xref:tiered-storage.adoc[Tiered Storage]
* Configuring Data Structures
** xref:map-configuration.adoc[Map]
** xref:multimap-configuration.adoc[MultiMap]
Expand Down
2 changes: 1 addition & 1 deletion docs/modules/ROOT/pages/cp-subsystem.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -21,5 +21,5 @@ When the `pvc` section is configured in `cpSubsystem`, a PVC is created and moun
.Example of CP Subsystem with Persistence
[source,yaml,subs="attributes+"]
----
include::ROOT:example$/hazelcast-cp-subsystem-presistence.yaml[]
include::ROOT:example$/hazelcast-cp-subsystem-persistence.yaml[]
----
51 changes: 51 additions & 0 deletions docs/modules/ROOT/pages/tiered-storage.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
= Tiered Storage
:description: Tiered Storage offers an extension to Hazelcast map, which allows you to store a larger data set than the available memory can accommodate.
:page-enterprise: true

{description}

For further information on the configuration and behavior of Tiered Storage in Hazelcast, refer to xref:hazelcast:tiered-storage:overview.adoc[Tiered Storage,window=_blank] in the Platform documentation.

The configuration of Tiered Storage includes setting the local device (local disk) parameters for the Hazelcast CR and providing Tiered Storage details for the Map CR.

== Configuring Local Devices

You must enable the native memory to use Tiered Storage; see xref:native-memory.adoc#example-configuration[Native Memory] to learn how to enable it.

IMPORTANT: Before configuring the native memory and local devices, see xref:hazelcast:tiered-storage:capacity-planning.adoc[Tiered Storage Capacity Planning,window=_blank] for tips on sizing the memory and disk tiers.

You can configure one or more local devices in a single Hazelcast CR. A separate PersistentVolumeClaim (PVC) is created for each local device and used as the local disk for that device. Therefore, the number of created PVCs matches the cluster size for each configured local device.

For example, if you create two local devices (`device1` , `device2`) for a Hazelcast CR called `hazelcast`, and the size of your cluster is 3, a total of six PVCs are created as follows:

- device1-hazelcast-0
- device1-hazelcast-1
- device1-hazelcast-2
- device2-hazelcast-0
- device2-hazelcast-1
- device2-hazelcast-2

.Example of a Hazelcast CR
[source,yaml,subs="attributes+"]
----
include::ROOT:example$/hazelcast-tiered-storage.yaml[]
----

== Configuring a Map with Tiered Storage

In-memory format must be *NATIVE* for the maps with Tiered Storage.

.Example of a Map CR with Tiered Storage
[source,yaml,subs="attributes+"]
----
include::ROOT:example$/map-tiered-store.yaml[]
----

== Configuration-based Validation

- Native memory must be enabled on the Hazelcast CR. Basically, when you set a size for the native memory, it means it is enabled; see the example Hazelcast CR in <<configuring-local-devices, Configuring Local Devices>>.
- The *inMemoryFormat* option must be *NATIVE* on the Map CR. See the example Map CR in <<configuring-a-map-with-tiered-storage, Configuring a Map with Tiered Storage>>.
- Data Persistence and Tiered Storage are mutually exclusive features; you cannot enable both simultaneously in the Map configuration. The *persistenceEnabled* option on the Map CR must be false, which is the default value, when using Tiered Storage.
- Indexes, eviction, and time-to-live and max-idle expirations are not supported for the maps with Tiered Storage.
- Configured local device size on the Hazelcast CR (*LocalDevice.PVC.RequestStorage*) must be higher than *MemoryCapacity* on the Map CR.
- Native Memory size (*NativeMemory.Size*) on the Hazelcast CR must be higher than the sum of memory capacities (*TieredStore.MemoryCapacity*) on all Map CRs.

0 comments on commit d823b7e

Please sign in to comment.