
TIKV ist eine Open-Source-, Distributed- und Transactional-Schlüsselwertdatenbank. Im Gegensatz zu anderen herkömmlichen NOSQL-Systemen bietet TIKV nicht nur klassische Schlüsselwert-APIs, sondern auch transaktionale APIs mit Säurekonformität. TIKV wurde in Rost und von RAFT angetrieben und wurde ursprünglich von PingCap erstellt, um TIDB zu ergänzen, einer verteilten HTAP -Datenbank, die mit dem MySQL -Protokoll kompatibel ist.
Das Design von TIKV ('Ti' steht für Titanium) ist von einigen großartigen verteilten Systemen von Google inspiriert, wie Bigtable, Spanner und Percolator sowie einige der neuesten Errungenschaften in der Wissenschaft in den letzten Jahren, wie den RAFT Consensus -Algorithmus.
Wenn Sie daran interessiert sind, zu TIKV beizutragen oder es aus der Quelle aufbauen möchten, siehe beitragen.md.


TIKV ist ein abgestuftes Projekt der Cloud Native Computing Foundation (CNCF). Wenn Sie eine Organisation sind, die zur Gestaltung der Entwicklung von Technologien, die mit Behälter, dynamisch geplanten und mikroservices orientiert sind, helfen möchten, sollten Sie sich dem CNCF anschließen. Weitere Informationen darüber, wer beteiligt ist und wie TIKV eine Rolle spielt, lesen Sie die CNCF -Ankündigung.
Mit der Umsetzung des RAFT -Konsensalgorithmus in Rost und Konsenszustand, der in RocksDB gespeichert ist, garantiert TIKV die Datenkonsistenz. Die Platzierungsfahrer (PD), die zur Implementierung von automatischem Abbau eingeführt wird, ermöglicht eine automatische Datenmigration. Das Transaktionsmodell ähnelt dem Perkolator von Google mit einigen Leistungsverbesserungen. TIKV bietet auch Snapshot -Isolation (SI), Snapshot -Isolation mit Sperre (SQL: SELECT ... FOR UPDATE ) und extern konsistente Lesevorgänge und schreibt in verteilten Transaktionen.
TIKV hat die folgenden Schlüsselfunktionen:
Geo-Replikation
TIKV verwendet RAFT und den Platzierungsfahrer, um die Geo-Replikation zu unterstützen.
Horizontale Skalierbarkeit
Mit PD und sorgfältig gestalteten RAFT -Gruppen zeichnet sich TIKV in horizontaler Skalierbarkeit aus und kann leicht auf 100 EL Daten skalieren.
Konsistente verteilte Transaktionen
Ähnlich wie bei Googles Spanner unterstützt TIKV extern konsistente verteilte Transaktionen.
Coprozessorunterstützung
Ähnlich wie bei HBase implementiert TIKV ein Coprozessor -Framework, um verteiltes Computing zu unterstützen.
Kooperiert mit TIDB
Dank der internen Optimierung können TIKV und TIDB zu einer überzeugenden Datenbanklösung mit hoher horizontaler Skalierbarkeit, extern konsistenten Transaktionen, Unterstützung für RDBMs und NoSQL-Entwurfsmuster zusammenarbeiten.
Siehe Governance.
Anweisungen zur Bereitstellung, Konfiguration und Wartung von TIKV finden Sie in TIKV -Dokumentation auf unserer Website. Weitere Informationen zu Konzepten und Designs hinter TIKV finden Sie in Deep Dive Tikv.
Notiz:
Wir haben unsere Dokumentation von der Wiki -Seite des TIKV auf die offizielle Website migriert. Die ursprüngliche Wiki -Seite wird eingestellt. Wenn Sie Vorschläge oder Probleme bezüglich der Dokumentation haben, geben Sie hier Ihr Feedback an.
Sie können die Liste der TIKV -Anwender anzeigen.

Wenn ein Knoten beginnt, werden die Metadaten des Knotens, des Speichers und der Region in PD aufgezeichnet. Der Status jeder Region und jedes Geschäft wird regelmäßig an PD gemeldet.
Am schnellsten ist es, TIKV mit TIDB auszuprobieren, TIUP, einen Komponentenmanager für TIDB.
Sie können diese Seite für ein Schritt -für -Schritt -Tutorial sehen.
TIKV ist in der Lage, separat mit PD auszuführen, was die minimale Bereitstellung ist.
$ 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'Sie können dieses Handbuch für die von @C4PT0R vorgestellte Produktionsanleitung sehen.
Siehe Beitrag.md.
Wenn Sie den GO -Kunden ausprobieren möchten, sehen Sie sich den Go -Client an.
Eine Sicherheitsprüfung von Drittanbietern wurde von Cure53 durchgeführt. Siehe den vollständigen Bericht hier.
Um eine Sicherheitsanfälligkeit zu melden, senden Sie bitte eine E-Mail an die TIKV-Security Group.
Siehe Sicherheit für den Prozess und die Richtlinie, gefolgt vom TIKV -Projekt.
Die Kommunikation innerhalb der TIKV -Community bleibt durch den TIKV -Verhaltenskodex. Hier ist ein Auszug:
Um ein offenes und einladendes Umfeld zu fördern, verpflichten wir als Mitwirkende und Betreuer die Teilnahme an unserem Projekt und unserer Gemeinschaft zu einer Belästigungsfreier Erfahrung für jeden, unabhängig von Alter, Körpergröße, Behinderung, ethnischer Zugehörigkeit, Geschlechtsmerkmalen, Geschlechtsidentität und Ausdruck, Ausdruck, Bildung, Bildung, sozioökonomischer Status, Nationalität, Rasse, Religion, Religion, Religion, Religion, Religion, Ausdruck und Orientität und Orientierung.
Treten Sie der TIKV -Community bei Slack bei - Melden Sie sich an und schließen Sie sich Kanäle zu TIKV -Themen an, die Sie interessieren.
TIKV befindet sich unter der Lizenz von Apache 2.0. Weitere Informationen finden Sie in der Lizenzdatei.