Documentation ¶
Index ¶
- Constants
- func RequestInfo(conn *Connection, names ...string) (map[string]string, error)
- func RequestNodeInfo(node *Node, name ...string) (map[string]string, error)
- func RequestNodeStats(node *Node) (map[string]string, error)
- func SetCommandBufferPool(poolSize, initBufSize, maxBufferSize int)
- type AdminCommand
- type AdminPolicy
- type AerospikeBlob
- type BasePolicy
- type BaseTask
- type Bin
- type BinMap
- type BytesValue
- type Client
- func (clnt *Client) Add(policy *WritePolicy, key *Key, binMap BinMap) error
- func (clnt *Client) AddBins(policy *WritePolicy, key *Key, bins ...*Bin) error
- func (clnt *Client) Append(policy *WritePolicy, key *Key, binMap BinMap) error
- func (clnt *Client) AppendBins(policy *WritePolicy, key *Key, bins ...*Bin) error
- func (clnt *Client) BatchExists(policy *BasePolicy, keys []*Key) ([]bool, error)
- func (clnt *Client) BatchGet(policy *BasePolicy, keys []*Key, binNames ...string) ([]*Record, error)
- func (clnt *Client) BatchGetHeader(policy *BasePolicy, keys []*Key) ([]*Record, error)
- func (clnt *Client) ChangePassword(policy *AdminPolicy, user string, password string) error
- func (clnt *Client) Close()
- func (clnt *Client) CreateIndex(policy *WritePolicy, namespace string, setName string, indexName string, ...) (*IndexTask, error)
- func (clnt *Client) CreateUser(policy *AdminPolicy, user string, password string, roles []string) error
- func (clnt *Client) Delete(policy *WritePolicy, key *Key) (bool, error)
- func (clnt *Client) DropIndex(policy *WritePolicy, namespace string, setName string, indexName string) error
- func (clnt *Client) DropUser(policy *AdminPolicy, user string) error
- func (clnt *Client) Execute(policy *WritePolicy, key *Key, packageName string, functionName string, ...) (interface{}, error)
- func (clnt *Client) ExecuteUDF(policy *QueryPolicy, statement *Statement, packageName string, ...) (*ExecuteTask, error)
- func (clnt *Client) Exists(policy *BasePolicy, key *Key) (bool, error)
- func (clnt *Client) Get(policy *BasePolicy, key *Key, binNames ...string) (*Record, error)
- func (clnt *Client) GetHeader(policy *BasePolicy, key *Key) (*Record, error)
- func (clnt *Client) GetLargeList(policy *WritePolicy, key *Key, binName string, userModule string) *LargeList
- func (clnt *Client) GetLargeMap(policy *WritePolicy, key *Key, binName string, userModule string) *LargeMap
- func (clnt *Client) GetLargeSet(policy *WritePolicy, key *Key, binName string, userModule string) *LargeSet
- func (clnt *Client) GetLargeStack(policy *WritePolicy, key *Key, binName string, userModule string) *LargeStack
- func (clnt *Client) GetNodeNames() []string
- func (clnt *Client) GetNodes() []*Node
- func (clnt *Client) GetObject(policy *BasePolicy, key *Key, obj interface{}) error
- func (clnt *Client) GrantRoles(policy *AdminPolicy, user string, roles []string) error
- func (clnt *Client) IsConnected() bool
- func (clnt *Client) ListUDF(policy *BasePolicy) ([]*UDF, error)
- func (clnt *Client) Operate(policy *WritePolicy, key *Key, operations ...*Operation) (*Record, error)
- func (clnt *Client) Prepend(policy *WritePolicy, key *Key, binMap BinMap) error
- func (clnt *Client) PrependBins(policy *WritePolicy, key *Key, bins ...*Bin) error
- func (clnt *Client) Put(policy *WritePolicy, key *Key, binMap BinMap) error
- func (clnt *Client) PutBins(policy *WritePolicy, key *Key, bins ...*Bin) error
- func (clnt *Client) PutObject(policy *WritePolicy, key *Key, obj interface{}) (err error)
- func (clnt *Client) Query(policy *QueryPolicy, statement *Statement) (*Recordset, error)
- func (clnt *Client) QueryNode(policy *QueryPolicy, node *Node, statement *Statement) (*Recordset, error)
- func (clnt *Client) QueryUser(policy *AdminPolicy, user string) (*UserRoles, error)
- func (clnt *Client) QueryUsers(policy *AdminPolicy) ([]*UserRoles, error)
- func (clnt *Client) RegisterUDF(policy *WritePolicy, udfBody []byte, serverPath string, language Language) (*RegisterTask, error)
- func (clnt *Client) RegisterUDFFromFile(policy *WritePolicy, clientPath string, serverPath string, language Language) (*RegisterTask, error)
- func (clnt *Client) RemoveUDF(policy *WritePolicy, udfName string) (*RemoveTask, error)
- func (clnt *Client) ReplaceRoles(policy *AdminPolicy, user string, roles []string) error
- func (clnt *Client) RevokeRoles(policy *AdminPolicy, user string, roles []string) error
- func (clnt *Client) ScanAll(apolicy *ScanPolicy, namespace string, setName string, binNames ...string) (*Recordset, error)
- func (clnt *Client) ScanNode(apolicy *ScanPolicy, node *Node, namespace string, setName string, ...) (*Recordset, error)
- func (clnt *Client) Touch(policy *WritePolicy, key *Key) error
- type ClientPolicy
- type Cluster
- func (clstr *Cluster) AddSeeds(hosts []*Host)
- func (clstr *Cluster) Close()
- func (clstr *Cluster) GetNode(partition *Partition) (*Node, error)
- func (clstr *Cluster) GetNodeByName(nodeName string) (*Node, error)
- func (clstr *Cluster) GetNodes() []*Node
- func (clstr *Cluster) GetRandomNode() (*Node, error)
- func (clstr *Cluster) IsConnected() bool
- func (clstr *Cluster) MigrationInProgress(timeout time.Duration) (res bool, err error)
- func (clstr *Cluster) WaitUntillMigrationIsFinished(timeout time.Duration) (err error)
- type CommitLevel
- type Connection
- type ConsistencyLevel
- type ExecuteTask
- type FieldType
- type Filter
- type GenerationPolicy
- type Host
- type IndexTask
- type IndexType
- type IntegerValue
- type Key
- type Language
- type LargeList
- func (ll *LargeList) Add(values ...interface{}) error
- func (ll *LargeList) Destroy() error
- func (ll *LargeList) Filter(filterName string, filterArgs ...interface{}) ([]interface{}, error)
- func (ll *LargeList) Find(value interface{}) ([]interface{}, error)
- func (ll *LargeList) FindThenFilter(value interface{}, filterName string, filterArgs ...interface{}) ([]interface{}, error)
- func (ll *LargeList) GetCapacity() (int, error)
- func (ll *LargeList) GetConfig() (map[interface{}]interface{}, error)
- func (ll *LargeList) Range(minValue, maxValue interface{}) ([]interface{}, error)
- func (ll *LargeList) RangeThenFilter(minValue, maxValue interface{}, filterName string, filterArgs ...interface{}) ([]interface{}, error)
- func (ll *LargeList) Remove(value interface{}) error
- func (ll *LargeList) Scan() ([]interface{}, error)
- func (ll *LargeList) SetCapacity(capacity int) error
- func (ll *LargeList) Size() (int, error)
- func (ll *LargeList) Update(values ...interface{}) error
- type LargeMap
- func (lm *LargeMap) Destroy() error
- func (lm *LargeMap) Exists(keyValue interface{}) (bool, error)
- func (lm *LargeMap) Filter(filterName string, filterArgs ...interface{}) (map[interface{}]interface{}, error)
- func (lm *LargeMap) Get(name interface{}) (map[interface{}]interface{}, error)
- func (lm *LargeMap) GetCapacity() (int, error)
- func (lm *LargeMap) GetConfig() (map[interface{}]interface{}, error)
- func (lm *LargeMap) Put(name interface{}, value interface{}) error
- func (lm *LargeMap) PutMap(theMap map[interface{}]interface{}) error
- func (lm *LargeMap) Remove(name interface{}) error
- func (lm *LargeMap) Scan() (map[interface{}]interface{}, error)
- func (lm *LargeMap) SetCapacity(capacity int) error
- func (lm *LargeMap) Size() (int, error)
- type LargeObject
- type LargeSet
- func (ls *LargeSet) Add(values ...interface{}) error
- func (ls *LargeSet) Destroy() error
- func (ls *LargeSet) Exists(value interface{}) (bool, error)
- func (ls *LargeSet) Filter(filterName string, filterArgs ...interface{}) ([]interface{}, error)
- func (ls *LargeSet) Get(value interface{}) (interface{}, error)
- func (ls *LargeSet) GetCapacity() (int, error)
- func (ls *LargeSet) GetConfig() (map[interface{}]interface{}, error)
- func (ls *LargeSet) Remove(value interface{}) error
- func (ls *LargeSet) Scan() ([]interface{}, error)
- func (ls *LargeSet) SetCapacity(capacity int) error
- func (ls *LargeSet) Size() (int, error)
- type LargeStack
- func (lstk *LargeStack) Destroy() error
- func (lstk *LargeStack) Filter(peekCount int, filterName string, filterArgs ...interface{}) ([]interface{}, error)
- func (lstk *LargeStack) GetCapacity() (int, error)
- func (lstk *LargeStack) GetConfig() (map[interface{}]interface{}, error)
- func (lstk *LargeStack) Peek(peekCount int) ([]interface{}, error)
- func (lstk *LargeStack) Pop(count int) ([]interface{}, error)
- func (lstk *LargeStack) Push(values ...interface{}) error
- func (lstk *LargeStack) Scan() ([]interface{}, error)
- func (lstk *LargeStack) SetCapacity(capacity int) error
- func (lstk *LargeStack) Size() (int, error)
- type ListValue
- type LongValue
- type MapValue
- type MultiPolicy
- type Node
- func (nd *Node) AddAlias(aliasToAdd *Host)
- func (nd *Node) Close()
- func (nd *Node) DecreaseHealth()
- func (nd *Node) Equals(other *Node) bool
- func (nd *Node) GetAliases() []*Host
- func (nd *Node) GetConnection(timeout time.Duration) (conn *Connection, err error)
- func (nd *Node) GetHost() *Host
- func (nd *Node) GetName() string
- func (nd *Node) IsActive() bool
- func (nd *Node) IsUnhealthy() bool
- func (nd *Node) MigrationInProgress() (bool, error)
- func (nd *Node) PutConnection(conn *Connection)
- func (nd *Node) Refresh() ([]*Host, error)
- func (nd *Node) RestoreHealth()
- func (nd *Node) String() string
- func (nd *Node) WaitUntillMigrationIsFinished(timeout time.Duration) (err error)
- type NodeError
- type NullValue
- type Operation
- type OperationType
- type Partition
- type Policy
- type Priority
- type QueryPolicy
- type Record
- type RecordExistsAction
- type Recordset
- type RegisterTask
- type RemoveTask
- type Role
- type ScanPolicy
- type Statement
- type StringValue
- type SyncMap
- type Task
- type UDF
- type UserRoles
- type Value
- type ValueArray
- type WritePolicy
Constants ¶
const ( // Involve a single replica in the operation. CONSISTENCY_ONE = iota // Involve all replicas in the operation. CONSISTENCY_ALL )
Variables ¶
This section is empty.
Functions ¶
func RequestInfo ¶
func RequestInfo(conn *Connection, names ...string) (map[string]string, error)
RequestInfo gets info values by name from the specified connection.
func RequestNodeInfo ¶ added in v1.0.1
RequestNodeInfo gets info values by name from the specified database server node.
func RequestNodeStats ¶ added in v1.0.1
RequestNodeStats returns statistics for the specified node as a map
func SetCommandBufferPool ¶ added in v1.0.1
func SetCommandBufferPool(poolSize, initBufSize, maxBufferSize int)
SetCommandBufferPool can be used to customize the command Buffer Pool parameters to calibrate the pool for different workloads
Types ¶
type AdminCommand ¶ added in v1.3.0
type AdminCommand struct {
// contains filtered or unexported fields
}
type AdminPolicy ¶ added in v1.3.0
type AdminPolicy struct { // User administration command socket timeout in milliseconds. // Default is one second timeout. Timeout time.Duration }
Policy attributes used for user administration commands.
func NewAdminPolicy ¶ added in v1.3.0
func NewAdminPolicy() *AdminPolicy
NewAdminPolicy generates a new AdminPolicy with default values.
type AerospikeBlob ¶
type AerospikeBlob interface { // EncodeBlob returns a byte slice representing the encoding of the // receiver for transmission to a Decoder, usually of the same // concrete type. EncodeBlob() ([]byte, error) }
AerospikeBlob defines an interface to automatically encode an object to a []byte.
type BasePolicy ¶
type BasePolicy struct { Policy // Priority of request relative to other transactions. // Currently, only used for scans. Priority Priority //= Priority.DEFAULT; // How replicas should be consulted in a read operation to provide the desired // consistency guarantee. Default to allowing one replica to be used in the // read operation. ConsistencyLevel ConsistencyLevel //= CONSISTENCY_ONE // Timeout specifies transaction timeout. // This timeout is used to set the socket timeout and is also sent to the // server along with the transaction in the wire protocol. // Default to no timeout (0). Timeout time.Duration // MaxRetries determines maximum number of retries before aborting the current transaction. // A retry is attempted when there is a network error other than timeout. // If maxRetries is exceeded, the abort will occur even if the timeout // has not yet been exceeded. MaxRetries int //= 2; // SleepBetweenReplies determines duration to sleep between retries if a transaction fails and the // timeout was not exceeded. Enter zero to skip sleep. SleepBetweenRetries time.Duration //= 500ms; }
BasePolicy excapsulates parameters for transaction policy attributes used in all database operation calls.
func NewPolicy ¶
func NewPolicy() *BasePolicy
NewPolicy generates a new BasePolicy instance with default values.
func (*BasePolicy) GetBasePolicy ¶
func (p *BasePolicy) GetBasePolicy() *BasePolicy
GetBasePolicy returns embedded BasePolicy in all types that embed this struct.
type BaseTask ¶ added in v1.0.1
type BaseTask struct {
// contains filtered or unexported fields
}
BaseTask is used to poll for server task completion.
type Bin ¶
type Bin struct { // Bin name. Current limit is 14 characters. Name string // Bin value. Value Value }
Bin encapsulates a field name/value pair.
type BinMap ¶
type BinMap map[string]interface{}
BinMap is used to define a map of bin names to values.
type BytesValue ¶
type BytesValue struct {
// contains filtered or unexported fields
}
BytesValue encapsulates an array of bytes.
func NewBlobValue ¶
func NewBlobValue(object AerospikeBlob) *BytesValue
NewBlobValue accepts an AerospikeBlob interface, and automatically converts it to a BytesValue. If Encode returns an err, it will panic.
func NewBytesValue ¶
func NewBytesValue(bytes []byte) *BytesValue
NewBytesValue generates a ByteValue instance.
func (*BytesValue) GetObject ¶
func (vl *BytesValue) GetObject() interface{}
GetObject returns original value as an interface{}.
func (*BytesValue) GetType ¶
func (vl *BytesValue) GetType() int
GetType returns wire protocol value type.
func (*BytesValue) String ¶
func (vl *BytesValue) String() string
String implements Stringer interface.
type Client ¶
type Client struct { // DefaultPolicy is used for all read commands without a specific policy. DefaultPolicy *BasePolicy // DefaultWritePolicy is used for all write commands without a specific policy. DefaultWritePolicy *WritePolicy // DefaultScanPolicy is used for all query commands without a specific policy. DefaultScanPolicy *ScanPolicy // DefaultQueryPolicy is used for all scan commands without a specific policy. DefaultQueryPolicy *QueryPolicy // DefaultAdminPolicy is used for all security commands without a specific policy. DefaultAdminPolicy *AdminPolicy // contains filtered or unexported fields }
Client encapsulates an Aerospike cluster. All database operations are available against this object.
func NewClientWithPolicy ¶
func NewClientWithPolicy(policy *ClientPolicy, hostname string, port int) (*Client, error)
NewClientWithPolicy generates a new Client using the specified ClientPolicy. If the policy is nil, the default relevant policy will be used.
func NewClientWithPolicyAndHost ¶
func NewClientWithPolicyAndHost(policy *ClientPolicy, hosts ...*Host) (*Client, error)
NewClientWithPolicyAndHost generates a new Client the specified ClientPolicy and sets up the cluster using the provided hosts. If the policy is nil, the default relevant policy will be used.
func (*Client) Add ¶
func (clnt *Client) Add(policy *WritePolicy, key *Key, binMap BinMap) error
Add adds integer bin values to existing record bin values. The policy specifies the transaction timeout, record expiration and how the transaction is handled when the record already exists. This call only works for integer values. If the policy is nil, the default relevant policy will be used.
func (*Client) AddBins ¶
func (clnt *Client) AddBins(policy *WritePolicy, key *Key, bins ...*Bin) error
AddBins works the same as Add, but avoids BinMap allocation and iteration.
func (*Client) Append ¶
func (clnt *Client) Append(policy *WritePolicy, key *Key, binMap BinMap) error
Append appends bin value's string to existing record bin values. The policy specifies the transaction timeout, record expiration and how the transaction is handled when the record already exists. This call only works for string and []byte values. If the policy is nil, the default relevant policy will be used.
func (*Client) AppendBins ¶
func (clnt *Client) AppendBins(policy *WritePolicy, key *Key, bins ...*Bin) error
AppendBins works the same as Append, but avoids BinMap allocation and iteration.
func (*Client) BatchExists ¶ added in v1.0.1
func (clnt *Client) BatchExists(policy *BasePolicy, keys []*Key) ([]bool, error)
BatchExists determines if multiple record keys exist in one batch request. The returned boolean array is in positional order with the original key array order. The policy can be used to specify timeouts. If the policy is nil, the default relevant policy will be used.
func (*Client) BatchGet ¶ added in v1.0.1
func (clnt *Client) BatchGet(policy *BasePolicy, keys []*Key, binNames ...string) ([]*Record, error)
BatchGet reads multiple record headers and bins for specified keys in one batch request. The returned records are in positional order with the original key array order. If a key is not found, the positional record will be nil. The policy can be used to specify timeouts. If the policy is nil, the default relevant policy will be used.
func (*Client) BatchGetHeader ¶ added in v1.0.1
func (clnt *Client) BatchGetHeader(policy *BasePolicy, keys []*Key) ([]*Record, error)
BatchGetHeader reads multiple record header data for specified keys in one batch request. The returned records are in positional order with the original key array order. If a key is not found, the positional record will be nil. The policy can be used to specify timeouts. If the policy is nil, the default relevant policy will be used.
func (*Client) ChangePassword ¶ added in v1.3.0
func (clnt *Client) ChangePassword(policy *AdminPolicy, user string, password string) error
Change user's password. Clear-text password will be hashed using bcrypt before sending to server.
func (*Client) Close ¶
func (clnt *Client) Close()
Close closes all client connections to database server nodes.
func (*Client) CreateIndex ¶ added in v1.0.1
func (clnt *Client) CreateIndex( policy *WritePolicy, namespace string, setName string, indexName string, binName string, indexType IndexType, ) (*IndexTask, error)
CreateIndex creates a secondary index. This asynchronous server call will return before the command is complete. The user can optionally wait for command completion by using the returned IndexTask instance. This method is only supported by Aerospike 3 servers. If the policy is nil, the default relevant policy will be used.
func (*Client) CreateUser ¶ added in v1.3.0
func (clnt *Client) CreateUser(policy *AdminPolicy, user string, password string, roles []string) error
Create user with password and roles. Clear-text password will be hashed using bcrypt before sending to server.
func (*Client) Delete ¶
func (clnt *Client) Delete(policy *WritePolicy, key *Key) (bool, error)
Delete deletes a record for specified key. The policy specifies the transaction timeout. If the policy is nil, the default relevant policy will be used.
func (*Client) DropIndex ¶ added in v1.0.1
func (clnt *Client) DropIndex( policy *WritePolicy, namespace string, setName string, indexName string, ) error
DropIndex deletes a secondary index. This method is only supported by Aerospike 3 servers. If the policy is nil, the default relevant policy will be used.
func (*Client) DropUser ¶ added in v1.3.0
func (clnt *Client) DropUser(policy *AdminPolicy, user string) error
Remove user from cluster.
func (*Client) Execute ¶ added in v1.0.1
func (clnt *Client) Execute(policy *WritePolicy, key *Key, packageName string, functionName string, args ...Value) (interface{}, error)
Execute executes a user defined function on server and return results. The function operates on a single record. The package name is used to locate the udf file location:
udf file = <server udf dir>/<package name>.lua
This method is only supported by Aerospike 3 servers. If the policy is nil, the default relevant policy will be used.
func (*Client) ExecuteUDF ¶ added in v1.0.1
func (clnt *Client) ExecuteUDF(policy *QueryPolicy, statement *Statement, packageName string, functionName string, functionArgs ...Value, ) (*ExecuteTask, error)
ExecuteUDF applies user defined function on records that match the statement filter. Records are not returned to the client. This asynchronous server call will return before command is complete. The user can optionally wait for command completion by using the returned ExecuteTask instance.
This method is only supported by Aerospike 3 servers. If the policy is nil, the default relevant policy will be used.
func (*Client) Exists ¶
func (clnt *Client) Exists(policy *BasePolicy, key *Key) (bool, error)
Exists determine if a record key exists. The policy can be used to specify timeouts. If the policy is nil, the default relevant policy will be used.
func (*Client) Get ¶
Get reads a record header and bins for specified key. The policy can be used to specify timeouts. If the policy is nil, the default relevant policy will be used.
func (*Client) GetHeader ¶
func (clnt *Client) GetHeader(policy *BasePolicy, key *Key) (*Record, error)
GetHeader reads a record generation and expiration only for specified key. Bins are not read. The policy can be used to specify timeouts. If the policy is nil, the default relevant policy will be used.
func (*Client) GetLargeList ¶ added in v1.0.1
func (clnt *Client) GetLargeList(policy *WritePolicy, key *Key, binName string, userModule string) *LargeList
GetLargeList initializes large list operator. This operator can be used to create and manage a list within a single bin.
This method is only supported by Aerospike 3 servers. If the policy is nil, the default relevant policy will be used.
func (*Client) GetLargeMap ¶ added in v1.0.1
func (clnt *Client) GetLargeMap(policy *WritePolicy, key *Key, binName string, userModule string) *LargeMap
GetLargeMap initializes a large map operator. This operator can be used to create and manage a map within a single bin.
This method is only supported by Aerospike 3 servers. If the policy is nil, the default relevant policy will be used.
func (*Client) GetLargeSet ¶ added in v1.0.1
func (clnt *Client) GetLargeSet(policy *WritePolicy, key *Key, binName string, userModule string) *LargeSet
GetLargeSet initializes large set operator. This operator can be used to create and manage a set within a single bin.
This method is only supported by Aerospike 3 servers. If the policy is nil, the default relevant policy will be used.
func (*Client) GetLargeStack ¶ added in v1.0.1
func (clnt *Client) GetLargeStack(policy *WritePolicy, key *Key, binName string, userModule string) *LargeStack
GetLargeStack initializes large stack operator. This operator can be used to create and manage a stack within a single bin.
This method is only supported by Aerospike 3 servers. If the policy is nil, the default relevant policy will be used.
func (*Client) GetNodeNames ¶
GetNodeNames returns a list of active server node names in the cluster.
func (*Client) GetObject ¶ added in v1.4.0
func (clnt *Client) GetObject(policy *BasePolicy, key *Key, obj interface{}) error
GetObject reads a record for specified key and puts the result into the provided object. The policy can be used to specify timeouts. If the policy is nil, the default relevant policy will be used.
func (*Client) GrantRoles ¶ added in v1.3.0
func (clnt *Client) GrantRoles(policy *AdminPolicy, user string, roles []string) error
Add roles to user's list of roles.
func (*Client) IsConnected ¶
IsConnected determines if the client is ready to talk to the database server cluster.
func (*Client) ListUDF ¶ added in v1.0.1
func (clnt *Client) ListUDF(policy *BasePolicy) ([]*UDF, error)
ListUDF lists all packages containing user defined functions in the server. This method is only supported by Aerospike 3 servers. If the policy is nil, the default relevant policy will be used.
func (*Client) Operate ¶ added in v1.0.1
func (clnt *Client) Operate(policy *WritePolicy, key *Key, operations ...*Operation) (*Record, error)
Operate performs multiple read/write operations on a single key in one batch request. An example would be to add an integer value to an existing record and then read the result, all in one database call.
Write operations are always performed first, regardless of operation order relative to read operations. If the policy is nil, the default relevant policy will be used.
func (*Client) Prepend ¶
func (clnt *Client) Prepend(policy *WritePolicy, key *Key, binMap BinMap) error
Prepend prepends bin value's string to existing record bin values. The policy specifies the transaction timeout, record expiration and how the transaction is handled when the record already exists. This call works only for string and []byte values. If the policy is nil, the default relevant policy will be used.
func (*Client) PrependBins ¶
func (clnt *Client) PrependBins(policy *WritePolicy, key *Key, bins ...*Bin) error
PrependBins works the same as Prepend, but avoids BinMap allocation and iteration.
func (*Client) Put ¶
func (clnt *Client) Put(policy *WritePolicy, key *Key, binMap BinMap) error
Put writes record bin(s) to the server. The policy specifies the transaction timeout, record expiration and how the transaction is handled when the record already exists. If the policy is nil, the default relevant policy will be used.
func (*Client) PutBins ¶
func (clnt *Client) PutBins(policy *WritePolicy, key *Key, bins ...*Bin) error
PutBins writes record bin(s) to the server. The policy specifies the transaction timeout, record expiration and how the transaction is handled when the record already exists. This method avoids using the BinMap allocation and iteration and is lighter on GC. If the policy is nil, the default relevant policy will be used.
func (*Client) PutObject ¶ added in v1.4.0
func (clnt *Client) PutObject(policy *WritePolicy, key *Key, obj interface{}) (err error)
PutObject writes record bin(s) to the server. The policy specifies the transaction timeout, record expiration and how the transaction is handled when the record already exists. If the policy is nil, the default relevant policy will be used.
func (*Client) Query ¶ added in v1.0.1
func (clnt *Client) Query(policy *QueryPolicy, statement *Statement) (*Recordset, error)
Query executes a query and returns a Recordset. The query executor puts records on the channel from separate goroutines. The caller can concurrently pop records off the channel through the Recordset.Records channel.
This method is only supported by Aerospike 3 servers. If the policy is nil, the default relevant policy will be used.
func (*Client) QueryNode ¶ added in v1.3.0
func (clnt *Client) QueryNode(policy *QueryPolicy, node *Node, statement *Statement) (*Recordset, error)
QueryNode executes a query on a specific node and returns a recordset. The caller can concurrently pop records off the channel through the record channel.
This method is only supported by Aerospike 3 servers. If the policy is nil, the default relevant policy will be used.
func (*Client) QueryUser ¶ added in v1.3.0
func (clnt *Client) QueryUser(policy *AdminPolicy, user string) (*UserRoles, error)
Retrieve roles for a given user.
func (*Client) QueryUsers ¶ added in v1.3.0
func (clnt *Client) QueryUsers(policy *AdminPolicy) ([]*UserRoles, error)
Retrieve all users and their roles.
func (*Client) RegisterUDF ¶ added in v1.0.1
func (clnt *Client) RegisterUDF(policy *WritePolicy, udfBody []byte, serverPath string, language Language) (*RegisterTask, error)
RegisterUDF registers a package containing user defined functions with server. This asynchronous server call will return before command is complete. The user can optionally wait for command completion by using the returned RegisterTask instance.
This method is only supported by Aerospike 3 servers. If the policy is nil, the default relevant policy will be used.
func (*Client) RegisterUDFFromFile ¶ added in v1.0.1
func (clnt *Client) RegisterUDFFromFile(policy *WritePolicy, clientPath string, serverPath string, language Language) (*RegisterTask, error)
RegisterUDFFromFile reads a file from file system and registers the containing a package user defined functions with the server. This asynchronous server call will return before command is complete. The user can optionally wait for command completion by using the returned RegisterTask instance.
This method is only supported by Aerospike 3 servers. If the policy is nil, the default relevant policy will be used.
func (*Client) RemoveUDF ¶ added in v1.0.1
func (clnt *Client) RemoveUDF(policy *WritePolicy, udfName string) (*RemoveTask, error)
RemoveUDF removes a package containing user defined functions in the server. This asynchronous server call will return before command is complete. The user can optionally wait for command completion by using the returned RemoveTask instance.
This method is only supported by Aerospike 3 servers. If the policy is nil, the default relevant policy will be used.
func (*Client) ReplaceRoles ¶ added in v1.3.0
func (clnt *Client) ReplaceRoles(policy *AdminPolicy, user string, roles []string) error
Replace user's list of roles.
func (*Client) RevokeRoles ¶ added in v1.3.0
func (clnt *Client) RevokeRoles(policy *AdminPolicy, user string, roles []string) error
Remove roles from user's list of roles.
func (*Client) ScanAll ¶ added in v1.0.1
func (clnt *Client) ScanAll(apolicy *ScanPolicy, namespace string, setName string, binNames ...string) (*Recordset, error)
ScanAll reads all records in specified namespace and set from all nodes. If the policy's concurrentNodes is specified, each server node will be read in parallel. Otherwise, server nodes are read sequentially. If the policy is nil, the default relevant policy will be used.
func (*Client) ScanNode ¶ added in v1.0.1
func (clnt *Client) ScanNode(apolicy *ScanPolicy, node *Node, namespace string, setName string, binNames ...string) (*Recordset, error)
ScanNode reads all records in specified namespace and set for one node only. If the policy is nil, the default relevant policy will be used.
type ClientPolicy ¶
type ClientPolicy struct { // User authentication to cluster. Leave empty for clusters running without restricted access. User string // Password authentication to cluster. The password will be stored by the client and sent to server // in hashed format. Leave empty for clusters running without restricted access. Password string // Initial host connection timeout in milliseconds. The timeout when opening a connection // to the server host for the first time. Timeout time.Duration //= 1 second // Size of the Connection Queue cache. ConnectionQueueSize int //= 256 // Throw exception if host connection fails during addHost(). FailIfNotConnected bool //= true // TendInterval determines interval for checking for cluster state changes. // Minimum possible interval is 10 Miliseconds. TendInterval time.Duration //= 1 second }
ClientPolicy encapsulates parameters for client policy command.
func NewClientPolicy ¶
func NewClientPolicy() *ClientPolicy
NewClientPolicy generates a new ClientPolicy with default values.
func (*ClientPolicy) RequiresAuthentication ¶ added in v1.3.0
func (cp *ClientPolicy) RequiresAuthentication() bool
RequiresAuthentication returns true if a USer or Password is set for ClientPolicy.
type Cluster ¶
type Cluster struct {
// contains filtered or unexported fields
}
Cluster encapsulates the aerospike cluster nodes and manages them.
func NewCluster ¶
func NewCluster(policy *ClientPolicy, hosts []*Host) (*Cluster, error)
NewCluster generates a Cluster instance.
func (*Cluster) AddSeeds ¶
AddSeeds adds new hosts to the cluster. They will be added to the cluster on next tend call.
func (*Cluster) Close ¶
func (clstr *Cluster) Close()
Close closes all cached connections to the cluster nodes and stops the tend goroutine.
func (*Cluster) GetNodeByName ¶
GetNodeByName finds a node by name and returns an error if the node is not found.
func (*Cluster) GetRandomNode ¶
GetRandomNode returns a random node on the cluster
func (*Cluster) IsConnected ¶
IsConnected returns true if cluster has nodes and is not already closed.
func (*Cluster) MigrationInProgress ¶ added in v1.0.1
MigrationInProgress determines if any node in the cluster is participating in a data migration
type CommitLevel ¶ added in v1.2.0
type CommitLevel int
Desired consistency guarantee when committing a transaction on the server.
const ( // Server should wait until successfully committing master and all replicas. COMMIT_ALL CommitLevel = iota // Server should wait until successfully committing master only. COMMIT_MASTER )
type Connection ¶
type Connection struct {
// contains filtered or unexported fields
}
Connection represents a connection with a timeout.
func NewConnection ¶
func NewConnection(address string, timeout time.Duration) (*Connection, error)
NewConnection creates a connection on the network and returns the pointer A minimum timeout of 2 seconds will always be applied. If the connection is not established in the specified timeout, an error will be returned
func (*Connection) IsConnected ¶
func (ctn *Connection) IsConnected() bool
IsConnected returns true if the connection is not closed yet.
func (*Connection) Read ¶
func (ctn *Connection) Read(buf []byte, length int) (total int, err error)
Read reads from connection buffer to the provided slice.
func (*Connection) SetTimeout ¶
func (ctn *Connection) SetTimeout(timeout time.Duration) error
SetTimeout sets connection timeout for both read and write operations.
type ConsistencyLevel ¶ added in v1.2.0
type ConsistencyLevel int
How replicas should be consulted in a read operation to provide the desired consistency guarantee.
type ExecuteTask ¶ added in v1.0.1
type ExecuteTask struct { *BaseTask // contains filtered or unexported fields }
ExecuteTask is used to poll for long running server execute job completion.
func NewExecuteTask ¶ added in v1.0.1
func NewExecuteTask(cluster *Cluster, statement *Statement) *ExecuteTask
NewExecuteTask initializes task with fields needed to query server nodes.
func (*ExecuteTask) IsDone ¶ added in v1.0.1
func (etsk *ExecuteTask) IsDone() (bool, error)
IsDone queries all nodes for task completion status.
func (*ExecuteTask) OnComplete ¶ added in v1.0.1
func (etsk *ExecuteTask) OnComplete() chan error
OnComplete returns a channel which will be closed when the task is completed. If an error is encountered while performing the task, an error will be sent on the channel.
type FieldType ¶
type FieldType int
FieldType represents the type of the field in Aerospike Wire Protocol
const ( NAMESPACE FieldType = 0 TABLE FieldType = 1 KEY FieldType = 2 DIGEST_RIPE FieldType = 4 DIGEST_RIPE_ARRAY FieldType = 6 TRAN_ID FieldType = 7 // user supplied transaction id, which is simply passed back SCAN_OPTIONS FieldType = 8 INDEX_NAME FieldType = 21 INDEX_RANGE FieldType = 22 INDEX_FILTER FieldType = 23 INDEX_LIMIT FieldType = 24 INDEX_ORDER_BY FieldType = 25 UDF_PACKAGE_NAME FieldType = 30 UDF_FUNCTION FieldType = 31 UDF_ARGLIST FieldType = 32 UDF_OP FieldType = 33 QUERY_BINLIST FieldType = 40 )
type Filter ¶ added in v1.0.1
type Filter struct {
// contains filtered or unexported fields
}
Filter specifies a query filter definition.
func NewEqualFilter ¶ added in v1.0.1
NewEqualFilter creates a new equality filter instance for query.
type GenerationPolicy ¶
type GenerationPolicy int
GenerationPolicy determines how to handle record writes based on record generation.
const ( // NONE means: Do not use record generation to restrict writes. NONE GenerationPolicy = iota // EXPECT_GEN_EQUAL means: Update/Delete record if expected generation is equal to server generation. Otherwise, fail. EXPECT_GEN_EQUAL // EXPECT_GEN_GT means: Update/Delete record if expected generation greater than the server generation. Otherwise, fail. // This is useful for restore after backup. EXPECT_GEN_GT )
type Host ¶
type Host struct { // Host name or IP address of database server. Name string // Port of database server. Port int // contains filtered or unexported fields }
Host name/port of database server.
type IndexTask ¶ added in v1.0.1
type IndexTask struct { *BaseTask // contains filtered or unexported fields }
IndexTask is used to poll for long running create index completion.
func NewIndexTask ¶ added in v1.0.1
NewIndexTask initializes a task with fields needed to query server nodes.
func (*IndexTask) OnComplete ¶ added in v1.0.1
OnComplete returns a channel that will be closed as soon as the task is finished. If an error is encountered during operation, an error will be sent on the channel.
type IntegerValue ¶
type IntegerValue struct {
// contains filtered or unexported fields
}
IntegerValue encapsulates an integer value.
func NewIntegerValue ¶
func NewIntegerValue(value int) *IntegerValue
NewIntegerValue generates an IntegerValue instance.
func (*IntegerValue) GetObject ¶
func (vl *IntegerValue) GetObject() interface{}
GetObject returns original value as an interface{}.
func (*IntegerValue) GetType ¶
func (vl *IntegerValue) GetType() int
GetType returns wire protocol value type.
func (*IntegerValue) String ¶
func (vl *IntegerValue) String() string
String implements Stringer interface.
type Key ¶
type Key struct {
// contains filtered or unexported fields
}
Key is the unique record identifier. Records can be identified using a specified namespace, an optional set name, and a user defined key which must be unique within a set. Records can also be identified by namespace/digest which is the combination used on the server.
func NewKey ¶
NewKey initializes a key from namespace, optional set name and user key. The set name and user defined key are converted to a digest before sending to the server. The server handles record identifiers by digest only.
func NewKeyWithDigest ¶ added in v1.2.0
func NewKeyWithDigest(namespace string, setName string, key interface{}, digest []byte) (newKey *Key, err error)
NewKey initializes a key from namespace, optional set name and user key. The server handles record identifiers by digest only.
type Language ¶ added in v1.0.1
type Language string
Language specifies User defined function languages.
const ( // LUA embedded programming language. LUA Language = "LUA" )
type LargeList ¶ added in v1.0.1
type LargeList struct {
// contains filtered or unexported fields
}
LargeList encapsulates a list within a single bin.
func NewLargeList ¶ added in v1.0.1
func NewLargeList(client *Client, policy *WritePolicy, key *Key, binName string, userModule string) *LargeList
NewLargeList initializes a large list operator.
func (*LargeList) Add ¶ added in v1.0.1
Add adds values to the list. If the list does not exist, create it using specified userModule configuration.
func (*LargeList) Filter ¶ added in v1.0.1
Filter selects values from list and apply specified Lua filter.
func (*LargeList) FindThenFilter ¶ added in v1.0.1
func (ll *LargeList) FindThenFilter(value interface{}, filterName string, filterArgs ...interface{}) ([]interface{}, error)
FindThenFilter selects values from list and applies specified Lua filter.
func (*LargeList) GetCapacity ¶ added in v1.0.1
GetCapacity returns maximum number of entries in the list.
func (*LargeList) GetConfig ¶ added in v1.0.1
GetConfig returns map of list configuration parameters.
func (*LargeList) RangeThenFilter ¶ added in v1.2.0
func (ll *LargeList) RangeThenFilter(minValue, maxValue interface{}, filterName string, filterArgs ...interface{}) ([]interface{}, error)
Select a range of values from the large list.
func (*LargeList) SetCapacity ¶ added in v1.0.1
SetCapacity sets maximum number of entries in the list.
type LargeMap ¶ added in v1.0.1
type LargeMap struct {
// contains filtered or unexported fields
}
LargeMap encapsulates a map within a single bin.
func NewLargeMap ¶ added in v1.0.1
func NewLargeMap(client *Client, policy *WritePolicy, key *Key, binName string, userModule string) *LargeMap
NewLargeMap initializes a large map operator.
func (*LargeMap) Filter ¶ added in v1.0.1
func (lm *LargeMap) Filter(filterName string, filterArgs ...interface{}) (map[interface{}]interface{}, error)
Filter selects items from the map.
func (*LargeMap) Get ¶ added in v1.0.1
Get returns value from map corresponding with the provided key.
func (*LargeMap) GetCapacity ¶ added in v1.0.1
GetCapacity returns maximum number of entries in the map.
func (*LargeMap) Put ¶ added in v1.0.1
Put adds an entry to the map. If the map does not exist, create it using specified userModule configuration.
func (*LargeMap) PutMap ¶ added in v1.0.1
PutMap adds map values to the map. If the map does not exist, create it using specified userModule configuration.
func (*LargeMap) SetCapacity ¶ added in v1.0.1
SetCapacity sets maximum number of entries in the map.
type LargeObject ¶ added in v1.0.1
type LargeObject interface { // Destroy the bin containing LDT. Destroy() error // Size returns the size of the LDT. Size() (int, error) // GetConfig returns a map containing LDT config values. GetConfig() (map[interface{}]interface{}, error) // SetCapacity sets LDT's capacity. SetCapacity(capacity int) error // GetCapacity returns the capacity of the LDT. GetCapacity() (int, error) // contains filtered or unexported methods }
LargeObject interface defines methods to work with LDTs.
type LargeSet ¶ added in v1.0.1
type LargeSet struct {
// contains filtered or unexported fields
}
LargeSet encapsulates a set within a single bin.
func NewLargeSet ¶ added in v1.0.1
func NewLargeSet(client *Client, policy *WritePolicy, key *Key, binName string, userModule string) *LargeSet
NewLargeSet initializes a large set operator.
func (*LargeSet) Add ¶ added in v1.0.1
Add adds values to the set. If the set does not exist, create it using specified userModule configuration.
func (*LargeSet) Filter ¶ added in v1.0.1
Filter select values from set and applies specified Lua filter.
func (*LargeSet) GetCapacity ¶ added in v1.0.1
GetCapacity returns maximum number of entries in the set.
func (*LargeSet) SetCapacity ¶ added in v1.0.1
SetCapacity sets maximum number of entries in the set.
type LargeStack ¶ added in v1.0.1
type LargeStack struct {
// contains filtered or unexported fields
}
LargeStack encapsulates a stack within a single bin. A stack is last in/first out (LIFO) data structure.
func NewLargeStack ¶ added in v1.0.1
func NewLargeStack(client *Client, policy *WritePolicy, key *Key, binName string, userModule string) *LargeStack
NewLargeStack initializes a large stack operator.
func (*LargeStack) Destroy ¶ added in v1.0.1
func (lstk *LargeStack) Destroy() error
Destroy deletes the bin containing the stack.
func (*LargeStack) Filter ¶ added in v1.0.1
func (lstk *LargeStack) Filter(peekCount int, filterName string, filterArgs ...interface{}) ([]interface{}, error)
Filter selects items from top of stack.
func (*LargeStack) GetCapacity ¶ added in v1.0.1
func (lstk *LargeStack) GetCapacity() (int, error)
GetCapacity returns maximum number of entries in the stack.
func (*LargeStack) GetConfig ¶ added in v1.0.1
func (lstk *LargeStack) GetConfig() (map[interface{}]interface{}, error)
GetConfig returns map of stack configuration parameters.
func (*LargeStack) Peek ¶ added in v1.0.1
func (lstk *LargeStack) Peek(peekCount int) ([]interface{}, error)
Peek select items from top of stack, without removing them
func (*LargeStack) Pop ¶ added in v1.0.1
func (lstk *LargeStack) Pop(count int) ([]interface{}, error)
Pop selects items from top of stack and then removes them.
func (*LargeStack) Push ¶ added in v1.0.1
func (lstk *LargeStack) Push(values ...interface{}) error
Push pushes values onto stack. If the stack does not exist, create it using specified userModule configuration.
func (*LargeStack) Scan ¶ added in v1.0.1
func (lstk *LargeStack) Scan() ([]interface{}, error)
Scan returns all objects in the stack.
func (*LargeStack) SetCapacity ¶ added in v1.0.1
func (lstk *LargeStack) SetCapacity(capacity int) error
SetCapacity sets maximum number of entries in the stack.
func (*LargeStack) Size ¶ added in v1.0.1
func (lstk *LargeStack) Size() (int, error)
Size returns size of the stack.
type ListValue ¶
type ListValue struct {
// contains filtered or unexported fields
}
ListValue encapsulates any arbitray array. Supported by Aerospike 3 servers only.
func NewListValue ¶
func NewListValue(list []interface{}) *ListValue
NewListValue generates a ListValue instance.
func (*ListValue) GetObject ¶
func (vl *ListValue) GetObject() interface{}
GetObject returns original value as an interface{}.
type LongValue ¶
type LongValue struct {
// contains filtered or unexported fields
}
LongValue encapsulates an int64 value.
func NewLongValue ¶
NewLongValue generates a LongValue instance.
func (*LongValue) GetObject ¶
func (vl *LongValue) GetObject() interface{}
GetObject returns original value as an interface{}.
type MapValue ¶
type MapValue struct {
// contains filtered or unexported fields
}
MapValue encapsulates an arbitray map. Supported by Aerospike 3 servers only.
func NewMapValue ¶
func NewMapValue(vmap map[interface{}]interface{}) *MapValue
NewMapValue generates a MapValue instance.
func (*MapValue) GetObject ¶
func (vl *MapValue) GetObject() interface{}
GetObject returns original value as an interface{}.
type MultiPolicy ¶ added in v1.0.2
type MultiPolicy struct { *BasePolicy // Maximum number of concurrent requests to server nodes at any poin int time. // If there are 16 nodes in the cluster and maxConcurrentNodes is 8, then queries // will be made to 8 nodes in parallel. When a query completes, a new query will // be issued until all 16 nodes have been queried. // Default (0) is to issue requests to all server nodes in parallel. MaxConcurrentNodes int // Number of records to place in queue before blocking. // Records received from multiple server nodes will be placed in a queue. // A separate goroutine consumes these records in parallel. // If the queue is full, the producer goroutines will block until records are consumed. RecordQueueSize int //= 5000 // Blocks until on-going migrations are over WaitUntilMigrationsAreOver bool //=false }
MultiPolicy contains parameters for policy attributes used in query and scan operations.
func NewMultiPolicy ¶ added in v1.0.2
func NewMultiPolicy() *MultiPolicy
NewMultiPolicy initializes a MultiPolicy instance with default values.
type Node ¶
type Node struct {
// contains filtered or unexported fields
}
Node represents an Aerospike Database Server Node
func (*Node) Close ¶
func (nd *Node) Close()
Close marks node as inactice and closes all of its pooled connections.
func (*Node) DecreaseHealth ¶
func (nd *Node) DecreaseHealth()
DecreaseHealth decreases node Health as a result of bad connection or communication.
func (*Node) GetConnection ¶
func (nd *Node) GetConnection(timeout time.Duration) (conn *Connection, err error)
GetConnection gets a connection to the node. If no pooled connection is available, a new connection will be created.
func (*Node) IsUnhealthy ¶
IsUnhealthy checks if the node is unhealthy.
func (*Node) MigrationInProgress ¶ added in v1.0.1
MigrationInProgress determines if the node is participating in a data migration
func (*Node) PutConnection ¶
func (nd *Node) PutConnection(conn *Connection)
PutConnection puts back a connection to the pool. If connection pool is full, the connection will be closed and discarded.
func (*Node) Refresh ¶
Refresh requests current status from server node, and updates node with the result.
func (*Node) RestoreHealth ¶
func (nd *Node) RestoreHealth()
RestoreHealth marks the node as healthy.
type NodeError ¶ added in v1.0.1
type NodeError struct {
// contains filtered or unexported fields
}
NodeError is a type to encapsulate the node that the error occured in.
type NullValue ¶
type NullValue struct{}
NullValue is an empty value.
func NewNullValue ¶ added in v1.0.1
func NewNullValue() *NullValue
NewNullValue generates a NullValue instance.
func (*NullValue) GetObject ¶
func (vl *NullValue) GetObject() interface{}
GetObject returns original value as an interface{}.
type Operation ¶
type Operation struct { // OpType determines type of operation. OpType OperationType // BinName (Optional) determines the name of bin used in operation. BinName string // BinValue (Optional) determines bin value used in operation. BinValue Value // contains filtered or unexported fields }
Operation contasins operation definition. This struct is used in client's operate() method.
func GetHeaderOp ¶ added in v1.0.1
func GetHeaderOp() *Operation
GetHeaderOp creates read record header database operation.
func GetOp ¶ added in v1.0.1
func GetOp() *Operation
GetOp creates read all record bins database operation.
func GetOpForBin ¶ added in v1.0.1
GetOpForBin creates read bin database operation.
type OperationType ¶
type OperationType byte
OperationType determines operation type
const ( READ OperationType = 1 // READ_HEADER OperationType = 1 WRITE OperationType = 2 ADD OperationType = 5 APPEND OperationType = 9 PREPEND OperationType = 10 TOUCH OperationType = 11 )
type Partition ¶
Partition encapsulates partition information.
func NewPartition ¶
NewPartition generates a partition instance.
func NewPartitionByKey ¶
NewPartitionByKey initializes a partition and determines the Partition Id from key digest automatically.
type Policy ¶
type Policy interface { // Retrives BasePolicy GetBasePolicy() *BasePolicy }
Policy Interface
type Priority ¶
type Priority int
Priority of operations on database server.
const ( // DEFAULT determines that the server defines the priority. DEFAULT Priority = iota // LOW determines that the server should run the operation in a background thread. LOW // MEDIUM determines that the server should run the operation at medium priority. MEDIUM // HIGH determines that the server should run the operation at the highest priority. HIGH )
type QueryPolicy ¶
type QueryPolicy struct {
*MultiPolicy
}
QueryPolicy encapsulates parameters for policy attributes used in query operations.
func NewQueryPolicy ¶ added in v1.0.1
func NewQueryPolicy() *QueryPolicy
NewQueryPolicy generates a new QueryPolicy instance with default values.
type Record ¶
type Record struct { // Key is the record's key. // Might be empty, or may only consist of digest value. Key *Key // Node from which the Record is originating from. Node *Node // Bins is the map of requested name/value bins. Bins BinMap // Generation shows record modification count. Generation int // Expiration is TTL (Time-To-Live). // Number of seconds until record expires. Expiration int }
Record is the container struct for database records. Records are equivalent to rows.
type RecordExistsAction ¶
type RecordExistsAction int
RecordExistsAction determines how to handle writes when the record already exists.
const ( // UPDATE means: Create or update record. // Merge write command bins with existing bins. UPDATE RecordExistsAction = iota // UPDATE_ONLY means: Update record only. Fail if record does not exist. // Merge write command bins with existing bins. UPDATE_ONLY // REPLACE means: Create or replace record. // Delete existing bins not referenced by write command bins. // Supported by Aerospike 2 server versions >= 2.7.5 and // Aerospike 3 server versions >= 3.1.6. REPLACE // REPLACE_ONLY means: Replace record only. Fail if record does not exist. // Delete existing bins not referenced by write command bins. // Supported by Aerospike 2 server versions >= 2.7.5 and // Aerospike 3 server versions >= 3.1.6. REPLACE_ONLY // CREATE_ONLY means: Create only. Fail if record exists. CREATE_ONLY )
type Recordset ¶ added in v1.0.1
type Recordset struct { // Records is a channel on which the resulting records will be sent back. // NOTE: Do not use Records directly. Range on channel returned by Results() instead. // Will be unexported in the future Records chan *Record // Errors is a channel on which all errors will be sent back. // NOTE: Do not use Records directly. Range on channel returned by Results() instead. // Will be unexported in the future Errors chan error // contains filtered or unexported fields }
Recordset encapsulates the result of Scan and Query commands.
func (*Recordset) Close ¶ added in v1.0.1
func (rcs *Recordset) Close()
Close all streams from different nodes.
func (*Recordset) IsActive ¶ added in v1.0.1
IsActive returns true if the operation hasn't been finished or cancelled.
func (*Recordset) Results ¶ added in v1.4.0
func (rcs *Recordset) Results() <-chan *result
Results returns a new receive-only channel with the results of the Scan/Query This is a more idiomatic approach to the iterator pattern in getting the results back from the recordset, and doesn't require the user to write the ugly select in their code. Result embeds A Record and an error reference.
Example:
recordset, err := client.ScanAll(nil, namespace, set) handleError(err)
for res := range recordset.Results() { if res.Err != nil { // handle error here } else { // process record here fmt.Println(res.Record.Bins) } }
type RegisterTask ¶ added in v1.0.1
type RegisterTask struct { *BaseTask // contains filtered or unexported fields }
RegisterTask is used to poll for UDF registration completion.
func NewRegisterTask ¶ added in v1.0.1
func NewRegisterTask(cluster *Cluster, packageName string) *RegisterTask
NewRegisterTask initializes a RegisterTask with fields needed to query server nodes.
func (*RegisterTask) IsDone ¶ added in v1.0.1
func (tskr *RegisterTask) IsDone() (bool, error)
IsDone will query all nodes for task completion status.
func (*RegisterTask) OnComplete ¶ added in v1.0.1
func (tskr *RegisterTask) OnComplete() chan error
OnComplete returns a channel that will be closed as soon as the task is finished. If an error is encountered during operation, an error will be sent on the channel.
type RemoveTask ¶ added in v1.0.1
type RemoveTask struct { *BaseTask // contains filtered or unexported fields }
RemoveTask is used to poll for UDF registration completion.
func NewRemoveTask ¶ added in v1.0.1
func NewRemoveTask(cluster *Cluster, packageName string) *RemoveTask
NewRemoveTask initializes a RemoveTask with fields needed to query server nodes.
func (*RemoveTask) IsDone ¶ added in v1.0.1
func (tskr *RemoveTask) IsDone() (bool, error)
IsDone will query all nodes for task completion status.
func (*RemoveTask) OnComplete ¶ added in v1.0.1
func (tskr *RemoveTask) OnComplete() chan error
OnComplete returns a channel that will be closed as soon as the task is finished. If an error is encountered during operation, an error will be sent on the channel.
type Role ¶ added in v1.3.0
type Role string
const ( // Manage users their roles. UserAdmin Role = "user-admin" // Manage indicies, user defined functions and server configuration. SysAdmin Role = "sys-admin" // Allow read and write transactions with the database. ReadWrite Role = "read-write" // Allow read transactions with the database. Read Role = "Read" )
Pre-defined user roles.
type ScanPolicy ¶
type ScanPolicy struct { *MultiPolicy // ScanPercent determines percent of data to scan. // Valid integer range is 1 to 100. // Default is 100. ScanPercent int //= 100; // ConcurrentNodes determines how to issue scan requests (in parallel or sequentially). ConcurrentNodes bool //= true; // Indicates if bin data is retrieved. If false, only record digests are retrieved. IncludeBinData bool //= true; // FailOnClusterChange determines scan termination if cluster is in fluctuating state. FailOnClusterChange bool }
ScanPolicy encapsulates parameters used in scan operations.
func NewScanPolicy ¶ added in v1.0.1
func NewScanPolicy() *ScanPolicy
NewScanPolicy creates a new ScanPolicy instance with default values.
type Statement ¶ added in v1.0.1
type Statement struct { // Namespace determines query Namespace Namespace string // SetName determines query Set name (Optional) SetName string // IndexName determines query index name (Optional) // If not set, the server will determine the index from the filter's bin name. IndexName string // BinNames detemines bin names (optional) BinNames []string // Filters determine query filters (Optional) // Currently, only one filter is allowed by the server on a secondary index lookup. // If multiple filters are necessary, see QueryFilter example for a workaround. // QueryFilter demonstrates how to add additional filters in an user-defined // aggregation function. Filters []*Filter // TaskId determines query task id. (Optional) TaskId int64 // contains filtered or unexported fields }
Statement encapsulates query statement parameters.
func NewStatement ¶ added in v1.0.1
NewStatement initializes a new Statement instance.
func (*Statement) IsScan ¶ added in v1.0.1
IsScan determines is the Statement is a full namespace/set scan or a selective Query.
func (*Statement) SetAggregateFunction ¶ added in v1.0.1
func (stmt *Statement) SetAggregateFunction(packageName string, functionName string, functionArgs []Value, returnData bool)
SetAggregateFunction sets aggregation function parameters. This function will be called on both the server and client for each selected item.
type StringValue ¶
type StringValue struct {
// contains filtered or unexported fields
}
StringValue encapsulates a string value.
func NewStringValue ¶
func NewStringValue(value string) *StringValue
NewStringValue generates a StringValue instance.
func (*StringValue) GetObject ¶
func (vl *StringValue) GetObject() interface{}
GetObject returns original value as an interface{}.
func (*StringValue) GetType ¶
func (vl *StringValue) GetType() int
GetType returns wire protocol value type.
func (*StringValue) String ¶
func (vl *StringValue) String() string
String implements Stringer interface.
type Task ¶ added in v1.0.1
type Task interface { IsDone() (bool, error) OnComplete() chan error // contains filtered or unexported methods }
Task interface defines methods for asynchronous tasks.
type UDF ¶ added in v1.0.1
type UDF struct { // Filename of the UDF Filename string // Hash digest of the UDF Hash string // Language of UDF Language Language }
UDF carries information about UDFs on the server
type Value ¶
type Value interface { // GetType returns wire protocol value type. GetType() int // GetObject returns original value as an interface{}. GetObject() interface{} // String implements Stringer interface. String() string // contains filtered or unexported methods }
Value interface is used to efficiently serialize objects into the wire protocol.
type ValueArray ¶
type ValueArray struct {
// contains filtered or unexported fields
}
ValueArray encapsulates an array of Value. Supported by Aerospike 3 servers only.
func NewValueArray ¶
func NewValueArray(array []Value) *ValueArray
NewValueArray generates a ValueArray instance.
func ToValueArray ¶ added in v1.0.1
func ToValueArray(array []interface{}) *ValueArray
ToValueArray converts a []interface{} to []Value. It will panic if any of array element types are not supported.
func (*ValueArray) GetObject ¶
func (vl *ValueArray) GetObject() interface{}
GetObject returns original value as an interface{}.
func (*ValueArray) GetType ¶
func (vl *ValueArray) GetType() int
GetType returns wire protocol value type.
func (*ValueArray) String ¶
func (vl *ValueArray) String() string
String implements Stringer interface.
type WritePolicy ¶
type WritePolicy struct { BasePolicy // RecordExistsAction qualifies how to handle writes where the record already exists. RecordExistsAction RecordExistsAction //= RecordExistsAction.UPDATE; // GenerationPolicy qualifies how to handle record writes based on record generation. The default (NONE) // indicates that the generation is not used to restrict writes. GenerationPolicy GenerationPolicy //= GenerationPolicy.NONE; // Desired consistency guarantee when committing a transaction on the server. The default // (COMMIT_ALL) indicates that the server should wait for master and all replica commits to // be successful before returning success to the client. CommitLevel CommitLevel //= COMMIT_ALL // Generation determines expected generation. // Generation is the number of times a record has been // modified (including creation) on the server. // If a write operation is creating a record, the expected generation would be 0. Generation int32 // Expiration determimes record expiration in seconds. Also known as TTL (Time-To-Live). // Seconds record will live before being removed by the server. // Expiration values: // -1: Never expire for Aerospike 2 server versions >= 2.7.2 and Aerospike 3 server // versions >= 3.1.4. Do not use -1 for older servers. // 0: Default to namespace configuration variable "default-ttl" on the server. // > 0: Actual expiration in seconds. Expiration int32 // Send user defined key in addition to hash digest on a record put. // The default is to not send the user defined key. SendKey bool }
WritePolicy encapsulates parameters for policy attributes used in write operations. This object is passed into methods where database writes can occur.
func NewWritePolicy ¶
func NewWritePolicy(generation, expiration int32) *WritePolicy
NewWritePolicy initializes a new WritePolicy instance with default parameters.
Source Files ¶
- admin_command.go
- admin_policy.go
- aerospike.go
- batch_command.go
- batch_command_exists.go
- batch_command_get.go
- batch_item.go
- batch_node.go
- bin.go
- client.go
- client_policy.go
- cluster.go
- command.go
- commit_policy.go
- connection.go
- consistency_level.go
- delete_command.go
- execute_command.go
- execute_task.go
- exists_command.go
- field_type.go
- filter.go
- generation_policy.go
- host.go
- index_type.go
- info.go
- key.go
- language.go
- large_list.go
- large_map.go
- large_object.go
- large_set.go
- large_stack.go
- marshal.go
- multi_policy.go
- node.go
- node_error.go
- node_validator.go
- operate_command.go
- operation.go
- packer.go
- partition.go
- partition_tokenizer.go
- partition_tokenizer_new.go
- partition_tokenizer_old.go
- policy.go
- priority.go
- query_command.go
- query_policy.go
- query_record_command.go
- read_command.go
- read_header_command.go
- record.go
- record_exists_action.go
- recordset.go
- role.go
- scan_command.go
- scan_policy.go
- server_command.go
- single_command.go
- statement.go
- task.go
- task_index.go
- task_register.go
- task_remove.go
- touch_command.go
- udf.go
- unpacker.go
- user_roles.go
- value.go
- write_command.go
- write_policy.go