Documentation ¶
Index ¶
- Constants
- Variables
- func NewStoreError(code StoreErrCode, msg string, args ...interface{}) error
- func WrapEventListenerCtx(ctx context.Context) context.Context
- type DefaultListener
- type Event
- type EventListener
- type EventListenerCtxKey
- type Iterator
- type IteratorImpl
- type KV
- type Key
- type KeyPart
- type KeyValue
- type KeyValueStore
- type KeyValueStoreImpl
- func (d KeyValueStoreImpl) Batch() (baseTx, error)
- func (k *KeyValueStoreImpl) BeginTx(ctx context.Context) (Tx, error)
- func (d KeyValueStoreImpl) CreateTable(_ context.Context, name []byte) error
- func (d KeyValueStoreImpl) Delete(ctx context.Context, table []byte, key Key) error
- func (d KeyValueStoreImpl) DeleteRange(ctx context.Context, table []byte, lKey Key, rKey Key) error
- func (d KeyValueStoreImpl) DropTable(ctx context.Context, name []byte) error
- func (d KeyValueStoreImpl) Get(ctx context.Context, key []byte) ([]byte, error)
- func (k *KeyValueStoreImpl) GetInternalDatabase() (interface{}, error)
- func (k *KeyValueStoreImpl) Insert(ctx context.Context, table []byte, key Key, data *internal.TableData) error
- func (k *KeyValueStoreImpl) Read(ctx context.Context, table []byte, key Key) (Iterator, error)
- func (k *KeyValueStoreImpl) ReadRange(ctx context.Context, table []byte, lkey Key, rkey Key) (Iterator, error)
- func (k *KeyValueStoreImpl) Replace(ctx context.Context, table []byte, key Key, data *internal.TableData) error
- func (d KeyValueStoreImpl) SetVersionstampedKey(ctx context.Context, key []byte, value []byte) error
- func (d KeyValueStoreImpl) SetVersionstampedValue(ctx context.Context, key []byte, value []byte) error
- func (k *KeyValueStoreImpl) Update(ctx context.Context, table []byte, key Key, ...) (int32, error)
- func (k *KeyValueStoreImpl) UpdateRange(ctx context.Context, table []byte, lKey Key, rKey Key, ...) (int32, error)
- type KeyValueStoreImplWithMetrics
- func (m *KeyValueStoreImplWithMetrics) BeginTx(ctx context.Context) (Tx, error)
- func (m *KeyValueStoreImplWithMetrics) CreateTable(_ context.Context, name []byte) (err error)
- func (m *KeyValueStoreImplWithMetrics) Delete(ctx context.Context, table []byte, key Key) (err error)
- func (m *KeyValueStoreImplWithMetrics) DeleteRange(ctx context.Context, table []byte, lKey Key, rKey Key) (err error)
- func (m *KeyValueStoreImplWithMetrics) DropTable(ctx context.Context, name []byte) (err error)
- func (m *KeyValueStoreImplWithMetrics) Get(ctx context.Context, key []byte) (val []byte, err error)
- func (m *KeyValueStoreImplWithMetrics) GetInternalDatabase() (k interface{}, err error)
- func (m *KeyValueStoreImplWithMetrics) Insert(ctx context.Context, table []byte, key Key, data *internal.TableData) (err error)
- func (m *KeyValueStoreImplWithMetrics) Read(ctx context.Context, table []byte, key Key) (it Iterator, err error)
- func (m *KeyValueStoreImplWithMetrics) ReadRange(ctx context.Context, table []byte, lkey Key, rkey Key) (it Iterator, err error)
- func (m *KeyValueStoreImplWithMetrics) Replace(ctx context.Context, table []byte, key Key, data *internal.TableData) (err error)
- func (m *KeyValueStoreImplWithMetrics) SetVersionstampedKey(ctx context.Context, key []byte, value []byte) (err error)
- func (m *KeyValueStoreImplWithMetrics) SetVersionstampedValue(ctx context.Context, key []byte, value []byte) (err error)
- func (m *KeyValueStoreImplWithMetrics) Update(ctx context.Context, table []byte, key Key, ...) (encoded int32, err error)
- func (m *KeyValueStoreImplWithMetrics) UpdateRange(ctx context.Context, table []byte, lKey Key, rKey Key, ...) (encoded int32, err error)
- type NoopEventListener
- type StoreErrCode
- type StoreError
- type Tx
- type TxImpl
- func (t TxImpl) Commit(ctx context.Context) error
- func (t TxImpl) Delete(ctx context.Context, table []byte, key Key) error
- func (t TxImpl) DeleteRange(ctx context.Context, table []byte, lKey Key, rKey Key) error
- func (t TxImpl) Get(_ context.Context, key []byte) ([]byte, error)
- func (tx *TxImpl) Insert(ctx context.Context, table []byte, key Key, data *internal.TableData) error
- func (t TxImpl) IsRetriable() bool
- func (tx *TxImpl) Read(ctx context.Context, table []byte, key Key) (Iterator, error)
- func (tx *TxImpl) ReadRange(ctx context.Context, table []byte, lkey Key, rkey Key) (Iterator, error)
- func (tx *TxImpl) Replace(ctx context.Context, table []byte, key Key, data *internal.TableData) error
- func (t TxImpl) Rollback(ctx context.Context) error
- func (t TxImpl) SetVersionstampedKey(ctx context.Context, key []byte, value []byte) error
- func (t TxImpl) SetVersionstampedValue(_ context.Context, key []byte, value []byte) error
- func (tx *TxImpl) Update(ctx context.Context, table []byte, key Key, ...) (int32, error)
- func (tx *TxImpl) UpdateRange(ctx context.Context, table []byte, lKey Key, rKey Key, ...) (int32, error)
- type TxImplWithMetrics
- func (m *TxImplWithMetrics) Commit(ctx context.Context) (err error)
- func (m *TxImplWithMetrics) Delete(ctx context.Context, table []byte, key Key) (err error)
- func (m *TxImplWithMetrics) DeleteRange(ctx context.Context, table []byte, lKey Key, rKey Key) (err error)
- func (m *TxImplWithMetrics) Get(ctx context.Context, key []byte) (val []byte, err error)
- func (m *TxImplWithMetrics) Insert(ctx context.Context, table []byte, key Key, data *internal.TableData) (err error)
- func (m *TxImplWithMetrics) IsRetriable() bool
- func (m *TxImplWithMetrics) Read(ctx context.Context, table []byte, key Key) (it Iterator, err error)
- func (m *TxImplWithMetrics) ReadRange(ctx context.Context, table []byte, lkey Key, rkey Key) (it Iterator, err error)
- func (m *TxImplWithMetrics) Replace(ctx context.Context, table []byte, key Key, data *internal.TableData) (err error)
- func (m *TxImplWithMetrics) Rollback(ctx context.Context) (err error)
- func (m *TxImplWithMetrics) SetVersionstampedKey(ctx context.Context, key []byte, value []byte) (err error)
- func (m *TxImplWithMetrics) SetVersionstampedValue(ctx context.Context, key []byte, value []byte) (err error)
- func (m *TxImplWithMetrics) Update(ctx context.Context, table []byte, key Key, ...) (encoded int32, err error)
- func (m *TxImplWithMetrics) UpdateRange(ctx context.Context, table []byte, lKey Key, rKey Key, ...) (encoded int32, err error)
Constants ¶
View Source
const ( InsertEvent = "insert" ReplaceEvent = "replace" UpdateEvent = "update" UpdateRangeEvent = "updateRange" DeleteEvent = "delete" DeleteRangeEvent = "deleteRange" )
Variables ¶
View Source
var ( // ErrDuplicateKey is returned when an insert call is made for a key that already exist. ErrDuplicateKey = NewStoreError(ErrCodeDuplicateKey, "duplicate key value, violates key constraint") // ErrConflictingTransaction is returned when there are conflicting transactions. ErrConflictingTransaction = NewStoreError(ErrCodeConflictingTransaction, "transaction not committed due to conflict with another transaction") )
Functions ¶
func NewStoreError ¶
func NewStoreError(code StoreErrCode, msg string, args ...interface{}) error
Types ¶
type DefaultListener ¶
type DefaultListener struct {
Events []*Event
}
func (*DefaultListener) GetEvents ¶
func (l *DefaultListener) GetEvents() []*Event
func (*DefaultListener) OnClearRange ¶
func (l *DefaultListener) OnClearRange(op string, table []byte, lKey []byte, rKey []byte)
type EventListener ¶
type EventListener interface { // OnSet buffers insert/replace/update events OnSet(op string, table []byte, key []byte, data []byte) // OnClearRange buffers delete events OnClearRange(op string, table []byte, lKey []byte, rKey []byte) // GetEvents is used to access buffered events. These events may be shared by different participants callers are // strongly discourage to modify the event and if needed copy it to some other buffer. Once transaction completes // session may discard all the buffered events. GetEvents() []*Event }
EventListener is listener to buffer all the changes in a transaction. It is attached by server layer in the context, and it is only responsible for buffering of the events but doesn't participate in the outcome of the transaction i.e. EventListener has no knowledge whether the transaction was committed or rolled back. The lifecycle of this listener is managed by QuerySession in server package.
func GetEventListener ¶
func GetEventListener(ctx context.Context) EventListener
type EventListenerCtxKey ¶
type EventListenerCtxKey struct{}
type IteratorImpl ¶
type IteratorImpl struct {
// contains filtered or unexported fields
}
func (*IteratorImpl) Err ¶
func (i *IteratorImpl) Err() error
func (*IteratorImpl) Next ¶
func (i *IteratorImpl) Next(value *KeyValue) bool
type KV ¶
type KV interface { Insert(ctx context.Context, table []byte, key Key, data *internal.TableData) error Replace(ctx context.Context, table []byte, key Key, data *internal.TableData) error Delete(ctx context.Context, table []byte, key Key) error DeleteRange(ctx context.Context, table []byte, lKey Key, rKey Key) error Read(ctx context.Context, table []byte, key Key) (Iterator, error) ReadRange(ctx context.Context, table []byte, lkey Key, rkey Key) (Iterator, error) Update(ctx context.Context, table []byte, key Key, apply func(*internal.TableData) (*internal.TableData, error)) (int32, error) UpdateRange(ctx context.Context, table []byte, lKey Key, rKey Key, apply func(*internal.TableData) (*internal.TableData, error)) (int32, error) SetVersionstampedValue(ctx context.Context, key []byte, value []byte) error SetVersionstampedKey(ctx context.Context, key []byte, value []byte) error Get(ctx context.Context, key []byte) ([]byte, error) }
type KeyValueStore ¶
type KeyValueStore interface { KV BeginTx(ctx context.Context) (Tx, error) CreateTable(ctx context.Context, name []byte) error DropTable(ctx context.Context, name []byte) error GetInternalDatabase() (interface{}, error) // TODO: CDC remove workaround }
func NewKeyValueStore ¶
func NewKeyValueStore(cfg *config.FoundationDBConfig) (KeyValueStore, error)
func NewKeyValueStoreWithMetrics ¶
func NewKeyValueStoreWithMetrics(cfg *config.FoundationDBConfig) (KeyValueStore, error)
type KeyValueStoreImpl ¶
type KeyValueStoreImpl struct {
// contains filtered or unexported fields
}
func (*KeyValueStoreImpl) BeginTx ¶
func (k *KeyValueStoreImpl) BeginTx(ctx context.Context) (Tx, error)
func (KeyValueStoreImpl) CreateTable ¶
func (KeyValueStoreImpl) DeleteRange ¶
func (*KeyValueStoreImpl) GetInternalDatabase ¶
func (k *KeyValueStoreImpl) GetInternalDatabase() (interface{}, error)
func (KeyValueStoreImpl) SetVersionstampedKey ¶
func (KeyValueStoreImpl) SetVersionstampedValue ¶
type KeyValueStoreImplWithMetrics ¶
type KeyValueStoreImplWithMetrics struct {
// contains filtered or unexported fields
}
func (*KeyValueStoreImplWithMetrics) BeginTx ¶
func (m *KeyValueStoreImplWithMetrics) BeginTx(ctx context.Context) (Tx, error)
func (*KeyValueStoreImplWithMetrics) CreateTable ¶
func (m *KeyValueStoreImplWithMetrics) CreateTable(_ context.Context, name []byte) (err error)
func (*KeyValueStoreImplWithMetrics) DeleteRange ¶
func (*KeyValueStoreImplWithMetrics) DropTable ¶
func (m *KeyValueStoreImplWithMetrics) DropTable(ctx context.Context, name []byte) (err error)
func (*KeyValueStoreImplWithMetrics) GetInternalDatabase ¶
func (m *KeyValueStoreImplWithMetrics) GetInternalDatabase() (k interface{}, err error)
func (*KeyValueStoreImplWithMetrics) SetVersionstampedKey ¶
func (*KeyValueStoreImplWithMetrics) SetVersionstampedValue ¶
type NoopEventListener ¶
type NoopEventListener struct{}
func (*NoopEventListener) GetEvents ¶
func (l *NoopEventListener) GetEvents() []*Event
func (*NoopEventListener) OnClearRange ¶
func (l *NoopEventListener) OnClearRange(op string, table []byte, lKey []byte, rKey []byte)
type StoreErrCode ¶
type StoreErrCode byte
const ( ErrCodeInvalid StoreErrCode = 0x00 ErrCodeDuplicateKey StoreErrCode = 0x01 ErrCodeConflictingTransaction StoreErrCode = 0x02 )
type StoreError ¶
type StoreError struct {
// contains filtered or unexported fields
}
func (StoreError) Error ¶
func (se StoreError) Error() string
type TxImpl ¶
type TxImpl struct {
// contains filtered or unexported fields
}
func (TxImpl) DeleteRange ¶
func (TxImpl) IsRetriable ¶
func (t TxImpl) IsRetriable() bool
IsRetriable returns true if transaction can be retried after error
func (TxImpl) SetVersionstampedKey ¶
func (TxImpl) SetVersionstampedValue ¶
type TxImplWithMetrics ¶
type TxImplWithMetrics struct {
// contains filtered or unexported fields
}
func (*TxImplWithMetrics) Commit ¶
func (m *TxImplWithMetrics) Commit(ctx context.Context) (err error)
func (*TxImplWithMetrics) DeleteRange ¶
func (*TxImplWithMetrics) IsRetriable ¶
func (m *TxImplWithMetrics) IsRetriable() bool
func (*TxImplWithMetrics) Rollback ¶
func (m *TxImplWithMetrics) Rollback(ctx context.Context) (err error)
func (*TxImplWithMetrics) SetVersionstampedKey ¶
func (*TxImplWithMetrics) SetVersionstampedValue ¶
Click to show internal directories.
Click to hide internal directories.