Skip to content
TiDB is an open source distributed HTAP database compatible with the MySQL protocol
Go Other
  1. Go 99.8%
  2. Other 0.2%
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github .github: add CODEOWNERS for expression to request PR reviewers… (#12534) Oct 8, 2019
LICENSES *: Tiny cleanup (#1145) Apr 23, 2016
bindinfo planner: support a hint to read from tiflash in planner (#12479) Oct 11, 2019
cmd planner: stream agg should not be pushed to double read (#12443) Oct 12, 2019
config log: support reloading tidb-query-max-log-len after modified (#12491) Oct 12, 2019
ddl ddl: implement SQL functions allowed / blocked rules in genera… (#12251) Oct 10, 2019
distsql *: add a flag EncodeType for response to use Arrow/Default format to … Oct 9, 2019
docs docs/design: move pictures to imgs && other tiny refinement (#10438) Jun 4, 2019
domain domain: move infoSyncer to util to avoid cycle import (#12544) Oct 8, 2019
executor executor: do not return first row until the frame is completed. (#12480) Oct 12, 2019
expression expression: implement vectorized evaluation for 'builtinIntAnyValueSi… Oct 12, 2019
hooks hooks: add pre_commit comment (#9308) Apr 30, 2019
infoschema infoschema: handle partition table for `tables` (#12591) Oct 11, 2019
kv *: calculate GC safe point based on global min start timestamp (#12223) Sep 30, 2019
lock *: add admin cleanup table lock syntax support (#10423) Jul 10, 2019
meta util/admin: fix the error of "invalid list index" when cancel ddl jobs ( Oct 13, 2019
metrics *: add a new way to calculate TPS (#12411) Sep 30, 2019
owner *: upgrade grpc to 1.23.0 (#12055) Sep 12, 2019
planner planner: stream agg should not be pushed to double read (#12443) Oct 12, 2019
plugin *: Optimize struct memory usage by adjust field order (#11629) Aug 13, 2019
privilege planner/core: fix point-get db privilege check (#12268) Sep 23, 2019
server executor: error processing refactor for load data (#12465) Oct 11, 2019
session executor: error processing refactor for load data (#12465) Oct 11, 2019
sessionctx executor,sessionctx: add correctness for system variables (#12311) Oct 8, 2019
statistics planner: support a hint to read from tiflash in planner (#12479) Oct 11, 2019
store mocktikv: fix data race in mocktikv split (#12414) Oct 11, 2019
structure *: trace the execution of the insert operation (#11667) Aug 9, 2019
table dml : Multiple rows insert in a statement should have consecutive aut… Oct 10, 2019
tablecodec expression: add builtin function `tidb_decode_key()` (#12193) Sep 24, 2019
tidb-server log: support reloading tidb-query-max-log-len after modified (#12491) Oct 12, 2019
tools/check build: make errcheck works correctly (#12381) Sep 26, 2019
types types: reset the `MyDecimal` result buffer before putting arithmetic … Oct 11, 2019
util util/admin: fix the error of "invalid list index" when cancel ddl jobs ( Oct 13, 2019
.codecov.yml expression: go generate vectorized addtime functions (#12224) Sep 26, 2019
.dockerignore Dockerfile: Fix error while running `make server` (#1361) Jun 30, 2016
.editorconfig .editorconfig: add .editorconfig file, make tab_size = 4 (#2779) Mar 5, 2017
.gitattributes *: make sure parser.y has LF line endings on checkout (#7449) Aug 22, 2018
.gitignore *: fix some lints produced by golangci-lint (#8999) Jan 16, 2019
CHANGELOG.md CHANGELOG: cherry-pick v3.0.1/2/3/4 release notes (#12539) Oct 8, 2019
CODE_OF_CONDUCT.md CODE_OF_CONDUCT: Add Code of Conduct" (#12010) Sep 3, 2019
CONTRIBUTING.md *: reference the CONTRIBUTING.md in the community repo (#12069) Sep 9, 2019
CONTRIBUTORS.md *: replace CONTRIBUTORS with a link to pingcap/community (#11791) Aug 21, 2019
Dockerfile docker: cache vendor to speed up docker build (#10296) May 22, 2019
Jenkinsfile Jenkinsfile: init adding Jenkinsfile (#3249) May 15, 2017
LICENSE *: Tiny cleanup (#1145) Apr 23, 2016
Makefile Makefile: add `-trim-path` flag for build command (#12639) Oct 12, 2019
README.md README.md: add a `Getting Help` section (#12156) Sep 11, 2019
checklist.md Format checklist.md (#3382) Jun 5, 2017
checkout-pr-branch.sh *: checkout to that branch before pulling data from upstream (#5543) Jan 4, 2018
circle.yml bump the Go compiler version to 1.13 for circle CI (#12557) Oct 9, 2019
code_review_guide.md doc: add code review guide. (#3166) Apr 28, 2017
gitcookie.sh server: Add metrics (#1729) Sep 17, 2016
go.mod *: support where in admin show ddl jobs statement (#12484) Oct 11, 2019
go.sum *: support where in admin show ddl jobs statement (#12484) Oct 11, 2019

README.md

LICENSE Language Build Status Go Report Card GitHub release GitHub release date CircleCI Status Coverage Status GoDoc

What is TiDB?

TiDB ("Ti" stands for Titanium) is an open-source NewSQL database that supports Hybrid Transactional and Analytical Processing (HTAP) workloads. It is MySQL compatible and features horizontal scalability, strong consistency, and high availability.

  • Horizontal Scalability

    TiDB expands both SQL processing and storage by simply adding new nodes. This makes infrastructure capacity planning both easier and more cost-effective than traditional relational databases which only scale vertically.

  • MySQL Compatible Syntax

    TiDB acts like it is a MySQL 5.7 server to your applications. You can continue to use all of the existing MySQL client libraries, and in many cases, you will not need to change a single line of code in your application. Because TiDB is built from scratch, not a MySQL fork, please check out the list of known compatibility differences.

  • Distributed Transactions with Strong Consistency

    TiDB internally shards table into small range-based chunks that we refer to as "regions". Each region defaults to approximately 100MiB in size, and TiDB uses a Two-phase commit internally to ensure that regions are maintained in a transactionally consistent way.

  • Cloud Native

    TiDB is designed to work in the cloud -- public, private, or hybrid -- making deployment, provisioning, operations, and maintenance simple.

    The storage layer of TiDB, called TiKV, became a Cloud Native Computing Foundation member project in 2018. The architecture of the TiDB platform also allows SQL processing and storage to be scaled independently of each other in a very cloud-friendly manner.

  • Minimize ETL

    TiDB is designed to support both transaction processing (OLTP) and analytical processing (OLAP) workloads. This means that while you may have traditionally transacted on MySQL and then Extracted, Transformed and Loaded (ETL) data into a column store for analytical processing, this step is no longer required.

  • High Availability

    TiDB uses the Raft consensus algorithm to ensure that data is highly available and safely replicated throughout storage in Raft groups. In the event of failure, a Raft group will automatically elect a new leader for the failed member, and self-heal the TiDB cluster without any required manual intervention. Failure and self-healing operations are also transparent to applications.

For more details and latest updates, see official TiDB blog.

Adopters

View the current list of in-production TiDB adopters here.

Roadmap

Read the Roadmap.

Quick start

Read the Quick Start Guide, which includes deployment methods using Ansible, Docker, and Kubernetes.

Getting Help

Documentation

Architecture

architecture

Contributing

Contributions are welcomed and greatly appreciated. See CONTRIBUTING.md for details on submitting patches and the contribution workflow.

License

TiDB is under the Apache 2.0 license. See the LICENSE file for details.

Acknowledgments

You can’t perform that action at this time.