Documentation
¶
Index ¶
- func Bytes2String(v []byte) string
- func Bytes2Uint64(v []byte) (b uint64, err error)
- func DecodeIndex(data []byte) (aoe.IndexInfo, error)
- func DecodeTable(data []byte) (aoe.TableInfo, error)
- func EncodeIndex(idx aoe.IndexInfo) ([]byte, error)
- func EncodeKey(ks ...interface{}) []byte
- func EncodeTable(tbl aoe.TableInfo) ([]byte, error)
- func String2Bytes(v string) []byte
- func Uint642Bytes(v uint64) []byte
- type CubeDriver
- func ErrorResp1(err error, infos string) (CubeDriver, []byte)
- func NewCubeDriver(kvDataStorage cstorage.DataStorage, aoeDataStorage cstorage.DataStorage) (CubeDriver, error)
- func NewCubeDriverWithFactory(kvDataStorage cstorage.DataStorage, aoeDataStorage cstorage.DataStorage, ...) (CubeDriver, error)
- func NewCubeDriverWithOptions(kvDataStorage cstorage.DataStorage, aoeDataStorage cstorage.DataStorage, ...) (CubeDriver, error)
- type CustomRequest
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Bytes2String ¶
func Bytes2Uint64 ¶
func String2Bytes ¶
func Uint642Bytes ¶
Types ¶
type CubeDriver ¶
type CubeDriver interface { // Start the driver. Start() error // Close close the driver. Close() // GetShardPool return ShardsPool instance. GetShardPool() raftstore.ShardsPool // Set set key value. Set([]byte, []byte) error // SetWithGroup set key value in specific group. SetWithGroup([]byte, []byte, pb.Group) error // Set async set key value. AsyncSet([]byte, []byte, func(CustomRequest, []byte, error), interface{}) TpeAsyncSetKeysValuesInbatch(shardID uint64, keys [][]byte, values [][]byte, timeout time.Duration, cb func(CustomRequest, []byte, error)) TpeAsyncSet([]byte, []byte, int, time.Duration, func(CustomRequest, []byte, error), interface{}) // AsyncSetIfNotExist async set key value if key not exists. AsyncSetIfNotExist([]byte, []byte, func(CustomRequest, []byte, error), interface{}) // Set async set key value in specific group. AsyncSetWithGroup([]byte, []byte, pb.Group, func(CustomRequest, []byte, error), interface{}) // SetIfNotExist set key value if key not exists. SetIfNotExist([]byte, []byte) error // Get returns the value of key. Get([]byte) ([]byte, error) // GetWithGroup returns the value of key from specific group. GetWithGroup([]byte, pb.Group) ([]byte, error) // Delete remove the key from the store. Delete([]byte) error // DeleteIfExist remove the key from the store if key exists. DeleteIfExist([]byte) error // TpeDeleteBatch deletes keys in the parameter. TpeDeleteBatch(keys [][]byte) error // TpeDeleteBatchWithRange deletes keys in the range [startKey,endKey) TpeDeleteBatchWithRange([]byte, []byte) error // Scan scan [start,end) data Scan([]byte, []byte, uint64) ([][]byte, error) // ScanWithGroup scan [start,end) data in specific group. ScanWithGroup([]byte, []byte, uint64, pb.Group) ([][]byte, error) // TpeScan gets the keys in the range [startKey,endKey), return keys/values. //a. startKey maybe nil. //b. endKey maybe nil. //c. limit: if it is the math.MaxUint64, // it means there is not limitation on the count of keys. //d. needKey: if it is true, the keys and the values are returned. // if it is false, the keys are returned only. //return parameters: //[][]byte : return keys //[][]byte : return values //bool: true - the scanner accomplished in all shards. //[]byte : the start key for the next scan. If last parameter is false, this parameter is nil. TpeScan(startKey, endKey, prefix []byte, limit uint64, needKey bool, tryCount int, timeout time.Duration) ([][]byte, [][]byte, bool, []byte, error) // TpeCheckKeysExist checks the shard has keys. // return the index of the key that existed in the shard. TpeAsyncCheckKeysExist(shardID uint64, keys [][]byte, timeout time.Duration, cb func(CustomRequest, []byte, error)) // PrefixScan scan k-vs which k starts with prefix. PrefixScan([]byte, uint64) ([][]byte, error) // PrefixScanWithGroup scan k-vs which k starts with prefix PrefixScanWithGroup([]byte, uint64, pb.Group) ([][]byte, error) // TpePrefixScan gets the values of the prefix with limit. //a. startKeyOrPrefix : When we invoke TpePrefixScan several times, // the startKeyOrPrefix is the real prefix in the first time. // But from the second time, the startKeyOrPrefix is the next scan key // that generated from results in the previous TpePrefixScan. //b. prefixLength : it denotes startKeyOrPrefix[:prefixLength] is the real prefix. //c. prefixEnd : the next key of the keys started with the prefix //d. needKeyOnly: only return the keys without theirs values //e. limit: if it is the math.MaxUint64, // it means there is not limitation on the count of keys. //return parameters: //[][]byte : return keys //[][]byte : return values //bool: true - the scanner accomplished in all shards. //[]byte : the start key for the next scan. If last parameter is false, this parameter is nil. TpePrefixScan(startKeyOrPrefix []byte, prefixLength int, prefixEnd []byte, needKeyOnly bool, limit uint64, tryCount int, timeout time.Duration) ([][]byte, [][]byte, bool, []byte, error) // PrefixScan returns the values whose key starts with prefix. PrefixKeys([]byte, uint64) ([][]byte, error) // PrefixKeysWithGroup scans prefix with specific group. PrefixKeysWithGroup([]byte, uint64, pb.Group) ([][]byte, error) // AllocID allocs id. AllocID([]byte, uint64) (uint64, error) // AsyncAllocID async alloc id. AsyncAllocID([]byte, uint64, func(CustomRequest, []byte, error), interface{}) // Append appends the data in the table Append(string, uint64, []byte) error //GetSnapshot gets the snapshot from the table. //If there's no segment, it returns an empty snapshot. GetSnapshot(dbi.GetSnapshotCtx) (*handle.Snapshot, error) //GetSegmentIds returns the ids of segments of the table. GetSegmentIds(string, uint64) (dbi.IDS, error) //GetSegmentedId returns the smallest segmente id among the tables with the shard. GetSegmentedId(uint64) (uint64, error) //CreateTablet creates a table in the storage. CreateTablet(name string, shardId uint64, tbl *aoe.TableInfo) error //DropTablet drops the table in the storage. DropTablet(string, uint64) (uint64, error) //CreateIndex creates an index CreateIndex(tableName string, indexInfo *aoe.IndexInfo, toShard uint64) error //DropIndex drops an index DropIndex(tableName, indexName string, toShard uint64) error // TabletIDs returns the ids of all the tables in the storage. TabletIDs() ([]uint64, error) // TabletNames returns the names of all the tables in the storage. TabletNames(uint64) ([]string, error) // Exec exec command Exec(cmd interface{}) ([]byte, error) // AsyncExec async exec command AsyncExec(interface{}, func(CustomRequest, []byte, error), interface{}) // ExecWithGroup exec command with group ExecWithGroup(interface{}, pb.Group) ([]byte, error) TpeExecWithGroup(interface{}, pb.Group, int, time.Duration) ([]byte, error) // AsyncExecWithGroup async exec command with group AsyncExecWithGroup(interface{}, pb.Group, func(CustomRequest, []byte, error), interface{}) TpeAsyncExecWithGroup(interface{}, pb.Group, time.Duration, func(CustomRequest, []byte, error), interface{}) // RaftStore returns the raft store RaftStore() raftstore.Store //AOEStore returns h.aoeDB AOEStore() *aoedb.DB //AddLabelToShard add a label to the shard AddLabelToShard(shardID uint64, name, value string) error AddSchedulingRule(ruleName string, groupByLabel string) error }
CubeDriver implements distributed kv and aoe.
func ErrorResp1 ¶
func ErrorResp1(err error, infos string) (CubeDriver, []byte)
func NewCubeDriver ¶
func NewCubeDriver( kvDataStorage cstorage.DataStorage, aoeDataStorage cstorage.DataStorage) (CubeDriver, error)
NewCubeDriver returns a aoe request handler
func NewCubeDriverWithFactory ¶
func NewCubeDriverWithFactory( kvDataStorage cstorage.DataStorage, aoeDataStorage cstorage.DataStorage, c *config.Config, raftStoreFactory func(*cConfig.Config) (raftstore.Store, error)) (CubeDriver, error)
NewCubeDriverWithFactory creates the cube driver with raftstore factory
func NewCubeDriverWithOptions ¶
func NewCubeDriverWithOptions( kvDataStorage cstorage.DataStorage, aoeDataStorage cstorage.DataStorage, c *config.Config) (CubeDriver, error)
NewCubeDriverWithOptions returns an aoe request handler
type CustomRequest ¶
type CustomRequest struct { // Group used to indicate which group of Shards to send Group uint64 // Key the key used to indicate which shard to send Key []byte // ToShard if the field is specified, Key are disabled ToShard uint64 // CustomType type of custom request CustomType uint64 // Cmd serialized custom request content Cmd []byte // Read read request Read bool // Write write request Write bool }
CustomRequest custom request
Click to show internal directories.
Click to hide internal directories.