skip to Main Content

AGE is already tuned by default for the graph queries inside a RDB.

But as far as Postgres tuning goes. It is generally recommended to tune it to the target application. At the moment I have configured Postgres to be tuned towards data warehousing.

Is there further tuning/config that can be done for the AGE extension? Are there AGE specific settings that can be accessed and added to my .conf file?

Currently this the my configuration for data warehousing purposes.

postgresql.conf

max_connections = 100
shared_buffers = 512MB
effective_cache_size = 1536MB
maintenance_work_mem = 256MB
checkpoint_completion_target = 0.9
wal_buffers = 16MB
default_statistics_target = 500
random_page_cost = 1.1
effective_io_concurrency = 200
work_mem = 1310kB
min_wal_size = 4GB
max_wal_size = 16GB

3

Answers


  1. You can add some age specific settings to your config file for more control like:

    age.max_search_depth
    age.max_traversal_steps
    age.enable_memoization
    age.enable_fast_traversal
    age.max_edge_id_cache_size
    

    The results will depend on the use case and you will need to try different settings. Some may work better only for certain types of queries so it is important to experiment to check performance.

    Login or Signup to reply.
  2. In addition to han’s answer, AGE itself also provides several custom functions that you can use to further optimize graph queries. These can be used to create custom indexes for faster querying, or to extract subgraphs from the extended graph for specific use cases.

    Login or Signup to reply.
  3. Yes, you can add some settings in your postgresql.conf files that you can optimize your graph queries. Such as-

    1. max_search_depth: It is the maximum depth of a graph. Its default value is 5 but you can set it according to your graph complexity .
      Such as: max_search_depth = 10
    2. max_workers: Number of threads for parallel execution.
      Such as: max_workers = 8
    3. join_buffer_size: Buffer size for join operation. Default value is 4MB.
      Such as: join_buffer_size = 8MB
    4. enable_hashjoin & enable_mergejoin: You can set it off or ON depending on your graphs.
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search