У меня есть новый поток ES, в котором уже есть полмиллиона событий (пока нет снимков ... Я знаю, я туда добираюсь) и простого клиента, который atm только добавляет (еще больше) событий.Получить версию NEventStore head
NEventStore.OpenStream(int.MinValue, int.MaxValue)
занимает очень много времени, чтобы открыть поток изначально; после чего я сохраняю последнюю ревизию и с этого момента добавлю только NEventStore.OpenStream(lastRevision, int.MaxValue)
. Проблема только при первоначальном запуске.
Есть ли механизм в пределах NEventStore
либо просто добавлять без открытия, либо определять головную ревизию, не открывая весь поток, поэтому я могу открыть ее из последней версии и добавить. Конечно, я мог бы также перейти непосредственно к базе данных и запросам, но это зависит от зависимости, которую я чувствую, что мне не нужно.
Спасибо, я знал, что создание моментального снимка в конце потока позволит мне загружать из моментального снимка вперед, но эффективнее ли получать GetSnapshot, получая последний снимок, если их много? Я надеялся, что может быть простой способ получить последнюю версию из потока напрямую. – 9swampy
Хорошо смотря на определение GetSnapshot, поскольку оно извлекает последний снимок до [int.MaxValue]. Я ожидаю, что он оптимизирован, поэтому я добавил код в процессе, чтобы добавить моментальный снимок каждые 10000 ревизий. Вернется и примет, если это сработает, и ничего более прямого не предлагается ... – 9swampy
Я понимаю, что это не идеальное решение для вашего сценария, но я не думаю, что есть лучший способ. AFAIK также нет способа удалить старые снимки. – dillenmeister