memory

package
v1.6.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 11, 2024 License: Apache-2.0 Imports: 22 Imported by: 12

Documentation

Overview

Package memory provides a simple in-process implementation of the tree- and log-storage interfaces.

This implementation is intended SOLELY for use in integration tests which exercise properties of the higher levels of Trillian componened - e.g. an integration test which ensures that the Trillian Log is able to correctly handle a tree which contains duplicate leaves.

The storage implementation is based on a BTree, which provides an ordered key-value space which can be used to store arbitrary items, as well as scan ranges of keys in order.

The implementation does provide transaction-like semantics for the LogStorage interface, although conflict is avoided by each writable transaction exclusively locking the tree until it's committed or rolled-back.

Currently, the Admin Storage does not honor transactional semantics.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Dump

func Dump(t *btree.BTree)

Dump ascends the tree, logging the items contained.

func DumpSubtrees

func DumpSubtrees(ls storage.LogStorage, treeID int64, callback func(string, *storagepb.SubtreeProto))

DumpSubtrees will traverse the BTree and execute a callback on each subtree proto that it contains. The traversal will be 'in order' according to the BTree keys, which may not be useful at the application level.

func NewAdminStorage

func NewAdminStorage(ms *TreeStorage) storage.AdminStorage

NewAdminStorage returns a storage.AdminStorage implementation backed by TreeStorage.

func NewLogStorage

func NewLogStorage(ts *TreeStorage, mf monitoring.MetricFactory) storage.LogStorage

NewLogStorage creates an in-memory LogStorage instance.

Types

type TreeStorage added in v1.3.0

type TreeStorage struct {
	// contains filtered or unexported fields
}

TreeStorage is shared between the memoryLog and (forthcoming) memoryMap- Storage implementations, and contains functionality which is common to both,

func NewTreeStorage added in v1.3.0

func NewTreeStorage() *TreeStorage

NewTreeStorage returns a new instance of the in-memory tree storage database.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL