Взяли схему и запросы 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 🤩
