Конфигурация клиента и кэша для согласованности с Oracle

У меня есть конкретный сценарий, для которого мы хотим использовать 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 ответ

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

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

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

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

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