Documentation
¶
Overview ¶
Package pilosa implements the core of the Pilosa distributed bitmap index. It contains all the domain objects, interfaces, and logic that defines pilosa.
Index ¶
- Constants
- Variables
- func BuildRouters(handler *Handler)
- func ContainsSubstring(a string, list []string) bool
- func CountOpenFiles() (int, error)
- func EncodeIndexes(a []*Index) []*internal.Index
- func EncodeNode(n *Node) *internal.Node
- func EncodeNodes(a []*Node) []*internal.Node
- func GetHTTPClient(t *tls.Config) *http.Client
- func GetTimeStamp(data map[string]interface{}, timeField string) (int64, error)
- func HostToIP(host string) string
- func IsInverseView(name string) bool
- func IsValidCacheType(v string) bool
- func IsValidFieldType(v string) bool
- func IsValidView(name string) bool
- func MarshalMessage(m proto.Message) ([]byte, error)
- func Pos(rowID, columnID uint64) uint64
- func QueryValidationSpecRequired(requiredArgs ...string) *queryValidationSpec
- func SliceDiff(a, b []uint64) []uint64
- func StringInSlice(a string, list []string) bool
- func StringSlicesAreEqual(a, b []string) bool
- func UnionStringSlice(a, b []string) []string
- func UnmarshalMessage(buf []byte) (proto.Message, error)
- func ValidateField(f *Field) error
- func ValidateLabel(label string) error
- func ValidateName(name string) error
- func ViewByTimeUnit(name string, t time.Time, unit rune) string
- func ViewsByTime(name string, t time.Time, q TimeQuantum) []string
- func ViewsByTimeRange(name string, start, end time.Time, q TimeQuantum) []string
- type Action
- type AttrBlock
- type AttrBlocks
- type AttrCache
- type AttrStore
- func (s *AttrStore) Attrs(id uint64) (m map[string]interface{}, err error)
- func (s *AttrStore) BlockData(i uint64) (map[uint64]map[string]interface{}, error)
- func (s *AttrStore) Blocks() ([]AttrBlock, error)
- func (s *AttrStore) Close() error
- func (s *AttrStore) Open() error
- func (s *AttrStore) Path() string
- func (s *AttrStore) SetAttrs(id uint64, m map[string]interface{}) error
- func (s *AttrStore) SetBulkAttrs(m map[uint64]map[string]interface{}) error
- type Bit
- type Bitmap
- func (b *Bitmap) Bits() []uint64
- func (b *Bitmap) ClearBit(i uint64) (changed bool)
- func (b *Bitmap) Count() uint64
- func (b *Bitmap) DecrementCount(i uint64)
- func (b *Bitmap) Difference(other *Bitmap) *Bitmap
- func (b *Bitmap) IncrementCount(i uint64)
- func (b *Bitmap) Intersect(other *Bitmap) *Bitmap
- func (b *Bitmap) IntersectionCount(other *Bitmap) uint64
- func (b *Bitmap) InvalidateCount()
- func (b *Bitmap) MarshalJSON() ([]byte, error)
- func (b *Bitmap) Merge(other *Bitmap)
- func (b *Bitmap) SetBit(i uint64) (changed bool)
- func (b *Bitmap) Union(other *Bitmap) *Bitmap
- func (b *Bitmap) Xor(other *Bitmap) *Bitmap
- type BitmapCache
- type BitmapPair
- type BitmapPairs
- type BitmapSegment
- func (s *BitmapSegment) Bits() []uint64
- func (s *BitmapSegment) ClearBit(i uint64) (changed bool)
- func (s *BitmapSegment) Count() uint64
- func (s *BitmapSegment) Difference(other *BitmapSegment) *BitmapSegment
- func (s *BitmapSegment) Intersect(other *BitmapSegment) *BitmapSegment
- func (s *BitmapSegment) IntersectionCount(other *BitmapSegment) uint64
- func (s *BitmapSegment) InvalidateCount()
- func (s *BitmapSegment) Merge(other *BitmapSegment)
- func (s *BitmapSegment) SetBit(i uint64) (changed bool)
- func (s *BitmapSegment) Union(other *BitmapSegment) *BitmapSegment
- func (s *BitmapSegment) Xor(other *BitmapSegment) *BitmapSegment
- type Bits
- func (p Bits) ColumnIDs() []uint64
- func (p Bits) ColumnKeys() []string
- func (p Bits) GroupBySlice() map[uint64][]Bit
- func (p Bits) Len() int
- func (p Bits) Less(i, j int) bool
- func (p Bits) RowIDs() []uint64
- func (p Bits) RowKeys() []string
- func (p Bits) Swap(i, j int)
- func (p Bits) Timestamps() []int64
- type BitsByPos
- type BroadcastHandler
- type BroadcastReceiver
- type Broadcaster
- type BufIterator
- type Cache
- type ClientOptions
- type Cluster
- func (c *Cluster) AddNode(node *Node) error
- func (c *Cluster) Close() error
- func (c *Cluster) CompleteCurrentJob(state string) error
- func (c *Cluster) ContainsSlices(index string, maxSlice uint64, node *Node) []uint64
- func (c *Cluster) CoordinatorNode() *Node
- func (c *Cluster) FollowResizeInstruction(instr *internal.ResizeInstruction) error
- func (c *Cluster) FragmentNodes(index string, slice uint64) []*Node
- func (c *Cluster) IsCoordinator() bool
- func (c *Cluster) Job(id int64) *ResizeJob
- func (c *Cluster) ListenForJoins()
- func (c *Cluster) MarkResizeInstructionComplete(complete *internal.ResizeInstructionComplete) error
- func (c *Cluster) MergeClusterStatus(cs *internal.ClusterStatus) error
- func (c *Cluster) NodeIDs() []string
- func (c *Cluster) NodeLeave(node *Node) error
- func (c *Cluster) Open() error
- func (c *Cluster) OwnsFragment(nodeID string, index string, slice uint64) bool
- func (c *Cluster) OwnsSlices(index string, maxSlice uint64, uri URI) []uint64
- func (c *Cluster) Partition(index string, slice uint64) int
- func (c *Cluster) PartitionNodes(partitionID int) []*Node
- func (c *Cluster) ReceiveEvent(e *NodeEvent) error
- func (c *Cluster) ReceiveNodeState(nodeID string, state string) error
- func (c *Cluster) RemoveNode(node *Node) error
- func (c *Cluster) SetCoordinator(n *Node) bool
- func (c *Cluster) SetNodeState(state string) error
- func (c *Cluster) SetState(state string)
- func (c *Cluster) State() string
- func (c *Cluster) Status() *internal.ClusterStatus
- type CmdIO
- type ColumnAttrSet
- type Config
- type Duration
- type EventHandler
- type EventReceiver
- type ExecOptions
- type Executor
- type ExpvarStatsClient
- func (c *ExpvarStatsClient) Close() error
- func (c *ExpvarStatsClient) Count(name string, value int64, rate float64)
- func (c *ExpvarStatsClient) CountWithCustomTags(name string, value int64, rate float64, tags []string)
- func (c *ExpvarStatsClient) Gauge(name string, value float64, rate float64)
- func (c *ExpvarStatsClient) Histogram(name string, value float64, rate float64)
- func (c *ExpvarStatsClient) Open()
- func (c *ExpvarStatsClient) Set(name string, value string, rate float64)
- func (c *ExpvarStatsClient) SetLogger(logger io.Writer)
- func (c *ExpvarStatsClient) Tags() []string
- func (c *ExpvarStatsClient) Timing(name string, value time.Duration, rate float64)
- func (c *ExpvarStatsClient) WithTags(tags ...string) StatsClient
- type Field
- type FieldValue
- type FieldValues
- type Fragment
- func (f *Fragment) BlockData(id int) (rowIDs, columnIDs []uint64)
- func (f *Fragment) BlockN() int
- func (f *Fragment) Blocks() []FragmentBlock
- func (f *Fragment) Cache() Cache
- func (f *Fragment) CachePath() string
- func (f *Fragment) Checksum() []byte
- func (f *Fragment) ClearBit(rowID, columnID uint64) (bool, error)
- func (f *Fragment) Close() error
- func (f *Fragment) FieldNotNull(bitDepth uint) (*Bitmap, error)
- func (f *Fragment) FieldRange(op pql.Token, bitDepth uint, predicate uint64) (*Bitmap, error)
- func (f *Fragment) FieldRangeBetween(bitDepth uint, predicateMin, predicateMax uint64) (*Bitmap, error)
- func (f *Fragment) FieldSum(filter *Bitmap, bitDepth uint) (sum, count uint64, err error)
- func (f *Fragment) FieldValue(columnID uint64, bitDepth uint) (value uint64, exists bool, err error)
- func (f *Fragment) FlushCache() error
- func (f *Fragment) ForEachBit(fn func(rowID, columnID uint64) error) error
- func (f *Fragment) Frame() string
- func (f *Fragment) Import(rowIDs, columnIDs []uint64) error
- func (f *Fragment) ImportValue(columnIDs, values []uint64, bitDepth uint) error
- func (f *Fragment) Index() string
- func (f *Fragment) InvalidateChecksums()
- func (f *Fragment) MergeBlock(id int, data []PairSet) (sets, clears []PairSet, err error)
- func (f *Fragment) Open() error
- func (f *Fragment) Path() string
- func (f *Fragment) ReadFrom(r io.Reader) (n int64, err error)
- func (f *Fragment) RecalculateCache()
- func (f *Fragment) Row(rowID uint64) *Bitmap
- func (f *Fragment) SetBit(rowID, columnID uint64) (changed bool, err error)
- func (f *Fragment) SetFieldValue(columnID uint64, bitDepth uint, value uint64) (changed bool, err error)
- func (f *Fragment) Slice() uint64
- func (f *Fragment) Snapshot() error
- func (f *Fragment) Top(opt TopOptions) ([]Pair, error)
- func (f *Fragment) View() string
- func (f *Fragment) WriteTo(w io.Writer) (n int64, err error)
- type FragmentBlock
- type FragmentSyncer
- type Frame
- func (f *Frame) CacheSize() uint32
- func (f *Frame) CacheType() string
- func (f *Frame) ClearBit(name string, rowID, colID uint64, t *time.Time) (changed bool, err error)
- func (f *Frame) Close() error
- func (f *Frame) CreateField(field *Field) error
- func (f *Frame) CreateViewIfNotExists(name string) (*View, error)
- func (f *Frame) DeleteField(name string) error
- func (f *Frame) DeleteView(name string) error
- func (f *Frame) Field(name string) *Field
- func (f *Frame) FieldRange(name string, op pql.Token, predicate int64) (*Bitmap, error)
- func (f *Frame) FieldRangeBetween(name string, predicateMin, predicateMax int64) (*Bitmap, error)
- func (f *Frame) FieldSum(filter *Bitmap, name string) (sum, count int64, err error)
- func (f *Frame) FieldValue(columnID uint64, name string) (value int64, exists bool, err error)
- func (f *Frame) Fields() []*Field
- func (f *Frame) GetFields() ([]*Field, error)
- func (f *Frame) HasField(name string) bool
- func (f *Frame) Import(rowIDs, columnIDs []uint64, timestamps []*time.Time) error
- func (f *Frame) ImportValue(fieldName string, columnIDs []uint64, values []int64) error
- func (f *Frame) Index() string
- func (f *Frame) InverseEnabled() bool
- func (f *Frame) MaxInverseSlice() uint64
- func (f *Frame) MaxSlice() uint64
- func (f *Frame) Name() string
- func (f *Frame) Open() error
- func (f *Frame) Options() FrameOptions
- func (f *Frame) Path() string
- func (f *Frame) RangeEnabled() bool
- func (f *Frame) RecalculateCaches()
- func (f *Frame) RowAttrStore() *AttrStore
- func (f *Frame) RowLabel() string
- func (f *Frame) SetBit(name string, rowID, colID uint64, t *time.Time) (changed bool, err error)
- func (f *Frame) SetCacheSize(v uint32) error
- func (f *Frame) SetFieldValue(columnID uint64, name string, value int64) (changed bool, err error)
- func (f *Frame) SetRowLabel(v string) error
- func (f *Frame) SetTimeQuantum(q TimeQuantum) error
- func (f *Frame) TimeQuantum() TimeQuantum
- func (f *Frame) View(name string) *View
- func (f *Frame) ViewPath(name string) string
- func (f *Frame) Views() []*View
- type FrameInfo
- type FrameOptions
- type GCNotifier
- type Gossiper
- type Handler
- type Hasher
- type Holder
- func (h *Holder) ApplySchema(schema *internal.Schema) error
- func (h *Holder) Close() error
- func (h *Holder) CreateIndex(name string, opt IndexOptions) (*Index, error)
- func (h *Holder) CreateIndexIfNotExists(name string, opt IndexOptions) (*Index, error)
- func (h *Holder) DeleteIndex(name string) error
- func (h *Holder) EncodeMaxSlices() *internal.MaxSlices
- func (h *Holder) EncodeSchema() *internal.Schema
- func (h *Holder) Fragment(index, frame, view string, slice uint64) *Fragment
- func (h *Holder) Frame(index, name string) *Frame
- func (h *Holder) HasData() bool
- func (h *Holder) Index(name string) *Index
- func (h *Holder) IndexPath(name string) string
- func (h *Holder) Indexes() []*Index
- func (h *Holder) MaxInverseSlices() map[string]uint64
- func (h *Holder) MaxSlices() map[string]uint64
- func (h *Holder) Open() error
- func (h *Holder) Peek() bool
- func (h *Holder) RecalculateCaches()
- func (h *Holder) Schema() []*IndexInfo
- func (h *Holder) View(index, frame, name string) *View
- type HolderCleaner
- type HolderSyncer
- type Index
- func (i *Index) Close() error
- func (i *Index) ColumnAttrStore() *AttrStore
- func (i *Index) ColumnLabel() string
- func (i *Index) CreateFrame(name string, opt FrameOptions) (*Frame, error)
- func (i *Index) CreateFrameIfNotExists(name string, opt FrameOptions) (*Frame, error)
- func (i *Index) CreateInputDefinition(pb *internal.InputDefinition) (*InputDefinition, error)
- func (i *Index) DeleteFrame(name string) error
- func (i *Index) DeleteInputDefinition(name string) error
- func (i *Index) Frame(name string) *Frame
- func (i *Index) FramePath(name string) string
- func (i *Index) Frames() []*Frame
- func (i *Index) InputBits(frame string, bits []*Bit) error
- func (i *Index) InputDefinition(name string) (*InputDefinition, error)
- func (i *Index) InputDefinitionPath() string
- func (i *Index) InputDefinitions() []*InputDefinition
- func (i *Index) MaxInverseSlice() uint64
- func (i *Index) MaxSlice() uint64
- func (i *Index) Name() string
- func (i *Index) Open() error
- func (i *Index) Options() IndexOptions
- func (i *Index) Path() string
- func (i *Index) RecalculateCaches()
- func (i *Index) SetColumnLabel(v string) error
- func (i *Index) SetRemoteMaxInverseSlice(v uint64)
- func (i *Index) SetRemoteMaxSlice(newmax uint64)
- func (i *Index) SetTimeQuantum(q TimeQuantum) error
- func (i *Index) TimeQuantum() TimeQuantum
- type IndexInfo
- type IndexOptions
- type InputDefinition
- type InputDefinitionField
- type InputDefinitionInfo
- type InputFrame
- type InternalClient
- type InternalHTTPClient
- func (c *InternalHTTPClient) BackupSlice(ctx context.Context, index, frame, view string, slice uint64) (io.ReadCloser, error)
- func (c *InternalHTTPClient) BackupTo(ctx context.Context, w io.Writer, index, frame, view string) error
- func (c *InternalHTTPClient) BlockData(ctx context.Context, index, frame, view string, slice uint64, block int) ([]uint64, []uint64, error)
- func (c *InternalHTTPClient) ColumnAttrDiff(ctx context.Context, index string, blks []AttrBlock) (map[uint64]map[string]interface{}, error)
- func (c *InternalHTTPClient) CreateFrame(ctx context.Context, index, frame string, opt FrameOptions) error
- func (c *InternalHTTPClient) CreateIndex(ctx context.Context, index string, opt IndexOptions) error
- func (c *InternalHTTPClient) EnsureFrame(ctx context.Context, indexName string, frameName string, options FrameOptions) error
- func (c *InternalHTTPClient) EnsureIndex(ctx context.Context, name string, options IndexOptions) error
- func (c *InternalHTTPClient) ExecuteQuery(ctx context.Context, index string, queryRequest *internal.QueryRequest) (*internal.QueryResponse, error)
- func (c *InternalHTTPClient) ExportCSV(ctx context.Context, index, frame, view string, slice uint64, w io.Writer) error
- func (c *InternalHTTPClient) FragmentBlocks(ctx context.Context, index, frame, view string, slice uint64) ([]FragmentBlock, error)
- func (c *InternalHTTPClient) FragmentNodes(ctx context.Context, index string, slice uint64) ([]*Node, error)
- func (c *InternalHTTPClient) FrameViews(ctx context.Context, index, frame string) ([]string, error)
- func (c *InternalHTTPClient) Host() *URI
- func (c *InternalHTTPClient) Import(ctx context.Context, index, frame string, slice uint64, bits []Bit) error
- func (c *InternalHTTPClient) ImportK(ctx context.Context, index, frame string, bits []Bit) error
- func (c *InternalHTTPClient) ImportValue(ctx context.Context, index, frame, field string, slice uint64, ...) error
- func (c *InternalHTTPClient) MaxInverseSliceByIndex(ctx context.Context) (map[string]uint64, error)
- func (c *InternalHTTPClient) MaxSliceByIndex(ctx context.Context) (map[string]uint64, error)
- func (c *InternalHTTPClient) NodeID(uri *URI) (string, error)
- func (c *InternalHTTPClient) RestoreFrame(ctx context.Context, host, index, frame string) error
- func (c *InternalHTTPClient) RestoreFrom(ctx context.Context, r io.Reader, index, frame, view string) error
- func (c *InternalHTTPClient) RetrieveSliceFromURI(ctx context.Context, index, frame, view string, slice uint64, uri URI) (io.ReadCloser, error)
- func (c *InternalHTTPClient) RowAttrDiff(ctx context.Context, index, frame string, blks []AttrBlock) (map[uint64]map[string]interface{}, error)
- func (c *InternalHTTPClient) Schema(ctx context.Context) ([]*IndexInfo, error)
- func (c *InternalHTTPClient) SendMessage(ctx context.Context, pb proto.Message) error
- type Iterator
- type LRUCache
- func (c *LRUCache) Add(id, n uint64)
- func (c *LRUCache) BulkAdd(id, n uint64)
- func (c *LRUCache) Get(id uint64) uint64
- func (c *LRUCache) IDs() []uint64
- func (c *LRUCache) Invalidate()
- func (c *LRUCache) Len() int
- func (c *LRUCache) Recalculate()
- func (c *LRUCache) SetStats(s StatsClient)
- func (c *LRUCache) Top() []BitmapPair
- type LimitIterator
- type MemberSet
- type MultiStatsClient
- func (a MultiStatsClient) Close() error
- func (a MultiStatsClient) Count(name string, value int64, rate float64)
- func (a MultiStatsClient) CountWithCustomTags(name string, value int64, rate float64, tags []string)
- func (a MultiStatsClient) Gauge(name string, value float64, rate float64)
- func (a MultiStatsClient) Histogram(name string, value float64, rate float64)
- func (a MultiStatsClient) Open()
- func (a MultiStatsClient) Set(name string, value string, rate float64)
- func (a MultiStatsClient) SetLogger(logger io.Writer)
- func (a MultiStatsClient) Tags() []string
- func (a MultiStatsClient) Timing(name string, value time.Duration, rate float64)
- func (a MultiStatsClient) WithTags(tags ...string) StatsClient
- type Node
- type NodeEvent
- type NodeEventType
- type NodeIDs
- type Nodes
- type NopCache
- func (c *NopCache) Add(id uint64, n uint64)
- func (c *NopCache) BulkAdd(id uint64, n uint64)
- func (c *NopCache) Get(id uint64) uint64
- func (c *NopCache) IDs() []uint64
- func (c *NopCache) Invalidate()
- func (c *NopCache) Len() int
- func (c *NopCache) Recalculate()
- func (c *NopCache) SetStats(s StatsClient)
- func (c *NopCache) Top() []BitmapPair
- type NopSecurityManager
- type Pair
- type PairHeap
- type PairSet
- type Pairs
- type QueryRequest
- type QueryResponse
- type RankCache
- func (c *RankCache) Add(id uint64, n uint64)
- func (c *RankCache) BulkAdd(id uint64, n uint64)
- func (c *RankCache) Get(id uint64) uint64
- func (c *RankCache) IDs() []uint64
- func (c *RankCache) Invalidate()
- func (c *RankCache) Len() int
- func (c *RankCache) ReadFrom(r io.Reader) (n int64, err error)
- func (c *RankCache) Recalculate()
- func (c *RankCache) SetStats(s StatsClient)
- func (c *RankCache) Top() []BitmapPair
- func (c *RankCache) WriteTo(w io.Writer) (n int64, err error)
- type ResizeJob
- type RoaringIterator
- type SecurityManager
- type Server
- func (s *Server) Addr() net.Addr
- func (s *Server) Close() error
- func (s *Server) ClusterStatus() (proto.Message, error)
- func (s *Server) HandleRemoteStatus(pb proto.Message) error
- func (s *Server) LoadNodeID() string
- func (s *Server) LocalStatus() (proto.Message, error)
- func (s *Server) Logger() *log.Logger
- func (s *Server) Open() error
- func (s *Server) OpenListener() error
- func (s *Server) ReceiveMessage(pb proto.Message) error
- func (s *Server) SendAsync(pb proto.Message) error
- func (s *Server) SendSync(pb proto.Message) error
- func (s *Server) SendTo(to *Node, pb proto.Message) error
- type SimpleCache
- type SliceIterator
- type StaticMemberSet
- type StatsClient
- type StatusHandler
- type SumCount
- type TLSConfig
- type TimeQuantum
- type TopOptions
- type Topology
- type URI
- func (u URI) Encode() *internal.URI
- func (u URI) Equals(other *URI) bool
- func (u *URI) Host() string
- func (u *URI) HostPort() string
- func (u *URI) MarshalJSON() ([]byte, error)
- func (u *URI) Normalize() string
- func (u *URI) Path(path string) string
- func (u *URI) Port() uint16
- func (u *URI) Scheme() string
- func (u *URI) Set(value string) error
- func (u *URI) SetHost(host string) error
- func (u *URI) SetPort(port uint16)
- func (u *URI) SetScheme(scheme string) error
- func (u URI) String() string
- func (u URI) Type() string
- func (u *URI) UnmarshalJSON(b []byte) error
- type URIs
- type View
- func (v *View) ClearBit(rowID, columnID uint64) (changed bool, err error)
- func (v *View) Close() error
- func (v *View) CreateFragmentIfNotExists(slice uint64) (*Fragment, error)
- func (v *View) DeleteFragment(slice uint64) error
- func (v *View) FieldRange(op pql.Token, bitDepth uint, predicate uint64) (*Bitmap, error)
- func (v *View) FieldRangeBetween(bitDepth uint, predicateMin, predicateMax uint64) (*Bitmap, error)
- func (v *View) FieldSum(filter *Bitmap, bitDepth uint) (sum, count uint64, err error)
- func (v *View) FieldValue(columnID uint64, bitDepth uint) (value uint64, exists bool, err error)
- func (v *View) Fragment(slice uint64) *Fragment
- func (v *View) FragmentPath(slice uint64) string
- func (v *View) Fragments() []*Fragment
- func (v *View) Frame() string
- func (v *View) Index() string
- func (v *View) MaxSlice() uint64
- func (v *View) Name() string
- func (v *View) Open() error
- func (v *View) Path() string
- func (v *View) RecalculateCaches()
- func (v *View) SetBit(rowID, columnID uint64) (changed bool, err error)
- func (v *View) SetFieldValue(columnID uint64, bitDepth uint, value uint64) (changed bool, err error)
- type ViewInfo
Constants ¶
const ( AttrTypeString = 1 AttrTypeInt = 2 AttrTypeBool = 3 AttrTypeFloat = 4 )
Attribute data type enum.
const ( MessageTypeCreateSlice = iota MessageTypeCreateIndex MessageTypeDeleteIndex MessageTypeCreateFrame MessageTypeDeleteFrame MessageTypeCreateView MessageTypeDeleteView MessageTypeCreateField MessageTypeDeleteField MessageTypeCreateInputDefinition MessageTypeDeleteInputDefinition MessageTypeClusterStatus MessageTypeResizeInstruction MessageTypeResizeInstructionComplete MessageTypeSetCoordinator MessageTypeNodeState MessageTypeRecalculateCaches MessageTypeNodeEvent )
Broadcast message types.
const ( // DefaultPartitionN is the default number of partitions in a cluster. DefaultPartitionN = 256 // DefaultReplicaN is the default number of replicas per partition. DefaultReplicaN = 1 // ClusterState represents the state returned in the /status endpoint. ClusterStateStarting = "STARTING" ClusterStateNormal = "NORMAL" ClusterStateResizing = "RESIZING" // NodeState represents the state of a node during startup. NodeStateLoading = "LOADING" NodeStateReady = "READY" // ResizeJob states. ResizeJobStateRunning = "RUNNING" // Final states. ResizeJobStateDone = "DONE" ResizeJobStateAborted = "ABORTED" ResizeJobActionAdd = "ADD" ResizeJobActionRemove = "REMOVE" )
const ( ClusterNone = "" ClusterStatic = "static" ClusterGossip = "gossip" )
Cluster types.
const ( // DefaultDataDir is the default data directory. DefaultDataDir = "~/.pilosa" // DefaultHost is the default hostname to use. DefaultHost = "localhost" // DefaultPort is the default port to use with the hostname. DefaultPort = "10101" // DefaultClusterDisabled sets the node intercommunication method. DefaultClusterDisabled = false // DefaultMetrics sets the internal metrics to no-op. DefaultMetrics = "nop" // DefaultMaxWritesPerRequest is the default number of writes per request. DefaultMaxWritesPerRequest = 5000 // Port indicates the port to which pilosa should bind for internal state sharing. DefaultGossipPort = "14000" // StreamTimeout is the timeout for establishing a stream connection with // a remote node for a full state sync, and for stream read and write // operations. Maps to memberlist TCPTimeout. DefaultGossipStreamTimeout = 10 * time.Second // SuspicionMult is the multiplier for determining the time an // inaccessible node is considered suspect before declaring it dead. // The actual timeout is calculated using the formula: // // SuspicionTimeout = SuspicionMult * log(N+1) * ProbeInterval // // This allows the timeout to scale properly with expected propagation // delay with a larger cluster size. The higher the multiplier, the longer // an inaccessible node is considered part of the cluster before declaring // it dead, giving that suspect node more time to refute if it is indeed // still alive. DefaultGossipSuspicionMult = 4 // PushPullInterval is the interval between complete state syncs. // Complete state syncs are done with a single node over TCP and are // quite expensive relative to standard gossiped messages. Setting this // to zero will disable state push/pull syncs completely. // // Setting this interval lower (more frequent) will increase convergence // speeds across larger clusters at the expense of increased bandwidth // usage. DefaultGossipPushPullInterval = 30 * time.Second // ProbeInterval and ProbeTimeout are used to configure probing behavior // for memberlist. // // ProbeInterval is the interval between random node probes. Setting // this lower (more frequent) will cause the memberlist cluster to detect // failed nodes more quickly at the expense of increased bandwidth usage. // // ProbeTimeout is the timeout to wait for an ack from a probed node // before assuming it is unhealthy. This should be set to 99-percentile // of RTT (round-trip time) on your network. DefaultGossipProbeInterval = 1 * time.Second DefaultGossipProbeTimeout = 500 * time.Millisecond // GossipInterval and GossipNodes are used to configure the gossip // behavior of memberlist. // // GossipInterval is the interval between sending messages that need // to be gossiped that haven't been able to piggyback on probing messages. // If this is set to zero, non-piggyback gossip is disabled. By lowering // this value (more frequent) gossip messages are propagated across // the cluster more quickly at the expense of increased bandwidth. // // GossipNodes is the number of random nodes to send gossip messages to // per GossipInterval. Increasing this number causes the gossip messages // to propagate across the cluster more quickly at the expense of // increased bandwidth. // // GossipToTheDeadTime is the interval after which a node has died that // we will still try to gossip to it. This gives it a chance to refute. DefaultGossipGossipInterval = 200 * time.Millisecond DefaultGossipGossipNodes = 3 DefaultGossipGossipToTheDeadTime = 30 * time.Second DefaultMetricPollInterval = 0 * time.Minute )
const ( DefaultFrame = "general" // MinThreshold is the lowest count to use in a Top-N operation when // looking for additional id/count pairs. MinThreshold = 1 )
DefaultFrame is the frame used if one is not specified.
const ( // SliceWidth is the number of column IDs in a slice. SliceWidth = 1048576 // SnapshotExt is the file extension used for an in-process snapshot. SnapshotExt = ".snapshotting" // CopyExt is the file extension used for the temp file used while copying. CopyExt = ".copying" // CacheExt is the file extension for persisted cache ids. CacheExt = ".cache" // HashBlockSize is the number of rows in a merkle hash block. HashBlockSize = 100 )
const ( DefaultRowLabel = "rowID" DefaultCacheType = CacheTypeRanked DefaultInverseEnabled = false DefaultRangeEnabled = false // Default ranked frame cache DefaultCacheSize = 50000 )
Default frame settings.
const ( CacheTypeLRU = "lru" CacheTypeRanked = "ranked" CacheTypeNone = "none" )
Cache types.
const ( QueryResultTypeNil uint32 = iota QueryResultTypeBitmap QueryResultTypePairs QueryResultTypeSumCount QueryResultTypeUint64 QueryResultTypeBool )
QueryResult types.
const ( // DefaultCacheFlushInterval is the default value for Fragment.CacheFlushInterval. DefaultCacheFlushInterval = 1 * time.Minute // FileLimit is the maximum open file limit (ulimit -n) to automatically set. FileLimit = 262144 // (512^2) )
const ( DefaultColumnLabel = "columnID" InputDefinitionDir = ".input-definitions" )
Default index settings.
const ( InputMapping = "mapping" InputValueToRow = "value-to-row" InputSingleRowBool = "single-row-boolean" InputSetTimestamp = "set-timestamp" )
Action types.
const ( DefaultAntiEntropyInterval = 10 * time.Minute DefaultDiagnosticServer = "https://diagnostics.pilosa.com/v0/diagnostics" )
Default server settings.
const ( ViewStandard = "standard" ViewInverse = "inverse" ViewFieldPrefix = "field_" )
View layout modes.
const AttrBlockSize = 100
AttrBlockSize is the size of attribute blocks for anti-entropy.
const (
// DefaultFragmentMaxOpN is the default value for Fragment.MaxOpN.
DefaultFragmentMaxOpN = 2000
)
const (
FieldTypeInt = "int"
)
List of field data types.
const (
// ThresholdFactor is used to calculate the threshold for new items entering the cache
ThresholdFactor = 1.1
)
const TimeFormat = "2006-01-02T15:04"
TimeFormat is the go-style time format used to parse string dates.
Variables ¶
var ( ErrHostRequired = errors.New("host required") ErrIndexRequired = errors.New("index required") ErrIndexExists = errors.New("index already exists") ErrIndexNotFound = errors.New("index not found") // ErrFrameRequired is returned when no frame is specified. ErrFrameRequired = errors.New("frame required") ErrFrameExists = errors.New("frame already exists") ErrFrameNotFound = errors.New("frame not found") ErrFrameInverseDisabled = errors.New("frame inverse disabled") ErrColumnRowLabelEqual = errors.New("column and row labels cannot be equal") ErrInputDefinitionExists = errors.New("input-definition already exists") ErrInputDefinitionHasPrimaryKey = errors.New("input-definition must contain one PrimaryKey") ErrInputDefinitionDupePrimaryKey = errors.New("input-definition can only contain one PrimaryKey") ErrInputDefinitionColumnLabel = errors.New("PrimaryKey field name does not match columnLabel") ErrInputDefinitionNameRequired = errors.New("input-definition name required") ErrInputDefinitionAttrsRequired = errors.New("frames and fields are required") ErrInputDefinitionValueMap = errors.New("valueMap required for map") ErrInputDefinitionActionRequired = errors.New("field definitions require an action") ErrInputDefinitionNotFound = errors.New("input-definition not found") ErrFieldNotFound = errors.New("field not found") ErrFieldExists = errors.New("field already exists") ErrFieldNameRequired = errors.New("field name required") ErrInvalidFieldType = errors.New("invalid field type") ErrInvalidFieldRange = errors.New("invalid field range") ErrInverseRangeNotAllowed = errors.New("inverse range not allowed") ErrRangeCacheNotAllowed = errors.New("range cache not allowed") ErrFrameFieldsNotAllowed = errors.New("frame fields not allowed") ErrInvalidFieldValueType = errors.New("invalid field value type") ErrFieldValueTooLow = errors.New("field value too low") ErrFieldValueTooHigh = errors.New("field value too high") ErrInvalidRangeOperation = errors.New("invalid range operation") ErrInvalidBetweenValue = errors.New("invalid value for between operation") ErrInvalidView = errors.New("invalid view") ErrInvalidCacheType = errors.New("invalid cache type") ErrName = errors.New("invalid index or frame's name, must match [a-z0-9_-]") ErrLabel = errors.New("invalid row or column label, must match [A-Za-z0-9_-]") // ErrFragmentNotFound is returned when a fragment does not exist. ErrFragmentNotFound = errors.New("fragment not found") ErrQueryRequired = errors.New("query required") ErrTooManyWrites = errors.New("too many write commands") ErrConfigClusterEnabledHosts = errors.New("providing hosts to a non-disabled cluster is not allowed") )
System errors.
var BuildTime = "not recorded"
var ErrInvalidTimeQuantum = errors.New("invalid time quantum")
ErrInvalidTimeQuantum is returned when parsing a time quantum.
var Expvar = expvar.NewMap("index")
Expvar global expvar map.
var NopBroadcastReceiver = &nopBroadcastReceiver{}
NopBroadcastReceiver is a no-op implementation of the BroadcastReceiver.
var NopEventReceiver = &nopEventReceiver{}
NopEventReceiver is a no-op implementation of the EventReceiver.
var Version = "v0.0.0"
Functions ¶
func BuildRouters ¶
func BuildRouters(handler *Handler)
BuildRouters creates Gorilla Mux http routers for both normal and restricted endpoints.
func ContainsSubstring ¶ added in v0.5.0
ContainsSubstring checks to see if substring a is contained in any string in the slice.
func CountOpenFiles ¶ added in v0.5.0
CountOpenFiles on operating systems that support lsof.
func EncodeIndexes ¶ added in v0.4.0
EncodeIndexes converts a into its internal representation.
func EncodeNode ¶ added in v0.9.0
EncodeNode converts a Node into its internal representation.
func EncodeNodes ¶ added in v0.9.0
EncodeNodes converts a slice of Nodes into its internal representation.
func GetTimeStamp ¶ added in v0.5.0
GetTimeStamp retrieves unix timestamp from Input data.
func IsInverseView ¶
IsInverseView returns true if the view is used for storing an inverted representation.
func IsValidCacheType ¶
IsValidCacheType returns true if v is a valid cache type.
func IsValidFieldType ¶ added in v0.5.0
func MarshalMessage ¶
MarshalMessage encodes the protobuf message into a byte slice.
func QueryValidationSpecRequired ¶
func QueryValidationSpecRequired(requiredArgs ...string) *queryValidationSpec
func StringInSlice ¶ added in v0.5.0
StringInSlice checks for substring a in the slice.
func StringSlicesAreEqual ¶ added in v0.9.0
StringSlicesAreEqual determines if two string slices are equal.
func UnionStringSlice ¶
UnionStringSlice returns a sorted set of tags which combine a & b.
func UnmarshalMessage ¶
UnmarshalMessage decodes the byte slice into a protobuf message.
func ValidateField ¶ added in v0.5.0
func ValidateLabel ¶
ValidateLabel ensures that the label is a valid format.
func ValidateName ¶
ValidateName ensures that the name is a valid format.
func ViewByTimeUnit ¶
ViewByTimeUnit returns the view name for time with a given quantum unit.
func ViewsByTime ¶
func ViewsByTime(name string, t time.Time, q TimeQuantum) []string
ViewsByTime returns a list of views for a given timestamp.
func ViewsByTimeRange ¶
func ViewsByTimeRange(name string, start, end time.Time, q TimeQuantum) []string
ViewsByTimeRange returns a list of views to traverse to query a time range.
Types ¶
type Action ¶ added in v0.5.0
type Action struct {
Frame string `json:"frame,omitempty"`
ValueDestination string `json:"valueDestination,omitempty"`
ValueMap map[string]uint64 `json:"valueMap,omitempty"`
RowID *uint64 `json:"rowID,omitempty"`
}
Action describes the mapping method for the field in the InputDefinition.
func (*Action) Encode ¶ added in v0.5.0
func (a *Action) Encode() *internal.InputDefinitionAction
Encode converts Action into its internal representation.
type AttrBlocks ¶
type AttrBlocks []AttrBlock
AttrBlocks represents a list of blocks.
func (AttrBlocks) Diff ¶
func (a AttrBlocks) Diff(other []AttrBlock) []uint64
Diff returns a list of block ids that are different or are new in other. Block lists must be in sorted order.
type AttrCache ¶ added in v0.5.0
type AttrCache struct {
// contains filtered or unexported fields
}
AttrCache represents a cache for attributes.
func NewAttrCache ¶ added in v0.5.0
func NewAttrCache() *AttrCache
NewAttrCache returns a new instance of AttrCache.
type AttrStore ¶
type AttrStore struct {
// contains filtered or unexported fields
}
AttrStore represents a storage layer for attributes.
func NewAttrStore ¶
NewAttrStore returns a new instance of AttrStore.
type Bit ¶
Bit represents the location of a single bit.
func HandleAction ¶ added in v0.5.0
HandleAction Process the input data with its action and return a bit to be imported later Note: if the Bit should not be set then nil is returned with no error From the JSON marshalling the possible types are: float64, boolean, string
type Bitmap ¶
type Bitmap struct {
// Attributes associated with the bitmap.
Attrs map[string]interface{}
// contains filtered or unexported fields
}
Bitmap represents a set of bits.
func (*Bitmap) DecrementCount ¶
DecrementCount decrements the bitmap cached counter.
func (*Bitmap) Difference ¶
Difference returns the diff of b and other.
func (*Bitmap) IncrementCount ¶
IncrementCount increments the bitmap cached counter, note this is an optimization that assumes that the caller is aware the size increased.
func (*Bitmap) IntersectionCount ¶
IntersectionCount returns the number of intersections between b and other.
func (*Bitmap) InvalidateCount ¶
func (b *Bitmap) InvalidateCount()
InvalidateCount updates the cached count in the bitmap.
func (*Bitmap) MarshalJSON ¶
MarshalJSON returns a JSON-encoded byte slice of b.
type BitmapCache ¶
BitmapCache provides an interface for caching full bitmaps.
type BitmapPair ¶
BitmapPair represents a id/count pair with an associated identifier.
type BitmapPairs ¶
type BitmapPairs []BitmapPair
BitmapPairs is a sortable list of BitmapPair objects.
func (BitmapPairs) Len ¶
func (p BitmapPairs) Len() int
func (BitmapPairs) Less ¶
func (p BitmapPairs) Less(i, j int) bool
func (BitmapPairs) Swap ¶
func (p BitmapPairs) Swap(i, j int)
type BitmapSegment ¶
type BitmapSegment struct {
// contains filtered or unexported fields
}
BitmapSegment holds a subset of a bitmap. This could point to a mmapped roaring bitmap or an in-memory bitmap. The width of the segment will always match the slice width.
func (*BitmapSegment) Bits ¶
func (s *BitmapSegment) Bits() []uint64
Bits returns a list of all bits set in the segment.
func (*BitmapSegment) ClearBit ¶
func (s *BitmapSegment) ClearBit(i uint64) (changed bool)
ClearBit clears the i-th bit of the bitmap.
func (*BitmapSegment) Count ¶
func (s *BitmapSegment) Count() uint64
Count returns the number of set bits in the bitmap.
func (*BitmapSegment) Difference ¶
func (s *BitmapSegment) Difference(other *BitmapSegment) *BitmapSegment
Difference returns the diff of s and other.
func (*BitmapSegment) Intersect ¶
func (s *BitmapSegment) Intersect(other *BitmapSegment) *BitmapSegment
Intersect returns the itersection of s and other.
func (*BitmapSegment) IntersectionCount ¶
func (s *BitmapSegment) IntersectionCount(other *BitmapSegment) uint64
IntersectionCount returns the number of intersections between s and other.
func (*BitmapSegment) InvalidateCount ¶
func (s *BitmapSegment) InvalidateCount()
InvalidateCount updates the cached count in the bitmap.
func (*BitmapSegment) Merge ¶
func (s *BitmapSegment) Merge(other *BitmapSegment)
Merge adds chunks from other to s. Chunks in s are overwritten if they exist in other.
func (*BitmapSegment) SetBit ¶
func (s *BitmapSegment) SetBit(i uint64) (changed bool)
SetBit sets the i-th bit of the bitmap.
func (*BitmapSegment) Union ¶
func (s *BitmapSegment) Union(other *BitmapSegment) *BitmapSegment
Union returns the bitwise union of s and other.
func (*BitmapSegment) Xor ¶ added in v0.7.0
func (s *BitmapSegment) Xor(other *BitmapSegment) *BitmapSegment
Xor returns the xor of s and other.
type Bits ¶
type Bits []Bit
Bits represents a slice of bits.
func (Bits) ColumnKeys ¶ added in v0.9.0
ColumnKeys returns a slice of all the column keys.
func (Bits) GroupBySlice ¶
GroupBySlice returns a map of bits by slice.
func (Bits) Timestamps ¶
Timestamps returns a slice of all the timestamps.
type BitsByPos ¶
type BitsByPos []Bit
BitsByPos represents a slice of bits sorted by internal position.
type BroadcastHandler ¶
BroadcastHandler is the interface for the pilosa object which knows how to handle broadcast messages. (Hint: this is implemented by pilosa.Server)
type BroadcastReceiver ¶
type BroadcastReceiver interface {
// Start starts listening for broadcast messages - it should return
// immediately, spawning a goroutine if necessary.
Start(BroadcastHandler) error
}
BroadcastReceiver is the interface for the object which will listen for and decode broadcast messages before passing them to pilosa to handle. The implementation of this could be an http server which listens for messages, gets the protobuf payload, and then passes it to BroadcastHandler.ReceiveMessage.
type Broadcaster ¶
type Broadcaster interface {
SendSync(pb proto.Message) error
SendAsync(pb proto.Message) error
SendTo(to *Node, pb proto.Message) error
}
Broadcaster is an interface for broadcasting messages.
var NopBroadcaster Broadcaster
NopBroadcaster represents a Broadcaster that doesn't do anything.
type BufIterator ¶
type BufIterator struct {
// contains filtered or unexported fields
}
BufIterator wraps an iterator to provide the ability to unread values.
func NewBufIterator ¶
func NewBufIterator(itr Iterator) *BufIterator
NewBufIterator returns a buffered iterator that wraps itr.
func (*BufIterator) Next ¶
func (itr *BufIterator) Next() (rowID, columnID uint64, eof bool)
Next returns the next pair in the row. If a value has been buffered then it is returned and the buffer is cleared.
func (*BufIterator) Peek ¶
func (itr *BufIterator) Peek() (rowID, columnID uint64, eof bool)
Peek reads the next value but leaves it on the buffer.
func (*BufIterator) Seek ¶
func (itr *BufIterator) Seek(rowID, columnID uint64)
Seek moves to the first pair equal to or greater than pseek/bseek.
func (*BufIterator) Unread ¶
func (itr *BufIterator) Unread()
Unread pushes previous pair on to the buffer. Panics if the buffer is already full.
type Cache ¶
type Cache interface {
Add(id uint64, n uint64)
BulkAdd(id uint64, n uint64)
Get(id uint64) uint64
Len() int
// Returns a list of all IDs.
IDs() []uint64
// Updates the cache, if necessary.
Invalidate()
// Rebuilds the cache
Recalculate()
// Returns an ordered list of the top ranked bitmaps.
Top() []BitmapPair
// SetStats defines the stats client used in the cache.
SetStats(s StatsClient)
}
Cache represents a cache of counts.
type ClientOptions ¶ added in v0.8.0
ClientOptions represents the configuration for a InternalHTTPClient
type Cluster ¶
type Cluster struct {
ID string
Node *Node
Nodes []*Node // TODO phase this out?
MemberSet MemberSet
// Hashing algorithm used to assign partitions to nodes.
Hasher Hasher
// The number of partitions in the cluster.
PartitionN int
// The number of replicas a partition has.
ReplicaN int
// Threshold for logging long-running queries
LongQueryTime time.Duration
// Maximum number of SetBit() or ClearBit() commands per request.
MaxWritesPerRequest int
// EventReceiver receives NodeEvents pertaining to node membership.
EventReceiver EventReceiver
// Data directory path.
Path string
Topology *Topology
// Required for cluster Resize.
Static bool // Static is primarily used for testing in a non-gossip environment.
Coordinator string
Holder *Holder
Broadcaster Broadcaster
// The writer for any logging.
LogOutput io.Writer
//
RemoteClient *http.Client
// contains filtered or unexported fields
}
Cluster represents a collection of nodes.
func NewCluster ¶
func NewCluster() *Cluster
NewCluster returns a new instance of Cluster with defaults.
func (*Cluster) AddNode ¶ added in v0.9.0
AddNode adds a node to the Cluster and updates and saves the new topology.
func (*Cluster) CompleteCurrentJob ¶ added in v0.9.0
CompleteCurrentJob sets the state of the current ResizeJob then removes the pointer to currentJob.
func (*Cluster) ContainsSlices ¶ added in v0.9.0
ContainsSlices is like OwnsSlices, but it includes replicas.
func (*Cluster) CoordinatorNode ¶ added in v0.9.0
Coordinator returns the coordinator node.
func (*Cluster) FollowResizeInstruction ¶ added in v0.9.0
func (c *Cluster) FollowResizeInstruction(instr *internal.ResizeInstruction) error
FollowResizeInstruction is run by any node that receives a ResizeInstruction.
func (*Cluster) FragmentNodes ¶
FragmentNodes returns a list of nodes that own a fragment.
func (*Cluster) IsCoordinator ¶ added in v0.9.0
IsCoordinator is true if this node is the coordinator.
func (*Cluster) ListenForJoins ¶ added in v0.9.0
func (c *Cluster) ListenForJoins()
ListenForJoins handles cluster-resize events.
func (*Cluster) MarkResizeInstructionComplete ¶ added in v0.9.0
func (c *Cluster) MarkResizeInstructionComplete(complete *internal.ResizeInstructionComplete) error
func (*Cluster) MergeClusterStatus ¶ added in v0.9.0
func (c *Cluster) MergeClusterStatus(cs *internal.ClusterStatus) error
func (*Cluster) NodeLeave ¶ added in v0.9.0
NodeLeave initiates the removal of a node from the cluster.
func (*Cluster) OwnsFragment ¶
OwnsFragment returns true if a host owns a fragment.
func (*Cluster) OwnsSlices ¶
OwnsSlices finds the set of slices owned by the node per Index
func (*Cluster) PartitionNodes ¶
PartitionNodes returns a list of nodes that own a partition.
func (*Cluster) ReceiveEvent ¶ added in v0.9.0
ReceiveEvent represents an implementation of EventHandler.
func (*Cluster) ReceiveNodeState ¶ added in v0.9.0
ReceiveNodeState sets node state in Topology in order for the Coordinator to keep track of, during startup, which nodes have finished opening their Holder.
func (*Cluster) RemoveNode ¶ added in v0.9.0
RemoveNode removes a node from the Cluster and updates and saves the new topology.
func (*Cluster) SetCoordinator ¶ added in v0.9.0
SetCoordinator updates the Coordinator to n. Returns true if the Coordinator changed.
func (*Cluster) SetNodeState ¶ added in v0.9.0
func (*Cluster) Status ¶
func (c *Cluster) Status() *internal.ClusterStatus
Status returns the internal ClusterStatus representation.
type ColumnAttrSet ¶
type ColumnAttrSet struct {
ID uint64 `json:"id"`
Attrs map[string]interface{} `json:"attrs,omitempty"`
}
ColumnAttrSet represents a set of attributes for a vertical column in an index. Can have a set of attributes attached to it.
type Config ¶
type Config struct {
DataDir string `toml:"data-dir"`
Bind string `toml:"bind"`
// Limits the number of mutating commands that can be in a single request to
// the server. This includes SetBit, ClearBit, SetRowAttrs & SetColumnAttrs.
MaxWritesPerRequest int `toml:"max-writes-per-request"`
LogPath string `toml:"log-path"`
// TLS
TLS TLSConfig
Cluster struct {
Disabled bool `toml:"disabled"`
Coordinator bool `toml:"coordinator"`
ReplicaN int `toml:"replicas"`
Hosts []string `toml:"hosts"`
LongQueryTime Duration `toml:"long-query-time"`
} `toml:"cluster"`
Gossip struct {
Port string `toml:"port"`
Seeds []string `toml:"seeds"`
Key string `toml:"key"`
StreamTimeout Duration `toml:"stream-timeout"`
SuspicionMult int `toml:"suspicion-mult"`
PushPullInterval Duration `toml:"push-pull-interval"`
ProbeTimeout Duration `toml:"probe-timeout"`
ProbeInterval Duration `toml:"probe-interval"`
GossipNodes int `toml:"gossip-nodes"`
GossipInterval Duration `toml:"gossip-interval"`
GossipToTheDeadTime Duration `toml:"gossip-to-the-dead-time"`
} `toml:"gossip"`
AntiEntropy struct {
Interval Duration `toml:"interval"`
} `toml:"anti-entropy"`
Metric struct {
Service string `toml:"service"`
Host string `toml:"host"`
PollInterval Duration `toml:"poll-interval"`
Diagnostics bool `toml:"diagnostics"`
} `toml:"metric"`
}
Config represents the configuration for the command.
type Duration ¶
Duration is a TOML wrapper type for time.Duration.
func (Duration) MarshalTOML ¶ added in v0.4.0
MarshalTOML write duration into valid TOML.
func (Duration) MarshalText ¶
MarshalText writes duration value in text format.
func (*Duration) UnmarshalText ¶
UnmarshalText parses a TOML value into a duration value.
type EventHandler ¶ added in v0.9.0
EventHandler is the interface for the pilosa object which knows how to handle broadcast messages. (Hint: this is implemented by pilosa.Server)
type EventReceiver ¶ added in v0.9.0
type EventReceiver interface {
// Start starts listening for broadcast messages - it should return
// immediately, spawning a goroutine if necessary.
Start(EventHandler) error
}
EventReceiver is the interface for the object which will listen for and decode broadcast messages before passing them to pilosa to handle. The implementation of this could be an http server which listens for messages, gets the protobuf payload, and then passes it to EventHandler.ReceiveMessage.
type ExecOptions ¶
ExecOptions represents an execution context for a single Execute() call.
type Executor ¶
type Executor struct {
Holder *Holder
// Local hostname & cluster configuration.
Node *Node
Cluster *Cluster
// Maximum number of SetBit() or ClearBit() commands per request.
MaxWritesPerRequest int
// contains filtered or unexported fields
}
Executor recursively executes calls in a PQL query across all slices.
func NewExecutor ¶
NewExecutor returns a new instance of Executor.
type ExpvarStatsClient ¶
type ExpvarStatsClient struct {
// contains filtered or unexported fields
}
ExpvarStatsClient writes stats out to expvars.
func NewExpvarStatsClient ¶
func NewExpvarStatsClient() *ExpvarStatsClient
NewExpvarStatsClient returns a new instance of ExpvarStatsClient. This client points at the root of the expvar index map.
func (*ExpvarStatsClient) Close ¶ added in v0.8.0
func (c *ExpvarStatsClient) Close() error
Close no-op.
func (*ExpvarStatsClient) Count ¶
func (c *ExpvarStatsClient) Count(name string, value int64, rate float64)
Count tracks the number of times something occurs.
func (*ExpvarStatsClient) CountWithCustomTags ¶ added in v0.4.0
func (c *ExpvarStatsClient) CountWithCustomTags(name string, value int64, rate float64, tags []string)
CountWithCustomTags Tracks the number of times something occurs per second with custom tags
func (*ExpvarStatsClient) Gauge ¶
func (c *ExpvarStatsClient) Gauge(name string, value float64, rate float64)
Gauge sets the value of a metric.
func (*ExpvarStatsClient) Histogram ¶
func (c *ExpvarStatsClient) Histogram(name string, value float64, rate float64)
Histogram tracks statistical distribution of a metric. This works the same as gauge for this client.
func (*ExpvarStatsClient) Set ¶
func (c *ExpvarStatsClient) Set(name string, value string, rate float64)
Set tracks number of unique elements.
func (*ExpvarStatsClient) SetLogger ¶ added in v0.4.0
func (c *ExpvarStatsClient) SetLogger(logger io.Writer)
SetLogger has no logger.
func (*ExpvarStatsClient) Tags ¶
func (c *ExpvarStatsClient) Tags() []string
Tags returns a sorted list of tags on the client.
func (*ExpvarStatsClient) Timing ¶
func (c *ExpvarStatsClient) Timing(name string, value time.Duration, rate float64)
Timing tracks timing information for a metric.
func (*ExpvarStatsClient) WithTags ¶
func (c *ExpvarStatsClient) WithTags(tags ...string) StatsClient
WithTags returns a new client with additional tags appended.
type Field ¶ added in v0.5.0
type Field struct {
Name string `json:"name,omitempty"`
Type string `json:"type,omitempty"`
Min int64 `json:"min,omitempty"`
Max int64 `json:"max,omitempty"`
}
Field represents a range field on a frame.
func (*Field) BaseValue ¶ added in v0.7.0
BaseValue adjusts the value to align with the range for Field for a certain operation type. Note: There is an edge case for GT and LT where this returns a baseValue that does not fully encompass the range. ex: Field.Min = 0, Field.Max = 1023 BaseValue(LT, 2000) returns 1023, which will perform "LT 1023" and effectively exclude any columns with value = 1023. Note that in this case (because the range uses the full BitDepth 0 to 1023), we can't simply return 1024. In order to make this work, we effectively need to change the operator to LTE. Executor.executeFieldRangeSlice() takes this into account and returns `frag.FieldNotNull(field.BitDepth())` in such instances.
type FieldValue ¶ added in v0.7.0
FieldValues represents the value for a column within a range-encoded frame.
type FieldValues ¶ added in v0.7.0
type FieldValues []FieldValue
FieldValues represents a slice of field values.
func (FieldValues) ColumnIDs ¶ added in v0.7.0
func (p FieldValues) ColumnIDs() []uint64
ColumnIDs returns a slice of all the column IDs.
func (FieldValues) GroupBySlice ¶ added in v0.7.0
func (p FieldValues) GroupBySlice() map[uint64][]FieldValue
GroupBySlice returns a map of field values by slice.
func (FieldValues) Len ¶ added in v0.7.0
func (p FieldValues) Len() int
func (FieldValues) Less ¶ added in v0.7.0
func (p FieldValues) Less(i, j int) bool
func (FieldValues) Swap ¶ added in v0.7.0
func (p FieldValues) Swap(i, j int)
func (FieldValues) Values ¶ added in v0.7.0
func (p FieldValues) Values() []int64
Values returns a slice of all the values.
type Fragment ¶
type Fragment struct {
// Cache for row counts.
CacheType string // passed in by frame
CacheSize uint32
// Number of operations performed before performing a snapshot.
// This limits the size of fragments on the heap and flushes them to disk
// so that they can be mmapped and heap utilization can be kept low.
MaxOpN int
// Writer used for out-of-band log entries.
LogOutput io.Writer
// Row attribute storage.
// This is set by the parent frame unless overridden for testing.
RowAttrStore *AttrStore
// contains filtered or unexported fields
}
Fragment represents the intersection of a frame and slice in an index.
func NewFragment ¶
NewFragment returns a new instance of Fragment.
func (*Fragment) Blocks ¶
func (f *Fragment) Blocks() []FragmentBlock
Blocks returns info for all blocks containing data.
func (*Fragment) Checksum ¶
Checksum returns a checksum for the entire fragment. If two fragments have the same checksum then they have the same data.
func (*Fragment) ClearBit ¶
ClearBit clears a bit for a given column & row within the fragment. This updates both the on-disk storage and the in-cache bitmap.
func (*Fragment) FieldNotNull ¶ added in v0.7.1
FieldNotNull returns the not-null row (stored at bitDepth).
func (*Fragment) FieldRange ¶ added in v0.6.0
FieldRange returns bitmaps with a field value encoding matching the predicate.
func (*Fragment) FieldRangeBetween ¶ added in v0.7.0
func (f *Fragment) FieldRangeBetween(bitDepth uint, predicateMin, predicateMax uint64) (*Bitmap, error)
FieldRangeBetween returns bitmaps with a field value encoding matching any value between predicateMin and predicateMax.
func (*Fragment) FieldSum ¶ added in v0.7.0
FieldSum returns the sum of a given field as well as the number of columns involved. A bitmap can be passed in to optionally filter the computed columns.
func (*Fragment) FieldValue ¶ added in v0.5.0
func (f *Fragment) FieldValue(columnID uint64, bitDepth uint) (value uint64, exists bool, err error)
FieldValue uses a column of bits to read a multi-bit value.
func (*Fragment) FlushCache ¶
FlushCache writes the cache data to disk.
func (*Fragment) ForEachBit ¶
ForEachBit executes fn for every bit set in the fragment. Errors returned from fn are passed through.
func (*Fragment) Import ¶
Import bulk imports a set of bits and then snapshots the storage. This does not affect the fragment's cache.
func (*Fragment) ImportValue ¶ added in v0.7.0
ImportValue bulk imports a set of range-encoded values.
func (*Fragment) InvalidateChecksums ¶
func (f *Fragment) InvalidateChecksums()
InvalidateChecksums clears all cached block checksums.
func (*Fragment) MergeBlock ¶
MergeBlock compares the block's bits and computes a diff with another set of block bits. The state of a bit is determined by consensus from all blocks being considered.
For example, if 3 blocks are compared and two have a set bit and one has a cleared bit then the bit is considered cleared. The function returns the diff per incoming block so that all can be in sync.
func (*Fragment) RecalculateCache ¶
func (f *Fragment) RecalculateCache()
RecalculateCache rebuilds the cache regardless of invalidate time delay.
func (*Fragment) SetBit ¶
SetBit sets a bit for a given column & row within the fragment. This updates both the on-disk storage and the in-cache bitmap.
func (*Fragment) SetFieldValue ¶ added in v0.5.0
func (f *Fragment) SetFieldValue(columnID uint64, bitDepth uint, value uint64) (changed bool, err error)
SetFieldValue uses a column of bits to set a multi-bit value.
func (*Fragment) Top ¶
func (f *Fragment) Top(opt TopOptions) ([]Pair, error)
Top returns the top rows from the fragment. If opt.Src is specified then only rows which intersect src are returned. If opt.FilterValues exist then the row attribute specified by field is matched.
type FragmentBlock ¶
FragmentBlock represents info about a subsection of the rows in a block. This is used for comparing data in remote blocks for active anti-entropy.
type FragmentSyncer ¶
type FragmentSyncer struct {
Fragment *Fragment
Node *Node
Cluster *Cluster
RemoteClient *http.Client
Closing <-chan struct{}
}
FragmentSyncer syncs a local fragment to one on a remote host.
func (*FragmentSyncer) SyncFragment ¶
func (s *FragmentSyncer) SyncFragment() error
SyncFragment compares checksums for the local and remote fragments and then merges any blocks which have differences.
type Frame ¶
type Frame struct {
Stats StatsClient
LogOutput io.Writer
// contains filtered or unexported fields
}
Frame represents a container for views.
func (*Frame) CreateField ¶ added in v0.7.0
CreateField creates a new field on the frame.
func (*Frame) CreateViewIfNotExists ¶
CreateViewIfNotExists returns the named view, creating it if necessary. Additionally, a CreateViewMessage is sent to the cluster.
func (*Frame) DeleteField ¶ added in v0.7.0
DeleteField deletes an existing field on the schema.
func (*Frame) DeleteView ¶ added in v0.7.0
DeleteView removes the view from the frame.
func (*Frame) FieldRange ¶ added in v0.6.0
func (*Frame) FieldRangeBetween ¶ added in v0.7.0
func (*Frame) FieldSum ¶ added in v0.7.0
FieldSum returns the sum and count for a field. An optional filtering bitmap can be provided.
func (*Frame) FieldValue ¶ added in v0.5.0
FieldValue reads a field value for a column.
func (*Frame) ImportValue ¶ added in v0.7.0
ImportValue bulk imports range-encoded value data.
func (*Frame) InverseEnabled ¶
InverseEnabled returns true if an inverse view is available.
func (*Frame) MaxInverseSlice ¶
MaxInverseSlice returns the max inverse slice in the frame.
func (*Frame) Options ¶
func (f *Frame) Options() FrameOptions
Options returns all options for this frame.
func (*Frame) RangeEnabled ¶ added in v0.5.0
RangeEnabled returns true if range fields can be stored on this frame.
func (*Frame) RecalculateCaches ¶ added in v0.8.0
func (f *Frame) RecalculateCaches()
RecalculateCaches recalculates caches on every view in the frame.
func (*Frame) RowAttrStore ¶
RowAttrStore returns the attribute storage.
func (*Frame) SetCacheSize ¶
SetCacheSize sets the cache size for ranked fames. Persists to meta file on update. defaults to DefaultCacheSize 50000
func (*Frame) SetFieldValue ¶ added in v0.5.0
SetFieldValue sets a field value for a column.
func (*Frame) SetRowLabel ¶
SetRowLabel sets the row labels. Persists to meta file on update.
func (*Frame) SetTimeQuantum ¶
func (f *Frame) SetTimeQuantum(q TimeQuantum) error
SetTimeQuantum sets the time quantum for the frame.
func (*Frame) TimeQuantum ¶
func (f *Frame) TimeQuantum() TimeQuantum
TimeQuantum returns the time quantum for the frame.
type FrameInfo ¶
type FrameInfo struct {
Name string `json:"name"`
Options FrameOptions `json:"options"`
Views []*ViewInfo `json:"views,omitempty"`
}
FrameInfo represents schema information for a frame.
type FrameOptions ¶
type FrameOptions struct {
RowLabel string `json:"rowLabel,omitempty"`
InverseEnabled bool `json:"inverseEnabled,omitempty"`
RangeEnabled bool `json:"rangeEnabled,omitempty"`
CacheType string `json:"cacheType,omitempty"`
CacheSize uint32 `json:"cacheSize,omitempty"`
TimeQuantum TimeQuantum `json:"timeQuantum,omitempty"`
Fields []*Field `json:"fields,omitempty"`
}
FrameOptions represents options to set when initializing a frame.
func (*FrameOptions) Encode ¶
func (o *FrameOptions) Encode() *internal.FrameMeta
Encode converts o into its internal representation.
type GCNotifier ¶ added in v0.9.0
type GCNotifier interface {
Close()
AfterGC() <-chan struct{}
}
GCNotifier represents an interface for garbage collection notificationss.
var NopGCNotifier GCNotifier
NopGCNotifier represents a GCNotifier that doesn't do anything.
type Gossiper ¶ added in v0.9.0
Gossiper is an interface for sharing messages via gossip.
var NopGossiper Gossiper
NopBroadcaster represents a Broadcaster that doesn't do anything.
type Handler ¶
type Handler struct {
Holder *Holder
Broadcaster Broadcaster
BroadcastHandler BroadcastHandler
StatusHandler StatusHandler
// Local hostname & cluster configuration.
Node *Node
Cluster *Cluster
RemoteClient *http.Client
Router *mux.Router
NormalRouter *mux.Router
RestrictedRouter *mux.Router
// The execution engine for running queries.
Executor interface {
Execute(context context.Context, index string, query *pql.Query, slices []uint64, opt *ExecOptions) ([]interface{}, error)
}
// The writer for any logging.
LogOutput io.Writer
// contains filtered or unexported fields
}
Handler represents an HTTP handler.
func NewHandler ¶
func NewHandler() *Handler
NewHandler returns a new instance of Handler with a default logger.
func (*Handler) InputJSONDataParser ¶ added in v0.5.0
func (h *Handler) InputJSONDataParser(req map[string]interface{}, index *Index, name string) (map[string][]*Bit, error)
InputJSONDataParser validates input json file and executes SetBit.
func (*Handler) ServeHTTP ¶
func (h *Handler) ServeHTTP(w http.ResponseWriter, r *http.Request)
ServeHTTP handles an HTTP request.
func (*Handler) SetNormal ¶
func (h *Handler) SetNormal()
SetNormal is a method of the SecurityManager interface which provides normal URI routing.
func (*Handler) SetRestricted ¶
func (h *Handler) SetRestricted()
SetRestricted is a method of the SecurityManager interface which provides restricted URI routing.
type Hasher ¶
type Hasher interface {
// Hashes the key into a number between [0,N).
Hash(key uint64, n int) int
}
Hasher represents an interface to hash integers into buckets.
type Holder ¶
type Holder struct {
Broadcaster Broadcaster
// Stats
Stats StatsClient
// Data directory path.
Path string
// The interval at which the cached row ids are persisted to disk.
CacheFlushInterval time.Duration
LogOutput io.Writer
// contains filtered or unexported fields
}
Holder represents a container for indexes.
func (*Holder) ApplySchema ¶ added in v0.9.0
ApplySchema applies an internal Schema to Holder.
func (*Holder) CreateIndex ¶
func (h *Holder) CreateIndex(name string, opt IndexOptions) (*Index, error)
CreateIndex creates an index. An error is returned if the index already exists.
func (*Holder) CreateIndexIfNotExists ¶
func (h *Holder) CreateIndexIfNotExists(name string, opt IndexOptions) (*Index, error)
CreateIndexIfNotExists returns an index by name. The index is created if it does not already exist.
func (*Holder) DeleteIndex ¶
DeleteIndex removes an index from the holder.
func (*Holder) EncodeMaxSlices ¶ added in v0.9.0
EncodeMaxSlices creates and internal representation of max slices.
func (*Holder) EncodeSchema ¶ added in v0.9.0
EncodeSchema creates an internal representation of schema.
func (*Holder) HasData ¶ added in v0.9.0
HasData returns true if Holder contains at least one index. This is used to determine if the rebalancing of data is necessary when a node joins the cluster.
func (*Holder) MaxInverseSlices ¶
MaxInverseSlices returns MaxInverseSlice map for all indexes.
func (*Holder) Peek ¶
Peek reads the root data directory for the holder without actually loading any data into memory. HasData is returned, and h.hasData is set.
func (*Holder) RecalculateCaches ¶ added in v0.8.0
func (h *Holder) RecalculateCaches()
RecalculateCaches recalculates caches on every index in the holder. This is probably not practical to call in real-world workloads, but makes writing integration tests much eaiser, since one doesn't have to wait 10 seconds after setting bits to get expected response.
type HolderCleaner ¶ added in v0.9.0
type HolderCleaner struct {
Node *Node
Holder *Holder
Cluster *Cluster
// Signals that the sync should stop.
Closing <-chan struct{}
}
HolderCleaner removes fragments and data files that are no longer used.
func (*HolderCleaner) CleanHolder ¶ added in v0.9.0
func (c *HolderCleaner) CleanHolder() error
CleanHolder compares the holder with the cluster state and removes any unnecessary fragments and files.
func (*HolderCleaner) IsClosing ¶ added in v0.9.0
func (c *HolderCleaner) IsClosing() bool
IsClosing returns true if the cleaner has been marked to close.
type HolderSyncer ¶
type HolderSyncer struct {
Holder *Holder
Node *Node
Cluster *Cluster
RemoteClient *http.Client
// Stats
Stats StatsClient
// Signals that the sync should stop.
Closing <-chan struct{}
}
HolderSyncer is an active anti-entropy tool that compares the local holder with a remote holder based on block checksums and resolves differences.
func (*HolderSyncer) IsClosing ¶
func (s *HolderSyncer) IsClosing() bool
IsClosing returns true if the syncer has been marked to close.
func (*HolderSyncer) SyncHolder ¶
func (s *HolderSyncer) SyncHolder() error
SyncHolder compares the holder on host with the local holder and resolves differences.
type Index ¶
type Index struct {
Stats StatsClient
LogOutput io.Writer
// contains filtered or unexported fields
}
Index represents a container for frames.
func (*Index) ColumnAttrStore ¶
ColumnAttrStore returns the storage for column attributes.
func (*Index) ColumnLabel ¶
ColumnLabel returns the column label.
func (*Index) CreateFrame ¶
func (i *Index) CreateFrame(name string, opt FrameOptions) (*Frame, error)
CreateFrame creates a frame.
func (*Index) CreateFrameIfNotExists ¶
func (i *Index) CreateFrameIfNotExists(name string, opt FrameOptions) (*Frame, error)
CreateFrameIfNotExists creates a frame with the given options if it doesn't exist.
func (*Index) CreateInputDefinition ¶ added in v0.5.0
func (i *Index) CreateInputDefinition(pb *internal.InputDefinition) (*InputDefinition, error)
CreateInputDefinition creates a new input definition.
func (*Index) DeleteFrame ¶
DeleteFrame removes a frame from the index.
func (*Index) DeleteInputDefinition ¶ added in v0.5.0
DeleteInputDefinition removes an input definition from the index.
func (*Index) InputBits ¶ added in v0.5.0
InputBits Process the []Bit though the Frame import process
func (*Index) InputDefinition ¶ added in v0.5.0
func (i *Index) InputDefinition(name string) (*InputDefinition, error)
InputDefinition returns an input definition in the index by name.
func (*Index) InputDefinitionPath ¶ added in v0.5.0
InputDefinitionPath returns the path to the input definition directory for the index.
func (*Index) InputDefinitions ¶ added in v0.9.0
func (i *Index) InputDefinitions() []*InputDefinition
InputDefinitions returns a list of all inputDefinitions in the index.
func (*Index) MaxInverseSlice ¶
MaxInverseSlice returns the max inverse slice in the index according to this node.
func (*Index) Options ¶ added in v0.7.0
func (i *Index) Options() IndexOptions
Options returns all options for this index.
func (*Index) RecalculateCaches ¶ added in v0.8.0
func (i *Index) RecalculateCaches()
RecalculateCaches recalculates caches on every frame in the index.
func (*Index) SetColumnLabel ¶
SetColumnLabel sets the column label. Persists to meta file on update.
func (*Index) SetRemoteMaxInverseSlice ¶
SetRemoteMaxInverseSlice sets the remote max inverse slice value received from another node.
func (*Index) SetRemoteMaxSlice ¶
SetRemoteMaxSlice sets the remote max slice value received from another node.
func (*Index) SetTimeQuantum ¶
func (i *Index) SetTimeQuantum(q TimeQuantum) error
SetTimeQuantum sets the default time quantum for the index.
func (*Index) TimeQuantum ¶
func (i *Index) TimeQuantum() TimeQuantum
TimeQuantum returns the default time quantum for the index.
type IndexInfo ¶
IndexInfo represents schema information for an index.
func MergeSchemas ¶
MergeSchemas combines indexes and frames from a and b into one schema.
type IndexOptions ¶
type IndexOptions struct {
ColumnLabel string `json:"columnLabel,omitempty"`
TimeQuantum TimeQuantum `json:"timeQuantum,omitempty"`
}
IndexOptions represents options to set when initializing an index.
func (*IndexOptions) Encode ¶
func (i *IndexOptions) Encode() *internal.IndexMeta
Encode converts i into its internal representation.
type InputDefinition ¶ added in v0.5.0
type InputDefinition struct {
// contains filtered or unexported fields
}
InputDefinition represents a container for the data input definition.
func NewInputDefinition ¶ added in v0.5.0
func NewInputDefinition(path, index, name string) (*InputDefinition, error)
NewInputDefinition returns a new instance of InputDefinition.
func (*InputDefinition) AddFrame ¶ added in v0.5.0
func (i *InputDefinition) AddFrame(frame InputFrame) error
AddFrame manually add frame to input definition.
func (*InputDefinition) Fields ¶ added in v0.5.0
func (i *InputDefinition) Fields() []InputDefinitionField
Fields returns fields of the input definition was initialized with.
func (*InputDefinition) Frames ¶ added in v0.5.0
func (i *InputDefinition) Frames() []InputFrame
Frames returns frames of the input definition was initialized with.
func (*InputDefinition) LoadDefinition ¶ added in v0.5.0
func (i *InputDefinition) LoadDefinition(pb *internal.InputDefinition) error
LoadDefinition loads the protobuf format of a definition.
func (*InputDefinition) Open ¶ added in v0.5.0
func (i *InputDefinition) Open() error
Open opens and initializes the InputDefinition from file.
type InputDefinitionField ¶ added in v0.5.0
type InputDefinitionField struct {
Name string `json:"name,omitempty"`
PrimaryKey bool `json:"primaryKey,omitempty"`
Actions []Action `json:"actions,omitempty"`
}
InputDefinitionField descripes a single field mapping in the InputDefinition.
func (*InputDefinitionField) Encode ¶ added in v0.5.0
func (o *InputDefinitionField) Encode() *internal.InputDefinitionField
Encode converts InputDefinitionField into its internal representation.
type InputDefinitionInfo ¶ added in v0.5.0
type InputDefinitionInfo struct {
Frames []InputFrame `json:"frames"`
Fields []InputDefinitionField `json:"fields"`
}
InputDefinitionInfo represents the json message format needed to create an InputDefinition.
func (*InputDefinitionInfo) Encode ¶ added in v0.5.0
func (i *InputDefinitionInfo) Encode() *internal.InputDefinition
Encode converts InputDefinitionInfo into its internal representation.
func (*InputDefinitionInfo) Validate ¶ added in v0.5.0
func (i *InputDefinitionInfo) Validate() error
Validate the InputDefinitionInfo data.
type InputFrame ¶ added in v0.5.0
type InputFrame struct {
Name string `json:"name,omitempty"`
Options FrameOptions `json:"options,omitempty"`
}
InputFrame defines the frame used in the input definition.
func (*InputFrame) Encode ¶ added in v0.5.0
func (i *InputFrame) Encode() *internal.Frame
Encode converts InputFrame into its internal representation.
func (*InputFrame) Validate ¶ added in v0.5.0
func (i *InputFrame) Validate() error
Validate the InputFrame data.
type InternalClient ¶ added in v0.8.0
type InternalClient interface {
MaxSliceByIndex(ctx context.Context) (map[string]uint64, error)
MaxInverseSliceByIndex(ctx context.Context) (map[string]uint64, error)
Schema(ctx context.Context) ([]*IndexInfo, error)
CreateIndex(ctx context.Context, index string, opt IndexOptions) error
FragmentNodes(ctx context.Context, index string, slice uint64) ([]*Node, error)
ExecuteQuery(ctx context.Context, index string, queryRequest *internal.QueryRequest) (*internal.QueryResponse, error)
Import(ctx context.Context, index, frame string, slice uint64, bits []Bit) error
ImportK(ctx context.Context, index, frame string, bits []Bit) error
EnsureIndex(ctx context.Context, name string, options IndexOptions) error
EnsureFrame(ctx context.Context, indexName string, frameName string, options FrameOptions) error
ImportValue(ctx context.Context, index, frame, field string, slice uint64, vals []FieldValue) error
ExportCSV(ctx context.Context, index, frame, view string, slice uint64, w io.Writer) error
BackupTo(ctx context.Context, w io.Writer, index, frame, view string) error
BackupSlice(ctx context.Context, index, frame, view string, slice uint64) (io.ReadCloser, error)
RestoreFrom(ctx context.Context, r io.Reader, index, frame, view string) error
CreateFrame(ctx context.Context, index, frame string, opt FrameOptions) error
RestoreFrame(ctx context.Context, host, index, frame string) error
FrameViews(ctx context.Context, index, frame string) ([]string, error)
FragmentBlocks(ctx context.Context, index, frame, view string, slice uint64) ([]FragmentBlock, error)
BlockData(ctx context.Context, index, frame, view string, slice uint64, block int) ([]uint64, []uint64, error)
ColumnAttrDiff(ctx context.Context, index string, blks []AttrBlock) (map[uint64]map[string]interface{}, error)
RowAttrDiff(ctx context.Context, index, frame string, blks []AttrBlock) (map[uint64]map[string]interface{}, error)
SendMessage(ctx context.Context, pb proto.Message) error
NodeID(uri *URI) (string, error)
}
InternalClient should be implemented by any struct that enables any transport between nodes TODO: Refactor Note from Travis: Typically an interface containing more than two or three methods is an indication that something hasn't been architected correctly. While I understand that putting the entire Client behind an interface might require this many methods, I don't want to let it go unquestioned.
type InternalHTTPClient ¶ added in v0.8.0
type InternalHTTPClient struct {
// The client to use for HTTP communication.
HTTPClient *http.Client
// contains filtered or unexported fields
}
InternalHTTPClient represents a client to the Pilosa cluster.
func NewInternalHTTPClient ¶ added in v0.8.0
func NewInternalHTTPClient(host string, remoteClient *http.Client) (*InternalHTTPClient, error)
NewInternalHTTPClient returns a new instance of InternalHTTPClient to connect to host.
func NewInternalHTTPClientFromURI ¶ added in v0.8.0
func NewInternalHTTPClientFromURI(defaultURI *URI, remoteClient *http.Client) *InternalHTTPClient
func (*InternalHTTPClient) BackupSlice ¶ added in v0.8.0
func (c *InternalHTTPClient) BackupSlice(ctx context.Context, index, frame, view string, slice uint64) (io.ReadCloser, error)
BackupSlice retrieves a streaming backup from a single slice. This function tries slice owners until one succeeds.
func (*InternalHTTPClient) BackupTo ¶ added in v0.8.0
func (c *InternalHTTPClient) BackupTo(ctx context.Context, w io.Writer, index, frame, view string) error
BackupTo backs up an entire frame from a cluster to w.
func (*InternalHTTPClient) BlockData ¶ added in v0.8.0
func (c *InternalHTTPClient) BlockData(ctx context.Context, index, frame, view string, slice uint64, block int) ([]uint64, []uint64, error)
BlockData returns row/column id pairs for a block.
func (*InternalHTTPClient) ColumnAttrDiff ¶ added in v0.8.0
func (c *InternalHTTPClient) ColumnAttrDiff(ctx context.Context, index string, blks []AttrBlock) (map[uint64]map[string]interface{}, error)
ColumnAttrDiff returns data from differing blocks on a remote host.
func (*InternalHTTPClient) CreateFrame ¶ added in v0.8.0
func (c *InternalHTTPClient) CreateFrame(ctx context.Context, index, frame string, opt FrameOptions) error
CreateFrame creates a new frame on the server.
func (*InternalHTTPClient) CreateIndex ¶ added in v0.8.0
func (c *InternalHTTPClient) CreateIndex(ctx context.Context, index string, opt IndexOptions) error
CreateIndex creates a new index on the server.
func (*InternalHTTPClient) EnsureFrame ¶ added in v0.8.0
func (c *InternalHTTPClient) EnsureFrame(ctx context.Context, indexName string, frameName string, options FrameOptions) error
func (*InternalHTTPClient) EnsureIndex ¶ added in v0.8.0
func (c *InternalHTTPClient) EnsureIndex(ctx context.Context, name string, options IndexOptions) error
func (*InternalHTTPClient) ExecuteQuery ¶ added in v0.8.0
func (c *InternalHTTPClient) ExecuteQuery(ctx context.Context, index string, queryRequest *internal.QueryRequest) (*internal.QueryResponse, error)
ExecuteQuery executes query against index on the server.
func (*InternalHTTPClient) ExportCSV ¶ added in v0.8.0
func (c *InternalHTTPClient) ExportCSV(ctx context.Context, index, frame, view string, slice uint64, w io.Writer) error
ExportCSV bulk exports data for a single slice from a host to CSV format.
func (*InternalHTTPClient) FragmentBlocks ¶ added in v0.8.0
func (c *InternalHTTPClient) FragmentBlocks(ctx context.Context, index, frame, view string, slice uint64) ([]FragmentBlock, error)
FragmentBlocks returns a list of block checksums for a fragment on a host. Only returns blocks which contain data.
func (*InternalHTTPClient) FragmentNodes ¶ added in v0.8.0
func (c *InternalHTTPClient) FragmentNodes(ctx context.Context, index string, slice uint64) ([]*Node, error)
FragmentNodes returns a list of nodes that own a slice.
func (*InternalHTTPClient) FrameViews ¶ added in v0.8.0
FrameViews returns a list of view names for a frame.
func (*InternalHTTPClient) Host ¶ added in v0.8.0
func (c *InternalHTTPClient) Host() *URI
Host returns the host the client was initialized with.
func (*InternalHTTPClient) Import ¶ added in v0.8.0
func (c *InternalHTTPClient) Import(ctx context.Context, index, frame string, slice uint64, bits []Bit) error
Import bulk imports bits for a single slice to a host.
func (*InternalHTTPClient) ImportValue ¶ added in v0.8.0
func (c *InternalHTTPClient) ImportValue(ctx context.Context, index, frame, field string, slice uint64, vals []FieldValue) error
ImportValue bulk imports field values for a single slice to a host.
func (*InternalHTTPClient) MaxInverseSliceByIndex ¶ added in v0.8.0
MaxInverseSliceByIndex returns the number of inverse slices on a server by index.
func (*InternalHTTPClient) MaxSliceByIndex ¶ added in v0.8.0
MaxSliceByIndex returns the number of slices on a server by index.
func (*InternalHTTPClient) NodeID ¶ added in v0.9.0
func (c *InternalHTTPClient) NodeID(uri *URI) (string, error)
func (*InternalHTTPClient) RestoreFrame ¶ added in v0.8.0
func (c *InternalHTTPClient) RestoreFrame(ctx context.Context, host, index, frame string) error
RestoreFrame restores an entire frame from a host in another cluster.
func (*InternalHTTPClient) RestoreFrom ¶ added in v0.8.0
func (c *InternalHTTPClient) RestoreFrom(ctx context.Context, r io.Reader, index, frame, view string) error
RestoreFrom restores a frame from a backup file to an entire cluster.
func (*InternalHTTPClient) RetrieveSliceFromURI ¶ added in v0.9.0
func (c *InternalHTTPClient) RetrieveSliceFromURI(ctx context.Context, index, frame, view string, slice uint64, uri URI) (io.ReadCloser, error)
func (*InternalHTTPClient) RowAttrDiff ¶ added in v0.8.0
func (c *InternalHTTPClient) RowAttrDiff(ctx context.Context, index, frame string, blks []AttrBlock) (map[uint64]map[string]interface{}, error)
RowAttrDiff returns data from differing blocks on a remote host.
func (*InternalHTTPClient) Schema ¶ added in v0.8.0
func (c *InternalHTTPClient) Schema(ctx context.Context) ([]*IndexInfo, error)
Schema returns all index and frame schema information.
func (*InternalHTTPClient) SendMessage ¶ added in v0.9.0
SendMessage posts a message synchronously.
type LRUCache ¶
type LRUCache struct {
// contains filtered or unexported fields
}
LRUCache represents a least recently used Cache implementation.
func NewLRUCache ¶
NewLRUCache returns a new instance of LRUCache.
func (*LRUCache) BulkAdd ¶
BulkAdd adds a count to the cache unsorted. You should Invalidate after completion.
func (*LRUCache) SetStats ¶ added in v0.4.0
func (c *LRUCache) SetStats(s StatsClient)
SetStats defines the stats client used in the cache.
type LimitIterator ¶
type LimitIterator struct {
// contains filtered or unexported fields
}
LimitIterator wraps an Iterator and limits it to a max column/row pair.
func NewLimitIterator ¶
func NewLimitIterator(itr Iterator, maxRowID, maxColumnID uint64) *LimitIterator
NewLimitIterator returns a new LimitIterator.
func (*LimitIterator) Next ¶
func (itr *LimitIterator) Next() (rowID, columnID uint64, eof bool)
Next returns the next row/column ID pair. If the underlying iterator returns a pair higher than the max then EOF is returned.
func (*LimitIterator) Seek ¶
func (itr *LimitIterator) Seek(rowID, columnID uint64)
Seek moves the underlying iterator to a column/row pair.
type MemberSet ¶ added in v0.9.0
type MemberSet interface {
// Open starts any network activity implemented by the MemberSet
// Node is the local node, used for membership broadcasts.
Open(n *Node) error
}
MemberSet represents an interface for Node membership and inter-node communication.
type MultiStatsClient ¶
type MultiStatsClient []StatsClient
MultiStatsClient joins multiple stats clients together.
func (MultiStatsClient) Close ¶ added in v0.8.0
func (a MultiStatsClient) Close() error
Close shuts down the stats clients.
func (MultiStatsClient) Count ¶
func (a MultiStatsClient) Count(name string, value int64, rate float64)
Count tracks the number of times something occurs per second on all clients.
func (MultiStatsClient) CountWithCustomTags ¶ added in v0.4.0
func (a MultiStatsClient) CountWithCustomTags(name string, value int64, rate float64, tags []string)
CountWithCustomTags Tracks the number of times something occurs per second with custom tags
func (MultiStatsClient) Gauge ¶
func (a MultiStatsClient) Gauge(name string, value float64, rate float64)
Gauge sets the value of a metric on all clients.
func (MultiStatsClient) Histogram ¶
func (a MultiStatsClient) Histogram(name string, value float64, rate float64)
Histogram tracks statistical distribution of a metric on all clients.
func (MultiStatsClient) Open ¶ added in v0.8.0
func (a MultiStatsClient) Open()
Open starts the stat service.
func (MultiStatsClient) Set ¶
func (a MultiStatsClient) Set(name string, value string, rate float64)
Set tracks number of unique elements on all clients.
func (MultiStatsClient) SetLogger ¶ added in v0.4.0
func (a MultiStatsClient) SetLogger(logger io.Writer)
SetLogger Sets the StatsD logger output type.
func (MultiStatsClient) Tags ¶
func (a MultiStatsClient) Tags() []string
Tags returns tags from the first client.
func (MultiStatsClient) Timing ¶
func (a MultiStatsClient) Timing(name string, value time.Duration, rate float64)
Timing tracks timing information for a metric on all clients.
func (MultiStatsClient) WithTags ¶
func (a MultiStatsClient) WithTags(tags ...string) StatsClient
WithTags returns a new set of clients with the additional tags.
type Node ¶
type Node struct {
ID string `json:"id"`
URI URI `json:"uri"`
IsCoordinator bool `json:"isCoordinator"`
}
Node represents a node in the cluster.
func DecodeNode ¶ added in v0.9.0
DecodeNode converts a proto message into a Node.
func DecodeNodes ¶ added in v0.9.0
DecodeNodes converts a proto message into a slice of Nodes.
type NodeEvent ¶ added in v0.9.0
type NodeEvent struct {
Event NodeEventType
Node *Node
}
NodeEvent is a single event related to node activity in the cluster.
func DecodeNodeEvent ¶ added in v0.9.0
func DecodeNodeEvent(ne *internal.NodeEventMessage) *NodeEvent
type NodeEventType ¶ added in v0.9.0
type NodeEventType int
NodeEventType are the types of events that can be sent from the ChannelEventDelegate.
const ( NodeJoin NodeEventType = iota NodeLeave NodeUpdate )
type NodeIDs ¶ added in v0.9.0
type NodeIDs []string
func (NodeIDs) ContainsID ¶ added in v0.9.0
ContainsID returns true if idi matches one of the nodesets's IDs.
type Nodes ¶
type Nodes []*Node
Nodes represents a list of nodes.
func (Nodes) ContainsID ¶ added in v0.9.0
ContainsID returns true if host matches one of the node's id.
type NopCache ¶ added in v0.5.0
type NopCache struct {
// contains filtered or unexported fields
}
NopCache represents a no-op Cache implementation.
func NewNopCache ¶ added in v0.5.0
func NewNopCache() *NopCache
NewNopCache returns a new instance of NopCache.
func (*NopCache) Invalidate ¶ added in v0.5.0
func (c *NopCache) Invalidate()
func (*NopCache) Recalculate ¶ added in v0.5.0
func (c *NopCache) Recalculate()
func (*NopCache) SetStats ¶ added in v0.5.0
func (c *NopCache) SetStats(s StatsClient)
func (*NopCache) Top ¶ added in v0.5.0
func (c *NopCache) Top() []BitmapPair
type NopSecurityManager ¶
type NopSecurityManager struct {
}
NopSecurityManager provides a no-op implementation of the SecurityManager interface.
func (*NopSecurityManager) SetRestricted ¶
func (sdm *NopSecurityManager) SetRestricted()
SetRestricted no-op.
type Pair ¶
type Pair struct {
ID uint64 `json:"id"`
Key string `json:"key,omitempty"`
Count uint64 `json:"count"`
}
Pair holds an id/count pair.
type PairHeap ¶
type PairHeap struct {
Pairs
}
PairHeap is a heap implementation over a group of Pairs.
type Pairs ¶
type Pairs []Pair
Pairs is a sortable slice of Pair objects.
func (*Pairs) Pop ¶
func (p *Pairs) Pop() interface{}
Pop removes the minimum element from the Pair slice.
type QueryRequest ¶
type QueryRequest struct {
// Index to execute query against.
Index string
// The query string to parse and execute.
Query string
// The slices to include in the query execution.
// If empty, all slices are included.
Slices []uint64
// Return column attributes, if true.
ColumnAttrs bool
// Do not return row attributes, if true.
ExcludeAttrs bool
// Do not return bits, if true.
ExcludeBits bool
// If true, indicates that query is part of a larger distributed query.
// If false, this request is on the originating node.
Remote bool
}
QueryRequest represent a request to process a query.
type QueryResponse ¶
type QueryResponse struct {
// Result for each top-level query call.
// Can be a Bitmap, Pairs, or uint64.
Results []interface{}
// Set of column attribute objects matching IDs returned in Result.
ColumnAttrSets []*ColumnAttrSet
// Error during parsing or execution.
Err error
}
QueryResponse represent a response from a processed query.
func (*QueryResponse) MarshalJSON ¶
func (resp *QueryResponse) MarshalJSON() ([]byte, error)
MarshalJSON marshals QueryResponse into a JSON-encoded byte slice
type RankCache ¶
type RankCache struct {
// contains filtered or unexported fields
}
RankCache represents a cache with sorted entries.
func NewRankCache ¶
NewRankCache returns a new instance of RankCache.
func (*RankCache) BulkAdd ¶
BulkAdd adds a count to the cache unsorted. You should Invalidate after completion.
func (*RankCache) Invalidate ¶
func (c *RankCache) Invalidate()
Invalidate recalculates the entries by rank.
func (*RankCache) SetStats ¶ added in v0.4.0
func (c *RankCache) SetStats(s StatsClient)
SetStats defines the stats client used in the cache.
func (*RankCache) Top ¶
func (c *RankCache) Top() []BitmapPair
Top returns an ordered list of pairs.
type ResizeJob ¶ added in v0.9.0
type ResizeJob struct {
ID int64
IDs map[string]bool
Instructions []*internal.ResizeInstruction
Broadcaster Broadcaster
// The writer for any logging.
LogOutput io.Writer
// contains filtered or unexported fields
}
func NewResizeJob ¶ added in v0.9.0
NewResizeJob returns a new instance of ResizeJob.
type RoaringIterator ¶
type RoaringIterator struct {
// contains filtered or unexported fields
}
RoaringIterator converts a roaring.Iterator to output column/row pairs.
func NewRoaringIterator ¶
func NewRoaringIterator(itr *roaring.Iterator) *RoaringIterator
NewRoaringIterator returns a new iterator wrapping itr.
func (*RoaringIterator) Next ¶
func (itr *RoaringIterator) Next() (rowID, columnID uint64, eof bool)
Next returns the next column/row ID pair.
func (*RoaringIterator) Seek ¶
func (itr *RoaringIterator) Seek(bseek, pseek uint64)
Seek moves the cursor to a pair matching bseek/pseek. If the pair is not found then it moves to the next pair.
type SecurityManager ¶
type SecurityManager interface {
SetRestricted()
SetNormal()
}
SecurityManager provides the ability to limit access to restricted endpoints during cluster configuration.
type Server ¶
type Server struct {
// Data storage and HTTP interface.
Holder *Holder
Handler *Handler
Broadcaster Broadcaster
BroadcastReceiver BroadcastReceiver
Gossiper Gossiper
RemoteClient *http.Client
// Cluster configuration.
Network string
NodeID string
URI URI
Cluster *Cluster
GCNotifier GCNotifier
// Background monitoring intervals.
AntiEntropyInterval time.Duration
MetricInterval time.Duration
DiagnosticInterval time.Duration
// TLS configuration
TLS *tls.Config
// Misc options.
MaxWritesPerRequest int
LogOutput io.Writer
// contains filtered or unexported fields
}
Server represents a holder wrapped by a running HTTP server.
func (*Server) ClusterStatus ¶
ClusterStatus returns the ClusterState and NodeSet for the cluster.
func (*Server) HandleRemoteStatus ¶
HandleRemoteStatus receives incoming NodeStatus from remote nodes.
func (*Server) LoadNodeID ¶ added in v0.9.0
LoadNodeID gets NodeID from disk, or creates a new value. If server.NodeID is already set, a new ID is not created.
func (*Server) LocalStatus ¶
Server implements StatusHandler. LocalStatus is used to periodically sync information between nodes. Under normal conditions, nodes should remain in sync through Broadcast messages. For cases where a node fails to receive a Broadcast message, or when a new (empty) node needs to get in sync with the rest of the cluster, two things are shared via gossip: - MaxSlice/MaxInverseSlice by Index - Schema In a gossip implementation, memberlist.Delegate.LocalState() uses this.
func (*Server) OpenListener ¶
OpenListener opens a listener for the Server.
func (*Server) ReceiveMessage ¶
ReceiveMessage represents an implementation of BroadcastHandler.
type SimpleCache ¶
type SimpleCache struct {
// contains filtered or unexported fields
}
SimpleCache implements BitmapCache it is meant to be a short-lived cache for cases where writes are continuing to access the same bit within a short time frame (i.e. good for write-heavy loads) A read-heavy use case would cause the cache to get bigger, potentially causing the node to run out of memory.
func (*SimpleCache) Add ¶
func (s *SimpleCache) Add(id uint64, b *Bitmap)
Add adds the bitmap to the cache, keyed on the id.
type SliceIterator ¶
type SliceIterator struct {
// contains filtered or unexported fields
}
SliceIterator iterates over a pair of row/column ID slices.
func NewSliceIterator ¶
func NewSliceIterator(rowIDs, columnIDs []uint64) *SliceIterator
NewSliceIterator returns an iterator to iterate over a set of row/column ID pairs. Both slices MUST have an equal length. Otherwise the function will panic.
func (*SliceIterator) Next ¶
func (itr *SliceIterator) Next() (rowID, columnID uint64, eof bool)
Next returns the next row/column ID pair.
func (*SliceIterator) Seek ¶
func (itr *SliceIterator) Seek(bseek, pseek uint64)
Seek moves the cursor to a given pair. If the pair is not found, the iterator seeks to the next pair.
type StaticMemberSet ¶ added in v0.9.0
type StaticMemberSet struct {
// contains filtered or unexported fields
}
StaticMemberSet represents a basic MemberSet for testing.
func NewStaticMemberSet ¶ added in v0.9.0
func NewStaticMemberSet(nodes []*Node) *StaticMemberSet
NewStaticMemberSet creates a statically defined MemberSet.
func (*StaticMemberSet) Open ¶ added in v0.9.0
func (s *StaticMemberSet) Open(n *Node) error
Open implements the MemberSet interface to start network activity, but for a static MemberSet it does nothing.
type StatsClient ¶
type StatsClient interface {
// Returns a sorted list of tags on the client.
Tags() []string
// Returns a new client with additional tags appended.
WithTags(tags ...string) StatsClient
// Tracks the number of times something occurs per second.
Count(name string, value int64, rate float64)
// Tracks the number of times something occurs per second with custom tags
CountWithCustomTags(name string, value int64, rate float64, tags []string)
// Sets the value of a metric.
Gauge(name string, value float64, rate float64)
// Tracks statistical distribution of a metric.
Histogram(name string, value float64, rate float64)
// Tracks number of unique elements.
Set(name string, value string, rate float64)
// Tracks timing information for a metric.
Timing(name string, value time.Duration, rate float64)
// SetLogger Set the logger output type
SetLogger(logger io.Writer)
// Starts the service
Open()
// Closes the client
Close() error
}
StatsClient represents a client to a stats server.
var NopStatsClient StatsClient
NopStatsClient represents a client that doesn't do anything.
type StatusHandler ¶
type StatusHandler interface {
LocalStatus() (proto.Message, error)
ClusterStatus() (proto.Message, error)
HandleRemoteStatus(proto.Message) error
}
StatusHandler specifies the methods which an object must implement to share state in the cluster. These are used by the GossipMemberSet to implement the LocalState and MergeRemoteState methods of memberlist.Delegate
type SumCount ¶ added in v0.7.0
SumCount represents a grouping of sum & count for Sum() and Average() calls.
type TLSConfig ¶ added in v0.8.0
type TLSConfig struct {
// CertificatePath contains the path to the certificate (.crt or .pem file)
CertificatePath string `toml:"certificate-path"`
// CertificateKeyPath contains the path to the certificate key (.key file)
CertificateKeyPath string `toml:"certificate-key-path"`
// SkipVerify disables verification for self-signed certificates
SkipVerify bool `toml:"skip-verify"`
}
TLSConfig contains TLS configuration
type TimeQuantum ¶
type TimeQuantum string
TimeQuantum represents a time granularity for time-based bitmaps.
func ParseTimeQuantum ¶
func ParseTimeQuantum(v string) (TimeQuantum, error)
ParseTimeQuantum parses v into a time quantum.
func (TimeQuantum) HasDay ¶
func (q TimeQuantum) HasDay() bool
HasDay returns true if the quantum contains a 'D' unit.
func (TimeQuantum) HasHour ¶
func (q TimeQuantum) HasHour() bool
HasHour returns true if the quantum contains a 'H' unit.
func (TimeQuantum) HasMonth ¶
func (q TimeQuantum) HasMonth() bool
HasMonth returns true if the quantum contains a 'M' unit.
func (TimeQuantum) HasYear ¶
func (q TimeQuantum) HasYear() bool
HasYear returns true if the quantum contains a 'Y' unit.
func (*TimeQuantum) Set ¶ added in v0.7.0
func (q *TimeQuantum) Set(value string) error
Set sets the time quantum value.
func (TimeQuantum) String ¶ added in v0.7.0
func (q TimeQuantum) String() string
func (TimeQuantum) Type ¶ added in v0.7.0
func (q TimeQuantum) Type() string
Type returns the type of a time quantum value.
func (TimeQuantum) Valid ¶
func (q TimeQuantum) Valid() bool
Valid returns true if q is a valid time quantum value.
type TopOptions ¶
type TopOptions struct {
// Number of rows to return.
N int
// Bitmap to intersect with.
Src *Bitmap
// Specific rows to filter against.
RowIDs []uint64
MinThreshold uint64
// Filter field name & values.
FilterField string
FilterValues []interface{}
TanimotoThreshold uint64
}
TopOptions represents options passed into the Top() function.
type Topology ¶ added in v0.9.0
type Topology struct {
NodeIDs []string
ClusterID string
// contains filtered or unexported fields
}
Topology represents the list of hosts in the cluster.
func NewTopology ¶ added in v0.9.0
func NewTopology() *Topology
func (*Topology) AddID ¶ added in v0.9.0
AddID adds the node ID to the topology and returns true if added.
func (*Topology) ContainsID ¶ added in v0.9.0
ContainsID returns true if id matches one of the topology's IDs.
type URI ¶ added in v0.8.0
type URI struct {
// contains filtered or unexported fields
}
URI represents a Pilosa URI. A Pilosa URI consists of three parts: 1) Scheme: Protocol of the URI. Default: http. 2) Host: Hostname or IP URI. Default: localhost. IPv6 addresses should be written in brackets, e.g., `[fd42:4201:f86b:7e09:216:3eff:fefa:ed80]`. 3) Port: Port of the URI. Default: 10101.
All parts of the URI are optional. The following are equivalent:
http://localhost:10101 http://localhost http://:10101 localhost:10101 localhost :10101
func AddressWithDefaults ¶ added in v0.6.0
AddressWithDefaults converts addr into a valid address, using defaults when necessary.
func DefaultURI ¶ added in v0.8.0
func DefaultURI() *URI
DefaultURI creates and returns the default URI.
func NewURIFromAddress ¶ added in v0.8.0
NewURIFromAddress parses the passed address and returns a URI.
func NewURIFromHostPort ¶ added in v0.8.0
NewURIFromHostPort returns a URI with specified host and port.
func (URI) Equals ¶ added in v0.8.0
Equals returns true if the checked URI is equivalent to this URI.
func (*URI) MarshalJSON ¶ added in v0.9.0
MarshalJSON marshals URI into a JSON-encoded byte slice.
func (*URI) Normalize ¶ added in v0.8.0
Normalize returns the address in a form usable by a HTTP client.
func (*URI) UnmarshalJSON ¶ added in v0.9.0
type View ¶
type View struct {
RowAttrStore *AttrStore
LogOutput io.Writer
// contains filtered or unexported fields
}
View represents a container for frame data.
func (*View) CreateFragmentIfNotExists ¶
CreateFragmentIfNotExists returns a fragment in the view by slice.
func (*View) DeleteFragment ¶ added in v0.9.0
DeleteFragment removes the fragment from the view.
func (*View) FieldRange ¶ added in v0.6.0
FieldRange returns bitmaps with a field value encoding matching the predicate.
func (*View) FieldRangeBetween ¶ added in v0.7.0
FieldRangeBetween returns bitmaps with a field value encoding matching any value between predicateMin and predicateMax.
func (*View) FieldValue ¶ added in v0.5.0
FieldValue uses a column of bits to read a multi-bit value.
func (*View) FragmentPath ¶
FragmentPath returns the path to a fragment in the view.
func (*View) RecalculateCaches ¶ added in v0.8.0
func (v *View) RecalculateCaches()
RecalculateCaches recalculates the cache on every fragment in the view.
Source Files
¶
Directories
¶
| Path | Synopsis |
|---|---|
|
Package cmd contains all the pilosa subcommand definitions (1 per file).
|
Package cmd contains all the pilosa subcommand definitions (1 per file). |
|
pilosa
command
This is the entrypoint for the Pilosa binary.
|
This is the entrypoint for the Pilosa binary. |
|
package ctl contains all pilosa subcommands other than 'server'.
|
package ctl contains all pilosa subcommands other than 'server'. |
|
Package internal is a generated protocol buffer package.
|
Package internal is a generated protocol buffer package. |
|
Package pql defines the Pilosa Query Language.
|
Package pql defines the Pilosa Query Language. |
|
Package roaring implements roaring bitmaps with support for incremental changes.
|
Package roaring implements roaring bitmaps with support for incremental changes. |
|
Package statik contains static assets for the Web UI.
|
Package statik contains static assets for the Web UI. |