Occasionally, we are asked why Altibase outperforms Oracle since Oracle uses a buffer cache to improve performance. Some say that the buffer cache resides in memory, and so it should perform equivalent to an in-memory database.
This is categorically false. While it is true that the buffer cache resides in memory and dramatically improves performance, it is absolutely not identical to an in-memory database. The buffer cache typically can only store a very small subset of data, unless the database size is extremely small. Anytime a client requests data that does not currently exist in the buffer cache, it must fetch the data from the physical disk and load it into the buffer cache before it is read.
This corresponding disk read dramatically reduces performance. In addition, this data caching is really only useful for reads. There is no real performance improvement when it comes to inserts, updates or deletes. In contrast, an in-memory database dramatically improves the total performance of the database regardless of the type of the SQL query made.
Altibase is faster than Oracle buffer cache because Altibase accesses a record directly by an operating system providing native memory pointer, whereas Oracle accesses a record indirectly through a logical Row ID (RID). With an RID Oracle has to go through a buffer manager, a buffer page and a position of the record in the buffer page. The net result is much slower performance.
Altibase vs. Oracle’s Database Buffer Cache
Altibase – Downloading is Believing.