Configure the columnar engine

This page describes how to enable or disable the columnar engine on an AlloyDB for PostgreSQL instance. It also covers how to configure an appropriate initial size for its column store.

Each of these actions involves changing the value of a database flag on one of your AlloyDB instances. For more information about setting database flags, see Configure an instance's database flags.

Enable the columnar engine

To enable columnar engine on the primary instance or a read pool instance, set the instance's google_columnar_engine.enabled flag to on.

After you set this flag, the instance automatically restarts.

Configure the size of the column store

While the columnar engine is enabled on an instance, AlloyDB allocates a portion of the instance's memory to store its columnar data. Dedicating high-speed RAM to your column store ensures that AlloyDB can access the columnar data as rapidly as possible.

If the column store becomes larger than the allocated portion of your instance's memory, AlloyDB automatically uses the instance's underlying cache layer to store the additional columnar data.

By default, AlloyDB allocates 30% of the instance's memory to the column store, and automatically adjusts the total allocation if you resize the instance.

If you instead want to set the allocation to a fixed and specific size, set the google_columnar_engine.memory_size_in_mb flag. To have AlloyDB return to proportional allocation after that, delete the flag from the instance.

For more information on setting or deleting flags, see Configure an instance's database flags.

Enable vectorized join

The columnar engine has a vectorized join feature that can improve the performance of joins by applying vectorized processing to qualifying queries.

After you enable vectorized join, the AlloyDB query planner has the option to apply the vectorized join operator instead of the standard PostgreSQL hash join operator. The planner makes this decision by comparing the cost of executing the query using either method.

To enable vectorized join on an instance, set the instance's google_columnar_engine.enable_vectorized_join flag to on.

AlloyDB allocates one thread to the vectorized join feature by default. You can increase the number of threads available to this feature by setting the google_columnar_engine.vectorized_join_threads flag to a larger value.

For more information about setting database flags, see Configure an instance's database flags.

Disable the columnar engine

To disable the columnar engine on the primary instance or a read pool instance, set that instance's google_columnar_engine.enabled flag to off.

AlloyDB automatically restarts the instance after you update this flag.

What's next