Может ли Google Spanner быть реализован с помощью Raft вместо TrueTime?

#distributed-system #google-cloud-spanner #raft

#распределенная система #google-cloud-spanner #raft

Вопрос:

API TrueTime от Spanner утверждает, что он необходим для обеспечения высокой согласованности и очень высокой доступности. Интересно, можно ли достичь такого же уровня согласованности и доступности с помощью Raft (без атомных часов, что непрактично для большинства из нас)?

Идея состоит в том, чтобы реализовать каждое разделение (сегмент) с помощью кластера Raft. Протоколы записи Spanner и Raft практически одинаковы (координируются лидером и используют блокировки). В Spanner операции чтения обрабатываются репликами. Реплики связываются с лидером, чтобы убедиться, что его последняя временная метка фиксации обновлена так же, как и лидер, поэтому устаревшие данные не возвращаются. Raft тоже может это сделать, проверив, что индекс журнала последней фиксации подписчика совпадает с индексом лидера.

Я полагаю, что производительность будет аналогичной. Я что-нибудь пропустил?

Комментарии:

1. Не могли бы вы указать, что вы сделали?

2. Вы смотрели на CockroachDB ? Это звучит примерно так, как они делают (хотя и с некоторой синхронизацией по времени, чтобы ускорить некоторые вещи).