
TIKV는 오픈 소스, 배포 및 트랜잭션 키 값 데이터베이스입니다. 다른 전통적인 NOSQL 시스템과 달리 TIKV는 고전적인 키 가치 API뿐만 아니라 산성 준수와 함께 트랜잭션 API를 제공합니다. RAFT로 구축 된 TIKV는 원래 PingCap이 MySQL 프로토콜과 호환되는 분산 HTAP 데이터베이스 인 TIDB를 보완하기 위해 원래 제작했습니다.
TIKV의 디자인 ( 'TI'는 티타늄을 나타냅니다)은 BigTable, Spanner 및 Percolator와 같은 Google의 일부 분산 시스템과 최근 몇 년 동안 RAFT Consensus 알고리즘과 같은 Academia의 최신 성과에서 영감을 얻었습니다.
TIKV에 기여하거나 소스에서 구축하려면 Contributing.md를 참조하십시오.


TIKV는 CNCF (Cloud Native Computing Foundation)의 졸업 프로젝트입니다. 컨테이너 포장, 동적으로 예약 및 마이크로 서비스 지향 인 기술의 진화를 형성하는 데 도움이되는 조직이라면 CNCF에 가입하는 것을 고려하십시오. 누가 관련된 사람과 TIKV가 어떻게 역할을하는지에 대한 자세한 내용은 CNCF 발표를 읽으십시오.
TIKV는 ROCKSDB에 저장된 Rust and Consensus State에서 RAFT Consensus 알고리즘을 구현함으로써 데이터 일관성을 보장합니다. 자동 보안을 구현하기 위해 도입 된 배치 드라이버 (PD)는 자동 데이터 마이그레이션을 가능하게합니다. 트랜잭션 모델은 성능이 향상된 Google의 여과기와 유사합니다. TIKV는 SIC (Snapshot Ipplation), 잠금 장치 (SQL : SELECT ... FOR UPDATE )가있는 스냅 샷 분리 및 분산 트랜잭션에서 외부에서 일관된 읽기 및 쓰기를 제공합니다.
TIKV에는 다음과 같은 주요 기능이 있습니다.
지리 복제
TIKV는 RAFT와 배치 드라이버를 사용하여 지리 반복을 지원합니다.
수평 확장 성
PD 및 신중하게 설계된 래프트 그룹을 통해 TIKV는 수평 확장 성이 뛰어나며 100 TB의 데이터로 쉽게 확장 할 수 있습니다.
일관된 분산 거래
Google의 스패너와 마찬가지로 TIKV는 외부 일관된 분산 거래를 지원합니다.
공동 프로세서 지원
HBase와 유사하게 TIKV는 분산 컴퓨팅을 지원하기위한 공동 프로세서 프레임 워크를 구현합니다.
TIDB와 협력합니다
내부 최적화 덕분에 TIKV와 TIDB는 높은 수평 확장 성, 외부 일관된 트랜잭션, RDBMS 지원 및 NOSQL 설계 패턴을 갖춘 강력한 데이터베이스 솔루션으로 함께 작동 할 수 있습니다.
거버넌스를 참조하십시오.
TIKV의 배포, 구성 및 유지 관리에 대한 지침은 웹 사이트의 TIKV 문서를 참조하십시오. TIKV의 개념 및 디자인에 대한 자세한 내용은 Deep Dive TIKV를 참조하십시오.
메모:
우리는 TIKV의 Wiki 페이지에서 공식 웹 사이트로 문서를 마이그레이션했습니다. 원래 Wiki 페이지는 중단되었습니다. 문서에 관한 제안이나 문제가 있으면 여기에서 피드백을 제공하십시오.
TIKV 채택 자 목록을 볼 수 있습니다.

노드가 시작되면 노드, 저장 및 영역의 메타 데이터가 PD로 기록됩니다. 각 지역과 상점의 상태는 정기적으로 PD에보고됩니다.
TIDB에서 TIKV를 시도하는 가장 빠른 것은 TIDB의 구성 요소 관리자 인 Tiup을 사용하는 것입니다.
단계별 튜토리얼을 위해이 페이지를 볼 수 있습니다.
TIKV는 PD와 별도로 실행할 수 있으며, 이는 최소한의 배포가 필요한 최소 배포입니다.
$ export TIKV_VERSION=v7.5.0
$ export GOOS=darwin # only {darwin, linux} are supported
$ export GOARCH=amd64 # only {amd64, arm64} are supported
$ curl -O https://tiup-mirrors.pingcap.com/tikv- $TIKV_VERSION - $GOOS - $GOARCH .tar.gz
$ curl -O https://tiup-mirrors.pingcap.com/pd- $TIKV_VERSION - $GOOS - $GOARCH .tar.gz
$ tar -xzf tikv- $TIKV_VERSION - $GOOS - $GOARCH .tar.gz
$ tar -xzf pd- $TIKV_VERSION - $GOOS - $GOARCH .tar.gz$ ./pd-server --name=pd --data-dir=/tmp/pd/data --client-urls= " http://127.0.0.1:2379 " --peer-urls= " http://127.0.0.1:2380 " --initial-cluster= " pd=http://127.0.0.1:2380 " --log-file=/tmp/pd/log/pd.log$ ./tikv-server --pd-endpoints= " 127.0.0.1:2379 " --addr= " 127.0.0.1:20160 " --data-dir=/tmp/tikv/data --log-file=/tmp/tikv/log/tikv.log$ pip3 install -i https://test.pypi.org/simple/ tikv-client from tikv_client import RawClient
client = RawClient . connect ( "127.0.0.1:2379" )
client . put ( b'foo' , b'bar' )
print ( client . get ( b'foo' )) # b'bar'
client . put ( b'foo' , b'baz' )
print ( client . get ( b'foo' )) # b'baz'@c4pt0r가 제시 한이 생산 유사 클러스터 배포 매뉴얼을 볼 수 있습니다.
Contributing.md를 참조하십시오.
GO 클라이언트를 시도하려면 GO 클라이언트를 참조하십시오.
Cure53에 의해 타사 보안 감사를 수행했습니다. 여기에서 전체 보고서를 참조하십시오.
보안 취약성을보고하려면 TIKV-Security Group에 이메일을 보내주십시오.
프로세스 및 정책에 대한 보안 및 TIKV 프로젝트에 대한 보안을 참조하십시오.
TIKV 커뮤니티 내의 커뮤니케이션은 TIKV 행동 강령을 준수합니다. 여기에 발췌가 있습니다.
개방적이고 환영하는 환경을 조성하기 위해, 우리는 기고자와 유지 관리자로서 우리의 프로젝트에 참여하고 지역 사회에 참여할 것을 약속하고, 나이, 신체 규모, 장애, 민족, 성별 정체성, 표현, 경험 수준, 교육, 사회-경제적 지위, 국적, 개인적 외관, 종교 또는 성적 정체성 및 성적 정체성 및 오리엔테이션에 관계없이 모든 사람을위한 괴롭힘없는 경험을 맹세합니다.
Slack에서 TIKV 커뮤니티에 가입하십시오. 가입하고 관심있는 TIKV 주제에 대한 채널에 가입하십시오.
TIKV는 Apache 2.0 라이센스에 따라 있습니다. 자세한 내용은 라이센스 파일을 참조하십시오.