
TIKV es una base de datos de valor de código abierto, distribuido y transaccional. A diferencia de otros sistemas NoSQL tradicionales, TIKV no solo proporciona API clásicas de valor clave, sino también API transaccionales con cumplimiento de ácido. PingCap, creado en óxido y alimentado por Raft, TIKV fue creado originalmente por PingCap para complementar TIDB, una base de datos HTAP distribuida compatible con el protocolo MySQL.
El diseño de TIKV ('Ti' significa titanio) está inspirado en algunos grandes sistemas distribuidos de Google, como Bigtable, Sporter y Percolator, y algunos de los últimos logros en la academia en los últimos años, como el algoritmo de consenso de la bala.
Si está interesado en contribuir a TIKV, o desea construirlo desde la fuente, consulte Contriping.md.


TIKV es un proyecto graduado de la Cloud Native Computing Foundation (CNCF). Si usted es una organización que quiere ayudar a dar forma a la evolución de las tecnologías que están llenas de contenedores, programados dinámicamente y orientados a los microservicios, considere unirse al CNCF. Para obtener detalles sobre quién está involucrado y cómo TIKV juega un papel, lea el anuncio de CNCF.
Con la implementación del algoritmo de consenso de RAFT en el óxido y el estado de consenso almacenado en RockSDB, TIKV garantiza la consistencia de los datos. El controlador de colocación (PD), que se introduce para implementar el retraso automático, permite la migración automática de datos. El modelo de transacción es similar al percolador de Google con algunas mejoras de rendimiento. TIKV también proporciona aislamiento de instantáneas (SI), aislamiento de instantáneas con bloqueo (SQL: SELECT ... FOR UPDATE ) y lecturas y escrituras externamente consistentes en transacciones distribuidas.
TIKV tiene las siguientes características clave:
Geo replicación
TIKV usa balsa y el controlador de colocación para admitir la replicación geográfica.
Escalabilidad horizontal
Con PD y grupos de balsa cuidadosamente diseñados, TIKV se destaca en la escalabilidad horizontal y puede escalar fácilmente a más de 100 TBS de datos.
Transacciones distribuidas consistentes
Similar a la llave de Google, TIKV admite transacciones distribuidas externamente consistentes.
Soporte de coprocesador
Similar a HBASE, TIKV implementa un marco de coprocesador para admitir la computación distribuida.
Coopera con TIDB
Gracias a la optimización interna, TIKV y TIDB pueden trabajar juntos para ser una solución de base de datos convincente con alta escalabilidad horizontal, transacciones externamente consistentes, soporte para RDBMS y patrones de diseño NoSQL.
Ver gobernanza.
Para obtener instrucciones sobre implementación, configuración y mantenimiento de TIKV, consulte la documentación de TIKV en nuestro sitio web. Para obtener más detalles sobre conceptos y diseños detrás de TIKV, vea Deep Dive Tikv.
Nota:
Hemos migrado nuestra documentación desde la página Wiki de TIKV al sitio web oficial. La página Wiki original se suspende. Si tiene alguna sugerencia o problemas relacionados con la documentación, ofrezca sus comentarios aquí.
Puede ver la lista de adoptantes de TIKV.

Cuando se inicia un nodo, los metadatos del nodo, la tienda y la región se registran en PD. Se informa que el estado de cada región y la tienda PD regularmente.
Lo más rápido para probar TIKV con TIDB es usar TIUP, un administrador de componentes para TIDB.
Puede ver esta página para un tutorial paso a paso.
TIKV puede ejecutarse por separado con PD, que es la implementación mínima requerida.
$ 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'Puede ver este manual de implementación de clúster de producción presentado por @C4PT0R.
Ver contribuyente. MD.
Si desea probar el cliente GO, consulte el cliente Go.
Cure53 realizó una auditoría de seguridad de terceros. Vea el informe completo aquí.
Para informar una vulnerabilidad de seguridad, envíe un correo electrónico al grupo TIKV-Security.
Vea la seguridad del proceso y la política seguido del proyecto TIKV.
La comunicación dentro de la comunidad TIKV cumple con el código de conducta TIKV. Aquí hay un extracto:
En aras de fomentar un entorno abierto y acogedor, nosotros, como contribuyentes y mantenedores, nos comprometemos a participar en nuestro proyecto y nuestra comunidad una experiencia sin acoso para todos, independientemente de la edad, el tamaño del cuerpo, la discapacidad, la etnia, las características sexuales, la identidad y expresión de género, el nivel de experiencia, la educación, el estado socioeconómico, la nacionalidad, la apariencia personal, la raza, la religión o la identidad sexual y la orientación.
Únase a la comunidad TIKV en Slack: regístrese y únase a canales en temas de TIKV que le interesen.
TIKV está bajo la licencia Apache 2.0. Consulte el archivo de licencia para obtener más detalles.