package
0.1.5
Repository: https://github.com/loopholelabs/silo.git
Documentation: pkg.go.dev

# README

Modules

Modules can be chained together to create various storage workflows / setups.

ModuleDescription
ArtificialLatencyAdds a fixed latency to reads / writes for testing/benchmarking.
CacheThis contains a source, and a store of what data is contained in the cache. If the data is not in the cache for a read, a cache miss error is returned.
FilterRedundantWritesThis can filter out any redundant writes (Write data is same as source data), and can also cut large writes into smaller writes which only contains changed data.
LockableThis can lock a source for some period.
MetricsGeneral metrics module to track read/write ops,bytes and latency
NothingEmpty module - /dev/null
ReadDirtyTrackerSimilar to a DirtyTracker, but only starts tracking writes to a block after it's been read ONCE.
ShardedStorageThis shards storage into multiple storage, which for example allows concurrent writes across shards.
SplitterThis allows the insertion of cache type sources. Any cache hit reads return immediately, whilst misses result in a read from the source, which then also gets written to any of the cache type sources.
CopyOnWriteThis allows a read-only source, and a cache. The cache is lazily filled as blocks are written.