Добавить в корзинуПозвонить
Найти в Дзене
Postgres Professional

Мы проверили, что происходит, когда Apache AGE внутри PostgreSQL тестируют не на игрушечных примерах, а под реальной нагрузкой

Взяли схему и запросы LDBC SNB, адаптировали их для AGE на базе pg_microbench и собрали 19 сценариев в трех группах — короткие чтения, тяжелые чтения и запись. На коротких чтениях AGE показывает себя уверенно: система держит стабильные ~40 000 TPS. Но как только нагрузка доходит до поиска путей, начинаются ограничения. В Apache AGE нет встроенного shortestPath(), поэтому кратчайший путь пришлось реализовывать вручную, и на маленьком графе такой запрос дал всего 7 TPS. По записи картина тоже контрастная: вставка ребер держится на уровне ~30 000 TPS, а вставка вершин сначала проседает до ~1000 TPS и деградирует со временем. Причину нашли в entityExists(): при каждой вставке там выполнялся SeqScan по всей таблице. После патча с индексным доступом TPS на вставке вершин вырос с 1000 до 15 000, а деградация исчезла. Подробнее — на Хабре. Читайте нас в MAX 🤩

Мы проверили, что происходит, когда Apache AGE внутри PostgreSQL тестируют не на игрушечных примерах, а под реальной нагрузкой.

Взяли схему и запросы LDBC SNB, адаптировали их для AGE на базе pg_microbench и собрали 19 сценариев в трех группах — короткие чтения, тяжелые чтения и запись.

На коротких чтениях AGE показывает себя уверенно: система держит стабильные ~40 000 TPS. Но как только нагрузка доходит до поиска путей, начинаются ограничения. В Apache AGE нет встроенного shortestPath(), поэтому кратчайший путь пришлось реализовывать вручную, и на маленьком графе такой запрос дал всего 7 TPS.

По записи картина тоже контрастная: вставка ребер держится на уровне ~30 000 TPS, а вставка вершин сначала проседает до ~1000 TPS и деградирует со временем. Причину нашли в entityExists(): при каждой вставке там выполнялся SeqScan по всей таблице. После патча с индексным доступом TPS на вставке вершин вырос с 1000 до 15 000, а деградация исчезла.

Подробнее — на Хабре.

Читайте нас в MAX 🤩