Links

Using Channels

This is the manual for older MicroStream versions (Version < 5.0).
The new documentation (Version >= 5.0) is located at:

Channel Usage

Channels are the IO threads used by the MicroStream storage engine. A single channel represents the unity of a thread, a storage directory and cached data. Increasing the number of channels means to run more IO threads.
The channel count is an important configuration value that impacts to IO performance.

Channel Configuration

For the channel configuration the following configuration properties are available:
  • Channel count
    The number of channels that MicroStream will use. Must be
    2n2^n
  • Channel directory prefix
    The channel directory will be prefix+channelNumber e.g. "ch_0" if prefix is "ch_"
  • Data file prefix default is "channel_"
  • Data file suffix deflaut id ".dat"
Channel file size configuration is done by the the Storage Data File Evaluator.
They can be set By storage.embedded.configuration API:
Java
Xml
ini
EmbeddedStorageManager storageManager = Configuration.Default()
.setChannelCount(4)
.setChannelDirectoryPrefix("channel_")
.setDataFilePrefix("channel_")
.setDataFileSuffix(".bin")
.createEmbeddedStorageFoundation()
.createEmbeddedStorageManager();
<properties>
<property name="channelCount" value="4" />
<property name="channelDirectoryPrefix" value="channel_" />
<property name="dataFilePrefix value="channel_" />
<property name="dataFileSuffix" value=".dat" />
</properties>
channelCount = 4
channelDirectoryPrefix = prefix
dataFilePrefix = channel_
dataFileSuffix = .dat
See also: Configuration
Or by setting a StorageFileProvider using theEmbeddedStorageFoundationfactory
NioFileSystem fileSystem = NioFileSystem.New();
EmbeddedStorageManager storage = EmbeddedStorage.Foundation(
Storage.ConfigurationBuilder()
.setChannelCountProvider(Storage.ChannelCountProvider(4))
.setStorageFileProvider(
StorageLiveFileProvider.Builder()
.setDirectory(fileSystem.ensureDirectoryPath("storage"))
.createFileProvider()
)
.createConfiguration()
)
.start();