Чем отличается База данных как Значение в Datomic от BiTemporal Indexs в Кассандре?
База данных Datomic имеет концепцию " База данных как ценность ". Это означает, что вы можете получить ссылку на базу данных в определенный момент времени и запросить ее.
Похоже, что би-временные индексы в Кассандре делают почти то же самое.
У меня вопрос: что отличает базу данных как значение в двухатомных и двухэлементных индексах в Кассандре?
1 ответ
Решение
Эти две концепции очень похожи в том, что они позволяют запрашивать базу данных в определенный момент времени. Есть несколько моментов, которые их разделяют:
- Временный запрос встроен в Datomic с нуля, тогда как это плагин для Cassandra. Кроме того, с Cassandra вам придется самостоятельно поддерживать временные поля - плагин из этой презентации помогает только в запросах, а не во вставках или обновлениях.
"База данных как значение" выходит за рамки запроса на определенный момент времени. Например:
- Вы можете получить значение базы данных в промежуточном программном обеспечении веб-запроса и передать его следующим промежуточным программам и функциям-обработчикам. Это гарантирует, что все запросы, сделанные во время запроса, будут автоматически согласованы - вы можете выполнить столько запросов, сколько захотите, и вам никогда не придется беспокоиться о выполнении их внутри транзакции чтения. Вы могли бы сделать что-то похожее на эту работу, используя запрос на определенный момент времени, но это было бы намного уродливее с точки зрения кода.
- Вы можете делать "что, если" обновления значения базы данных, не влияя на фактическую базу данных.