Я работаю над приложением, которое должно отслеживать видео на YouTube. Я хочу периодически извлекать информацию о соответствующих видео в Datomic, а затем использовать их в качестве встроенных заголовков, описаний и т. д. Наивный способ сделать это — периодически извлекать всю информацию, которую я хочу, и вставлять ее в мою базу данных.
Но в большинстве случаев информация не изменится. Заголовки и описания могут измениться (и я хочу заметить, когда они это сделают), но обычно этого не происходит. Используя наивный подход, я бы обновлял сущности с одним и тем же значением снова и снова.
Это плохо? Я просто заполню свое хранилище историей? Приведет ли это к многочисленным переиндексациям? Или мне не стоит об этом беспокоиться и позволить Datomic позаботиться о себе?
Менее наивный подход будет смотреть на текущие значения и смотреть, нуждаются ли они в обновлении. Если это лучшая идея, есть ли простой способ сделать это, или мне следует ожидать написания большого количества пользовательского кода для этого?
:db/cas
позволяет вам утверждать, только если текущее значение является некоторым заданным значением, но не позволяет вам делать утверждение, только если текущее значение не является некоторым заданным значением. Тем не менее, если нет подходящей встроенной функции транзакций, написание моей собственной функции транзакций, вероятно, является хорошим способом сделать это. - person Peeja   schedule 04.09.2014