Какие будут мысли? Заранее пасиб!

Как ты знаешь я C# не копегаген, но в Java я бы сделал обычную ссылку ( не volatile) на ресурс и в момент апдейта, просто бы подменял ее, с последующим проходом через write barrier (лок, CAS etc) для проброса в основную память;папа Карло писал(а):Есть сингалтон на C#. в нем есть шареный ресурс. Есть пара методов через которые этот шареный ресурс раздается на чтение (метод который может менять ресурс приватен). Высокая конкуренция на раздачу. Ресурс меняется скажем раз в полгода, а читателей которым нужен ресурс много в каждую секунду. Как правильно организовать изменение ресурса в синглетоне _без_даунтайма_ (пару читателей можно обломить или заблокировать пока ресурс апдейтится). чтобы изменить ресурс полностью надо около пары секунд.
Какие будут мысли? Заранее пасиб!
Тут весь вопрос в том, насколько часто читатели проходят черес read barrier, ежели часто(99% случаев), то зачем нужен еще один? а если нет, ну тогда volatileпапа Карло писал(а): я за консистенси тут воюю. если читатель будет читать старые данне которые поменялись, то он получит и увидит совсем не то, и опять же может решение не правильное принять, что еще хуже.
прям сейчас я загружаю структуру когда создаю сингалтон объект (пройсходит запись). дальше чтоние происходит без каких либо локов в нестатических методах.Marmot писал(а):Тут весь вопрос в том, насколько часто читатели проходят черес read barrier, ежели часто(99% случаев), то зачем нужен еще один? а если нет, ну тогда volatileпапа Карло писал(а): я за консистенси тут воюю. если читатель будет читать старые данне которые поменялись, то он получит и увидит совсем не то, и опять же может решение не правильное принять, что еще хуже.
не надо ничего локать, ты вообще знаешь, что такое volatileпапа Карло писал(а):прям сейчас я загружаю структуру когда создаю сингалтон объект (пройсходит запись). дальше чтоние происходит без каких либо локов в нестатических методах.Marmot писал(а):Тут весь вопрос в том, насколько часто читатели проходят черес read barrier, ежели часто(99% случаев), то зачем нужен еще один? а если нет, ну тогда volatileпапа Карло писал(а): я за консистенси тут воюю. если читатель будет читать старые данне которые поменялись, то он получит и увидит совсем не то, и опять же может решение не правильное принять, что еще хуже.
выглядит так, что мне надо просто пометить переменную (статическая не value) как volatile. локать ее на write и читать просто так. мысли?
что такое волатил знаю. но ты вообще знаешь что я датабазник, а не сишарп девелопер?Marmot писал(а):не надо ничего локать, ты вообще знаешь, что такое volatileпапа Карло писал(а):прям сейчас я загружаю структуру когда создаю сингалтон объект (пройсходит запись). дальше чтоние происходит без каких либо локов в нестатических методах.Marmot писал(а):Тут весь вопрос в том, насколько часто читатели проходят черес read barrier, ежели часто(99% случаев), то зачем нужен еще один? а если нет, ну тогда volatileпапа Карло писал(а): я за консистенси тут воюю. если читатель будет читать старые данне которые поменялись, то он получит и увидит совсем не то, и опять же может решение не правильное принять, что еще хуже.
выглядит так, что мне надо просто пометить переменную (статическая не value) как volatile. локать ее на write и читать просто так. мысли??
просто читаешь и пишешь...
IMHO, даже датабазникам полезно понимать как работают современные процессоры и компиляторы...папа Карло писал(а): что такое волатил знаю. но ты вообще знаешь что я датабазник, а не сишарп девелопер?
возможно, но прям в данный момент этот совет мне не поможет ни под каким углом.Marmot писал(а):IMHO, даже датабазникам полезно понимать как работают современные процессоры и компиляторы...папа Карло писал(а): что такое волатил знаю. но ты вообще знаешь что я датабазник, а не сишарп девелопер?
Нужный тебе совет я уже давно далпапа Карло писал(а):возможно, но прям в данный момент этот совет мне не поможет ни под каким углом.Marmot писал(а):IMHO, даже датабазникам полезно понимать как работают современные процессоры и компиляторы...папа Карло писал(а): что такое волатил знаю. но ты вообще знаешь что я датабазник, а не сишарп девелопер?
т.е. сейчас ты просто перешел к простому брюзжанию.Marmot писал(а):Нужный тебе совет я уже давно далпапа Карло писал(а):возможно, но прям в данный момент этот совет мне не поможет ни под каким углом.Marmot писал(а):IMHO, даже датабазникам полезно понимать как работают современные процессоры и компиляторы...папа Карло писал(а): что такое волатил знаю. но ты вообще знаешь что я датабазник, а не сишарп девелопер?
Да!папа Карло писал(а):т.е. сейчас ты просто перешел к простому брюзжанию.Marmot писал(а):Нужный тебе совет я уже давно далпапа Карло писал(а):возможно, но прям в данный момент этот совет мне не поможет ни под каким углом.Marmot писал(а):IMHO, даже датабазникам полезно понимать как работают современные процессоры и компиляторы...папа Карло писал(а): что такое волатил знаю. но ты вообще знаешь что я датабазник, а не сишарп девелопер?
c'mon man!Marmot писал(а):Да!папа Карло писал(а):т.е. сейчас ты просто перешел к простому брюзжанию.