Package meta
Overview ▹
Index ▹
Constants
const ( // SaltBytes is the number of bytes used for salts. SaltBytes = 32 // ShardGroupDeletedExpiration is the amount of time before a shard group info will be removed from cached // data after it has been marked deleted (2 weeks). ShardGroupDeletedExpiration = -2 * 7 * 24 * time.Hour )
const ( // DefaultLeaseDuration is the default duration for leases. DefaultLeaseDuration = 60 * time.Second // DefaultLoggingEnabled determines if log messages are printed for the meta service. DefaultLoggingEnabled = true )
const ( // DefaultRetentionPolicyReplicaN is the default value of RetentionPolicyInfo.ReplicaN. DefaultRetentionPolicyReplicaN = 1 // DefaultRetentionPolicyDuration is the default value of RetentionPolicyInfo.Duration. DefaultRetentionPolicyDuration = time.Duration(0) // DefaultRetentionPolicyName is the default name for auto generated retention policies. DefaultRetentionPolicyName = "autogen" // MinRetentionPolicyDuration represents the minimum duration for a policy. MinRetentionPolicyDuration = time.Hour )
Variables
var ( // ErrServiceUnavailable is returned when the meta service is unavailable. ErrServiceUnavailable = errors.New("meta service unavailable") // ErrService is returned when the meta service returns an error. ErrService = errors.New("meta service error") )
var ( // ErrStoreOpen is returned when opening an already open store. ErrStoreOpen = errors.New("store already open") // ErrStoreClosed is returned when closing an already closed store. ErrStoreClosed = errors.New("raft store already closed") )
var ( // ErrDatabaseExists is returned when creating an already existing database. ErrDatabaseExists = errors.New("database already exists") // ErrDatabaseNotExists is returned when operating on a not existing database. ErrDatabaseNotExists = errors.New("database does not exist") // ErrDatabaseNameRequired is returned when creating a database without a name. ErrDatabaseNameRequired = errors.New("database name required") // ErrInvalidName is returned when attempting to create a database or retention policy with an invalid name ErrInvalidName = errors.New("invalid name") )
var ( // ErrRetentionPolicyExists is returned when creating an already existing policy. ErrRetentionPolicyExists = errors.New("retention policy already exists") // ErrRetentionPolicyNotFound is returned when an expected policy wasn't found. ErrRetentionPolicyNotFound = errors.New("retention policy not found") // ErrRetentionPolicyDefault is returned when attempting a prohibited operation // on a default retention policy. ErrRetentionPolicyDefault = errors.New("retention policy is default") // ErrRetentionPolicyRequired is returned when a retention policy is required // by an operation, but a nil policy was passed. ErrRetentionPolicyRequired = errors.New("retention policy required") // ErrRetentionPolicyNameRequired is returned when creating a policy without a name. ErrRetentionPolicyNameRequired = errors.New("retention policy name required") // ErrRetentionPolicyNameExists is returned when renaming a policy to // the same name as another existing policy. ErrRetentionPolicyNameExists = errors.New("retention policy name already exists") // ErrRetentionPolicyDurationTooLow is returned when updating a retention // policy that has a duration lower than the allowed minimum. ErrRetentionPolicyDurationTooLow = fmt.Errorf("retention policy duration must be at least %s", MinRetentionPolicyDuration) // ErrRetentionPolicyConflict is returned when creating a retention policy conflicts // with an existing policy. ErrRetentionPolicyConflict = errors.New("retention policy conflicts with an existing policy") // ErrIncompatibleDurations is returned when creating or updating a // retention policy that has a duration lower than the current shard // duration. ErrIncompatibleDurations = errors.New("retention policy duration must be greater than the shard duration") // ErrReplicationFactorTooLow is returned when the replication factor is not in an // acceptable range. ErrReplicationFactorTooLow = errors.New("replication factor must be greater than 0") )
var ( // ErrShardGroupExists is returned when creating an already existing shard group. ErrShardGroupExists = errors.New("shard group already exists") // ErrShardGroupNotFound is returned when mutating a shard group that doesn't exist. ErrShardGroupNotFound = errors.New("shard group not found") // ErrShardNotReplicated is returned if the node requested to be dropped has // the last copy of a shard present and the force keyword was not used ErrShardNotReplicated = errors.New("shard not replicated") )
var ( // ErrContinuousQueryExists is returned when creating an already existing continuous query. ErrContinuousQueryExists = errors.New("continuous query already exists") // ErrContinuousQueryNotFound is returned when removing a continuous query that doesn't exist. ErrContinuousQueryNotFound = errors.New("continuous query not found") )
var ( // ErrSubscriptionExists is returned when creating an already existing subscription. ErrSubscriptionExists = errors.New("subscription already exists") // ErrSubscriptionNotFound is returned when removing a subscription that doesn't exist. ErrSubscriptionNotFound = errors.New("subscription not found") )
var ( // ErrUserExists is returned when creating an already existing user. ErrUserExists = errors.New("user already exists") // ErrUserNotFound is returned when mutating a user that doesn't exist. ErrUserNotFound = errors.New("user not found") // ErrUsernameRequired is returned when creating a user without a username. ErrUsernameRequired = errors.New("username required") // ErrAuthenticate is returned when authentication fails. ErrAuthenticate = errors.New("authentication failed") )
func ErrInvalidSubscriptionURL ¶
func ErrInvalidSubscriptionURL(url string) error
ErrInvalidSubscriptionURL is returned when the subscription's destination URL is invalid.
func MarshalTime ¶
func MarshalTime(t time.Time) int64
MarshalTime converts t to nanoseconds since epoch. A zero time returns 0.
func NewShardOwner ¶
func NewShardOwner(s ShardInfo, ownerFreqs map[int]int) (uint64, error)
NewShardOwner sets the owner of the provided shard to the data node that currently owns the fewest number of shards. If multiple nodes own the same (fewest) number of shards, then one of those nodes becomes the new shard owner.
func UnmarshalTime ¶
func UnmarshalTime(v int64) time.Time
UnmarshalTime converts nanoseconds since epoch to time. A zero value returns a zero time.
func ValidName ¶
func ValidName(name string) bool
ValidName checks to see if the given name can would be valid for DB/RP name
type Client ¶
Client is used to execute commands on and read data from a meta service cluster.
type Client struct {
// contains filtered or unexported fields
}
func NewClient ¶
func NewClient(config *Config) *Client
NewClient returns a new *Client.
func (*Client) AcquireLease ¶
func (c *Client) AcquireLease(name string) (*Lease, error)
AcquireLease attempts to acquire the specified lease. TODO corylanou remove this for single node
func (*Client) AdminUserExists ¶
func (c *Client) AdminUserExists() bool
AdminUserExists returns true if any user has admin privilege.
func (*Client) Authenticate ¶
func (c *Client) Authenticate(username, password string) (*UserInfo, error)
Authenticate returns a UserInfo if the username and password match an existing entry.
func (*Client) Close ¶
func (c *Client) Close() error
Close the meta service cluster connection.
func (*Client) ClusterID ¶
func (c *Client) ClusterID() uint64
ClusterID returns the ID of the cluster it's connected to.
func (*Client) CreateContinuousQuery ¶
func (c *Client) CreateContinuousQuery(database, name, query string) error
CreateContinuousQuery saves a continuous query with the given name for the given database.
func (*Client) CreateDatabase ¶
func (c *Client) CreateDatabase(name string) (*DatabaseInfo, error)
CreateDatabase creates a database or returns it if it already exists.
func (*Client) CreateDatabaseWithRetentionPolicy ¶
func (c *Client) CreateDatabaseWithRetentionPolicy(name string, spec *RetentionPolicySpec) (*DatabaseInfo, error)
CreateDatabaseWithRetentionPolicy creates a database with the specified retention policy.
When creating a database with a retention policy, the retention policy will always be set to default. Therefore if the caller provides a retention policy that already exists on the database, but that retention policy is not the default one, an error will be returned.
This call is only idempotent when the caller provides the exact same retention policy, and that retention policy is already the default for the database.
func (*Client) CreateRetentionPolicy ¶
func (c *Client) CreateRetentionPolicy(database string, spec *RetentionPolicySpec, makeDefault bool) (*RetentionPolicyInfo, error)
CreateRetentionPolicy creates a retention policy on the specified database.
func (*Client) CreateShardGroup ¶
func (c *Client) CreateShardGroup(database, policy string, timestamp time.Time) (*ShardGroupInfo, error)
CreateShardGroup creates a shard group on a database and policy for a given timestamp.
func (*Client) CreateSubscription ¶
func (c *Client) CreateSubscription(database, rp, name, mode string, destinations []string) error
CreateSubscription creates a subscription against the given database and retention policy.
func (*Client) CreateUser ¶
func (c *Client) CreateUser(name, password string, admin bool) (*UserInfo, error)
CreateUser adds a user with the given name and password and admin status.
func (*Client) Data ¶
func (c *Client) Data() Data
Data returns a clone of the underlying data in the meta store.
func (*Client) Database ¶
func (c *Client) Database(name string) *DatabaseInfo
Database returns info for the requested database.
func (*Client) Databases ¶
func (c *Client) Databases() []DatabaseInfo
Databases returns a list of all database infos.
func (*Client) DeleteShardGroup ¶
func (c *Client) DeleteShardGroup(database, policy string, id uint64) error
DeleteShardGroup removes a shard group from a database and retention policy by id.
func (*Client) DropContinuousQuery ¶
func (c *Client) DropContinuousQuery(database, name string) error
DropContinuousQuery removes the continuous query with the given name on the given database.
func (*Client) DropDatabase ¶
func (c *Client) DropDatabase(name string) error
DropDatabase deletes a database.
func (*Client) DropRetentionPolicy ¶
func (c *Client) DropRetentionPolicy(database, name string) error
DropRetentionPolicy drops a retention policy from a database.
func (*Client) DropShard ¶
func (c *Client) DropShard(id uint64) error
DropShard deletes a shard by ID.
func (*Client) DropSubscription ¶
func (c *Client) DropSubscription(database, rp, name string) error
DropSubscription removes the named subscription from the given database and retention policy.
func (*Client) DropUser ¶
func (c *Client) DropUser(name string) error
DropUser removes the user with the given name.
func (*Client) Load ¶
func (c *Client) Load() error
Load loads the current meta data from disk.
func (*Client) MarshalBinary ¶
func (c *Client) MarshalBinary() ([]byte, error)
MarshalBinary returns a binary representation of the underlying data.
func (*Client) Open ¶
func (c *Client) Open() error
Open a connection to a meta service cluster.
func (*Client) PrecreateShardGroups ¶
func (c *Client) PrecreateShardGroups(from, to time.Time) error
PrecreateShardGroups creates shard groups whose endtime is before the 'to' time passed in, but is yet to expire before 'from'. This is to avoid the need for these shards to be created when data for the corresponding time range arrives. Shard creation involves Raft consensus, and precreation avoids taking the hit at write-time.
func (*Client) PruneShardGroups ¶
func (c *Client) PruneShardGroups() error
PruneShardGroups remove deleted shard groups from the data store.
func (*Client) RetentionPolicy ¶
func (c *Client) RetentionPolicy(database, name string) (rpi *RetentionPolicyInfo, err error)
RetentionPolicy returns the requested retention policy info.
func (*Client) SetAdminPrivilege ¶
func (c *Client) SetAdminPrivilege(username string, admin bool) error
SetAdminPrivilege sets or unsets admin privilege to the given username.
func (*Client) SetData ¶
func (c *Client) SetData(data *Data) error
SetData overwrites the underlying data in the meta store.
func (*Client) SetPrivilege ¶
func (c *Client) SetPrivilege(username, database string, p influxql.Privilege) error
SetPrivilege sets a privilege for the given user on the given database.
func (*Client) ShardGroupsByTimeRange ¶
func (c *Client) ShardGroupsByTimeRange(database, policy string, min, max time.Time) (a []ShardGroupInfo, err error)
ShardGroupsByTimeRange returns a list of all shard groups on a database and policy that may contain data for the specified time range. Shard groups are sorted by start time.
func (*Client) ShardIDs ¶
func (c *Client) ShardIDs() []uint64
ShardIDs returns a list of all shard ids.
func (*Client) ShardOwner ¶
func (c *Client) ShardOwner(shardID uint64) (database, policy string, sgi *ShardGroupInfo)
ShardOwner returns the owning shard group info for a specific shard.
func (*Client) ShardsByTimeRange ¶
func (c *Client) ShardsByTimeRange(sources influxql.Sources, tmin, tmax time.Time) (a []ShardInfo, err error)
ShardsByTimeRange returns a slice of shards that may contain data in the time range.
func (*Client) UpdateRetentionPolicy ¶
func (c *Client) UpdateRetentionPolicy(database, name string, rpu *RetentionPolicyUpdate, makeDefault bool) error
UpdateRetentionPolicy updates a retention policy.
func (*Client) UpdateUser ¶
func (c *Client) UpdateUser(name, password string) error
UpdateUser updates the password of an existing user.
func (*Client) User ¶
func (c *Client) User(name string) (*UserInfo, error)
User returns the user with the given name, or ErrUserNotFound.
func (*Client) UserCount ¶
func (c *Client) UserCount() int
UserCount returns the number of users stored.
func (*Client) UserPrivilege ¶
func (c *Client) UserPrivilege(username, database string) (*influxql.Privilege, error)
UserPrivilege returns the privilege for the given user on the given database.
func (*Client) UserPrivileges ¶
func (c *Client) UserPrivileges(username string) (map[string]influxql.Privilege, error)
UserPrivileges returns the privileges for a user mapped by database name.
func (*Client) Users ¶
func (c *Client) Users() []UserInfo
Users returns a slice of UserInfo representing the currently known users.
func (*Client) WaitForDataChanged ¶
func (c *Client) WaitForDataChanged() chan struct{}
WaitForDataChanged returns a channel that will get closed when the metastore data has changed.
func (*Client) WithLogger ¶
func (c *Client) WithLogger(log zap.Logger)
WithLogger sets the logger for the client.
type Config ¶
Config represents the meta configuration.
type Config struct { Dir string `toml:"dir"` RetentionAutoCreate bool `toml:"retention-autocreate"` LoggingEnabled bool `toml:"logging-enabled"` }
func NewConfig ¶
func NewConfig() *Config
NewConfig builds a new configuration with default values.
func (*Config) Validate ¶
func (c *Config) Validate() error
Validate returns an error if the config is invalid.
type ContinuousQueryInfo ¶
ContinuousQueryInfo represents metadata about a continuous query.
type ContinuousQueryInfo struct { Name string Query string }
type Data ¶
Data represents the top level collection of all metadata.
type Data struct { Term uint64 // associated raft term Index uint64 // associated raft index ClusterID uint64 Databases []DatabaseInfo Users []UserInfo MaxShardGroupID uint64 MaxShardID uint64 // contains filtered or unexported fields }
func (Data) AdminUserExists ¶
func (data Data) AdminUserExists() bool
AdminUserExists returns true if an admin user exists.
func (*Data) Clone ¶
func (data *Data) Clone() *Data
Clone returns a copy of data with a new version.
func (*Data) CloneDatabases ¶
func (data *Data) CloneDatabases() []DatabaseInfo
CloneDatabases returns a copy of the DatabaseInfo.
func (*Data) CloneUsers ¶
func (data *Data) CloneUsers() []UserInfo
CloneUsers returns a copy of the user infos.
func (*Data) CreateContinuousQuery ¶
func (data *Data) CreateContinuousQuery(database, name, query string) error
CreateContinuousQuery adds a named continuous query to a database.
func (*Data) CreateDatabase ¶
func (data *Data) CreateDatabase(name string) error
CreateDatabase creates a new database. It returns an error if name is blank or if a database with the same name already exists.
func (*Data) CreateRetentionPolicy ¶
func (data *Data) CreateRetentionPolicy(database string, rpi *RetentionPolicyInfo, makeDefault bool) error
CreateRetentionPolicy creates a new retention policy on a database. It returns an error if name is blank or if the database does not exist.
func (*Data) CreateShardGroup ¶
func (data *Data) CreateShardGroup(database, policy string, timestamp time.Time) error
CreateShardGroup creates a shard group on a database and policy for a given timestamp.
func (*Data) CreateSubscription ¶
func (data *Data) CreateSubscription(database, rp, name, mode string, destinations []string) error
CreateSubscription adds a named subscription to a database and retention policy.
func (*Data) CreateUser ¶
func (data *Data) CreateUser(name, hash string, admin bool) error
CreateUser creates a new user.
func (*Data) Database ¶
func (data *Data) Database(name string) *DatabaseInfo
Database returns a DatabaseInfo by the database name.
func (*Data) DeleteShardGroup ¶
func (data *Data) DeleteShardGroup(database, policy string, id uint64) error
DeleteShardGroup removes a shard group from a database and retention policy by id.
func (*Data) DropContinuousQuery ¶
func (data *Data) DropContinuousQuery(database, name string) error
DropContinuousQuery removes a continuous query.
func (*Data) DropDatabase ¶
func (data *Data) DropDatabase(name string) error
DropDatabase removes a database by name. It does not return an error if the database cannot be found.
func (*Data) DropRetentionPolicy ¶
func (data *Data) DropRetentionPolicy(database, name string) error
DropRetentionPolicy removes a retention policy from a database by name.
func (*Data) DropShard ¶
func (data *Data) DropShard(id uint64)
DropShard removes a shard by ID.
DropShard won't return an error if the shard can't be found, which allows the command to be re-run in the case that the meta store succeeds but a data node fails.
func (*Data) DropSubscription ¶
func (data *Data) DropSubscription(database, rp, name string) error
DropSubscription removes a subscription.
func (*Data) DropUser ¶
func (data *Data) DropUser(name string) error
DropUser removes an existing user by name.
func (*Data) MarshalBinary ¶
func (data *Data) MarshalBinary() ([]byte, error)
MarshalBinary encodes the metadata to a binary format.
func (*Data) RetentionPolicy ¶
func (data *Data) RetentionPolicy(database, name string) (*RetentionPolicyInfo, error)
RetentionPolicy returns a retention policy for a database by name.
func (*Data) SetAdminPrivilege ¶
func (data *Data) SetAdminPrivilege(name string, admin bool) error
SetAdminPrivilege sets the admin privilege for a user.
func (*Data) SetPrivilege ¶
func (data *Data) SetPrivilege(name, database string, p influxql.Privilege) error
SetPrivilege sets a privilege for a user on a database.
func (*Data) ShardGroupByTimestamp ¶
func (data *Data) ShardGroupByTimestamp(database, policy string, timestamp time.Time) (*ShardGroupInfo, error)
ShardGroupByTimestamp returns the shard group on a database and policy for a given timestamp.
func (*Data) ShardGroups ¶
func (data *Data) ShardGroups(database, policy string) ([]ShardGroupInfo, error)
ShardGroups returns a list of all shard groups on a database and retention policy.
func (*Data) ShardGroupsByTimeRange ¶
func (data *Data) ShardGroupsByTimeRange(database, policy string, tmin, tmax time.Time) ([]ShardGroupInfo, error)
ShardGroupsByTimeRange returns a list of all shard groups on a database and policy that may contain data for the specified time range. Shard groups are sorted by start time.
func (*Data) UnmarshalBinary ¶
func (data *Data) UnmarshalBinary(buf []byte) error
UnmarshalBinary decodes the object from a binary format.
func (*Data) UpdateRetentionPolicy ¶
func (data *Data) UpdateRetentionPolicy(database, name string, rpu *RetentionPolicyUpdate, makeDefault bool) error
UpdateRetentionPolicy updates an existing retention policy.
func (*Data) UpdateUser ¶
func (data *Data) UpdateUser(name, hash string) error
UpdateUser updates the password hash of an existing user.
func (*Data) User ¶
func (data *Data) User(username string) *UserInfo
User returns a user by username.
func (*Data) UserPrivilege ¶
func (data *Data) UserPrivilege(name, database string) (*influxql.Privilege, error)
UserPrivilege gets the privilege for a user on a database.
func (*Data) UserPrivileges ¶
func (data *Data) UserPrivileges(name string) (map[string]influxql.Privilege, error)
UserPrivileges gets the privileges for a user.
type DatabaseInfo ¶
DatabaseInfo represents information about a database in the system.
type DatabaseInfo struct { Name string DefaultRetentionPolicy string RetentionPolicies []RetentionPolicyInfo ContinuousQueries []ContinuousQueryInfo }
func (DatabaseInfo) RetentionPolicy ¶
func (di DatabaseInfo) RetentionPolicy(name string) *RetentionPolicyInfo
RetentionPolicy returns a retention policy by name.
func (DatabaseInfo) ShardInfos ¶
func (di DatabaseInfo) ShardInfos() []ShardInfo
ShardInfos returns a list of all shards' info for the database.
type ErrAuthorize ¶
ErrAuthorize represents an authorization error.
type ErrAuthorize struct { Query *influxql.Query User string Database string Message string }
func (ErrAuthorize) Error ¶
func (e ErrAuthorize) Error() string
Error returns the text of the error.
type Lease ¶
Lease represents a lease held on a resource.
type Lease struct { Name string `json:"name"` Expiration time.Time `json:"expiration"` Owner uint64 `json:"owner"` }
type Leases ¶
Leases is a concurrency-safe collection of leases keyed by name.
type Leases struct {
// contains filtered or unexported fields
}
func NewLeases ¶
func NewLeases(d time.Duration) *Leases
NewLeases returns a new instance of Leases.
func (*Leases) Acquire ¶
func (leases *Leases) Acquire(name string, nodeID uint64) (*Lease, error)
Acquire acquires a lease with the given name for the given nodeID. If the lease doesn't exist or exists but is expired, a valid lease is returned. If nodeID already owns the named and unexpired lease, the lease expiration is extended. If a different node owns the lease, an error is returned.
type NodeInfo ¶
NodeInfo represents information about a single node in the cluster.
type NodeInfo struct { ID uint64 Host string TCPHost string }
type NodeInfos ¶
NodeInfos is a slice of NodeInfo used for sorting
type NodeInfos []NodeInfo
func (NodeInfos) Len ¶
func (n NodeInfos) Len() int
Len implements sort.Interface.
func (NodeInfos) Less ¶
func (n NodeInfos) Less(i, j int) bool
Less implements sort.Interface.
func (NodeInfos) Swap ¶
func (n NodeInfos) Swap(i, j int)
Swap implements sort.Interface.
type QueryAuthorizer ¶
QueryAuthorizer determines whether a user is authorized to execute a given query.
type QueryAuthorizer struct { Client *Client }
func NewQueryAuthorizer ¶
func NewQueryAuthorizer(c *Client) *QueryAuthorizer
NewQueryAuthorizer returns a new instance of QueryAuthorizer.
func (*QueryAuthorizer) AuthorizeQuery ¶
func (a *QueryAuthorizer) AuthorizeQuery(u *UserInfo, query *influxql.Query, database string) error
AuthorizeQuery authorizes u to execute q on database. Database can be "" for queries that do not require a database. If no user is provided it will return an error unless the query's first statement is to create a root user.
type RetentionPolicyInfo ¶
RetentionPolicyInfo represents metadata about a retention policy.
type RetentionPolicyInfo struct { Name string ReplicaN int Duration time.Duration ShardGroupDuration time.Duration ShardGroups []ShardGroupInfo Subscriptions []SubscriptionInfo }
func DefaultRetentionPolicyInfo ¶
func DefaultRetentionPolicyInfo() *RetentionPolicyInfo
DefaultRetentionPolicyInfo returns a new instance of RetentionPolicyInfo with default name, replication, and duration.
func NewRetentionPolicyInfo ¶
func NewRetentionPolicyInfo(name string) *RetentionPolicyInfo
NewRetentionPolicyInfo returns a new instance of RetentionPolicyInfo with default replication and duration.
func (*RetentionPolicyInfo) Apply ¶
func (rpi *RetentionPolicyInfo) Apply(spec *RetentionPolicySpec) *RetentionPolicyInfo
Apply applies a specification to the retention policy info.
func (*RetentionPolicyInfo) DeletedShardGroups ¶
func (rpi *RetentionPolicyInfo) DeletedShardGroups() []*ShardGroupInfo
DeletedShardGroups returns the Shard Groups which are marked as deleted.
func (*RetentionPolicyInfo) ExpiredShardGroups ¶
func (rpi *RetentionPolicyInfo) ExpiredShardGroups(t time.Time) []*ShardGroupInfo
ExpiredShardGroups returns the Shard Groups which are considered expired, for the given time.
func (*RetentionPolicyInfo) MarshalBinary ¶
func (rpi *RetentionPolicyInfo) MarshalBinary() ([]byte, error)
MarshalBinary encodes rpi to a binary format.
func (*RetentionPolicyInfo) ShardGroupByTimestamp ¶
func (rpi *RetentionPolicyInfo) ShardGroupByTimestamp(timestamp time.Time) *ShardGroupInfo
ShardGroupByTimestamp returns the shard group in the policy that contains the timestamp, or nil if no shard group matches.
func (*RetentionPolicyInfo) UnmarshalBinary ¶
func (rpi *RetentionPolicyInfo) UnmarshalBinary(data []byte) error
UnmarshalBinary decodes rpi from a binary format.
type RetentionPolicySpec ¶
RetentionPolicySpec represents the specification for a new retention policy.
type RetentionPolicySpec struct { Name string ReplicaN *int Duration *time.Duration ShardGroupDuration time.Duration }
func (*RetentionPolicySpec) MarshalBinary ¶
func (s *RetentionPolicySpec) MarshalBinary() ([]byte, error)
MarshalBinary encodes RetentionPolicySpec to a binary format.
func (*RetentionPolicySpec) Matches ¶
func (s *RetentionPolicySpec) Matches(rpi *RetentionPolicyInfo) bool
Matches checks if this retention policy specification matches an existing retention policy.
func (*RetentionPolicySpec) NewRetentionPolicyInfo ¶
func (s *RetentionPolicySpec) NewRetentionPolicyInfo() *RetentionPolicyInfo
NewRetentionPolicyInfo creates a new retention policy info from the specification.
func (*RetentionPolicySpec) UnmarshalBinary ¶
func (s *RetentionPolicySpec) UnmarshalBinary(data []byte) error
UnmarshalBinary decodes RetentionPolicySpec from a binary format.
type RetentionPolicyUpdate ¶
RetentionPolicyUpdate represents retention policy fields to be updated.
type RetentionPolicyUpdate struct { Name *string Duration *time.Duration ReplicaN *int ShardGroupDuration *time.Duration }
func (*RetentionPolicyUpdate) SetDuration ¶
func (rpu *RetentionPolicyUpdate) SetDuration(v time.Duration)
SetDuration sets the RetentionPolicyUpdate.Duration.
func (*RetentionPolicyUpdate) SetName ¶
func (rpu *RetentionPolicyUpdate) SetName(v string)
SetName sets the RetentionPolicyUpdate.Name.
func (*RetentionPolicyUpdate) SetReplicaN ¶
func (rpu *RetentionPolicyUpdate) SetReplicaN(v int)
SetReplicaN sets the RetentionPolicyUpdate.ReplicaN.
func (*RetentionPolicyUpdate) SetShardGroupDuration ¶
func (rpu *RetentionPolicyUpdate) SetShardGroupDuration(v time.Duration)
SetShardGroupDuration sets the RetentionPolicyUpdate.ShardGroupDuration.
type ShardGroupInfo ¶
ShardGroupInfo represents metadata about a shard group. The DeletedAt field is important because it makes it clear that a ShardGroup has been marked as deleted, and allow the system to be sure that a ShardGroup is not simply missing. If the DeletedAt is set, the system can safely delete any associated shards.
type ShardGroupInfo struct { ID uint64 StartTime time.Time EndTime time.Time DeletedAt time.Time Shards []ShardInfo TruncatedAt time.Time }
func (*ShardGroupInfo) Contains ¶
func (sgi *ShardGroupInfo) Contains(timestamp time.Time) bool
Contains returns true if the shard group contains data for the timestamp.
func (*ShardGroupInfo) Deleted ¶
func (sgi *ShardGroupInfo) Deleted() bool
Deleted returns whether this ShardGroup has been deleted.
func (*ShardGroupInfo) Overlaps ¶
func (sgi *ShardGroupInfo) Overlaps(min, max time.Time) bool
Overlaps returns whether the shard group contains data for the time range between min and max
func (*ShardGroupInfo) ShardFor ¶
func (sgi *ShardGroupInfo) ShardFor(hash uint64) ShardInfo
ShardFor returns the ShardInfo for a Point hash.
func (*ShardGroupInfo) Truncated ¶
func (sgi *ShardGroupInfo) Truncated() bool
Truncated returns true if this ShardGroup has been truncated (no new writes).
type ShardGroupInfos ¶
ShardGroupInfos implements sort.Interface on []ShardGroupInfo, based on the StartTime field.
type ShardGroupInfos []ShardGroupInfo
func (ShardGroupInfos) Len ¶
func (a ShardGroupInfos) Len() int
Len implements sort.Interface.
func (ShardGroupInfos) Less ¶
func (a ShardGroupInfos) Less(i, j int) bool
Less implements sort.Interface.
func (ShardGroupInfos) Swap ¶
func (a ShardGroupInfos) Swap(i, j int)
Swap implements sort.Interface.
type ShardInfo ¶
ShardInfo represents metadata about a shard.
type ShardInfo struct { ID uint64 Owners []ShardOwner }
func (ShardInfo) OwnedBy ¶
func (si ShardInfo) OwnedBy(nodeID uint64) bool
OwnedBy determines whether the shard's owner IDs includes nodeID.
func (*ShardInfo) UnmarshalBinary ¶
func (si *ShardInfo) UnmarshalBinary(buf []byte) error
UnmarshalBinary decodes the object from a binary format.
type ShardOwner ¶
ShardOwner represents a node that owns a shard.
type ShardOwner struct { NodeID uint64 }
type SubscriptionInfo ¶
SubscriptionInfo holds the subscription information.
type SubscriptionInfo struct { Name string Mode string Destinations []string }
type UserInfo ¶
UserInfo represents metadata about a user in the system.
type UserInfo struct { Name string Hash string Admin bool Privileges map[string]influxql.Privilege }
func (*UserInfo) Authorize ¶
func (ui *UserInfo) Authorize(privilege influxql.Privilege, database string) bool
Authorize returns true if the user is authorized and false if not.
type WriteAuthorizer ¶
WriteAuthorizer determines whether a user is authorized to write to a given database.
type WriteAuthorizer struct { Client *Client }
func NewWriteAuthorizer ¶
func NewWriteAuthorizer(c *Client) *WriteAuthorizer
NewWriteAuthorizer returns a new instance of WriteAuthorizer.
func (WriteAuthorizer) AuthorizeWrite ¶
func (a WriteAuthorizer) AuthorizeWrite(username, database string) error
AuthorizeWrite returns nil if the user has permission to write to the database.
Subdirectories
Name | Synopsis |
---|---|
.. |