Skip to content

Source code associated with Master Thesis "Integration of Structure Guided Query Optimization into NewSQL Databases"

License

Notifications You must be signed in to change notification settings

MichaelMartinek/StructureGuidedTiDB

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Structure Guided TiDB

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.

Dependencies

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.

Running the DBMS

To run or debug the DBMS, follow the instructions in the original README file.

OR

See the Get Started chapter of TiDB Development Guide.

Patching a Cluster with TiUP

  • 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

Evaluations

Information regarding conducted evaluations are contained in the following repository: StructureGuidedTiDBEvaluation