
O TIKV é um banco de dados de valor-chave de código aberto, distribuído e transacional. Ao contrário de outros sistemas tradicionais de NOSQL, o TIKV não apenas fornece APIs clássicas de valor-chave, mas também APIs transacionais com conformidade com ácido. Construído em ferrugem e alimentado por jangada, o TIKV foi originalmente criado pelo PingCap para complementar o TIDB, um banco de dados HTAP distribuído compatível com o protocolo MySQL.
O design do TIKV ('Ti' significa Titanium) é inspirado por alguns ótimos sistemas distribuídos do Google, como BigTable, Spanner e Percolator, e algumas das últimas conquistas na academia nos últimos anos, como o algoritmo de consenso da balsa.
Se você estiver interessado em contribuir para o TIKV ou deseja construí -lo a partir da fonte, consulte Contribuindo.md.


O TIKV é um projeto graduado da Cloud Native Computing Foundation (CNCF). Se você é uma organização que deseja ajudar a moldar a evolução das tecnologias que são embaladas em contêineres, organizadas dinamicamente e orientadas a microsserviços, considere ingressar no CNCF. Para detalhes sobre quem está envolvido e como o TIKV desempenha um papel, leia o anúncio da CNCF.
Com a implementação do algoritmo de consenso da balsa no estado de ferrugem e consenso armazenado no RocksdB, o TIKV garante a consistência dos dados. O driver de colocação (PD), que é introduzido para implementar o afastamento automático, permite a migração automática de dados. O modelo de transação é semelhante ao Percolator do Google com algumas melhorias de desempenho. O TIKV também fornece isolamento de instantâneos (SI), isolamento de instantâneos com bloqueio (SQL: SELECT ... FOR UPDATE ) e leituras e gravações externamente consistentes em transações distribuídas.
O TIKV tem os seguintes recursos importantes:
Replicação geográfica
O TIKV usa a jangada e o driver de colocação para suportar a replicação geográfica.
Escalabilidade horizontal
Com PD e grupos de jangada cuidadosamente projetados, o TIKV se destaca na escalabilidade horizontal e pode facilmente escalar para mais de 100 TBS de dados.
Transações distribuídas consistentes
Semelhante à chave de chave do Google, o TIKV suporta transações distribuídas consistentes externamente.
Suporte ao coprocessador
Semelhante ao HBase, o TIKV implementa uma estrutura de coprocessador para oferecer suporte à computação distribuída.
Coopera com Tidb
Graças à otimização interna, o TIKV e o TIDB podem trabalhar juntos para ser uma solução de banco de dados atraente com alta escalabilidade horizontal, transações consistentes externamente, suporte para padrões de design RDBMS e NOSQL.
Veja governança.
Para obter instruções sobre implantação, configuração e manutenção do TIKV, consulte a documentação do TIKV em nosso site. Para mais detalhes sobre conceitos e desenhos por trás do TIKV, consulte Deep Dive Tikv.
Observação:
Migramos nossa documentação da página wiki do TIKV para o site oficial. A página do Wiki original é descontinuada. Se você tiver alguma sugestão ou problemas sobre documentação, ofereça seus comentários aqui.
Você pode visualizar a lista de adotantes do TIKV.

Quando um nó começa, os metadados do nó, armazenamento e região são registrados no PD. O status de cada região e loja é relatado regularmente ao PD.
O mais rápido de experimentar o TIKV com o TIDB é usar o Tiup, um gerenciador de componentes para o TIDB.
Você pode ver esta página para um tutorial passo a passo.
O TIKV é capaz de executar separadamente com PD, que é a implantação mínima necessária.
$ 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'Você pode ver esse manual de implantação de cluster semelhante à produção apresentada por @c4pt0r.
Consulte Contribuindo.md.
Se você quiser experimentar o cliente Go, consulte o cliente Go.
Uma auditoria de segurança de terceiros foi realizada pelo CURE53. Veja o relatório completo aqui.
Para relatar uma vulnerabilidade de segurança, envie um email para o TIKV-Security Group.
Consulte a segurança do processo e da política seguida pelo projeto TIKV.
A comunicação dentro da comunidade TIKV permanece pelo Código de Conduta do TIKV. Aqui está um trecho:
No interesse de promover um ambiente aberto e acolhedor, nós, como colaboradores e mantenedores, comprometendo a participação em nosso projeto e nossa comunidade uma experiência sem assédio para todos, independentemente da idade, tamanho corporal, deficiência, etnia, características sexuais, nacionalidade, identidade e expressão de gênero, ou nível de experiência, educação, status socioeconômico.
Junte -se à comunidade TIKV no Slack - inscreva -se e junte os canais em tópicos do TIKV que lhe interessam.
O TIKV está sob a licença Apache 2.0. Consulte o arquivo de licença para obter detalhes.