This repository is a fork of TiDB extended with an implementation of structure guided query optimization. The new optimization option for acyclic and nearly acyclic conjunctive queries uses query decompositions and Yannakakis' algorithm in order to define a good join order and eliminate tuples not contributing to the end result of the query, before the actual join.
TiDB is a go project, therefore requiring a valid go installation. We used go version 1.20.
Query decompositions are created through the go library BalancedGo.
To run or debug the DBMS, follow the instructions in the original README file.
OR
See the Get Started chapter of TiDB Development Guide.
- Build the DBMS:
make
- Package the binary (from the bin folder):
tar -cvzf out.tar.gz ./tidb-server
- Patch all TiDB instances in the database cluster:
tiup cluster patch <cluster_name> <path_to_packagedBinary> -R tidb
Information regarding conducted evaluations are contained in the following repository: StructureGuidedTiDBEvaluation