My research interests include parallel and distributed computing, cloud computing, and virtualization on multicores. My research in cloud computing focuses on two areas: cloud OS (Infrastructure as a Service) and cloud databases. For cloud OS, we jointly develop a cloud OS prototype, Roystonea, with National Taiwan University. Roystonea provides dynamic provision, scheduling and management of virtual machines, automatic scaling of system resources for application service requirements, and dynamic resource management for performance/energy tradeoff. All these functionalities are implemented as pluggable software components. Roystonea has been used to support production runs of several applications at NTU.
With the growth of data size in many application domains, the needs for data management systems are continuously increasing. We are developing data management systems for cloud computing: (1) SQLMR for OLAP applications and large-scale data analysis/processing, (2) HSQL for massive multi-user OLTP applications, and (3) distributed graph database for social computing. SQLMR compiles SQL queries to a sequence of MapReduce jobs. Existing SQL-based applications are compatible seamlessly with SQLMR and users can manage Tera to PataByte scale of data with SQL queries. HSQL provides a SQL query interface on top of Hadoop/Hbase. It also employs distributed indexing schemes to support efficient, massive multi-user data queries. Experiment results demonstrate both performance and scalability advantage of SQLMR and HSQL compared to a number of existing SQL/NoSQL data processing systems. We are also investigating cloud database virtualization. The goal is to enable applications with SQL queries to run on different NoSQL platforms transparently and efficiently.
For multicore research, our research focuses on the core technologies that support virtualization, particularly dynamic binary translation (DBT) and binary optimization targeting multicore systems. Existing binary manipulation techniques are for single-core platforms and with substantial runtime overhead. Our plan is to extend binary manipulation techniques to multicore platforms. This is a much harder problem as we need to deal with parallel applications and with much more shared resources on multicore platforms. We are exploring new ways to extend DBT for multicores. In particular, we focus on several important and new research subjects: DBT for multi-threaded parallel applications, client-server based DBT for cloud and mobile computing, DBT for system virtualization, and architecture support for DBT.