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, increase the size of the /dev/shm partition on your
Kubernetes nodes or decrease the memory allocated to the columnar engine so that
it doesn't exceed the available /dev/shm size. For more information, see
Configure the columnar engine.
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.