Модераторы: LSD, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Совместное использование памяти двумя приложениями, Как это сделать? 
V
    Опции темы
intr
Дата 12.1.2008, 06:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 128
Регистрация: 18.12.2005

Репутация: 1
Всего: 2



Цитата(Prol @ 12.1.2008,  11:46)
Цитата(intr @ 12.1.2008,  06:27)
RMI или ему подобное. Другие варианты извращение...

Как вы себе представляете работу RMI с тремя миллионами объектов? Сколько будет длиться сериализация/десериализация трёх миллионов объектов?

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

Если вы скажете, что в Java такое невозможно, то я вам приведу в пример SAP JVM, которая позволяет шарить объекты прямо в памяти между несколькими JVM.

1. Зачем нужна сериализация/десериализация трех миллионов объектов. Это равносильно выгрузке 4 гиговой БД в ОЗУ!
2. Судя по проблеме надо шарить методы для других приложений, а не три миллиона объектовsmile
3. Приложение которое сохраняет объекты это обычно БД!

Вопросы:
1. Вы пишете свою базу данных? 
2. Для каких целей  нужна сериализация/десериализация трех миллионов объектов?
3. Вы держите в ОЗУ три миллиона объектов?

p/s
Такое ощущение что архитектура приложения очень сильно хромает!
--------------------
Исследователь бытия и по совместительству Java-developer
PM MAIL WWW Skype GTalk   Вверх
Prol
Дата 12.1.2008, 07:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 11.1.2008
Где: Кыев, Украина

Репутация: нет
Всего: нет



Цитата(intr @ 12.1.2008,  06:57)
1. Зачем нужна сериализация/десериализация трех миллионов объектов. 

Потому что RMI сериализует/десериализует объекты между приложениями.

Добавлено через 1 минуту и 52 секунды
Цитата(intr @ 12.1.2008,  06:57)
 Это равносильно выгрузке 4 гиговой БД в ОЗУ!

Шаман! smile 
PM MAIL WWW ICQ   Вверх
intr
Дата 12.1.2008, 07:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 128
Регистрация: 18.12.2005

Репутация: 1
Всего: 2



Цитата(Prol @ 12.1.2008,  12:01)
Цитата(intr @ 12.1.2008,  06:57)
1. Зачем нужна сериализация/десериализация трех миллионов объектов. 

Потому что RMI сериализует/десериализует объекты между приложениями.

Ключевое слово здесь три миллиона объектов, зачем так много передавать?

--------------------
Исследователь бытия и по совместительству Java-developer
PM MAIL WWW Skype GTalk   Вверх
Prol
Дата 12.1.2008, 07:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 11.1.2008
Где: Кыев, Украина

Репутация: нет
Всего: нет



Цитата(intr @ 12.1.2008,  06:57)
3. Вы держите в ОЗУ три миллиона объектов?

Больше... :о)

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

Добавлено через 13 минут и 5 секунд
Цитата(intr @ 12.1.2008,  07:07)
Ключевое слово здесь три миллиона объектов, зачем так много передавать?

Чтобы при снятии системой одного из приложений, другое сохранило доступ ко _всем_ объектам, с которыми они работали, и возобновило работу.
PM MAIL WWW ICQ   Вверх
intr
Дата 12.1.2008, 07:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 128
Регистрация: 18.12.2005

Репутация: 1
Всего: 2



В данном случае я бы использовал очень быстрый сервер БД (на очень быстром железе), возможно Oracle...

ИМХО Java не очень подходить для систем реального времени, по крайней мере с использованием стандартной Java машины от SUN. 

p/s
А что делать с данными в ОЗУ если даст сбой железо или выключат свет? тюрьма? можно не отвечатьsmile
--------------------
Исследователь бытия и по совместительству Java-developer
PM MAIL WWW Skype GTalk   Вверх
Prol
Дата 12.1.2008, 07:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 11.1.2008
Где: Кыев, Украина

Репутация: нет
Всего: нет



Цитата(intr @ 12.1.2008,  07:28)
ИМХО Java не очень подходить для систем реального времени, по крайней мере с использованием стандартной Java машины от SUN.

:о)))

Почему же? Байткод Java ненамного уступает ассемблеру по скорости выполнения, но писать на нём намного легче. Кроме того, у Java отличная переносимость. То, что у SUN ещё нету шаред мемори - это вопрос времени и требований разработчиков...

Добавлено через 1 минуту и 9 секунд
Цитата(intr @ 12.1.2008,  07:28)
А что делать с данными в ОЗУ если даст сбой железо или выключат свет? тюрьма? можно не отвечатьsmile

За сбой питания я не отвечаю :о) Пусть хоть там все передеруцца...
PM MAIL WWW ICQ   Вверх
tux
Дата 12.1.2008, 08:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Летатель
***


Профиль
Группа: Участник Клуба
Сообщений: 1853
Регистрация: 10.2.2005
Где: msk.ru

Репутация: 31
Всего: 132



Цитата(Prol @  12.1.2008,  07:08 Найти цитируемый пост)
моё приложение обязано откликнуться на любое событие не позднее, чем через восемь миллисекунд

А каким образом вы решили проблему со сборщиком мусора в Sun JVM? Его работа может занять гораздо больше 8 миллисекунд, причем в неопределенные моменты времени.
PM MAIL Skype GTalk Jabber YIM   Вверх
Prol
Дата 12.1.2008, 08:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 11.1.2008
Где: Кыев, Украина

Репутация: нет
Всего: нет



Цитата(tux @ 12.1.2008,  08:15)
А каким образом вы решили проблему со сборщиком мусора в Sun JVM? Его работа может занять гораздо больше 8 миллисекунд, причем в неопределенные моменты времени.

Мои приложения на С.

Я хочу их портануть на Java, потому что мне так кажется удобнее передать моему наследнику и уйти на пенсию. :о)

На Питон тоже можно, но если эти охламоны видят в операторе (_*_) разорванную жопу, а не умножение предыдущего выражение самого на себя (возведение в квадрат), то уж пусть лучше пишут на Java...

Это сообщение отредактировал(а) Prol - 12.1.2008, 08:33
PM MAIL WWW ICQ   Вверх
tux
Дата 12.1.2008, 08:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Летатель
***


Профиль
Группа: Участник Клуба
Сообщений: 1853
Регистрация: 10.2.2005
Где: msk.ru

Репутация: 31
Всего: 132



Цитата(Prol @  12.1.2008,  08:23 Найти цитируемый пост)
Я хочу их портануть на Java, потому что мне так кажется удобнее передать моему наследнику и уйти на пенсию.

Боюсь это плохо кончится для наследника. Сборщик мусора - это как раз одна из тех причин, по которой обычные JVM не используются в приложениях реального времени. Есть спецификация Real-time Java, начать можно отсюда - http://en.wikipedia.org/wiki/Real_time_Java.
PM MAIL Skype GTalk Jabber YIM   Вверх
Prol
Дата 12.1.2008, 08:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 11.1.2008
Где: Кыев, Украина

Репутация: нет
Всего: нет



Цитата(tux @ 12.1.2008,  08:27)
Боюсь это плохо кончится для наследника. Сборщик мусора - это как раз одна из тех причин, по которой обычные JVM не используются в приложениях реального времени. Есть спецификация Real-time Java, начать можно отсюда - http://en.wikipedia.org/wiki/Real_time_Java.


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

Поэтому я и спросил про шаред мемори - проверенный механизм.
PM MAIL WWW ICQ   Вверх
tux
Дата 12.1.2008, 08:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Летатель
***


Профиль
Группа: Участник Клуба
Сообщений: 1853
Регистрация: 10.2.2005
Где: msk.ru

Репутация: 31
Всего: 132



Мне как-то не совсем понятен разговор про shared memory, рецепт которой, кстати, уже предложили - синглтон, но с ограничениями по загрузке классов о которой я говорил, если сама Java не подходит под задачу. Или таки 8 миллисекунд - это не жесткое ограничение?
PM MAIL Skype GTalk Jabber YIM   Вверх
batigoal
Дата 12.1.2008, 12:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 24
Всего: 151



Цитата(Prol @  12.1.2008,  09:35 Найти цитируемый пост)
Я знаком с нею - она дропает входящие события, типа я не видела того, на что не успеваю отвечать.

Насколько я знаю, этим можно управлять.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Maksym
Дата 12.1.2008, 15:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


.
***


Профиль
Группа: Участник Клуба
Сообщений: 1456
Регистрация: 19.8.2005
Где: Odessa, Black Sea

Репутация: 14
Всего: 62



Prol
Возможно я пропустил.. А в каком окружении работает ваше приложение (ОС, железо)? И куда физически приходит инфомация с датчиков (порты)? Интересно. Если не секрет.

ЗЫ. Насколько я знаю, для реалтаймовых систем используются заточенные под это дело операционный системы, типа QNX.
PM MAIL   Вверх
serger
Дата 14.1.2008, 09:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 518
Регистрация: 19.6.2007
Где: Ижевск

Репутация: 1
Всего: 5



Ну вы развели!..  smile

Надо начать с описания задания. Что нужно сделать конкретно. А то завели спор, как микроскопом гвозди забивать..
Теоретические споры тоже умесны, но до определённого предела. Вроде он уже достигнут.

Нужны факты.  smile 

ps. Построить можно что угодно, но насколько рационально.


--------------------
упс!
PM MAIL WWW Skype GTalk Jabber   Вверх
Prol
Дата 14.1.2008, 09:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 11.1.2008
Где: Кыев, Украина

Репутация: нет
Всего: нет



Цитата(Maksym @ 12.1.2008,  15:30)
Prol
Возможно я пропустил.. А в каком окружении работает ваше приложение (ОС, железо)? И куда физически приходит инфомация с датчиков (порты)? Интересно. Если не секрет.

ЗЫ. Насколько я знаю, для реалтаймовых систем используются заточенные под это дело операционный системы, типа QNX.

FreeBSD 4.12
Железо нормальное :о)

Данные приходят на сетевой порт :о) Трафик порядка терабайта в месяц :о)

Добавлено через 2 минуты и 50 секунд
Цитата(serger @ 14.1.2008,  09:01)
Надо начать с описания задания. Что нужно сделать конкретно. 

Не имеет значения, что делает приложение.
Я описал работающий метод защиты от сбоев приложения с использованием механизма shared memory и спросил, возможно ли сделать такое не для приложения на С, а для приложения на Java ? 
PM MAIL WWW ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0622 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.