Опрос: Как назвать "Distributed Singleton"
От: VladCore  
Дата: 24.06.16 06:33
Оценка:
P.S. В опрос не влезло самое интересное:

Технически-описательный синоним – Distributed Single Worker. Фича простая – на всех клОнах (инстансах) гарантируется что заданный код, точнее, поток или несколько потоков, выполняются только в одном экземспляре. Клон – ключевое слово. Т.е. и код и конфиги на всех инстансах одинаковые. Но заданный логический поток всегда выполняется только на одном инстансе. Таких задач полно в любом сервисе — рассылка смс и писем по условиям в заданное время, репликация в/из внешних систем и пр.

Вот в связи с лёгкостью клонирования виртуалок и в облаках у "себя" запилил dll-ку и думаю как называть.

Речь идёт про готовую реализацию, Имя пакета, dll-ки, неймспейса, пост в бложике и пр.

Предлагайте варианты кто умеет.

P.P.S. Надо было в архитектуру

http://rsdn.ru/poll/5374
Автор: VladCore
Дата: 24.06.16
Вопрос: В связи с простотой клонирования виртуалок в облаках запилил условно называемый Distributed Singleton. Не могу придумать название. Это такой поток который только на одном инстансе исполняется.

Кто умеет придумывать названия, добавляйте свои варианты.

Слово single или синоним в названии почти уверен должно быть обязательно.
Отредактировано 24.06.2016 6:43 VladCore . Предыдущая версия . Еще …
Отредактировано 24.06.2016 6:40 VladCore . Предыдущая версия .
Re: Опрос: Как назвать "Distributed Singleton"
От: Sinix  
Дата: 24.06.16 06:48
Оценка:
Здравствуйте, VladCore, Вы писали:

VC>Предлагайте варианты кто умеет.


Как всегда: описываем решение (43, ага), саму задачу не озвучиваем, просим комментариев

Какие комментарии тут могут быть? Собсно задачу надо описать, тогда конкретика будет. Если речь про горячий резерв, чтобы при падении сервиса быстро перезапустить на другом экземпляре, то это hot spare / failower / AlwaysOn обычно зовётся.
Re: Опрос: Как назвать "Distributed Singleton"
От: Sinatr Германия  
Дата: 24.06.16 07:02
Оценка: +1
Здравствуйте, VladCore, Вы писали:

VC>Фича простая – на всех клОнах (инстансах) гарантируется что заданный код, точнее, поток или несколько потоков, выполняются только в одном экземспляре. Клон – ключевое слово. Т.е. и код и конфиги на всех инстансах одинаковые. Но заданный логический поток всегда выполняется только на одном инстансе. Таких задач полно в любом сервисе — рассылка смс и писем по условиям в заданное время, репликация в/из внешних систем и пр.


Непонятно что вы делаете (я полный нуп в WCF), но: distributed (распределенное) это антоним тому что вы делаете (блокируете всех пока поток занят?), singleton — распространенное понятие, даже если вы используете паттерн синглетон, врядли использовать это слово хорошая идея.

Из того что я понял вы делаете некий manager (dispatcher?). Я бы смотрел синонимы к этому слову. Возможно вы используете какую-то технику, чтобы достичь желаемого, в этом случае назовите библиотеку "Какая-то_техника Thread (Task? Logical Thread? Clone Job?) Dispatcher".
---
ПроГLамеры объединяйтесь..
Re[2]: Опрос: Как назвать "Distributed Singleton"
От: VladCore  
Дата: 24.06.16 09:02
Оценка:
Здравствуйте, Sinix, Вы писали:

VC>>Предлагайте варианты кто умеет.


S>Как всегда: описываем решение (43, ага), саму задачу не озвучиваем, просим комментариев


Задачу вполне понятно написал — Придумать название по описанию.

S>Какие комментарии тут могут быть? Собсно задачу надо описать, тогда конкретика будет. Если речь про горячий резерв, чтобы при падении сервиса быстро перезапустить на другом экземпляре, то это hot spare / failower / AlwaysOn обычно зовётся.


Названиие, Карл!
Re[2]: Опрос: Как назвать "Distributed Singleton"
От: VladCore  
Дата: 24.06.16 09:17
Оценка:
Здравствуйте, Sinatr, Вы писали:

S>Здравствуйте, VladCore, Вы писали:


VC>>Фича простая – на всех клОнах (инстансах) гарантируется что заданный код, точнее, поток или несколько потоков, выполняются только в одном экземспляре. Клон – ключевое слово. Т.е. и код и конфиги на всех инстансах одинаковые. Но заданный логический поток всегда выполняется только на одном инстансе. Таких задач полно в любом сервисе — рассылка смс и писем по условиям в заданное время, репликация в/из внешних систем и пр.


S>Непонятно что вы делаете (я полный нуп в WCF), но: distributed (распределенное) это антоним тому что вы делаете (блокируете всех пока поток занят?),


Расскажу не жалко.

Внутрях есть две нотификации инстансов на redis-сервер о том что кандидаты не упали и не выключены и о том что singleton успешно без иксепшнов работу работает.

Еще есть выборы когда избранный ранее singleton упал. Выборы разумеется выполняются под DistributedLock-ом.

S>singleton — распространенное понятие, даже если вы используете паттерн синглетон, врядли использовать это слово хорошая идея.


Словарь с вами не согласен



S>Из того что я понял вы делаете некий manager (dispatcher?). Я бы смотрел синонимы к этому слову. Возможно вы используете какую-то технику, чтобы достичь желаемого, в этом случае назовите библиотеку "Какая-то_техника Thread (Task? Logical Thread? Clone Job?) Dispatcher".


Слово менеджер для публичного апи мне не нравится, но лучшего я не придумал.
Вы почти всё угадали по описанию. Вот так выглядит синглтон в прикладном коде:

class Worker
{
    readonly ManualResetEvent ProcessShutdown = GetProcessShutdown();

    public void ThreadStart()
    {
        var manager = new DistributedSingletonManager(......);

        while (!ProcessShutdown.WaitOne(1000) && manager.Am_I_TheOne(timeout: 1000))
        {
            PerformSomething();
        }
    }
}


ThreadStart запускается на всех инстансах, а вот PerformSomething() в цикле вертится всегда только на одном. Если надо "запускаются" выборы нового инстанса в качестве того, который будет один единственный делать работу PerformSomething()

Вот теперь название придумываю.

Внутри есть DistributedLock, это не я придумал. Вот и взял DistributedSingleton исключительно по аналогии с DistributedLock
Отредактировано 24.06.2016 9:35 VladCore . Предыдущая версия . Еще …
Отредактировано 24.06.2016 9:25 VladCore . Предыдущая версия .
Re[3]: Опрос: Как назвать "Distributed Singleton"
От: Sinix  
Дата: 24.06.16 09:27
Оценка: :)
Здравствуйте, VladCore, Вы писали:

VC>Задачу вполне понятно написал — Придумать название по описанию.

VC>Названиие, Карл!

Не вопрос. Придумайте название по фотографии.
  Скрытый текст


Намёк понятен?
Re[4]: Опрос: Как назвать "Distributed Singleton"
От: VladCore  
Дата: 24.06.16 09:32
Оценка: -1 :))
Здравствуйте, Sinix, Вы писали:

S>Здравствуйте, VladCore, Вы писали:


VC>>Задачу вполне понятно написал — Придумать название по описанию.

VC>>Названиие, Карл!

S>Не вопрос. Придумайте название по фотографии.

S>
  Скрытый текст
S>Image: wtf.jpg


S>Намёк понятен?


Мимо

Настоящие программисты названия придумывают по описанию. строго. Не слышал такого?

Это только алкоголики мемы по картинке придумывают. Три топора не слышал?
Re[3]: Опрос: Как назвать "Distributed Singleton"
От: Sinix  
Дата: 24.06.16 09:42
Оценка: 14 (3) +1
Здравствуйте, VladCore, Вы писали:

VC>Вот и взял DistributedSingleton исключительно по аналогии с DistributedLock


Угу, типичный failover с горячим резервированием. Ну, или очень частный случай load balancer-а

То, что у вас под капотом там distributed lock — это чисто деталь реализации (которая ещё и поменяется со временем скорее всего). В то же время, клиента вашего API интересует вовсе не детали (lock), ему важно "чтоб делало что мне надо". И именно по этому "что мне надо" он и будет искать. Какие будут шансы найтись, если обзывать холодильник "устройством по изменению агрегатного состояния хладагента", прикинуть несложно.


Поэтому, если надо название с пафосом — что-то типа AlwaysOnline.FailowerDispatcher.

Если без — искать по ключевым словам и смотреть, как оно у людей зовётся.
Re: Опрос: Как назвать "Distributed Singleton"
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 26.06.16 21:24
Оценка:
Здравствуйте, VladCore, Вы писали:

VC>Технически-описательный синоним – Distributed Single Worker. Фича простая – на всех клОнах (инстансах) гарантируется что заданный код, точнее, поток или несколько потоков, выполняются только в одном экземспляре. Клон – ключевое слово. Т.е. и код и конфиги на всех инстансах одинаковые. Но заданный логический поток всегда выполняется только на одном инстансе. Таких задач полно в любом сервисе — рассылка смс и писем по условиям в заданное время, репликация в/из внешних систем и пр.


Интересно для чего нужно, чтобы в одном экземпляре? Та же отправка смс, писем и прочая лабуда может исполняться в любом количестве экземпляров, главное чтобы письмо дважды не было отправлено. Для этого есть вполне понятные механизмы работы.

А тут получается деталь реализации, причем не самая удачная, которая торчит наружу. Причем непонятно как у нее с отказоустойчивостью.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.