One of the most critical aspects of databases today is response time, because both the amount and the cardinality of data increase. However, traditional databases are no longer able to provide real-time data access in all cases; that is why in-memory databases have been developed. Such systems have only become economically usable with recent development of hardware, as a result of increasing capacity and decreasing price of memory modules. The idea of in-memory databases is to store data in the main memory instead of relying on block storage of hard drives. In-memory databases can prove approximately thousand-times speedup in some cases.
Another requirement from databases is, ensuring high level of parallelism. However, proper concurrency management is not trivial and requires new paradigms.
In my thesis I present the operations and services of in-memory database systems. The operation principle of in-memory databases is different from traditional databases, hence traditional data structures are no longer usable. In this thesis three different data structures are presented developed for data storage and retrieval for in-memory databases. These structures provide four basic functions necessary to manage databases. One of the storage structures also allows us to create indexes for faster data access. The resulting database engine fully supports parallel requests, and all storage structures have been optimized for maximum performance. The thesis presents the design, concurrency management, and the performance benchmark of the implemented structures.