Fix the "insufficient shared memory" error
If you run AlloyDB Omni without enough shared memory for the columnar engine, then you might see the following error:
Insufficient shared memory for generating the columnar formats.
To address this issue, specify the amount of shared memory that's available to the AlloyDB Omni container.
Linux
- Make sure that you already installed AlloyDB Omni with your - /dev/shmdirectory mounted on the container. For more information, see Customize your AlloyDB Omni installation.
- Increase the size of your host machine's - /dev/shmpartition by using a technique such as editing your- /etc/fstabfile.
macOS
Install a new AlloyDB Omni container, and
specify a larger shared-memory value for the --shm-size flag.
Find the tables that are populated in the columnar engine
In the g_columnar_relations view, create queries to find the tables that are
present in the columnar engine.
SELECT * FROM g_columnar_relations;
Find the overall memory that the columnar engine uses
Use the google_columnar_engine_memory_available() SQL function to determine
the amount of memory that the columnar engine uses.
SELECT google_columnar_engine_memory_available();
Determine if specific columns aren't populated in the columnar engine
Try the following possible solutions:
- Check whether the columnar engine supports the column's data type.
- If you recently added or dropped columns to the base table, verify that you performed the same operation in the columnar engine.
Verify if a query uses the columnar engine
In the query plan, verify if there's a "Custom Scan (columnar scan)" planner node.
Find the maintenance jobs in progress
Query in the g_columnar_jobs view to find the jobs in progress.
SELECT * FROM g_columnar_jobs;
Set the amount of resources that maintenance activities use in the columnar engine
By default, the columnar engine uses up to 20% of the database resources. To
increase or decrease this usage, adjust the
google_columnar_engine.maintenance_cpu_percentage (GUC) setting. For more information,
see Adjust the CPU resources for maintenance tasks.