Documentation ¶
Overview ¶
Package partition implements a location system to find a shard or index rule. This system reflects the entity identity which is a intermediate result in calculating the target shard.
Index ¶
- Variables
- func GetTagByOffset(value []*modelv1.TagFamilyForWrite, fIndex, tIndex int) (*modelv1.TagValue, error)
- func ParseIndexRuleLocators(entity *databasev1.Entity, families []*databasev1.TagFamilySpec, ...) (locators IndexRuleLocator, fil FieldIndexLocation)
- func ShardID(key []byte, shardNum uint32) (uint, error)
- type EntityLocator
- type FieldIndexLocation
- type FieldWithType
- type IndexRuleLocator
- type TagLocator
Constants ¶
This section is empty.
Variables ¶
var ErrMalformedElement = errors.New("element is malformed")
ErrMalformedElement indicates the element is malformed.
Functions ¶
func GetTagByOffset ¶
func GetTagByOffset(value []*modelv1.TagFamilyForWrite, fIndex, tIndex int) (*modelv1.TagValue, error)
GetTagByOffset gets a tag value based of a tag family offset and a tag offset in this family.
func ParseIndexRuleLocators ¶
func ParseIndexRuleLocators(entity *databasev1.Entity, families []*databasev1.TagFamilySpec, indexRules []*databasev1.IndexRule, ) (locators IndexRuleLocator, fil FieldIndexLocation)
ParseIndexRuleLocators returns a IndexRuleLocator based on the tag family spec and index rules.
Types ¶
type EntityLocator ¶
type EntityLocator struct { TagLocators []TagLocator ModRevision int64 }
EntityLocator combines several TagLocators that help find the entity value.
func NewEntityLocator ¶
func NewEntityLocator(families []*databasev1.TagFamilySpec, entity *databasev1.Entity, modRevision int64) EntityLocator
NewEntityLocator return a EntityLocator based on tag family spec and entity spec.
func (EntityLocator) Find ¶
func (e EntityLocator) Find(subject string, value []*modelv1.TagFamilyForWrite) (pbv1.Entity, pbv1.EntityValues, error)
Find the entity from a tag family, prepend a subject to the entity.
func (EntityLocator) Locate ¶
func (e EntityLocator) Locate(subject string, value []*modelv1.TagFamilyForWrite, shardNum uint32) (pbv1.Entity, pbv1.EntityValues, common.ShardID, error)
Locate a shard and find the entity from a tag family, prepend a subject to the entity.
type FieldIndexLocation ¶ added in v0.7.0
type FieldIndexLocation map[string]map[string]FieldWithType
FieldIndexLocation is a helper struct to store the field index location.
type FieldWithType ¶ added in v0.7.0
FieldWithType is a helper struct to store the field type.
type IndexRuleLocator ¶
type IndexRuleLocator struct { EntitySet map[string]struct{} TagFamilyTRule []map[string]*databasev1.IndexRule }
IndexRuleLocator is a helper struct to locate the index rule by tag name.
type TagLocator ¶
TagLocator contains offsets to retrieve a tag swiftly.