Java-приложения на Oracle Exadata

По причинам, которые не относятся к делу, компания приобрела Exadata Eighth Rack. Некоторые менеджеры считали, что это улучшит производительность существующих приложений. Проблема в том, что вряд ли какое-либо приложение делает интенсивную работу с базой данных (да, это хороший момент для просмотра анимированных GIF-изображений на лицевой панели). Таким образом, на данный момент миграция доказала лишь небольшую пользу.

Вопрос очевиден. Большинство приложений написаны на Java, а некоторые из них интенсивно используют Solr и Cassandra. Насколько я знаю, Exadata предназначена для хранения данных, в то время как Exalogic может также хранить приложения. В любом случае, мне интересно, есть ли какой-то способ воспользоваться упомянутой инфраструктурой.

4 ответа

Решение

Замените Solr на Oracle Text.

Прежде чем я буду лишен голоса: обычно я бы не рекомендовал заменять существующий код, созданный популярной программой с открытым исходным кодом, на редко используемый, проприетарный продукт. Но если вы хотите использовать много места и ресурсов процессора на своих серверах баз данных, Oracle Text определенно может помочь.

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

Какой протокол приложения Java используют для подключения к Oracle?

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

редактировать: только что понял, что exadata не может запускать Java-приложения по умолчанию (только ODA делает) - поэтому было бы невозможно использовать IPC. Однако, возможно, вы сможете проверить влияние IPC в одном из ваших приложений, используя прежнюю инфраструктуру?

Exadata не может размещать какие-либо клиентские приложения. Вы не можете ничего установить там. Вы можете разместить базу данных Oracle только в Exadata. Это означает, что вы можете использовать функции базы данных, такие как DBFS (файловая система над базой данных Oracle), опция Java (хранение и выполнение кода Java в базе данных). Но вы должны проверить, на какие опции у вас есть лицензия. И используется внутренняя JVM, которая не может быть настроена или обновлена.

Exadata - это устройство для работы с базами данных, предназначенное для работы с большим количеством данных, к которым обращаются по-разному, очень эффективным и управляемым способом

Exadata -> Oracle Database экстремальная производительность. Exalogic -> Fusion Middleware экстремальная производительность. (Java идет сюда)

Ваш лучший шаг будет рефакторинг приложения, чтобы разместить как можно больше рабочей нагрузки на БД (PL/SQL).

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

Как насчет использования всех этих ГБ в оперативной памяти Exadata и начала настройки задержки вашего Java-приложения? Я имею в виду, что с этим ужасным объемом памяти вы можете попытаться установить действительно хорошее количество кучи и избежать задержки, вызванной сборкой мусора. Пожалуйста, дайте мне знать, что получится, если вы действительно попробуете это.

Другие вопросы по тегам