Columnar engine flags

This page describes the database flags that AlloyDB Omni uses to enable and manage features specific to its columnar engine. For a list of all database flags that AlloyDB Omni supports, see Supported database flags.

Flags marked with Instance restarts mean that you must restart an AlloyDB Omni instance whenever you set, remove, or modify this flag on that instance. The flag's value persists for the instance until you modify it again.

For instructions about how to set a database flag, see Configure AlloyDB Omni database flags.

Enablement

google_columnar_engine.enabled

TypeBoolean
Defaultoff
Instance restartsYes

If on, enables the AlloyDB Omni columnar engine.

Auto-columnarization

google_columnar_engine.enable_auto_columnarization

TypeBoolean
Defaulton
Instance restartsNo

If on, enables the columnar engine's auto-columnarization features.

google_columnar_engine.relations

TypeString
DefaultAn empty string
Instance restartsNo

Specifies a list of columns for AlloyDB Omni to add to your cluster's column store, apart from the auto-columnarization process. These columns can come from any tables within your cluster.

The flag's value is formatted as a comma-separated list of items. Each item specifies one or more columns from a single table, expressed in this format:

'DATABASE_NAME.SCHEMA_NAME.TABLE_NAME(COLUMN_LIST)'

For more information, see Manage column store content manually.

google_columnar_engine.auto_columnarization_schedule

TypeString
DefaultAn empty string
Instance restartsNo
Maximum allowed value2147483647

Specifies the frequency that AlloyDB Omni runs its auto-columnarization process on the instance.

The value is a string in the following format:

'EVERY NUMBER TIME_UNITS'

Replace the following:

  • NUMBER: A positive integer.

  • TIME_UNITS: Either DAYS or HOURS.

If not defined, then AlloyDB Omni runs the auto-columnarization process once every hour.

Sizing and query processing

google_columnar_engine.memory_size_in_mb

TypeInteger
Valid valuesBetween 128 to the value that represents 70% of instance memory
Default1GB of instance memory
Instance restartsYes

The amount of instance memory, expressed in mebibytes (MiB), that AlloyDB Omni allocates to the column store.

If this flag isn't set, then AlloyDB Omni allocates 1GB of the instance's memory to the column store.

google_columnar_engine.enable_columnar_scan

TypeBoolean
Defaulton
Instance restartsNo

If on, allows AlloyDB Omni to access data in the column store when handling queries.

If this flag is off while google_columnar_engine.enabled is on, then the columnar engine remains enabled and keeps its column store, but AlloyDB Omni doesn't use columnar data when it handles queries.

google_columnar_engine.storage_cache_size

To enable the storage cache size, you must enable disk cache.

TypeInteger
Valid values1024 ... 2147483647
Default5% of the disk cache is allocated to the columnar engine
Instance restartsYes

If on, lets AlloyDB Omni configure size of the storage cache for the columnar engine.

The maximum allowed value for this flag is 50% of the total disk cache or 1000 * google_columnar_engine.memory_size_in_mb whichever is lower.

Maintenance activities

google_job_scheduler.maintenance_cpu_percentage

TypeInteger
Valid values0 ... 100
Default20
Instance restartsNo

The maximum percentage of an instance's CPU capacity that the columnar engine can apply to background processing.

google_job_scheduler.max_parallel_workers_per_job

TypeInteger
Valid values0 ... 262143
Default2
Instance restartsNo

The maximum number of parallel workers that the columnar engine can create to handle any single background processing operation.

Auto refresh - event driven

google_columnar_engine.refresh_threshold_percentage

TypeInteger
Valid values1 ... 100
Default50
Instance restartsNo

Specifies the column store's data-refresh threshold, expressed as a percentage.

AlloyDB Omni refreshes the data within a columnar unit—a set of data blocks within a columnar table—when the following conditions are met:

  • The columnar unit's table has exceeded the scan-threshold defined by the separate refresh_threshold_scan_count flag.

  • The percentage of the columnar unit's underlying data blocks that have become invalid exceeds the value of the refresh_threshold_percentage flag. Columnar data blocks become invalid due to changes in the row-based data that the columnar table draws upon.

google_columnar_engine.refresh_threshold_scan_count

TypeInteger
Valid values0 ... 2147483647
Default5
Instance restartsNo

AlloyDB Omni keeps a running count of the table scans performed on each columnar table since that table's most recent DML query. The value of the refresh_threshold_scan_count flag specifies the minimum value of this counter on any columnar table before AlloyDB Omni can refresh its data. From there, AlloyDB Omni uses the invalid-block threshold defined by refresh_threshold_percentage to determine when to refresh the table's data.

If this flag's value is set to 0, then AlloyDB Omni disregards table scans to determine when to refresh columnar data, using only refresh_threshold_percentage instead.

Auto refresh - periodic and adaptive

google_columnar_engine.adaptive_auto_refresh_schedule

TypeString
DefaultAn empty string
Instance restartsNo
Maximum allowed value2147483647

Specifies the frequency that AlloyDB Omni runs its Adaptive Auto Refresh process on the instance.

The value is a string in the following format:

'EVERY NUMBER TIME_UNITS'

Replace the following:

  • NUMBER: a positive integer.

  • TIME_UNITS: either DAYS or HOURS.

If not defined, then AlloyDB Omni runs the Adaptive Auto Refresh process once every hour.

google_columnar_engine. min_adaptive_auto_refresh_blocks

TypeInteger
Valid values0 ... 2147483647
Default50
Instance restartsNo

The number of the columnar unit's underlying data blocks that have become invalid exceeds the value of the min_adaptive_auto_refresh_blocks flag. Columnar data blocks become invalid due to changes in the row-based data that the columnar table draws upon.

Vectorized join

google_columnar_engine.enable_vectorized_join

TypeBoolean
Defaultoff
Restarts instanceNo

If on, then AlloyDB Omni automatically uses multithreaded vectorized operations to improve the performance of queries that join multiple tables.

For more information, see Enable vectorized joins.

google_columnar_engine.vectorized_join_threads

TypeInteger
Valid valuesUp to half of the instance's vCPU count
Default1
Restarts instanceNo

Defines the maximum number of parallel threads available to the vectorized join operator, enabled by the enable_vectorized_join flag.

You can define a value as large as one-half of the instance's vCPUs. For example, on a 16 vCPU instance, this flag's maximum value is 8.

Preview features

google_columnar_engine.enable_json_support

TypeBoolean
Defaultoff
Restarts instanceNo

If both this flag and enable_raw_format are set to on, then AlloyDB Omni allows PostgreSQL JSON and JSONB data types in the column store.

google_columnar_engine.enable_raw_format

TypeBoolean
Defaultoff
Restarts instanceNo

If both this flag and enable_json_support are set to on, then AlloyDB Omni allows PostgreSQL JSON and JSONB data types in the column store.