Select a documentation version: <button class="button button-with-icon cloud-select-dropdown__button button-primary" aria-haspopup="true">18.4.0</button>

- [Current (18.4.0)](https://docs.cloud.google.com/alloydb/omni/linux/current/docs/reference/columnar-engine-flags.md.txt)
- [18.4.0](https://docs.cloud.google.com/alloydb/omni/linux/18.4.0/docs/reference/columnar-engine-flags.md.txt)
- [18.3.0](https://docs.cloud.google.com/alloydb/omni/linux/18.3.0/docs/reference/columnar-engine-flags.md.txt)
- [18.1.1](https://docs.cloud.google.com/alloydb/omni/linux/18.1.1/docs/reference/columnar-engine-flags.md.txt)
- [18.1.0](https://docs.cloud.google.com/alloydb/omni/linux/18.1.0/docs/reference/columnar-engine-flags.md.txt)

<br />

This page describes the database flags that AlloyDB Omni uses to enable and
manage features specific to [its columnar
engine](https://docs.cloud.google.com/alloydb/omni/linux/current/docs/columnar-engine/overview). For a list of all database flags
that AlloyDB Omni supports, see [Supported database flags](https://docs.cloud.google.com/alloydb/omni/linux/current/docs/reference/database-flags.md.txt).

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](https://docs.cloud.google.com/alloydb/omni/linux/current/docs/configure-database-flags.md.txt).

## Enablement

### `google_columnar_engine.enabled`

|---|---|
| Type | `Boolean` |
| Default | `off` |
| Instance restarts | Yes |

If `on`, enables the AlloyDB Omni [columnar
engine](https://docs.cloud.google.com/alloydb/omni/linux/current/docs/columnar-engine/overview).

## Auto-columnarization

### `google_columnar_engine.enable_auto_columnarization`

|---|---|
| Type | `Boolean` |
| Default | `on` |
| Instance restarts | No |

If `on`, enables the columnar engine's [auto-columnarization
features](https://docs.cloud.google.com/alloydb/omni/linux/current/docs/columnar-engine/manage-content-recommendations).

### `google_columnar_engine.relations`

|---|---|
| Type | `String` |
| Default | An empty string |
| Instance restarts | No |

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](https://docs.cloud.google.com/alloydb/omni/linux/current/docs/columnar-engine/manage-content-manually.md.txt).

### `google_columnar_engine.auto_columnarization_schedule`

|---|---|
| Type | `String` |
| Default | An empty string |
| Instance restarts | No |
| Maximum allowed value | 2147483647 |

Specifies the frequency that AlloyDB Omni runs its
[auto-columnarization](https://docs.cloud.google.com/alloydb/omni/linux/current/docs/columnar-engine/manage-content-recommendations.md.txt) process on the
instance.

The value is a string in the following format:

```sql
'EVERY NUMBER TIME_UNITS'
```

Replace the following:

- <var translate="no">NUMBER</var>: A positive integer.

- <var translate="no">TIME_UNITS</var>: 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`

|---|---|
| Type | `Integer` |
| Valid values | Between 128 to the value that represents 70% of instance memory |
| Default | 1GB of instance memory |
| Instance restarts | Yes |

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`

|---|---|
| Type | `Boolean` |
| Default | `on` |
| Instance restarts | No |

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`](https://docs.cloud.google.com/alloydb/omni/linux/current/docs/reference/columnar-engine-flags.md.txt#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.omni_storage_cache_directory`

This flag lets you specify a separate dedicated directory path for disk cache files for the columnar engine.

|---|---|
| Type | `String` |
| Valid values | A single directory path where disk cache files are stored. |
| Default | The total size of the dedicated Persistent Volume Claim (PVC) is allocated for the columnar spill-to-disk cache. |
| Instance restarts | Yes |

### `google_columnar_engine.storage_cache_size`

If `google_columnar_engine.omni_storage_cache_directory` is not specified, to enable the storage cache size, you must enable [disk cache](https://docs.cloud.google.com/alloydb/omni/linux/current/docs/configure-disk-cache.md.txt#enable-cache).

|---|---|
| Type | `Integer` |
| Valid values | `1024` ... `2147483647` |
| Default | 5% of the disk cache is allocated to the columnar engine when `google_columnar_engine.omni_storage_cache_directory` is not specified. |
| Instance restarts | Yes |

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

When `google_columnar_engine.omni_storage_cache_directory` is not specified, the maximum allowed value for this flag is 50% of the total disk cache. The 1000 \* `google_columnar_engine.memory_size_in_mb` cap is also applicable.

## Maintenance activities

### `google_job_scheduler.maintenance_cpu_percentage`

> [!NOTE]
> **Note:** This flag uses the prefix `google_job_scheduler` and not `google_columnar_engine`.

|---|---|
| Type | `Integer` |
| Valid values | `0` ... `100` |
| Default | `20` |
| Instance restarts | No |

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`

> [!NOTE]
> **Note:** This flag uses the prefix `google_job_scheduler` and not `google_columnar_engine`.

|---|---|
| Type | `Integer` |
| Valid values | `0` ... `262143` |
| Default | `2` |
| Instance restarts | No |

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`

|---|---|
| Type | `Integer` |
| Valid values | `1` ... `100` |
| Default | `50` |
| Instance restarts | No |

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`](https://docs.cloud.google.com/alloydb/omni/linux/current/docs/reference/columnar-engine-flags.md.txt#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`

|---|---|
| Type | `Integer` |
| Valid values | `0` ... `2147483647` |
| Default | `5` |
| Instance restarts | No |

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`](https://docs.cloud.google.com/alloydb/omni/linux/current/docs/reference/columnar-engine-flags.md.txt#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`

|---|---|
| Type | `String` |
| Default | An empty string |
| Instance restarts | No |
| Maximum allowed value | 2147483647 |

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

The value is a string in the following format:

```sql
'EVERY NUMBER TIME_UNITS'
```

Replace the following:

- <var translate="no">NUMBER</var>: a positive integer.

- <var translate="no">TIME_UNITS</var>: 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`

|---|---|
| Type | `Integer` |
| Valid values | `0` ... `2147483647` |
| Default | `50` |
| Instance restarts | No |

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`


> [!WARNING]
>
> **Preview**
>
>
> This product or feature is
>
> subject to the "Pre-GA Offerings Terms" in the General Service Terms section
> of the [Service Specific
> Terms](https://docs.cloud.google.com/terms/service-terms#1).
>
> Pre-GA products and features are available "as is" and might have limited support.
>
> For more information, see the
> [launch stage descriptions](https://cloud.google.com/products/#product-launch-stages).

<br />

|---|---|
| Type | `Boolean` |
| Default | `off` |
| Restarts instance | `No` |

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](https://docs.cloud.google.com/alloydb/omni/linux/current/docs/columnar-engine/configure.md.txt#vectorized).

## Preview features

### `google_columnar_engine.enable_json_support`


> [!WARNING]
>
> **Preview**
>
>
> This product or feature is
>
> subject to the "Pre-GA Offerings Terms" in the General Service Terms section
> of the [Service Specific
> Terms](https://docs.cloud.google.com/terms/service-terms#1).
>
> Pre-GA products and features are available "as is" and might have limited support.
>
> For more information, see the
> [launch stage descriptions](https://cloud.google.com/products/#product-launch-stages).

<br />

|---|---|
| Type | `Boolean` |
| Default | `off` |
| Restarts instance | `No` |

If both this flag and [`enable_raw_format`](https://docs.cloud.google.com/alloydb/omni/linux/current/docs/reference/columnar-engine-flags.md.txt#enable-raw) are set to `on`, then
AlloyDB Omni allows [PostgreSQL JSON and JSONB data types](https://www.postgresql.org/docs/18/datatype-json.html) in the column store.

### `google_columnar_engine.enable_raw_format`


> [!WARNING]
>
> **Preview**
>
>
> This product or feature is
>
> subject to the "Pre-GA Offerings Terms" in the General Service Terms section
> of the [Service Specific
> Terms](https://docs.cloud.google.com/terms/service-terms#1).
>
> Pre-GA products and features are available "as is" and might have limited support.
>
> For more information, see the
> [launch stage descriptions](https://cloud.google.com/products/#product-launch-stages).

<br />

|---|---|
| Type | `Boolean` |
| Default | `off` |
| Restarts instance | `No` |

If both this flag and [`enable_json_support`](https://docs.cloud.google.com/alloydb/omni/linux/current/docs/reference/columnar-engine-flags.md.txt#enable-json) are set to `on`,
then AlloyDB Omni allows [PostgreSQL JSON and JSONB data types](https://www.postgresql.org/docs/18/datatype-json.html) in the column store.