
TIKV-это база данных с открытым исходным кодом, распределенной и транзакционной базы данных. В отличие от других традиционных систем NOSQL, TIKV обеспечивает не только классические API-интерфейсы ключевых значений, но и транзакционные API с соблюдением кислоты. Встроенный в ржавчину и питанный на RAFT, TIKV был первоначально создан Pingcap для дополнения TIDB, распределенной базы данных HTAP, совместимой с протоколом MySQL.
Дизайн TIKV («Ti» обозначает титан) вдохновлен некоторыми великолепными распределенными системами от Google, такими как BigTable, Spanner и Percolator, а также некоторые из последних достижений в академиях в последние годы, такие как алгоритм консенсуса RAFT.
Если вы заинтересованы в участии в TIKV или хотите построить его из Source, см. Appling.md.


TIKV является градуированным проектом Облачного вычислительного фонда (CNCF). Если вы являетесь организацией, которая хочет помочь сформировать эволюцию технологий, которые оснащены контейнерами, динамически запланированными и ориентированными на микросервисы, рассмотрите возможность присоединения к CNCF. Для получения подробной информации о том, кто участвует и о том, как Tikv играет роль, прочитайте объявление CNCF.
С внедрением алгоритма консенсуса RAFT в Rust и Consensus State, хранящемся в RockSDB, TIKV гарантирует последовательность данных. Драйвер размещения (PD), который вводится для реализации автоматического сбоя, позволяет автоматическую миграцию данных. Модель транзакции аналогична Percolator Google с некоторыми улучшениями производительности. Tikv также обеспечивает изоляцию снимков (SI), изоляцию снимка с помощью блокировки (SQL: SELECT ... FOR UPDATE ), а также последовательные чтения и записи в распределенных транзакциях.
Tikv имеет следующие ключевые функции:
Георепликация
Tikv использует RAFT и драйвер размещения для поддержки георепликации.
Горизонтальная масштабируемость
С помощью PD и тщательно разработанных групп RAFT TIKV превосходит горизонтальную масштабируемость и может легко масштабироваться до 100+ столовых столовых данных.
Последовательные распределенные транзакции
Подобно гарантию Google, TIKV поддерживает извне согласованные распределенные транзакции.
Поддержка совместного
Подобно HBASE, TIKV реализует копрецессорную структуру для поддержки распределенных вычислений.
Сотрудничает с Tidb
Благодаря внутренней оптимизации, TIKV и TIDB могут работать вместе, чтобы быть убедительным решением базы данных с высокой горизонтальной масштабируемостью, внешними транзакциями, поддержкой RDBMS и шаблонами конструкции NOSQL.
См. Управление.
Инструкции по развертыванию, конфигурации и обслуживанию TIKV см. В нашем веб -сайте документацию TIKV. Для получения более подробной информации о концепциях и дизайне, стоящих за Tikv, см. Deep Dive Tikv.
Примечание:
Мы перенесли нашу документацию со страницы вики Tikv на официальный сайт. Оригинальная страница вики прекращена. Если у вас есть какие -либо предложения или проблемы, касающиеся документации, предложите обратную связь здесь.
Вы можете просмотреть список пользователей TIKV.

Когда начинается узел, метаданные узла, хранилища и региона записываются в PD. Статус каждого региона и магазина регулярно сообщается.
Самым быстрым, чтобы попробовать TIKV с TIDB, является использование TIUP, диспетчера компонентов для TIDB.
Вы можете увидеть эту страницу для пошагового учебника.
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.
См. Appling.md.
Если вы хотите попробовать клиент GO, посмотрите на клиент GO.
Сторонний аудит безопасности был выполнен Cure53. Смотрите полный отчет здесь.
Чтобы сообщить об уязвимости безопасности, отправьте электронное письмо в группу TIKV-Security.
См. Безопасность для процесса и политики, за которым следует проект TIKV.
Коммуникация в сообществе TIKV соблюдает кодекс поведения TIKV. Вот выдержка:
В интересах развития открытой и гостеприимной среды мы, как участники и поддерживающие, обещаем участвовать в нашем проекте и нашем сообществе опыта без преследования для всех, независимо от возраста, размера тела, инвалидности, этнической принадлежности, половой характеристики, гендерной идентичности и выражения, уровня опыта, образования, социально-экономического статуса, национальности, личной внешности, расы, религии или сексуальной идентичности и ориентации.
Присоединяйтесь к сообществу TIKV на Slack - зарегистрируйтесь и присоединяйтесь к каналам по темам TIKV, которые вас интересуют.
TIKV находится под лицензией Apache 2.0. Смотрите файл лицензии для получения подробной информации.