2016-07-18 2 views
1

Есть ли хороший способ сделать IRELiableDictionary < ключ, список >? Я бы предположил, что этот список не будет атомарным и столкнется с проблемами параллелизма. Есть ли хороший способ сделать это? Я мог представить, что это было бы полезно для создания индексов. например IReliableDictionary < индекс, список < Руководство > >.ReliableDictionary <key, List>

+0

ли вы имеете в виду [ConcurrentDictionary ?] (Https://msdn.microsoft.com/en-us/library/dd287191 (v = vs.110) .aspx) –

ответ

2

Не только проблемы с параллелизмом, но и повреждение данных и плохая производительность репликации, если вы не будете осторожны. Прочитайте это руководство для детального объяснения: https://azure.microsoft.com/en-us/documentation/articles/service-fabric-work-with-reliable-collections/

ТЛ; др:

  • Каждый раз, когда вы совершаете сделку, весь список тиражируется и сохранен. Если список растет неограниченно, то и время репликации и стоимость.
  • Ваш список лучше быть неизменным. Если вы внесете локальные изменения непосредственно в ссылку списка внутри транзакции, а транзакция отменяется (исключение или что-то еще), ваши местные изменения будут отменены , а не. Если какая-либо другая часть вашего кода имеет ссылку на список и вносит изменения в список за пределами транзакции, эти изменения не будут реплицироваться и сохраняться.
+0

Так как же создать таблицу/список подобный структура. например, IReliableList с механикой последовательного чтения типа – user1496062

+0

WIll задайте другой вопрос – user1496062

Смежные вопросы