Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2008.07.27;
Скачать: [xml.tar.bz2];

Вниз

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

 
Поросенок Винни-Пух ©   (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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.51 MB
Время: 0.006 c
2-1214480489
lewka-serdceed
2008-06-26 15:41
2008.07.27
Поиск слова в строке


2-1214466680
Муслик
2008-06-26 11:51
2008.07.27
Из файла в таблицу


3-1202974636
abhtr
2008-02-14 10:37
2008.07.27
Можно ли изменить название поля в таблице Paradox


2-1214223719
uno-84
2008-06-23 16:21
2008.07.27
CheckBox в ListView


6-1190631328
ZuArt
2007-09-24 14:55
2008.07.27
Чтение WEB страниц





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский