Altibase was designed for efficient memory use in each hierarchy in order to efficiently manage high-capacity databases. In database system software, memory allocation (malloc) and value assignment (memset) greatly affects performance. Altibase designed and implemented the memory management module by using its own memory pool. Altibase's storage manager manages the data pages optimized in main memory. It also stores and manages the database efficiently by maximizing the relationship of each page. Altibase's query processor efficiently manages memory space during query processing and minimizes the performance hindrance caused by needless memory allocation and de-allocation in running time.
In a main memory database, a table may occupy more memory space than necessary. This happens when data are updated and deleted frequently after a large amount of data has been inserted into the specific table. In cases, the DBMS can return unnecessary memory to the system, efficiently making use of memory space. Altibase offers the compaction function of a table unit, enabling users to efficiently manage their tables and memory.
Altibase offers to locate database space in shared memory or process local memory in main memory. If using the shared memory to locate database space, Altibase's restart time in the system's normal situation is very small. Because the status of the before database is kept safety in shared memory, the Altibase server can use the database space by attaching existing database space to Altibase server process without accessing data from the backup database into the in-memory database space.
Altibase's data space is divided into persistent and temporary spaces in the main memory. The former stores data about actual tables and meta information, and reflects the content of the backup database that exists in the disk, while he latter is where index data and temporary tables derived during query execution are placed. This space is not reflected to the backup database in disk, and when the Altibase server ends, the space disappears.
Altibase's index data is managed being stored to temporary space because it is not stored to the backup database. Altibase creates some indexes using index information in the database catalog at early time the database server running. Doing not store the index information to backup database, Altibase need not logging about the index update, and could improve database performance so much.
In case that persistent space of database is lacking in main memory by continued insertion of data, Altibase extends and manages the persistent space to fixed size automatically. Of course, the extended persistent space to database guarantees permanence of the data being reflected to the backup database.