#distributed-system #google-cloud-spanner #raft
#распределенная система #google-cloud-spanner #raft
Вопрос:
API TrueTime от Spanner утверждает, что он необходим для обеспечения высокой согласованности и очень высокой доступности. Интересно, можно ли достичь такого же уровня согласованности и доступности с помощью Raft (без атомных часов, что непрактично для большинства из нас)?
Идея состоит в том, чтобы реализовать каждое разделение (сегмент) с помощью кластера Raft. Протоколы записи Spanner и Raft практически одинаковы (координируются лидером и используют блокировки). В Spanner операции чтения обрабатываются репликами. Реплики связываются с лидером, чтобы убедиться, что его последняя временная метка фиксации обновлена так же, как и лидер, поэтому устаревшие данные не возвращаются. Raft тоже может это сделать, проверив, что индекс журнала последней фиксации подписчика совпадает с индексом лидера.
Я полагаю, что производительность будет аналогичной. Я что-нибудь пропустил?
Комментарии:
1. Не могли бы вы указать, что вы сделали?
2. Вы смотрели на CockroachDB ? Это звучит примерно так, как они делают (хотя и с некоторой синхронизацией по времени, чтобы ускорить некоторые вещи).