RemoteStorageFactory

@Serializable
@SerialName(value = "!Remote")
data class RemoteStorageFactory(val objectStore: ObjectStoreFactory, val localDiskCache: Path, var maxCacheEntries: Long = 1024, var maxCacheBytes: Long = 536870912, var maxDiskCachePercentage: Long = 75, var maxDiskCacheBytes: Long? = null) : Storage.Factory

Implementation for the storage module that persists data remotely within a specified objectStore, while maintaining a local cache of the working set cache under the localDiskCache directory.

Any implementer of ObjectStoreFactory can be used as the objectStore. We currently offer:

  • AWS S3 (under xtdb-aws)

  • Azure Blob Storage (under xtdb-azure)

  • Google Cloud Storage (under xtdb-google-cloud)

Example usage, as part of a node config:

Xtdb.openNode {
remoteStorage(
objectStore = objStoreImpl(...) { ... },
localDiskCache = Paths.get("test-path")
) {
maxCacheEntries = 1024,
maxCacheBytes = 536870912,
maxDiskCachePercentage = 75,
maxDiskCacheBytes = 10737418240
},
...
}

Constructors

Link copied to clipboard
constructor(objectStore: ObjectStoreFactory, localDiskCache: Path, maxCacheEntries: Long = 1024, maxCacheBytes: Long = 536870912, maxDiskCachePercentage: Long = 75, maxDiskCacheBytes: Long? = null)

Properties

Link copied to clipboard

local directory to store the working-set cache in.

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

configuration of the object store to use for remote storage.

Functions

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
open override fun openStorage(allocator: BufferAllocator): IBufferPool