Object Store v2 Overview
Object Store v2 lets CloudHub applications store data and states across batch processes, Mule components and applications, from within an application or by using the Object Store REST API.
You can select Object Store v2 as the implementation for Mule 3 and Mule 4 in CloudHub by checking the Object Store V2 checkbox in Runtime Manager at deployment time.
See the FAQ for Object Store information.
On-premises Mule applications can access Object Store v2 only via the Object Store REST API.
You can configure a Mule app to use the Object Store REST API to store and retrieve values from an object store in another Mule app.
Object Store v2 Features
-
Supports both static and rolling TTL (time to live) for data persistence.
-
Supports using the Connected Apps feature to authenticate with Anypoint Platform using APIs.
-
Allows for an unlimited number of entries. There is no limit on the total size of v2 object-stores.
-
Stores values up to 10 MB (when Base64 encoded) in size. You can estimate base64 size of a payload as follows: CEILING(base10size * 1024/3) * 4, where base10size is object size in bytes. + Example: A base10 payload size of 7.5 MB converts to 10.24 MB base64.
-
Is available in all supported regions and availability zones within each region.
-
Is co-located in the same region as your workers. For example, workers hosted in Singapore would use Object Store v2 hosted in Singapore.
-
Provides a Mule connector and REST interface for access by external applications.
-
Provides end-to-end secure TLS-transport.
-
Encrypts persistent storage to FIPS 140-2 compliant standards.
You can use the existing Object Store connector to write to the object store, regardless of whether you are using v1 or v2.
The Object Store v2 user interface is available in the Anypoint Platform > Runtime Manager.
Object Store v2 Permissions
To… | Required Permission | Notes |
---|---|---|
Create, read, update, and delete stores. |
Manage stores |
|
Perform all store operations including data, partition, and confirmation APIs. |
Manage stores data |
|
Read store details. |
View stores |
|
Manage all clients of a cloud store. |
Manage store clients |
This permission doesn’t apply to Object Store v2. |
View all clients of a cloud store. |
View store clients (object store only) |
This permission doesn’t apply to Object Store v2. |
Retrieve Object Store v2 metrics using the Object Store v2 Stats API. |
Store Metrics Viewer |
To assign user permissions, follow the steps in Grant Permissions to Users.
To use teams to assign permissions, follow the steps in Manage User Access Using Teams.
Time to Live (TTL)
The entryTtl
value, specified in the global configuration parameters for the connector,
determines when to evict key-value pairs from the store.
If the app doesn’t specify a value for entryTtl
, the default value depends on the Mule version for the app:
-
Mule versions 4.2.1 and later:
Object stores have a rolling TTL by default.
Accessing the data during the last seven days of a 30-day window extends the TTL for another 30 days.
-
Mule versions earlier than 4.2.1:
Object stores have a static TTL of 30 days by default.
Updating the data (for example, by overwriting the key) resets the TTL.
To configure TTL, see Configure a Custom Time to Live Period.
Rolling TTL
When you configure rolling TTL, accessing the data during the last seven days of a 30-day window extends the TTL for another 30 days.
If you don’t access the data during that time, the object store evicts the data in the next seven to 30 days from the most recent expiration date.
The Object Store Connector operations that extend TTL are:
Extends TTL | Doesn’t Extend TTL |
---|---|
Retrieve |
Contains |
Retrieve All |
Clear |
Retrieve All Keys |
Remove |
Store |
-
The minimum rolling TTL is 30 days (2592000 seconds).
-
The maximum rolling TTL is unlimited if you continue to access the data in the last seven days of the 30-day window.
Static TTL
When you configure static TTL, the value of entryTtl
determines when to evict the data:
-
The minimum static TTL is one second.
-
The maximum (and default) static TTL is 2592000 seconds (30 days).
If the entryTtl
value is less than one second or greater than 30 days, TTL is set to the maximum value of 2592000 seconds (30 days) without returning an error.
Updating the data (for example, by overwriting the key) resets the TTL.
Upgrade to Object Store v2
-
Back up all the data in your current object store.
Data does not carry over from Object Store v1 to v2. Any data in a v1 object store, including watermarks and other Mule component states, does not move to v2. If you revert to Object Store v1, your Object Store v1 data is still there. -
To access Object Store v2, in Anypoint Platform, click Runtime Manager. Click the name of your application to view the application’s dashboard, and click Manage Application. In the Settings screen, click Use Object Store v2. Accept the prompt. The Application Data section of the Runtime Manager’s dashboard changes to Object Store.
Object Store Notes
-
For Object Store v2 region availability see Where is Object Store v2 available?
-
The Object Store Connector works for both Object Store version 1 and 2.
-
Object Store v2 enforces a maximum data persistence of 30 days from time of creation.
-
Premium add-on customers are allowed up to 100 TPS per app.
The free Object Store v2 limits usage to 10 transactions per second (TPS) per application. To upgrade to premium and increase your TPS limit, contact the MuleSoft account team.
-
For CloudHub applications using Mule 4, if you choose Object Store v2, Object Store v2 overrides the
_defaultPersistentObjectStore
object store.For CloudHub applications using Mule 3, Object Store v2 overrides the
_defaultUserObjectStore
object store. To use Object Store v2 in Mule 3 CloudHub applications, set the Object Store reference field to the_defaultUserObjectStore
value. -
Using Object Store v2 with multi-worker CloudHub applications might result in data discrepancies or key clashes.
To avoid these issues, use a distributed key-value store as a lock to synchronize access to Object Store v2. For information about distributed locking in Mule runtime engine, see Distributed Locking.