/ / RavenDB - изключение от конкуренцията без оптимистична съвкупност - ravendb, оптимистична конкуренция

RavenDB - изключението за съвместимост без оптимистична съвкупност - ravendb, оптимистична конкуренция

В нашата инстанция Raven DB ние периодично получаваме изключения от конкуренцията. Това винаги ме озадачаваше, откакто не позволихме оптимистична конкуренция.

Google ми казва това има сценарий където могат да бъдат хвърлени изключения от едновременностбез оптимистична съвкупност активирана - където имате индекс, който извиква LoadDocument () на документ от този тип. Такъв е случаят с нашата кодова база.

Въпреки това, нишката, с която току-що се свързах, не предполага коригиращо действие. Какво трябва да направя, когато възникне изключение? Трябва ли да се опита отново логиката? Или трябва да направя нещо друго?

Отговори:

0 за отговор № 1

Изключение за едновременност се повдига, ако 2 нишки се състезават да променят физически един и същ документ по едно и също време. Една нишка печели, другата (ите) получава изключение за едновременност.

От вас зависи да определите какво да направите с този сценарий.

Избор на това, което вие мога направите:

  1. Нищо, Необработено изключение. Не се различава, ако мрежата падна за минута
  2. просвирване, Последно в победи. Вашият документ, който е грешен, е последният в, повторете искането да презапишете всички промени.
  3. Уведоми, Заключете изключението. Уведомете потребителя, че искането му не е било успешно и за да прегледа техните промени спрямо текущата версия на документа.
  4. сливам, Разделете двата документа, обединете ги заедно и автоматичното сливане на контрола на източника
  5. Ръчно сливане, Настоящ потребителски интерфейс към потребителя, който показва и двата документа и позволява на потребителя да изпълни трипътен обединение

Можете също да изградите интелигентна система заправи това. Excurrency exception, attempt auto-merge, ако е добро, всичко е добро. Автоматичното сливане се проваля, връща се с известие до потребителя "Съжаляваме, че не можахме да приемем промените Ви, кликнете тук, за да сравните промените си".