Documentation ¶
Index ¶
- Constants
- Variables
- func OpenLogDB(dirs []string, lowLatencyDirs []string) (paxosio.ILogDB, error)
- type IKvStore
- type IWriteBatch
- type LogReader
- func (lr *LogReader) Append(entries []paxospb.Entry) error
- func (lr *LogReader) Compact(instanceID uint64) error
- func (lr *LogReader) Entries(low, high uint64) ([]paxospb.Entry, error)
- func (lr *LogReader) GetRange() (uint64, uint64)
- func (lr *LogReader) NodeState() paxospb.State
- func (lr *LogReader) SetRange(firstInstanceID, length uint64)
- func (lr *LogReader) SetState(s paxospb.State)
- type PooledKey
- func (k *PooledKey) Key() []byte
- func (k *PooledKey) Release()
- func (k *PooledKey) SetEntryBatchKey(groupID uint64, nodeID uint64, batchID uint64)
- func (k *PooledKey) SetEntryKey(groupID uint64, nodeID uint64, instance uint64)
- func (k *PooledKey) SetMaxInstanceKey(groupID uint64, nodeID uint64)
- func (k *PooledKey) SetStateKey(groupID uint64, nodeID uint64)
- type RDB
- type ShardedRDB
- func (mw *ShardedRDB) Close()
- func (mw *ShardedRDB) GetBootstrapInfo(groupID uint64, nodeID uint64) (*paxospb.Bootstrap, error)
- func (mw *ShardedRDB) GetLogDBThreadContext() paxosio.IContext
- func (mw *ShardedRDB) IterateEntries(groupID uint64, nodeID uint64, low uint64, high uint64) ([]paxospb.Entry, error)
- func (mw *ShardedRDB) ListNodeInfo() ([]paxosio.NodeInfo, error)
- func (mw *ShardedRDB) Name() string
- func (mw *ShardedRDB) ReadPaxosState(groupID, nodeID, lastInstance uint64) (*paxosio.PaxosState, error)
- func (mw *ShardedRDB) SaveBootstrapInfo(groupID uint64, nodeID uint64, bootstrap paxospb.Bootstrap) error
- func (mw *ShardedRDB) SavePaxosState(updates []paxospb.Update, ctx paxosio.IContext) error
Constants ¶
const (
// LogDBType is the logdb type name
LogDBType = "sharded-rocksdb"
)
Variables ¶
var ( // RDBContextValueSize defines the size of byte array managed in RDB context. RDBContextValueSize uint64 = 1024 * 1024 * 64 )
Functions ¶
Types ¶
type IKvStore ¶
type IKvStore interface { // Name is the IKvStore name. Name() string // Close closes the underlying Key-Value store. Close() error // IterateValue iterates the key range specified by the first key fk and // last key lk. The inc boolean flag indicates whether it is inclusive for // the last key lk. For each iterated entry, the specified op will be invoked // on that key-value pair, the specified op func returns a boolean flag to // indicate whether IterateValue should continue to iterate entries. IterateValue(fk []byte, lk []byte, inc bool, op func(key []byte, data []byte) (bool, error)) // GetValue queries the value specified the input key, the returned value // byte slice is passed to the specified op func. GetValue(key []byte, op func([]byte) error) error // Save value saves the specified key value pair to the underlying key-value // pair. SaveValue(key []byte, value []byte) error // DeleteValue deletes the key-value pair specified by the input key. DeleteValue(key []byte) error // GetWriteBatch returns an IWriteBatch object to be used by RDB. GetWriteBatch(ctx paxosio.IContext) IWriteBatch // CommitWriteBatch atomically writes everything included in the write batch // to the underlying key-value store. CommitWriteBatch(wb IWriteBatch) error // RemoveEntries removes entries specified by the range [firstKey, lastKey). // RemoveEntries is called in the main execution thread of raft, it is // suppose to immediately return without significant delay. RemoveEntries(firstKey []byte, lastKey []byte) error // Compaction is called by the compaction goroutine to compact the key-value // store for the specified range [firstKey, lastKey). This method is expected // to complete in the order of seconds. Compaction(firstKey []byte, lastKey []byte) error }
IKvStore is the interface used by the RDB struct to access the underlying Key-Value store.
type IWriteBatch ¶
IWriteBatch is the interface representing a write batch capable of atomically writing many key-value pairs to the key-value store.
type LogReader ¶
LogReader is the struct used to manage logs that have already been persisted into LogDB. This implementation is influenced by CockroachDB's replicaRaftStorage.
func NewLogReader ¶
NewLogReader creates and returns a new LogReader instance.
func (*LogReader) GetRange ¶
GetRange returns the index range of all logs managed by the LogReader instance.
type PooledKey ¶
type PooledKey struct {
// contains filtered or unexported fields
}
PooledKey represents keys that are managed by a sync.Pool to be reused.
func (*PooledKey) SetEntryBatchKey ¶
SetEntryBatchKey sets the key value opf the entry batch.
func (*PooledKey) SetEntryKey ¶
SetEntryKey sets the key value to the specified entry key.
func (*PooledKey) SetMaxInstanceKey ¶
SetMaxInstanceKey sets the key value to the max index record key.
func (*PooledKey) SetStateKey ¶
SetStateKey sets the key value to the specified State.
type RDB ¶
type RDB struct {
// contains filtered or unexported fields
}
RDB is the struct used to manage rocksdb backed persistent Log stores.
type ShardedRDB ¶
type ShardedRDB struct {
// contains filtered or unexported fields
}
ShardedRDB is a LogDB implementation using sharded rocksdb instances.
func OpenShardedRDB ¶
func OpenShardedRDB(dirs []string, lldirs []string) (*ShardedRDB, error)
OpenShardedRDB ...
func (*ShardedRDB) GetBootstrapInfo ¶
GetBootstrapInfo returns the saved bootstrap info for the given node.
func (*ShardedRDB) GetLogDBThreadContext ¶
func (mw *ShardedRDB) GetLogDBThreadContext() paxosio.IContext
GetLogDBThreadContext return a IContext instance.
func (*ShardedRDB) IterateEntries ¶
func (mw *ShardedRDB) IterateEntries(groupID uint64, nodeID uint64, low uint64, high uint64) ([]paxospb.Entry, error)
IterateEntries ...
func (*ShardedRDB) ListNodeInfo ¶
func (mw *ShardedRDB) ListNodeInfo() ([]paxosio.NodeInfo, error)
ListNodeInfo lists all available NodeInfo found in the log db.
func (*ShardedRDB) Name ¶
func (mw *ShardedRDB) Name() string
Name returns the type name of the instance.
func (*ShardedRDB) ReadPaxosState ¶
func (mw *ShardedRDB) ReadPaxosState(groupID, nodeID, lastInstance uint64) (*paxosio.PaxosState, error)
ReadPaxosState ...
func (*ShardedRDB) SaveBootstrapInfo ¶
func (mw *ShardedRDB) SaveBootstrapInfo(groupID uint64, nodeID uint64, bootstrap paxospb.Bootstrap) error
SaveBootstrapInfo saves the specified bootstrap info for the given node.
func (*ShardedRDB) SavePaxosState ¶
SavePaxosState ...
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
Package gorocksdb provides the ability to create and access RocksDB databases.
|
Package gorocksdb provides the ability to create and access RocksDB databases. |
Package levigo provides the ability to create and access LevelDB databases.
|
Package levigo provides the ability to create and access LevelDB databases. |