+

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.

Object Store v2 architecture

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.

Time to Live (TTL)

The TTL can be either rolling or static.

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.

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 1 second.

  • The maximum (and default) static TTL is 2592000 seconds (30 days).

If the entryTtl value exceeds 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.

    Click Use Object Store V2 in the Runtime Manager

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.

Was this article helpful?

💙 Thanks for your feedback!

View on GitHub