Categorygithub.com/featurebasedb/featurebase
modulepackage
0.10.1
Repository: https://github.com/featurebasedb/featurebase.git
Documentation: pkg.go.dev

# README

Build Status GoDoc Go Report Card license CLA Assistant GitHub release

An open source, distributed bitmap index.

Want to contribute? One of the easiest ways is to tell us how you're using (or want to use) Pilosa. We learn from every discussion!

Docs

See our Documentation for information about installing and working with Pilosa.

Getting Started

  1. Install Pilosa.

  2. Start Pilosa with the default configuration:

    pilosa server
    

    and verify that it's running:

    curl localhost:10101/nodes
    
  3. Follow along with the Sample Project to get a better understanding of Pilosa's capabilities.

Data Model

Check out how the Pilosa Data Model works.

Query Language

You can interact with Pilosa directly in the console using the Pilosa Query Language (PQL).

Client Libraries

There are supported libraries for the following languages:

Licenses

The core Pilosa code base and all default builds (referred to as Pilosa Community Edition) are licensed completely under the Apache License, Version 2.0. If you build Pilosa with the enterprise build tag (Pilosa Enterprise Edition), then that build will include features licensed under the GNU Affero General Public License (AGPL). Enterprise code is located entirely in the github.com/pilosa/pilosa/enterprise directory. See github.com/pilosa/pilosa/NOTICE and github.com/pilosa/pilosa/LICENSE for more information about Pilosa licenses.

Get Support

There are several channels available for you to reach out to us for support.

Contributing

Pilosa is an open source project. Please see our Contributing Guide for information about how to get involved.

# Packages

No description provided by the author
Package cmd contains all the pilosa subcommand definitions (1 per file).
package ctl contains all pilosa subcommands other than 'server'.
Package enterprise injects enterprise implementations of various Pilosa features when Pilosa is built with "ENTERPRISE=1 make install".
No description provided by the author
No description provided by the author
No description provided by the author
Package lru implements an LRU cache.
Package pql defines the Pilosa Query Language.
Package roaring implements roaring bitmaps with support for incremental changes.
No description provided by the author
Copyright 2017 Pilosa Corp.
No description provided by the author
No description provided by the author
No description provided by the author

# Functions

AddressWithDefaults converts addr into a valid address, using defaults when necessary.
ContainsSubstring checks to see if substring a is contained in any string in the slice.
CountOpenFiles on operating systems that support lsof.
DecodeAttrs decodes a byte slice into an attribute map.
DecodeNode converts a proto message into a Node.
No description provided by the author
DecodeNodes converts a proto message into a slice of Nodes.
No description provided by the author
DefaultURI creates and returns the default URI.
EncodeAttrs encodes an attribute map into a byte slice.
EncodeIndexes converts a into its internal representation.
EncodeNode converts a Node into its internal representation.
EncodeNodes converts a slice of Nodes into its internal representation.
HostToIP converts host to an IP4 address based on net.LookupIP().
IsInverseView returns true if the view is used for storing an inverted representation.
IsValidCacheType returns true if v is a valid cache type.
No description provided by the author
IsValidView returns true if name is valid.
MarshalMessage encodes the protobuf message into a byte slice.
NewAPI returns a new API instance.
NewBitmap returns a new instance of Bitmap.
NewBufIterator returns a buffered iterator that wraps itr.
NewCluster returns a new instance of Cluster with defaults.
NewCmdIO returns a new instance of CmdIO with inputs and outputs set to the arguments.
NewDiagnosticsCollector returns a new DiagnosticsCollector given an addr in the format "hostname:port".
NewExecutor returns a new instance of Executor.
NewExpvarStatsClient returns a new instance of ExpvarStatsClient.
NewFragment returns a new instance of Fragment.
NewFrame returns a new instance of frame.
NewHandler returns a new instance of Handler with a default logger.
NewHasher returns a new instance of the default hasher.
NewHolder returns a new instance of Holder.
NewIndex returns a new instance of Index.
NewInternalHTTPClient returns a new instance of InternalHTTPClient to connect to host.
No description provided by the author
NewLimitIterator returns a new LimitIterator.
NewLRUCache returns a new instance of LRUCache.
No description provided by the author
NewNopCache returns a new instance of NopCache.
NewNopSystemInfo creates a no-op implementation of SystemInfo.
NewRankCache returns a new instance of RankCache.
NewResizeJob returns a new instance of ResizeJob.
NewRoaringIterator returns a new iterator wrapping itr.
NewRouter creates a new mux http router.
NewServer returns a new instance of Server.
NewSliceIterator returns an iterator to iterate over a set of row/column ID pairs.
No description provided by the author
NewStaticMemberSet creates a statically defined MemberSet.
No description provided by the author
NewURIFromAddress parses the passed address and returns a URI.
NewURIFromHostPort returns a URI with specified host and port.
No description provided by the author
NewView returns a new instance of View.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
ParseTimeQuantum parses v into a time quantum.
Pos returns the row position of a row/column pair.
SliceDiff returns the difference between two uint64 slices.
StringInSlice checks for substring a in the slice.
StringSlicesAreEqual determines if two string slices are equal.
Union performs a union on a slice of bitmaps.
UnionStringSlice returns a sorted set of tags which combine a & b.
UnmarshalMessage decodes the byte slice into a protobuf message.
No description provided by the author
ValidateName ensures that the name is a valid format.
ViewByTimeUnit returns the view name for time with a given quantum unit.
ViewsByTime returns a list of views for a given timestamp.
ViewsByTimeRange returns a list of views to traverse to query a time range.

# Constants

Attribute data type enum.
Attribute data type enum.
Attribute data type enum.
Attribute data type enum.
CacheExt is the file extension for persisted cache ids.
Cache types.
Cache types.
Cache types.
No description provided by the author
No description provided by the author
ClusterState represents the state returned in the /status endpoint.
CopyExt is the file extension used for the temp file used while copying.
DefaultCacheFlushInterval is the default value for Fragment.CacheFlushInterval.
Default ranked frame cache.
Default frame settings.
Default server settings.
DefaultFragmentMaxOpN is the default value for Fragment.MaxOpN.
DefaultFrame is the frame used if one is not specified.
Default frame settings.
DefaultPartitionN is the default number of partitions in a cluster.
List of field data types.
(512^2).
HashBlockSize is the number of rows in a merkle hash block.
Broadcast message types.
Broadcast message types.
Broadcast message types.
Broadcast message types.
Broadcast message types.
Broadcast message types.
Broadcast message types.
Broadcast message types.
Broadcast message types.
Broadcast message types.
Broadcast message types.
Broadcast message types.
Broadcast message types.
Broadcast message types.
Broadcast message types.
Broadcast message types.
Broadcast message types.
MinThreshold is the lowest count to use in a Top-N operation when looking for additional id/count pairs.
No description provided by the author
No description provided by the author
NodeState represents the state of a node during startup.
No description provided by the author
No description provided by the author
QueryResult types.
QueryResult types.
QueryResult types.
QueryResult types.
QueryResult types.
QueryResult types.
No description provided by the author
No description provided by the author
No description provided by the author
Final states.
ResizeJob states.
SliceWidth is the number of column IDs in a slice.
SnapshotExt is the file extension used for an in-process snapshot.
ThresholdFactor is used to calculate the threshold for new items entering the cache.
TimeFormat is the go-style time format used to parse string dates.
View layout modes.
View layout modes.
View layout modes.

# Variables

No description provided by the author
No description provided by the author
No description provided by the author
System errors.
System errors.
System errors.
System errors.
System errors.
System errors.
ErrFragmentNotFound is returned when a fragment does not exist.
System errors.
System errors.
System errors.
ErrFrameRequired is returned when no frame is specified.
System errors.
System errors.
System errors.
System errors.
System errors.
System errors.
System errors.
System errors.
System errors.
System errors.
ErrInvalidTimeQuantum is returned when parsing a time quantum.
System errors.
System errors.
System errors.
System errors.
System errors.
System errors.
System errors.
System errors.
Expvar global expvar map.
NopAttrStore represents an AttrStore that doesn't do anything.
NopBroadcaster represents a Broadcaster that doesn't do anything.
NopBroadcastReceiver is a no-op implementation of the BroadcastReceiver.
NopEventReceiver is a no-op implementation of the EventReceiver.
NopFileSystem represents a FileSystem that returns an error if called.
NopGCNotifier represents a GCNotifier that doesn't do anything.
NopBroadcaster represents a Broadcaster that doesn't do anything.
NopLogger represents a Logger that doesn't do anything.
NopStatsClient represents a client that doesn't do anything.
No description provided by the author

# Structs

API provides the top level programmatic interface to Pilosa.
ApiMethodNotAllowedError wraps an error value indicating that a particular API method is not allowed in the current cluster state.
AttrBlock represents a checksummed block of the attribute store.
BadRequestError wraps an error value to signify that a request could not be read, decoded, or parsed such that in an HTTP scenario, http.StatusBadRequest would be returned.
Bit represents the location of a single bit.
Bitmap represents a set of bits.
BitmapPair represents a id/count pair with an associated identifier.
BitmapSegment holds a subset of a bitmap.
BufIterator wraps an iterator to provide the ability to unread values.
ClientOptions represents the configuration for a InternalHTTPClient.
Cluster represents a collection of nodes.
CmdIO holds standard unix inputs and outputs.
ColumnAttrSet represents a set of attributes for a vertical column in an index.
DiagnosticsCollector represents a collector/sender of diagnostics data.
ExecOptions represents an execution context for a single Execute() call.
Executor recursively executes calls in a PQL query across all slices.
ExpvarStatsClient writes stats out to expvars.
Field represents a range field on a frame.
FieldValues represents the value for a column within a range-encoded frame.
Fragment represents the intersection of a frame and slice in an index.
FragmentBlock represents info about a subsection of the rows in a block.
FragmentSyncer syncs a local fragment to one on a remote host.
Frame represents a container for views.
FrameInfo represents schema information for a frame.
FrameOptions represents options to set when initializing a frame.
Handler represents an HTTP handler.
Holder represents a container for indexes.
HolderCleaner removes fragments and data files that are no longer used.
HolderSyncer is an active anti-entropy tool that compares the local holder with a remote holder based on block checksums and resolves differences.
Index represents a container for frames.
IndexInfo represents schema information for an index.
IndexOptions represents options to set when initializing an index.
InternalHTTPClient represents a client to the Pilosa cluster.
LimitIterator wraps an Iterator and limits it to a max column/row pair.
LRUCache represents a least recently used Cache implementation.
Node represents a node in the cluster.
NodeEvent is a single event related to node activity in the cluster.
NopCache represents a no-op Cache implementation.
NopSystemInfo is a no-op implementation of SystemInfo.
Pair holds an id/count pair.
PairHeap is a heap implementation over a group of Pairs.
PairSet is a list of equal length row and column id lists.
QueryRequest represent a request to process a query.
QueryResponse represent a response from a processed query.
RankCache represents a cache with sorted entries.
No description provided by the author
RoaringIterator converts a roaring.Iterator to output column/row pairs.
Server represents a holder wrapped by a running HTTP server.
No description provided by the author
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.
SliceIterator iterates over a pair of row/column ID slices.
StandardLogger is a basic implementation of pilosa.Logger based on log.Logger.
StaticMemberSet represents a basic MemberSet for testing.
Topology represents the list of hosts in the cluster.
TopOptions represents options passed into the Top() function.
URI represents a Pilosa URI.
ValCount represents a grouping of sum & count for Sum() and Average() calls.
VerboseLogger is an implementation of pilosa.Logger which includes debug messages.
View represents a container for frame data.
ViewInfo represents schema information for a view.

# Interfaces

AttrStore represents an interface for handling row/column attributes.
BitmapCache provides an interface for caching full bitmaps.
Broadcaster is an interface for broadcasting messages.
BroadcastHandler is the interface for the pilosa object which knows how to handle broadcast messages.
BroadcastReceiver is the interface for the object which will listen for and decode broadcast messages before passing them to pilosa to handle.
Cache represents a cache of counts.
EventHandler is the interface for the pilosa object which knows how to handle broadcast messages.
EventReceiver is the interface for the object which will listen for and decode broadcast messages before passing them to pilosa to handle.
FileSystem represents an interface for a WebUI file system.
GCNotifier represents an interface for garbage collection notificationss.
Gossiper is an interface for sharing messages via gossip.
Hasher represents an interface to hash integers into buckets.
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.
Iterator is an interface for looping over row/column pairs.
Logger represents an interface for a shared logger.
MemberSet represents an interface for Node membership and inter-node communication.
StatsClient represents a client to a stats server.
StatusHandler specifies the methods which an object must implement to share state in the cluster.
SystemInfo collects information about the host OS.

# Type aliases

AttrBlocks represents a list of blocks.
BitmapPairs is a sortable list of BitmapPair objects.
Bits represents a slice of bits.
BitsByPos represents a slice of bits sorted by internal position.
FieldValues represents a slice of field values.
MultiStatsClient joins multiple stats clients together.
NodeEventType are the types of events that can be sent from the ChannelEventDelegate.
No description provided by the author
Nodes represents a list of nodes.
Pairs is a sortable slice of Pair objects.
ServerOption is a functional option type for pilosa.Server.
TimeQuantum represents a time granularity for time-based bitmaps.
No description provided by the author