This topic introduces the JindoFS cache mode and its typical use cases.
Overview
JindoFS analyzes access patterns to cache data and metadata locally, improving access performance. The cache mode offers different metadata synchronization policies to meet your needs in various scenarios.
Use cases
Cache mode's key advantage is its compatibility. By preserving original OSS object semantics and caching data within the cluster, JindoFS remains fully compatible with clients like the OSS client and OssFileSystem, as well as other OSS-integrated applications. You can use existing data in OSS without migration or conversion. This in-cluster caching also improves data access performance.
Configure the cluster
All JindoFS-related configurations are in the Bigboot component.
On the Service Configuration page, select the bigboot tab, find the jfs.namespaces configuration item, and change its value to test.
- The parameters highlighted in red are required.
- JindoFS supports multiple namespaces. This topic uses the
testnamespace as an example.
| Parameter | Description | Example |
| jfs.namespaces | Defines the JindoFS namespaces. Separate multiple namespaces with a comma. | test |
| jfs.namespaces.test.uri | Specifies the storage backend for the test namespace. |
oss://oss-bucket/
Note You can also set this parameter to a specific directory within an OSS bucket. The namespace will then use this directory as its root directory for read and write operations. However, in most cases, you can set this parameter to the bucket to keep the path consistent with native OSS. |
| jfs.namespaces.test.mode | Sets the test namespace to cache mode. |
cache |
| jfs.namespaces.test.oss.access.key | AccessKey ID for the OSS storage backend. | xxxx
Note For optimal performance and stability, we recommend using an OSS bucket that is in the same account and in the same region as your E-MapReduce cluster. In this case, the E-MapReduce cluster can access OSS without credentials, and you do not need to configure an AccessKey ID and AccessKey Secret. |
| jfs.namespaces.test.oss.access.secret | AccessKey Secret for the OSS storage backend. |
After configuring the parameters, save and deploy them. Then, restart the Namespace Service in SmartData to enable JindoFS.
Metadata synchronization policies
In cache mode, you may have a large amount of data already stored in OSS before setting up the JindoFS cluster. In such scenarios, subsequent data access synchronizes data and metadata to the JindoFS cluster. The data synchronization policy maintains a local copy to serve read requests. The metadata synchronization policy consists of two parts: a metadata synchronization interval policy and a metadata load policy.
-
Metadata synchronization interval policy
The configuration parameter is namespace.sync.interval. Its default value is -1, which means metadata from OSS is not synchronized.
- Setting namespace.sync.interval to 0 synchronizes metadata from OSS with each operation.
- Setting namespace.sync.interval to a value greater than 0 synchronizes metadata from OSS at the specified interval. Note For example, setting namespace.sync.interval to 5 synchronizes metadata from OSS every 5 seconds.
-
Metadata load policy
The configuration parameter is namespace.sync.loadtype, an enumerated type with possible values: {never, once, always}. Use never to never synchronize metadata, always to synchronize with every operation, or once to synchronize only once (the default).
Note This policy takes effect only if namespace.sync.interval is not set; setting namespace.sync.interval disables this policy.