Какие системы хранения данных допускают запросы о состоянии системы в прошлом? - PullRequest
4 голосов
/ 23 мая 2011

Я разрабатываю систему, в которой важны такие вопросы, как «какова сумма всех записей, соответствующих определенным критериям, в определенное время».

Управление многозначным параллелизмом (MVCC) похоже на этот путь, так как оно сохраняет контрольный журнал навсегда.

Однако было бы неплохо, если бы хранилище данных могло справиться с этим для меня, а не связывать его вместе с другими функциями базы данных. Теперь Oracle и CouchDB другие движки баз данных используют MVCC, но только за кулисами. Они используют его для разрешения конфликтов или для решения того, что делать, когда длительный запрос встречает недавно обновленные данные. Но я не знаю ни одной системы, которая позволила бы вам явно сказать «в состоянии системы 17:00 20 января 2009 года, что возвращает этот запрос». Так есть ли такие системы там? В идеале с открытым исходным кодом?

Ответы [ 2 ]

1 голос
/ 23 мая 2011

Насколько я знаю, MVCC не гарантирует длительность более ранних версий строк. Его цель - контроль параллелизма транзакций; когда все транзакции для строки 'x' были зафиксированы, MVCC не нужно сохранять более ранние версии этой строки.

Вы думаете о Временные базы данных . Старая книга Snodgrass Разработка ориентированных на время приложений баз данных на SQL стоит того, чтобы ее просмотреть, особенно сейчас, когда она доступна в формате PDF. Если бы мне снова пришлось создавать временную базу данных, я бы также прочитал Временные данные и реляционная модель и все остальное, касающееся 6NF. (Где '6NF' <> 'DKNF'.)

1 голос
/ 23 мая 2011

Взгляните на ретроспективные запросы с Oracle.

...