Конфигурация клиента и кэша для согласованности с Oracle - PullRequest
2 голосов
/ 15 апреля 2010

У меня есть конкретный сценарий, для которого мы хотим использовать Coherence в качестве распределенного кэша. Который я опишу здесь.

  1. У меня более 20 автономных процессов, которые будут непрерывно помещать данные в кеш. частота их всех различна, хотя это не проблема.
  2. И 2 процесса, которые будут считывать данные из этого кэша.
  3. Мне не нужны какие-либо базовые значения, кроме способа обеспечения согласованности. Данные будут записаны в кеш и прочитаны из кеша.
  4. В моем распоряжении кластер из 4 узлов (независимо от стоимости), и кластер когерентности будет находиться в разных блоках (независимо от ограничений), и заполненная часть кэша, и часть чтения будут находиться на разных машинах.
  5. Пиковый объем памяти кеша ежедневно колеблется около 6 ГБ, максимум - 2 ГБ. Кэш будет иметь только ежедневные данные, и у меня будут отдельные процессы архивирования, чтобы одновременно хранить и архивировать их. Дело в том, что размер кэша пока будет иметь только этот размер. Допустим, я собираюсь держать дату вне ключевого уравнения.
  6. Хотя хотелось бы изучить, смогу ли я хранить больше в этих 4 узлах. Прямо сейчас его простая сериализация, может исследовать другие двоичные форматы. Или я должен определенно при этом размере кэша?
  7. Мои операции чтения и записи довольно распространены в течение дня. Это означает, что чтение и запись будут продолжаться этими двумя клиентами чтения и более чем 20 клиентами записи. Это не так, как один из них больше. Хотя во всех фоновых процессах есть пакетный процесс запуска, который проталкивает в кеш больше, чем непрерывное проталкивание впоследствии. Но постоянное нажатие также увеличивает объем данных.

Теперь мои вопросы относительно этих пунктов (а также из-за некоторой путаницы)

  1. Самое большое, что кто-то сказал мне, что у меня ограниченное количество соединений в зависимости от купленных нами узлов. поэтому он сказал, что если его 4, в идеале у вас должно быть 4 соединения только на макс. Итак, разработайте приложение типа «привратник», а что нет. Даже если мы используем TCP Extend. Теперь из моего чтения пока я так не думаю. Это? Дело в том, что не хочу идти по этому пути, если это действительно не является ограничением.

Другими словами, существует ли ограничение на соединение через прокси-службу в зависимости от узлов в кластере?

  1. То, что относится только к вышесказанному. на самом максимуме я получу некоторое снижение производительности при добавлении в кеш, только если я пойду по пути расширения, верно?

  2. Распределенный кеш / ближний кеш. Как время чтения, так и наибольшее количество обновлений кеша крайне важны. (самый бесчестный вопрос, который у меня есть).

  3. Очень хочется увидеть преимущества, которые можно получить от перехода на POF вместо, скажем, сериализации / externalizatble / protobuf. Может ли согласованность поддерживать protobuf из коробки? (может быть позже)

1 Ответ

1 голос
/ 27 августа 2010

Технических ограничений на количество соединений, которые может поддерживать прокси-сервер Coherence Extend, нет, кроме обычных ограничений сетевых и аппаратных ресурсов.Вам нужно будет спросить менеджера по продажам Oracle, есть ли лицензионные ограничения.

При использовании прокси-сервера наблюдается некоторое снижение производительности, поскольку вы добавляете дополнительный сетевой переход (клиент-прокси-сервер в кластер).Если вы используете сериализацию POF, прокси не должен сериализовать / десериализовать значения.Он может просто передать объект в его сериализованной форме.В большинстве приложений влияние прокси на производительность незначительно, потому что Coherence высоко оптимизирован для скорости сети.Вы не обязаны использовать прокси, если ваши клиенты не являются .NET или C ++, но есть преимущества в том, чтобы изолировать производительность клиента от воздействия на кеш.

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

POF предлагает улучшения производительности, основанные на более быстрой сериализации / десериализации и более компактном хранилище.Всегда лучше попробовать с тестовыми данными, основанными на ваших реальных производственных данных и измерить разницу самостоятельно.Coherence не поддерживает protobuf из коробки.

...