Всегда ли добавляются метки времени фиксации в индексе Google Spanner? - PullRequest
0 голосов
/ 05 декабря 2018

Магия Спаннера, кажется, основана на идее глобальных мононотонно возрастающих часов, как описано в https://cloud.google.com/spanner/docs/true-time-external-consistency.. Мне интересно понять, как конкретно это относится к индексам.

Если яиметь таблицу

| Stream Id | Category | Timestamp |

… где метка времени создается как метка времени фиксации и с вторичным индексом (Category, Timestamp DESC):

Возможно ли, что кто-то запрашивает этот индекссм. временную метку, вставленную «не по порядку», например, возможно ли, что индекс запрашивается, возвращая временные метки с миллисекундами, равными 100, 110, 120, но затем при повторном запросе старшее значение появляется, например, 100, 110, 115, 120.

Кроме того, если индекс читается один раз и содержит отметку времени 100 для самой последней записи, возможно ли, чтобы позже была добавлена ​​другая запись с точной отметкой времени 100?

1 Ответ

0 голосов
/ 06 декабря 2018

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

Не гарантируется, что значения отметок времени фиксации не будут уникальными.Транзакции, которые записывают в непересекающиеся наборы полей, могут иметь одну и ту же метку времени.Транзакции, которые записывают в перекрывающиеся наборы полей, имеют уникальные метки времени.

Для получения дополнительной информации, пожалуйста, обратитесь к следующей документации: https://cloud.google.com/spanner/docs/commit-timestamp

https://cloud.google.com/spanner/docs/schema-design

...