datastore

package
v0.8.0-rc.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 21, 2014 License: MIT Imports: 23 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ONE_KILOBYTE                    = 1024
	ONE_MEGABYTE                    = 1024 * 1024
	SHARD_BLOOM_FILTER_BITS_PER_KEY = 10
	SHARD_DATABASE_DIR              = "shard_db_v2"
)

Variables

View Source
var (

	// This datastore implements the PersistentAtomicInteger interface. All of the persistent
	// integers start with this prefix, followed by their name
	ATOMIC_INCREMENT_PREFIX = []byte{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD}
	// NEXT_ID_KEY holds the next id. ids are used to "intern" timeseries and column names
	NEXT_ID_KEY = []byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
	// SERIES_COLUMN_INDEX_PREFIX is the prefix of the series to column names index
	SERIES_COLUMN_INDEX_PREFIX = []byte{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE}
	// DATABASE_SERIES_INDEX_PREFIX is the prefix of the database to series names index
	DATABASE_SERIES_INDEX_PREFIX = []byte{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}
	MAX_SEQUENCE                 = []byte{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}

	TRUE = true
)

Functions

This section is empty.

Types

type Datastore

type Datastore interface {
	ExecuteQuery(user common.User, database string,
		query *parser.SelectQuery, yield func(*protocol.Series) error,
		ringFilter func(database, series *string, time *int64) bool) error
	// Logs the request to a local store and assigns a sequence number that is unique per server id per day
	LogRequestAndAssignSequenceNumber(request *protocol.Request, replicationFactor *uint8, ownerServerId *uint32) error
	CurrentSequenceNumber(clusterVersion *uint32, replicationFactor *uint8, ownerServerId, originatingServerId *uint32) (uint64, error)
	// will replay all requests from a given number. If the number hasn't occured yet today, it replays from yesterday.
	// So this log replay is only meant to work for outages that last less than maybe 12 hours.
	ReplayRequestsFromSequenceNumber(*uint32, *uint32, *uint32, *uint8, *uint64, func(*[]byte) error) error
	// Increment the named integer by the given amount and return the new value
	AtomicIncrement(name string, val int) (uint64, error)
	WriteSeriesData(database string, series *protocol.Series) error
	DeleteSeriesData(database string, query *parser.DeleteQuery) error
	GetSeriesForDatabase(database string, yield func(string) error) error
	DropDatabase(database string) error
	DropSeries(database, series string) error
	Close()
}

type FieldLookupError

type FieldLookupError struct {
	// contains filtered or unexported fields
}

func (FieldLookupError) Error

func (self FieldLookupError) Error() string

type Shard

type Shard struct {
	// contains filtered or unexported fields
}

func NewShard

func NewShard(db storage.Engine, pointBatchSize, writeBatchSize int, metaStore *metastore.Store) (*Shard, error)

func (*Shard) DropFields

func (self *Shard) DropFields(fields []*metastore.Field) error

func (*Shard) IsClosed

func (self *Shard) IsClosed() bool

func (*Shard) Query

func (self *Shard) Query(querySpec *parser.QuerySpec, processor cluster.QueryProcessor) error

func (*Shard) Write

func (self *Shard) Write(database string, series []*protocol.Series) error

type ShardDatastore

type ShardDatastore struct {
	// contains filtered or unexported fields
}

func NewShardDatastore

func NewShardDatastore(config *configuration.Configuration, metaStore *metastore.Store) (*ShardDatastore, error)

func (*ShardDatastore) BufferWrite

func (self *ShardDatastore) BufferWrite(request *protocol.Request)

func (*ShardDatastore) Close

func (self *ShardDatastore) Close()

func (*ShardDatastore) DeleteShard

func (self *ShardDatastore) DeleteShard(shardId uint32) error

func (*ShardDatastore) GetOrCreateShard

func (self *ShardDatastore) GetOrCreateShard(id uint32) (cluster.LocalShardDb, error)

func (*ShardDatastore) ReturnShard

func (self *ShardDatastore) ReturnShard(id uint32)

func (*ShardDatastore) SetWriteBuffer

func (self *ShardDatastore) SetWriteBuffer(writeBuffer *cluster.WriteBuffer)

func (*ShardDatastore) Write

func (self *ShardDatastore) Write(request *protocol.Request) error

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL