Надежный словарь Service Fabric - транзакция была внутренне прервана репликатором, так как она была активна слишком долго и заблокировала контрольную точку.

Я пытаюсь добавить более 100 тыс. Записей в надежный словарь. Я использую библиотеку https://github.com/jessebenson/service-fabric-indexing которой хранятся отдельные коллекции индексов. Я продолжаю сталкиваться с указанной выше ошибкой. На небольших наборах данных ошибок нет, но я не сузил предел. Пока я запускаю его только в локальном кластере с 1 узлом.

Когда я использую обычную надежную коллекцию, операция выполняется успешно, но для завершения требуется около 15 секунд. К сожалению, мне нужна возможность извлекать элементы по groupId, поэтому потребуется библиотека, такая как service-fabric-indexing или аналогичный метод. Мне действительно нужен более надежный ILookup, чем словарь, поскольку в некоторых случаях мне нужно получить группу записей по groupId, а в других - получить одну запись по идентификатору.

Я неправильно подхожу к проблеме? Мне трудно поверить, что надежные коллекции не могут обрабатывать две коллекции (индекс и основную), обновляемые 100 тыс. Раз за одну транзакцию, и все это одним потоком. Я видел другие сообщения с этой ошибкой (более ранняя итерация, но я считаю, что та же проблема и результат были... не обращайтесь к нескольким коллекциям в транзакции. Это действительно состояние надежных коллекций, или мы делаем это неправильно?

https://social.msdn.microsoft.com/Forums/aspnet/en-US/be0af246-be89-4078-9d75-84f73c7d4b32/invalidoperationexception-transaction-has-already-committed-or-rolled-back?forum=AzureServiceFabric&prof= обязательный

0 ответов

Другие вопросы по тегам