Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Программирование под Unix/Linux > Кеширование |
Автор: Spalax 17.5.2006, 23:44 |
Вообщем ооочень нуждаюсь в умном совете . Проблема заключаеться в том что у меня есть Парент который стартует 18 чаелдов все они находяться в состоянии accept . Когда они получают запрос от клиента они организуют из етого запроса понятный путь к файлу и вот сдесь мне не надо чтобы он лез в файл сразу ... а надо чтобы он залез в общий кешь посмотрел есть ли там а если нету то только тогда лез в файл .... надеюсь все поняли ... просто сама проблема в том что я уже организововал тако кешь ... но увы сервер сказал "кря" через 2 суток работы потому что каждый процес при старте копировал огромный масив себе плюс пополнял его .... + отрабатывал 14 клиентов и родитель его закрывал соответствено вызывая нового чаелда ... вообщем такая вот вертушка .... если у кого есть путные идее выслушаю очень поможете.... У меня ФРЯ 4.4 из средств IPC можно юзать только mmap ну и семейство Shared Memmory Типа shm_*** |
Автор: GrayCardinal 18.5.2006, 07:29 | ||
Spalax, Вы не могли бы поподробней описать технические аспекты вашей проблемы ? "Сервер сказал "кря"" это, извиняюсь, не проблема, это извиняюсь, диагноз. В чем тех. проблема ? В передаче данных между процессами ? Медленно копируется весь массив ? Что за массив ? Почему он копируется ? В блокировке, чтоб одновременно не модифицировали данные ? Какие данные ? Почему нужна блокировка ? Да, и mmap это не средство IPC если уж на то пошло. . Добавлено @ 07:34 P.S void * ptr;
По логике должна выдать (ptr) кусок (4096) байт. Который будет доступен всем процессам даже после fork'а. Может вам это надо ? |
Автор: Spalax 18.5.2006, 09:52 |
Вообщем мой кешь отъедал здоровенный кусок памяти так как каждый процесс копировал себе динамический массив такого вида map <string,string> cache |