Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.07.27;
Скачать: CL | DM;

Вниз

как бы сделали вы?   Найти похожие ветки 

 
Поросенок Винни-Пух ©   (2008-06-07 16:28) [0]

Есть процесс, который в силу некоторых объективных по отношению к нему причин не может работать с разными сущностями, порожденными из одного и того же шаблона.
Процесс этот не интеракивный, обслуживает клиентов в многопоточном режиме и поэтому перегружать (даже автоматом) не представляется возможным (без того, чтобы не произошел отказ в обслуживании или его задержка). Принято решение вынести функционал по работе с сущностями в отдельные процессы, которые будут запускаться из клиентских ниток.

Как бы вы сделали двусторонний обмен данными между ниткой главного процесса и вспомогательным процессом?

Информация, которой необходимо обмениваться - это блоки памяти произвольного размера. Скажем так, что в основном это сотни килобайт. иногда до десяти-пятнадцати мегабайт


 
ketmar ©   (2008-06-07 16:30) [1]

натурально, на unix sockets.

---
Understanding is not required. Only obedience.


 
Поросенок Винни-Пух ©   (2008-06-07 16:37) [2]

1. платформа - винда.
2. вспомогательные процессы должны быть именно процессами, иначе получится тот же облом. То есть от мультиплексирования тсп соединений во вспомогательном процессе придется отказаться и заморачиваться распределением номеров слушающих портов.


 
ketmar ©   (2008-06-07 16:39) [3]

>[2] Поросенок Винни-Пух © (2008-06-07 16:37:00)
>1. платформа - винда.

ССЗБ. накладные расходы на запуск процесса на винде таковы, что это попросту глупо.

---
Understanding is not required. Only obedience.


 
Поросенок Винни-Пух ©   (2008-06-07 16:41) [4]

глупо это если не будет работать вообще.
а в одном процессе не будет.


 
Игорь Шевченко ©   (2008-06-07 16:42) [5]


> Как бы вы сделали двусторонний обмен данными между ниткой
> главного процесса и вспомогательным процессом?


Я бы сделал N процессов (или сервисов) (по количеству обрабатываемых в одном процессе сущностей), запускал бы их по первому приходу обрабатываемой сущности и не убивал бы. Ну а дальше любой обмен - пайпы, файлы, сокеты


 
Поросенок Винни-Пух ©   (2008-06-07 16:43) [6]

накладные расходы мне не важны.
там 16 ядер на четырех зионах


 
Поросенок Винни-Пух ©   (2008-06-07 16:47) [7]

неубиваемые вторичные это скорее всего лишнее.
точное N неизвестно, и растет со временем.
а в основном процессе нити создаются только непосредственно для обслуживания клиента. а клиенты работают с системой без постоянного тсп соединения (транспортный протокол там http )


 
ketmar ©   (2008-06-07 17:33) [8]

>[6] Поросенок Винни-Пух © (2008-06-07 16:43:00)
вот так и появляется crapware…

---
All Your Base Are Belong to Us


 
ketmar ©   (2008-06-07 17:33) [9]

по теме: shared memory ня?

---
Understanding is not required. Only obedience.


 
Поросенок Винни-Пух ©   (2008-06-07 17:50) [10]

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


 
Поросенок Винни-Пух ©   (2008-06-07 17:54) [11]

случаи, когда необходима подпорка я могу определить.
то есть в штатном режиме все будет внутри одного процесса.
и только когда возникает коллизия будет создаваться доп. процесс.
ну и при отстутствии запросов в течение х минут можно просто делать рестарт.


 
Eraser ©   (2008-06-07 18:03) [12]

пайпы (которые не нэймд) и перенапрявление констольного ввода/вывода, либо именованые пайпы. MMF это через чур хардкорный вариант и не дает особого прироста производительности, по сравнению с именованными каналами.


 
Eraser ©   (2008-06-07 18:04) [13]

сокеты конечно хорошо, но с безопасностью много заморочек будет, прийдется SSPI реализовывать.


 
Поросенок Винни-Пух ©   (2008-06-07 18:18) [14]

а в случае с анонимным пайпом что надо сделать, чтобы вспомнгательный процесс использовал его же?
Просто передать значения двух хендлов полученных в основном процессе второму процессу? я верно понял?
или там эти хендлы невалидны будут?


 
Eraser ©   (2008-06-08 01:38) [15]

> [14] Поросенок Винни-Пух ©   (07.06.08 18:18)


> а в случае с анонимным пайпом что надо сделать, чтобы вспомнгательный
> процесс использовал его же?

передать их значения в структуру STARTUPINFO при запуске дочернего процесса с пом., к примеру CreateProcess.
.


 
Тын-Дын ©   (2008-06-08 01:56) [16]

Можно также windows-сообщениями воспользоваться.


 
ага0   (2008-06-08 14:19) [17]


> накладные расходы мне не важны.
> там 16 ядер на четырех зионах

Я фигею, дорогая редакция! шишнадцать ядер и типа все пофиг. Мы блин по 5 км в гору зимой, а вони блин - 16 ядер!

Да те хоть 100 дай - те мало будить! А че ит такова могет сделать сепаратный процесс, чеб не смог основной? Чет сомневаюсь я шибко.


 
Тын-Дын ©   (2008-06-08 14:24) [18]

Удалено модератором


 
ага0   (2008-06-08 14:32) [19]

Удалено модератором


 
Тын-Дын ©   (2008-06-08 14:33) [20]

Удалено модератором


 
ага0   (2008-06-08 14:42) [21]

Удалено модератором


 
Тын-Дын ©   (2008-06-08 14:49) [22]

Удалено модератором


 
ага0   (2008-06-08 14:51) [23]

Удалено модератором


 
ага0   (2008-06-08 14:53) [24]

Удалено модератором


 
Тын-Дын ©   (2008-06-08 14:54) [25]

Удалено модератором


 
ага0   (2008-06-08 15:06) [26]

Удалено модератором


 
Тын-Дын ©   (2008-06-08 15:08) [27]

Удалено модератором


 
@!!ex ©   (2008-06-08 15:12) [28]

Гы-гы.
16 ядер...
Вот поэтому в одной фирме работает 32 ядерный супер комп и за 4 дня решает задачу, которую в соседне фирме, при тех же масштабах, решает 4 ядерный Intel в РЕАЛЬНОМ ВРЕМЕНИ!
А все почему?
Потому что софт для первого сервера писали Авторы... да еще на яве...


 
ага0   (2008-06-08 15:19) [29]

Удалено модератором


 
ага0   (2008-06-08 15:51) [30]

Удалено модератором
Примечание: Вот он


 
ага   (2008-06-08 17:16) [31]

Удалено модератором


 
ага   (2008-06-08 17:25) [32]

Удалено модератором


 
ага   (2008-06-08 17:30) [33]

Удалено модератором



Страницы: 1 вся ветка

Текущий архив: 2008.07.27;
Скачать: CL | DM;

Наверх




Память: 0.54 MB
Время: 0.017 c
2-1214222977
Borispol
2008-06-23 16:09
2008.07.27
Права пользователя


15-1213198540
тимохов
2008-06-11 19:35
2008.07.27
WinXP Home Ed + Корпоративная сеть + Прокси


15-1213250723
savyhinst
2008-06-12 10:05
2008.07.27
компонент для icq


2-1214560127
Муслик
2008-06-27 13:48
2008.07.27
Записи в таблице


2-1214219491
Евро2008
2008-06-23 15:11
2008.07.27
Повернуть на 90 градусов