INSERT/UPDATE/DELETE statements cannot be executed on memory tablespaces. Only the SELECT statement is executable.
This error occurs when the total sum of memory tablespaces (SYS_TBS_MEM_DIC+SYS_TBS_MEM_DATA+USER_MEMORY_TABLESPACE) exceeds MEM_MAX_DB_SIZE.
MEM_MAX_DB_SIZE is the maximum amount of memory that can be used by memory tablespaces. For further information, refer to the [Technical Article] ALTIBASE Monitoring Query Guide, [TS01] Memory Table Space Usage (page 29).
The tablespace area cannot be returned unless a tablespace is dropped. (The COMPACT command can return the blank page, but the effect is negligible. Thus, it is not recommended.)
Therefore, if MEM_MAX_DB_SIZE is set lower than the actual amount, change the value of MEM_MAX_DB_SIZE from $ALTIBASE_HOME/conf/altibase.proeperties and restart the Altibase server process.
It is recommended to set the maximum value of MEM_MAX_DB_SIZE as the sum of VOLATILE_MAX_DB_SIZE and MEM_MAX_DB_SIZE within 60 to 70 percent of the physical memory.
- Checking MEM_MAX_DB_SIZE
The above example shows the maximum number of pages that can be used (It is divided by 32 as the size of one page is 32K).
- Checking Usage
1. The above example shows the current usage of the memory tablespace. There are 32,643 pages allocated in total.
2. For SYS_TBS_MEM_DIC and SYS_TBS_MEM_DATA, they have not reached MAXSIZE but the error has occurred because the sum of all the memory tablespaces has almost reached MEM_MAX_DB_SIZE.
The current sum shows the value of 32,643 and the actual MEM_MAX_DB_SIZE is 32,768. Thus, there are still 125 pages that can be allocated. However, as the default value of EXPAND_CHUNK_PAGE_COUNT (the number of pages by which to increase the size of the memory tablespace) is 128, it means that all the pages are currently being used.
(The error occurs when MEM_MAX_DB_SIZE is exceeded because the transaction tried to expand.)
- Restarting Altibase server after increasing MEM_MAX_DB_SIZE
It needs to restart the server after modification.
- Checkpoint Image File Size
For in-memory databases of ALITBASE HDB, any modified data from in-memory databases is saved on disk when checkpointing is executed. The disk file where memory data is saved is called the Checkpoint Image file. This file cannot be resized, which means that once it is expanded, it cannot be reduced.