— Tentative Schedule —
19/1/18 – Introduction & Main Memory Databases
In this lecture we will explore how the increasing size of main memory has changed the design of database engines. In particular, we will be looking at how the database engines for main memory are designed differently from classical databases (designed for main memory). We will study the differences with the example of VoltDB. Furthermore we will look at how indexing approaches have changed in main memory.
26/1/18 – Solid State Disk and Databases
This lecture will focus on how SSD and related storage technology has changed how databases work. Although SSD has not replaced classical disks, its increasing use in the storage hierarchy has an impact on database design. We will also have quick look at new storage technologies which may become available in the near future such as Phase Change memory and their implications for database design.
2/2/18 – Graph Databases
Traditional relational databases never natively supported graph queries efficiently. With the increasing number of use cases based on graph data, graph databases are becoming popular. In this lecture we will look at graph databases as well as their pros and cons.
9/2/18 – Graph Databases Tutorial
During this tutorial we will work on the graph database coursework.
16/2/18 – Document Databases
The increasing prevalence of structured or semi-structured data challenges traditional databases. No longer can we simply shred the documents and store them in a relational database. The overhead is simply too high while the utility too low. In this lecture we will therefore study newly developed document databases.
23/2/18 – Document Databases Tutorial
During this tutorial we will work on the document database coursework.
2/3/18 – Transactions on Multicores
Multicores are the strategy of choice to scale computations. This works particularly well for applications with no or little shared state. Unfortunately this is not the case for database transactions. In this lecture we will therefore discuss how multicores affect the design of database engines with respect to transactions.