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 ¶
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.
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 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.
func ParseIndexRuleLocators ¶
func ParseIndexRuleLocators(entity *databasev1.Entity, families []*databasev1.TagFamilySpec, indexRules []*databasev1.IndexRule) (locators IndexRuleLocator)
ParseIndexRuleLocators returns a IndexRuleLocator based on the tag family spec and index rules.
type TagLocator ¶
TagLocator contains offsets to retrieve a tag swiftly.