Logical Unit Storage Overview

A Logical Unit (LU) is a blueprint that holds definitions and instructions for creating and maintaining the data of a business entity, such as a customer.

Fabric uses the System DB as the default Logical Unit storage layer, where each business entity instance is saved as a MicroDB in an entity table (and in an entity_chunks table for big LUs).

The sections below describe the additional LU storage types supported by Fabric and the configuration settings associated with each storage type.

Storage Types

The location of a Logical Unit's permanent storage depends on the LU Schema's Storage setting. The following storage types are supported:

  • Default — inherits the default MicroDB storage setting defined by MDB_DEFAULT_SCHEMA_CACHE_STORAGE_TYPE in the [fabricdb] section of the config.ini file.
  • None — does not persist the LU instance after a GET retrieves the instance data from the source database.
  • S3 — stores LU instances in AWS S3 after execution of the GET command.
  • Azure Blob Store — stores LU instances in Azure Blob Storage after execution of the GET command.
  • Google Cloud Storage (GCS) — stores LU instances in Google Cloud Storage after execution of the GET command.
  • NFS — stores LU instances in shared NFS storage.
  • Cassandra — stores LU instances in Cassandra after execution of the GET command.

To display an LU's storage type, use the Fabric LIST command.

Click for more information about the LIST command.

Optimistic locking is supported for all storage types except GCS. If needed, it can be enabled by setting:

VALIDATE_REMOTE_VERSION=true

Changing the LU storage from the default System DB to another storage type does not eliminate Fabric's requirement for a persistent System DB.

Click for more information about Fabric System Database.

Starting with Fabric 8.0, it is possible to store business entities on PostgreSQL when the use case is primarily querying data across entities. For further reading, click here.


LU Storage Type Reference

The default storage type for MicroDB instances is configured using MDB_DEFAULT_SCHEMA_CACHE_STORAGE_TYPE in the [fabricdb] section of config.ini.

The default configuration is:

[fabricdb]

## Defines the default storage for Micro Databases (can be changed for individual schemas from Studio). Storage can be:
## SYSTEM_DB/S3/AZURE_BLOB_STORE/GCS/NFS/NONE (requires restart)
#MDB_DEFAULT_SCHEMA_CACHE_STORAGE_TYPE=SYSTEM_DB

When the property is not explicitly set, SYSTEM_DB is used.

The default storage type can be overridden for an individual LU Schema by changing its Storage property in Studio.

SYSTEM_DB

SYSTEM_DB is the default MicroDB storage type.

[fabricdb]

MDB_DEFAULT_SCHEMA_CACHE_STORAGE_TYPE=SYSTEM_DB

MicroDB instances are persisted in the Fabric System DB.

No additional LU storage configuration is required when SYSTEM_DB is used.

S3

To use AWS S3 as the default MicroDB storage:

[fabricdb]

MDB_DEFAULT_SCHEMA_CACHE_STORAGE_TYPE=S3

The S3 storage connection is configured in the [s3_storage] section of config.ini.

For example:

[s3_storage]

...

The S3 storage configuration defines the storage location and connection properties used by Fabric to persist MicroDB instances.

AZURE_BLOB_STORE

To use Azure Blob Storage as the default MicroDB storage:

[fabricdb]

MDB_DEFAULT_SCHEMA_CACHE_STORAGE_TYPE=AZURE_BLOB_STORE

The Azure Blob Storage connection is configured in the [azure_blob_storage] section of config.ini.

For example:

[azure_blob_storage]

...

The Azure Blob Storage configuration defines the storage location and connection properties used by Fabric to persist MicroDB instances.

GCS

To use Google Cloud Storage as the default MicroDB storage:

[fabricdb]

MDB_DEFAULT_SCHEMA_CACHE_STORAGE_TYPE=GCS

The Google Cloud Storage connection is configured in the [gcs_storage] section of config.ini.

For example:

[gcs_storage]

...

The GCS configuration defines the storage location and connection properties used by Fabric to persist MicroDB instances.

NFS

NFS can be used as shared persistent storage for MicroDB instances.

To use NFS as the default MicroDB storage, set MDB_DEFAULT_SCHEMA_CACHE_STORAGE_TYPE to NFS:

[fabricdb]

MDB_DEFAULT_SCHEMA_CACHE_STORAGE_TYPE=NFS

Unlike the other storage types, the NFS storage path is defined using the MDB_DEFAULT_STORAGE_PATH property.

The default is set to

${FABRIC_HOME}/storage

The NFS filesystem must be mounted and accessible to the Fabric nodes that use the NFS-backed LU storage.

NONE

NONE disables persistent MicroDB storage.

[fabricdb]

MDB_DEFAULT_SCHEMA_CACHE_STORAGE_TYPE=NONE

When NONE is configured, an LU instance retrieved from its source systems is not persisted in the configured LU storage after the GET operation.


Storage Configuration Summary

Storage Type MDB_DEFAULT_SCHEMA_CACHE_STORAGE_TYPE Additional Configuration
System DB SYSTEM_DB None
AWS S3 S3 [s3_storage]
Azure Blob Storage AZURE_BLOB_STORE [azure_blob_storage]
Google Cloud Storage GCS [gcs_storage]
NFS NFS MDB_DEFAULT_STORAGE_PATH must be added to [fabricdb]
None NONE None

Logical Unit Storage Overview

A Logical Unit (LU) is a blueprint that holds definitions and instructions for creating and maintaining the data of a business entity, such as a customer.

Fabric uses the System DB as the default Logical Unit storage layer, where each business entity instance is saved as a MicroDB in an entity table (and in an entity_chunks table for big LUs).

The sections below describe the additional LU storage types supported by Fabric and the configuration settings associated with each storage type.

Storage Types

The location of a Logical Unit's permanent storage depends on the LU Schema's Storage setting. The following storage types are supported:

  • Default — inherits the default MicroDB storage setting defined by MDB_DEFAULT_SCHEMA_CACHE_STORAGE_TYPE in the [fabricdb] section of the config.ini file.
  • None — does not persist the LU instance after a GET retrieves the instance data from the source database.
  • S3 — stores LU instances in AWS S3 after execution of the GET command.
  • Azure Blob Store — stores LU instances in Azure Blob Storage after execution of the GET command.
  • Google Cloud Storage (GCS) — stores LU instances in Google Cloud Storage after execution of the GET command.
  • NFS — stores LU instances in shared NFS storage.
  • Cassandra — stores LU instances in Cassandra after execution of the GET command.

To display an LU's storage type, use the Fabric LIST command.

Click for more information about the LIST command.

Optimistic locking is supported for all storage types except GCS. If needed, it can be enabled by setting:

VALIDATE_REMOTE_VERSION=true

Changing the LU storage from the default System DB to another storage type does not eliminate Fabric's requirement for a persistent System DB.

Click for more information about Fabric System Database.

Starting with Fabric 8.0, it is possible to store business entities on PostgreSQL when the use case is primarily querying data across entities. For further reading, click here.


LU Storage Type Reference

The default storage type for MicroDB instances is configured using MDB_DEFAULT_SCHEMA_CACHE_STORAGE_TYPE in the [fabricdb] section of config.ini.

The default configuration is:

[fabricdb]

## Defines the default storage for Micro Databases (can be changed for individual schemas from Studio). Storage can be:
## SYSTEM_DB/S3/AZURE_BLOB_STORE/GCS/NFS/NONE (requires restart)
#MDB_DEFAULT_SCHEMA_CACHE_STORAGE_TYPE=SYSTEM_DB

When the property is not explicitly set, SYSTEM_DB is used.

The default storage type can be overridden for an individual LU Schema by changing its Storage property in Studio.

SYSTEM_DB

SYSTEM_DB is the default MicroDB storage type.

[fabricdb]

MDB_DEFAULT_SCHEMA_CACHE_STORAGE_TYPE=SYSTEM_DB

MicroDB instances are persisted in the Fabric System DB.

No additional LU storage configuration is required when SYSTEM_DB is used.

S3

To use AWS S3 as the default MicroDB storage:

[fabricdb]

MDB_DEFAULT_SCHEMA_CACHE_STORAGE_TYPE=S3

The S3 storage connection is configured in the [s3_storage] section of config.ini.

For example:

[s3_storage]

...

The S3 storage configuration defines the storage location and connection properties used by Fabric to persist MicroDB instances.

AZURE_BLOB_STORE

To use Azure Blob Storage as the default MicroDB storage:

[fabricdb]

MDB_DEFAULT_SCHEMA_CACHE_STORAGE_TYPE=AZURE_BLOB_STORE

The Azure Blob Storage connection is configured in the [azure_blob_storage] section of config.ini.

For example:

[azure_blob_storage]

...

The Azure Blob Storage configuration defines the storage location and connection properties used by Fabric to persist MicroDB instances.

GCS

To use Google Cloud Storage as the default MicroDB storage:

[fabricdb]

MDB_DEFAULT_SCHEMA_CACHE_STORAGE_TYPE=GCS

The Google Cloud Storage connection is configured in the [gcs_storage] section of config.ini.

For example:

[gcs_storage]

...

The GCS configuration defines the storage location and connection properties used by Fabric to persist MicroDB instances.

NFS

NFS can be used as shared persistent storage for MicroDB instances.

To use NFS as the default MicroDB storage, set MDB_DEFAULT_SCHEMA_CACHE_STORAGE_TYPE to NFS:

[fabricdb]

MDB_DEFAULT_SCHEMA_CACHE_STORAGE_TYPE=NFS

Unlike the other storage types, the NFS storage path is defined using the MDB_DEFAULT_STORAGE_PATH property.

The default is set to

${FABRIC_HOME}/storage

The NFS filesystem must be mounted and accessible to the Fabric nodes that use the NFS-backed LU storage.

NONE

NONE disables persistent MicroDB storage.

[fabricdb]

MDB_DEFAULT_SCHEMA_CACHE_STORAGE_TYPE=NONE

When NONE is configured, an LU instance retrieved from its source systems is not persisted in the configured LU storage after the GET operation.


Storage Configuration Summary

Storage Type MDB_DEFAULT_SCHEMA_CACHE_STORAGE_TYPE Additional Configuration
System DB SYSTEM_DB None
AWS S3 S3 [s3_storage]
Azure Blob Storage AZURE_BLOB_STORE [azure_blob_storage]
Google Cloud Storage GCS [gcs_storage]
NFS NFS MDB_DEFAULT_STORAGE_PATH must be added to [fabricdb]
None NONE None