29 lines
		
	
	
		
			773 B
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			29 lines
		
	
	
		
			773 B
		
	
	
	
		
			Go
		
	
	
	
package themis
 | 
						|
 | 
						|
import (
 | 
						|
	"errors"
 | 
						|
 | 
						|
	"github.com/pingcap/go-hbase"
 | 
						|
)
 | 
						|
 | 
						|
var (
 | 
						|
	ErrLockNotExpired  = errors.New("lock not expired")
 | 
						|
	ErrCleanLockFailed = errors.New("clean lock failed")
 | 
						|
	ErrWrongRegion     = errors.New("wrong region, please retry")
 | 
						|
	ErrTooManyRows     = errors.New("too many rows in one transaction")
 | 
						|
	ErrRetryable       = errors.New("try again later")
 | 
						|
)
 | 
						|
 | 
						|
type Txn interface {
 | 
						|
	Get(t string, get *hbase.Get) (*hbase.ResultRow, error)
 | 
						|
	Gets(t string, gets []*hbase.Get) ([]*hbase.ResultRow, error)
 | 
						|
	LockRow(t string, row []byte) error
 | 
						|
	Put(t string, put *hbase.Put)
 | 
						|
	Delete(t string, del *hbase.Delete) error
 | 
						|
	GetScanner(tbl []byte, startKey, endKey []byte, batchSize int) *ThemisScanner
 | 
						|
	Release()
 | 
						|
	Commit() error
 | 
						|
	GetStartTS() uint64
 | 
						|
	GetCommitTS() uint64
 | 
						|
}
 |