66 lines
2.0 KiB
Go
66 lines
2.0 KiB
Go
// Copyright 2017 PingCAP, Inc.
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
package tikv
|
|
|
|
import (
|
|
"context"
|
|
"time"
|
|
|
|
"github.com/pingcap/tidb/store/tikv/oracle"
|
|
"github.com/pingcap/tidb/store/tikv/tikvrpc"
|
|
)
|
|
|
|
// Storage represent the kv.Storage runs on TiKV.
|
|
type Storage interface {
|
|
// GetRegionCache gets the RegionCache.
|
|
GetRegionCache() *RegionCache
|
|
|
|
// SendReq sends a request to TiKV.
|
|
SendReq(bo *Backoffer, req *tikvrpc.Request, regionID RegionVerID, timeout time.Duration) (*tikvrpc.Response, error)
|
|
|
|
// GetLockResolver gets the LockResolver.
|
|
GetLockResolver() *LockResolver
|
|
|
|
// GetSafePointKV gets the SafePointKV.
|
|
GetSafePointKV() SafePointKV
|
|
|
|
// UpdateSPCache updates the cache of safe point.
|
|
UpdateSPCache(cachedSP uint64, cachedTime time.Time)
|
|
|
|
// SetOracle sets the Oracle.
|
|
SetOracle(oracle oracle.Oracle)
|
|
|
|
// SetTiKVClient sets the TiKV client.
|
|
SetTiKVClient(client Client)
|
|
|
|
// GetTiKVClient gets the TiKV client.
|
|
GetTiKVClient() Client
|
|
|
|
// Closed returns the closed channel.
|
|
Closed() <-chan struct{}
|
|
|
|
// Close store
|
|
Close() error
|
|
// UUID return a unique ID which represents a Storage.
|
|
UUID() string
|
|
// CurrentTimestamp returns current timestamp with the given txnScope (local or global).
|
|
CurrentTimestamp(txnScope string) (uint64, error)
|
|
// GetOracle gets a timestamp oracle client.
|
|
GetOracle() oracle.Oracle
|
|
// SupportDeleteRange gets the storage support delete range or not.
|
|
SupportDeleteRange() (supported bool)
|
|
// ShowStatus returns the specified status of the storage
|
|
ShowStatus(ctx context.Context, key string) (interface{}, error)
|
|
}
|