Мне нужно вести график вещей. Каждое расписание имеет начальное и конечное время и не может перекрываться другим расписанием для той же вещи. Будет много вещей, с примерно одинаковыми графиками. Будет легко десятки, если не в сотни раз больше чтения, чем записи, так что я в порядке с записью в мастер и чтением из реплик. Итак, мне нужна база данных, которая поддерживает атомарную проверку при вставке в другие существующие записи и имеет прямую репликацию. В основном я хотел бы реализовать что-то вроде
insert into events
select 'my-event', 15, 18
where (select id from events where end < 15 limit 1) = (select id
from events where start < 18 limit 1);
, где my-event - это идентификатор, 15 - время начала эпохи, а 18 - время окончания эпохи в БД NoSQL.
Сегодня я потратил довольно много времени на поиск в разных базах данных, и до сих пор вижу, что Mongo поддерживает проверку, но кажется, что это более или менее замена схемы, а Couchbase, похоже, имеет очень похожий на SQL язык запросов, но из документов не ясно, если это только поверхностно. Существует ли такая база данных?