Goals
- Improve performance of single Tephra Transaction Server
- Scale Tephra Transaction Manager
- Replication of Write-A-Head Logs to multiple Transaction Manager
- Transaction Server Isolation
High Level Requirements
Invalid List Pruning
- Automatic pruning of invalid transaction list
Here is the plan for Tephra -
- Automatic invalid list pruning
- We are working on major compaction based pruning.
- Stripe compaction based pruning (will be prioritized after performance improvements are done).
- Performance improvements
- Reduce lock granularity during conflict detection
- Read-only transactions
- Improve group commit efficiency
- Hierarchical conflict detection
- Transmit only latest snapshot of Invalid list
- Please refer to the JIRA for more details - https://issues.apache.org/jira/browse/TEPHRA-189
- Replication
- Replicate transaction state across cluster
- Scaling of transaction manager
- Partitioned transaction managers to share load in a cluster
In addition, Alan wanted the ability to run one transaction manager per namespace for resource isolation. This is without cross namespace data access. This can be done as a CDAP change itself.