
TIKV est une base de données de valeur clé open source, distribuée et transactionnelle. Contrairement à d'autres systèmes NOSQL traditionnels, TIKV fournit non seulement des API de valeur clé classique, mais également des API transactionnelles avec la conformité acide. Construit en rouille et alimenté par radeau, TIKV a été créé à l'origine par PingCap pour compléter TIDB, une base de données HTAP distribuée compatible avec le protocole MySQL.
La conception de TIKV ('TI' signifie Titanium) s'inspire de certains grands systèmes distribués de Google, tels que BigTable, Spanner et Percolateur, et certaines des dernières réalisations dans le monde universitaire ces dernières années, telles que l'algorithme de consensus RAFT.
Si vous souhaitez contribuer à TIKV ou si vous souhaitez le construire à partir de la source, voir contribution.md.


TIKV est un projet gradué de la Cloud Native Computing Foundation (CNCF). Si vous êtes une organisation qui veut aider à façonner l'évolution des technologies qui sont emballées en conteneurs, à la programmation dynamiquement et axées sur les microservices, envisagez de rejoindre le CNCF. Pour plus de détails sur qui est impliqué et comment TIKV joue un rôle, lisez l'annonce du CNCF.
Avec la mise en œuvre de l'algorithme de consensus RAFT dans la rouille et l'état consensuel stocké dans ROCKSDB, TIKV garantit la cohérence des données. Le pilote de placement (PD), qui est introduit pour implémenter l'automobile, permet la migration automatique des données. Le modèle de transaction est similaire au percolateur de Google avec certaines améliorations des performances. TIKV fournit également des instantanés Isolation (SI), l'isolement instantané avec Lock (SQL: SELECT ... FOR UPDATE ) et les lectures et écrit cohérentes en externe dans des transactions distribuées.
TIKV a les caractéristiques clés suivantes:
Géo-réplication
TIKV utilise le radeau et le pilote de placement pour prendre en charge la géo-réplication.
Évolutivité horizontale
Avec une PD et des groupes de radeaux soigneusement conçus, le TIKV excelle dans l'évolutivité horizontale et peut facilement évoluer à plus de 100 cuillères à soupe de données.
Transactions distribuées cohérentes
Semblable à Spanner de Google, TIKV prend en charge les transactions distribuées en externe.
Support de coprocesseur
Semblable à HBase, TIKV implémente un cadre de coprocesseur pour prendre en charge l'informatique distribuée.
Coopère avec TIDB
Grâce à l'optimisation interne, TIKV et TIDB peuvent travailler ensemble pour être une solution de base de données convaincante avec une évolutivité horizontale élevée, des transactions cohérentes à l'extérieur, une prise en charge des SGBDR et des modèles de conception nosql.
Voir la gouvernance.
Pour des instructions sur le déploiement, la configuration et la maintenance de TIKV, voir la documentation TIKV sur notre site Web. Pour plus de détails sur les concepts et les conceptions derrière TIKV, voir Deep Dive TIKV.
Note:
Nous avons migré notre documentation de la page Wiki du TIKV vers le site officiel. La page Wiki originale est interrompue. Si vous avez des suggestions ou des problèmes concernant la documentation, offrez vos commentaires ici.
Vous pouvez afficher la liste des adoptants TIKV.

Lorsqu'un nœud démarre, les métadonnées du nœud, du magasin et de la région sont enregistrées en PD. Le statut de chaque région et de chaque magasin serait régulièrement PD.
Le plus rapide à essayer TIKV avec TIDB est d'utiliser TIUP, un gestionnaire de composants pour TIDB.
Vous pouvez voir cette page pour un tutoriel étape par étape.
TIKV est en mesure d'exécuter séparément avec PD, qui est le déploiement minimal requis.
$ 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'Vous pouvez voir ce manuel de déploiement de grappes de type production présenté par @ C4PT0R.
Voir contribution.md.
Si vous souhaitez essayer le client Go, voir Go Client.
Un audit de sécurité tiers a été effectué par Cure53. Voir le rapport complet ici.
Pour signaler une vulnérabilité de sécurité, veuillez envoyer un e-mail à TIKV-Security Group.
Voir la sécurité du processus et de la politique suivie du projet TIKV.
La communication au sein de la communauté TIKV respecte le code de conduite TIKV. Voici un extrait:
Dans l'intérêt de favoriser un environnement ouvert et accueillant, nous, en tant que contributeurs et maintenteurs, nous engageons à faire participer notre projet et notre communauté une expérience sans harcèlement pour tout le monde, quel que soit leur âge, leur taille corporelle, leur handicap, leur origine ethnique, ses caractéristiques sexuelles, l'identité de genre et l'expression, le niveau d'expérience, de l'éducation, du statut socio-économique, de la nationalité, de la race, de la race, de la religion ou de l'identité sexuelle et de l'orientation.
Rejoignez la communauté TIKV sur Slack - Inscrivez-vous et rejoignez les canaux sur des sujets TIKV qui vous intéressent.
TIKV est sous la licence Apache 2.0. Voir le fichier de licence pour plus de détails.