Documentation ¶
Index ¶
- Constants
- func NewCommitLogBootstrapperProvider(opts Options, inspection fs.Inspection, next bootstrap.BootstrapperProvider) (bootstrap.BootstrapperProvider, error)
- type CopyFn
- type EqualsFn
- type FinalizeFn
- type HashFn
- type Map
- func (m *Map) Contains(k ident.ID) bool
- func (m *Map) Delete(k ident.ID)
- func (m *Map) Get(k ident.ID) (metadataAndEncodersByTime, bool)
- func (m *Map) Iter() map[MapHash]MapEntry
- func (m *Map) Len() int
- func (m *Map) Reallocate()
- func (m *Map) Reset()
- func (m *Map) Set(k ident.ID, v metadataAndEncodersByTime)
- func (m *Map) SetUnsafe(k ident.ID, v metadataAndEncodersByTime, opts SetUnsafeOptions)
- type MapEntry
- type MapHash
- type MapOptions
- type Options
- type SetUnsafeOptions
Constants ¶
const (
// CommitLogBootstrapperName is the name of the commit log bootstrapper.
CommitLogBootstrapperName = "commitlog"
)
Variables ¶
This section is empty.
Functions ¶
func NewCommitLogBootstrapperProvider ¶
func NewCommitLogBootstrapperProvider( opts Options, inspection fs.Inspection, next bootstrap.BootstrapperProvider, ) (bootstrap.BootstrapperProvider, error)
NewCommitLogBootstrapperProvider creates a new bootstrapper provider to bootstrap from commit log files.
Types ¶
type EqualsFn ¶ added in v0.4.0
EqualsFn is the equals key function to execute when detecting equality of a key.
type FinalizeFn ¶ added in v0.4.0
FinalizeFn is the finalize key function to execute when finished with a key.
type Map ¶ added in v0.4.0
type Map struct {
// contains filtered or unexported fields
}
Map uses the genny package to provide a generic hash map that can be specialized by running the following command from this root of the repository: ``` make hashmap-gen pkg=outpkg key_type=Type value_type=Type out_dir=/tmp ``` Or if you would like to use bytes or ident.ID as keys you can use the partially specialized maps to generate your own maps as well: ``` make byteshashmap-gen pkg=outpkg value_type=Type out_dir=/tmp make idhashmap-gen pkg=outpkg value_type=Type out_dir=/tmp ``` This will output to stdout the generated source file to use for your map. It uses linear probing by incrementing the number of the hash created when hashing the identifier if there is a collision. Map is a value type and not an interface to allow for less painful upgrades when adding/removing methods, it is not likely to need mocking so an interface would not be super useful either.
func NewMap ¶ added in v0.4.0
func NewMap(opts MapOptions) *Map
NewMap returns a new byte keyed map.
func (*Map) Contains ¶ added in v0.4.0
Contains returns true if value exists for key, false otherwise, it is shorthand for a call to Get that doesn't return the value.
func (*Map) Delete ¶ added in v0.4.0
Delete will remove a value set in the map for the specified key.
func (*Map) Iter ¶ added in v0.4.0
Iter provides the underlying map to allow for using a native Go for loop to iterate the map, however callers should only ever read and not write the map.
func (*Map) Reallocate ¶ added in v0.4.0
func (m *Map) Reallocate()
Reallocate will avoid deleting all keys and reallocate a new map, this is useful if you believe you have a large map and will not need to grow back to a similar size.
func (*Map) Reset ¶ added in v0.4.0
func (m *Map) Reset()
Reset will reset the map by simply deleting all keys to avoid allocating a new map.
type MapEntry ¶ added in v0.4.0
type MapEntry struct {
// contains filtered or unexported fields
}
MapEntry is an entry in the map, this is public to support iterating over the map using a native Go for loop.
type MapHash ¶ added in v0.4.0
type MapHash uint64
MapHash is the hash for a given map entry, this is public to support iterating over the map using a native Go for loop.
type MapOptions ¶ added in v0.4.0
MapOptions provides options used when created the map.
type Options ¶
type Options interface { // Validate validates the options Validate() error // SetResultOptions sets the result options SetResultOptions(value result.Options) Options // ResultOptions returns the result options ResultOptions() result.Options // SetCommitLogOptions sets the commit log options SetCommitLogOptions(value commitlog.Options) Options // CommitLogOptions returns the commit log options CommitLogOptions() commitlog.Options // SetEncodingConcurrency sets the concurrency for encoding SetEncodingConcurrency(value int) Options // EncodingConcurrency returns the concurrency for encoding EncodingConcurrency() int // SetMergeShardConcurrency sets the concurrency for merging shards SetMergeShardsConcurrency(value int) Options // MergeShardConcurrency returns the concurrency for merging shards MergeShardsConcurrency() int }
Options represents the options for bootstrapping from commit logs
type SetUnsafeOptions ¶ added in v0.4.0
SetUnsafeOptions is a set of options to use when setting a value with the SetUnsafe method.