2016-02-26 3 views
0

Мне было интересно, как Bigtable Google остается настойчивым. Когда приходит операция записи, сервер планшета обновляет «hashmap» в памяти и записывается в файл журнала. Таким образом, если сервер планшета умирает, новый сервер планшета может считывать все последние операции и быть «равным» для мертвого планшета.Выполняет ли Bigtable операции записи в журнал для каждой отдельной операции или в партиях?

Это имеет смысл, но не замедляет ли запись каждой операции на сервер журнала, а не в пакетном режиме (потому что она записана на диск)?

ответ

0

Давайте рассмотрим каждый из этих вопросов по очереди.

Выполняет ли Bigtable операции записи в журнал для каждой отдельной операции или в партиях?

Bigtable записывает каждую операцию в постоянный журнал, когда он входит, а не в пакетном режиме. Другими словами, он является синхронным, а не асинхронным: к моменту, когда сервер отвечает клиенту, данные уже были записаны в журнал (который долговечен и реплицирован), а не только в память.

Если система хранения данных только записывает в память и записывает в пакетную запись, она потеряет данные, которые были только в памяти, если сервер должен был сбой после принятия некоторых операций записи, но до того, как он поместил их в журнал ,

Это имеет смысл, но не замедляет ли запись каждой операции на сервер журнала, а не в пакетном режиме (потому что она записана на диск)?

Распределенная файловая система за Bigtable (ранее Google File System, теперь Colossus) гораздо быстрее, чем обычные файловые системы, даже если он распространяется и каждая операция записи дублируется.

На тестах с использованием YCSB, Google Cloud Bigtable продемонстрировал single-digit millisecond latency на обоих читает и пишет даже на хвост:

Google Cloud Bigtable performance: throughput and latency

 Смежные вопросы

  • Нет связанных вопросов^_^