Как мы ищем по всем атрибутам всех объектов системы или немного Oracle In-MemoryБазы данных и системы хранения
Один из наших Заказчиков поставил следующее требование к программному продукту: возможность поиска по любой комбинации атрибутов объектов всей системы в едином интерфейсе. Когда мы спросили о скорости, ответ был не менее прост: "Как у Amazon". Задачу усложняло то, что одновременно с данным функционалом работает не менее 1000 пользователей, а другие части приложения не менее 5000 раз в секунду запрашивают данный функционал через REST API.
Очевидным решением для данного функционала является faceted search.
Наше приложение реализовано с использованием СУБД Oracle, и мы решили использовать встроенные возможности, чтобы минимизировать доработку кода на стороне сервера приложений.
Я расскажу, как, используя СУБД Oracle и In-Memory-опцию, мы добились необходимой скорости, обеспечили себе задел на будущее и победили наши аппаратные ограничения.
Будут рассмотрены недостатки и достоинства данного решения и способы борьбы с проблемами.
Продолжая тренд OpenSource, я расскажу, что вышло бы по скорости и объему изменений, если бы мы использовали в качестве СУБД Tarantool и Apache Ignite.