As we entered the 21st century, improving processor performance through faster clock speed has reached the wall due to power and heat problem. Therefore, modern processors started to adopt multi-core systems, which house multiple processor cores in one system. It was relatively easy to scale a program on a different processor that has higher clock speed than the previous processor but it was notoriously hard to achieve higher performance on a system with larger number of cores.
Main strategy to improve software performance on multi-core systems is to divide a software into sets of smaller jobs and run them in parallel by allocating each on a core. However, a wrong matching between jobs and cores or a need to synchronize between jobs can make the parallelism very inefficient or even impossible. Therefore, we can easily see cases when multi-core systems provide even lower performance than single-core systems if these issues are not correctly handled.
Especially, transaction processing system, mainly represented by relational database management system, has significant performance issue on multi-core systems because it requires both high performance and data consistency, which in turn requires lots of data sharing and synchronization. Our lab is working on analyzing and resolving issues that affect multi-core scalability and develop transaction processing system that has optimal multi-core scalability while maintaining data consistency.