Documentation
¶
Index ¶
- type DiffEntry
- type TransactionalStore
- func (ts *TransactionalStore) Delete(ctx context.Context, key string) error
- func (ts *TransactionalStore) Exists(ctx context.Context, key string) (bool, error)
- func (ts *TransactionalStore) ExportCaches() map[string][]byte
- func (ts *TransactionalStore) Flush(rootRef string) error
- func (ts *TransactionalStore) Get(ctx context.Context, key string) ([]byte, error)
- func (ts *TransactionalStore) List(ctx context.Context, prefix string) ([]string, error)
- func (ts *TransactionalStore) PreloadReadCache(data map[string][]byte)
- func (ts *TransactionalStore) Put(ctx context.Context, key string, data []byte) error
- func (ts *TransactionalStore) Size(ctx context.Context, key string) (int64, error)
- func (ts *TransactionalStore) TotalSize(ctx context.Context) (int64, error)
- type Tree
- func (t *Tree) Delete(root, key string) (string, error)
- func (t *Tree) Diff(root1, root2 string, fn func(DiffEntry) error) error
- func (t *Tree) Insert(root, key, value string) (string, error)
- func (t *Tree) Lookup(root, key string) (string, error)
- func (t *Tree) NodeRefs(root string, fn func(ref string) error) error
- func (t *Tree) Walk(root string, fn func(key, value string) error) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type DiffEntry ¶
DiffEntry represents a single change between two trees. OldValue is empty for additions; NewValue is empty for deletions.
type TransactionalStore ¶
type TransactionalStore struct {
// contains filtered or unexported fields
}
TransactionalStore buffers HAMT node writes in memory and flushes only the reachable subset to the persistent store.
func NewTransactionalStore ¶
func NewTransactionalStore(persistent store.ObjectStore) *TransactionalStore
func (*TransactionalStore) Delete ¶
func (ts *TransactionalStore) Delete(ctx context.Context, key string) error
func (*TransactionalStore) ExportCaches ¶
func (ts *TransactionalStore) ExportCaches() map[string][]byte
ExportCaches returns a merged view of all node data currently held in memory (both the staging buffer and the read cache). The caller can persist this to avoid fetching the same nodes on the next run.
func (*TransactionalStore) Flush ¶
func (ts *TransactionalStore) Flush(rootRef string) error
Flush writes only the HAMT nodes reachable from rootRef to the persistent store, ignoring intermediate nodes that were superseded during the transaction. Returns the number of nodes written.
func (*TransactionalStore) PreloadReadCache ¶
func (ts *TransactionalStore) PreloadReadCache(data map[string][]byte)
PreloadReadCache populates the read-through cache from externally loaded data. Nodes already present in the staging buffer or read cache are not overwritten.
type Tree ¶
type Tree struct {
// contains filtered or unexported fields
}
Tree is a persistent Hash Array Mapped Trie backed by a content-addressed store. Keys and values are opaque strings; values are typically object refs ("filemeta/<hash>").
func NewTree ¶
func NewTree(s store.ObjectStore) *Tree
NewTree creates a Tree backed by the given object store.
func (*Tree) Delete ¶
Delete removes the entry for key, returning a new root ref. If the key is not found the original root is returned unchanged. Deleting from an empty tree is a no-op.
func (*Tree) Diff ¶
Diff structurally compares two trees and calls fn for every entry that was added, removed, or modified between root1 and root2.
func (*Tree) Insert ¶
Insert adds or updates the entry for key, returning a new root ref. Pass an empty root to start a new tree.