You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							50 lines
						
					
					
						
							1007 B
						
					
					
				
			
		
		
		
			
			
			
		
		
	
	
							50 lines
						
					
					
						
							1007 B
						
					
					
				| //go:build tikv | |
| // +build tikv | |
|  | |
| package tikv | |
| 
 | |
| import ( | |
| 	"context" | |
| 
 | |
| 	"github.com/seaweedfs/seaweedfs/weed/filer" | |
| 	"github.com/tikv/client-go/v2/txnkv" | |
| ) | |
| 
 | |
| func (store *TikvStore) KvPut(ctx context.Context, key []byte, value []byte) error { | |
| 	tw, err := store.getTxn(ctx) | |
| 	if err != nil { | |
| 		return err | |
| 	} | |
| 	return tw.RunInTxn(func(txn *txnkv.KVTxn) error { | |
| 		return txn.Set(key, value) | |
| 	}) | |
| } | |
| 
 | |
| func (store *TikvStore) KvGet(ctx context.Context, key []byte) ([]byte, error) { | |
| 	tw, err := store.getTxn(ctx) | |
| 	if err != nil { | |
| 		return nil, err | |
| 	} | |
| 	var data []byte = nil | |
| 	err = tw.RunInTxn(func(txn *txnkv.KVTxn) error { | |
| 		val, err := txn.Get(context.TODO(), key) | |
| 		if err == nil { | |
| 			data = val | |
| 		} | |
| 		return err | |
| 	}) | |
| 	if isNotExists(err) { | |
| 		return data, filer.ErrKvNotFound | |
| 	} | |
| 	return data, err | |
| } | |
| 
 | |
| func (store *TikvStore) KvDelete(ctx context.Context, key []byte) error { | |
| 	tw, err := store.getTxn(ctx) | |
| 	if err != nil { | |
| 		return err | |
| 	} | |
| 	return tw.RunInTxn(func(txn *txnkv.KVTxn) error { | |
| 		return txn.Delete(key) | |
| 	}) | |
| }
 |