Форум: "Основная";
Текущий архив: 2002.10.17;
Скачать: [xml.tar.bz2];
ВнизИспользование общих данных между процессами. Найти похожие ветки
← →
Ш-К (2002-10-07 03:35) [0]Есть несколько разных приложений. Каждое из них работает со своим набором данных (15-30 мб).
Данные для каждого типа приложения разные, но имеются абсолютно идентичные блоки данных. Вот пример распределения данных (буква -блок, одинаковые буквы - одинаковые данные):
приложение наборы данных
1) A S D F G H J K L
2) A S D F G H I O P
3) A S D M N B V C X
4) C B N Z G H J K L
5) L X P
и т д.
Если все приложения запустить на одной машине, то получится как-бы избыток информации: одни и те же данные загрузятся несколько раз.
Вопросы, имхо, очевидены.
Как сложить (объединить) все данные с целью экономии ресурсов?
Как построить логику приложений, чтобы получить эффект сложения?
Какие технологии можно и нужно для этого использовать?
← →
Polevi (2002-10-07 08:57) [1]СУБД
← →
Ш-К (2002-10-07 09:32) [2]Предполагал, что будет такой ответ.
Все эти приложения - клиенты IB. А наборы данных - локальные данные с сервера.
Совсем нет нужды держать весь спектр данных, если загружен только один клиент. Данные должны быть только необходимые и только для запущенных приложений.
Программный комплекс такой, что состоит из разных клиентов: мониторинга, администрирования, репорта,... и пары сервисов. Так вот, у пользователя может быть загружено вот это всё. И весь комплекс к чертям!
← →
Polevi (2002-10-07 09:45) [3]тебе нужно еще одно звено добавить на клиента - модуль, через который будут идти все запросы к базе
со всеми вытекающими
← →
Polevi (2002-10-07 09:47) [4]что то вроде MIDAS, только сервер приложений у каждого клиента - на нем кеш
← →
Ш-К (2002-10-07 10:28) [5]Про запросы я ничего не говорил - это отдельная логика приложений.
Я был не точен, когда сказал "локальные данные". Это просто данные программы. Загруженные, переваренные и подготовленные для чтения в удобном виде. Выборка по ним не производится.
Поэтому (и не только) решение ищу в чистом виде, как описывал изначально. Отсраняясь от клиент/сервер.
Во всяком случае, поясни конкретнее. Может я не понял?
← →
Zelius (2002-10-07 10:36) [6]А можно еще использовать файлы, отображаемые в память, они позволяют резделять их между приложениями.
← →
Polevi (2002-10-07 11:00) [7]>А наборы данных - локальные данные с сервера
в момент получения этих самых данных надо проверять, не были ли они получены ранее и если да, то передавать "указатель" на них, например в виде MMF
если не подходит вариант с AS - создавайте глобальный файл, в котором храните список загруженных "данных" - но все равно придется менять код всех клиентов
я бы на вашем месте подумал все таки про МИДАС - если на AS есть метод GetSomeData - при первом вызове он будет получать данные от БД и помещать их в MMF, при повторном вызове (от другого приложения) - просто возвращать имя уже имеющегося MMF
← →
Ш-К (2002-10-07 12:03) [8]Да нет никаких локальных данных с сервера - я же сказал, что оговорился. Просто в ОЗУ сидят повторяющиеся фрагменты памяти, используемые разными программами. Не важно, как они туда попали. Поэтому и заморочки с AS лишние. Имхо.
С FileMapping тепло, но как-то грубо. Что мне каждый блок под мар-файл определить? Данные же в блоке неоднородные, модифицируемые.
← →
Zelius (2002-10-07 15:02) [9]Зачем каждый? Создаешь один блок и в нем хранишь бинарные данные! А уж кто как захочет, тот так и будет их интерпретировать!
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.10.17;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.008 c