Сжатие соединения Oracle?

У меня есть приложение, которое использует JDBC для соединения с Oracle 11 г. К сожалению, машина, на которой мое приложение работает и машина Oracle, подключена через несколько низкое соединение пропускной способности. Я не осуществил сниффинг соединения, но я вполне уверен, потоковая передача данных через соединение не сжата. Для моего приложения я более обеспокоен пропускной способностью, чем задержка.

Там какой-либо путь состоит в том, чтобы сказать драйверу JDBC и Oracle сжимать данные, проходящие соединение? Google придумывает много ответов для сжатия файла данных, но я ничего не мог найти о сжатии сетевого протокола.

Я использую тонкий драйвер Oracle, но если это только поддерживается драйвером OCI, я мог бы переключиться на это. Спасибо за любые предложения!

9
задан Doug Porter 27 December 2009 в 04:58
поделиться

3 ответа

Чтобы напрямую ответить на вопрос, драйверы (тонкие или OCI) не имеют такого механизма сжатия. А так как передаваемые данные, скорее всего, в каком-то фанковом бинарном формате, я не уверен, что они будут хорошо сжиматься по SSL. Потребуется использовать какой-нибудь другой механизм для улучшения производительности сети.

5
ответ дан 4 December 2019 в 08:33
поделиться

Я не знаю подробностей о тонких драйверах Oracle и OCI. Но вы можете использовать SSH туннели для достижения сжатия .

  1. Итак, в вашей машине Oracle, вы настраиваете SSH демона. Если ваш сервер Oracle работает под RedHat Linux, то вы закончили
  2. На вашей клиентской машине (той, на которой размещается ваше приложение, подключающееся через JDBC) установить SSH-соединение, включив сжатый туннель. Для этого вы можете использовать командную строку SSH или Putty (если вы находитесь под Windows).

Настройте соединение на что-то подобное:

$ ssh -L1521:localhost:1521 username@oracleserver_ip

Затем, в вашем приложении, используйте localhost:1521 в качестве адреса Oracle.

.
10
ответ дан 4 December 2019 в 08:33
поделиться

По моему опыту, высокая задержка вредит производительности при использовании драйверов Oracle JDBC гораздо больше, чем низкая пропускная способность. (по крайней мере, в приложении, над которым я работаю). Вы говорите, что не беспокоитесь по поводу латентности, но не могли бы вы дать оценку латентности вашей среды с низкой пропускной способностью?

Насколько велики объемы передаваемых данных? Есть ли BLOB-столбцы? Существуют ли другие технологии, например, пул соединений или Hibernate? Существует множество потенциальных факторов, не только в случае сжатия ваших данных.

Проводили ли вы эмуляцию WAN для того, чтобы попытаться изолировать то, что больше всего снижает производительность? WANem довольно легко настроить.

Я потратил недели на эту проблему, и 100-200мс задержка причинила нам гораздо больше вреда, чем ограничение полосы пропускания в 1Mbit. Надеюсь, вы находитесь в другой лодке - сжатие - более простая задача.

5
ответ дан 4 December 2019 в 08:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: