# themis
**Repository Path**: mirrors_pingcap/themis
## Basic Information
- **Project Name**: themis
- **Description**: Themis provides cross-row/cross-table transaction on HBase based on google's percolator.
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2020-08-19
- **Last Updated**: 2025-10-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Themis
[](https://travis-ci.org/pingcap/themis)
## Introduction
Themis provides cross-row/cross-table transaction on HBase based on [google's Percolator](http://research.google.com/pubs/pub36726.html).
pingcap/themis is forked from [XiaoMi/themis](https://github.com/XiaoMi/themis), with some optimizations for SQL layer.
1. Batch prewrite/commit secondary rows.
2. Asynchronous clean secondary locks (commit secondary rows in background).
3. Add batch get APIs.
4. Add golang client: [pingcap/go-themis](https://github.com/pingcap/go-themis)
depends on hbase >= 0.98.5 with hadoop.version=2.0.0-alpha.
Tested on Oracle JDK7
## Usage
### Build
- Get the latest source code of Themis:
```
git clone https://github.com/pingcap/themis.git
```
- Build Themis
```
cd themis
mvn clean package -DskipTests
```
### Deploy
- Copy themis coprocessor to $HBASE_ROOT/lib/
```
cp themis-coprocessor/target/themis-coprocessor-1.0-SNAPSHOT-jar-with-dependencies.jar $HBASE_ROOT/lib
```
- Add configurations for themis coprocessor in hbase-site.xml:
```
hbase.coprocessor.user.region.classes
org.apache.hadoop.hbase.themis.cp.ThemisEndpoint,org.apache.hadoop.hbase.themis.cp.ThemisScanObserver,org.apache.hadoop.hbase.regionserver.ThemisRegionObserver
hbase.coprocessor.master.classes
org.apache.hadoop.hbase.master.ThemisMasterObserver
```
- Restart HBase.
- Enjoy it.
## Future Works
1. Buffer recent committed primary locks in region server for fast conflict checking.
2. SQL pushdown.