March 23, 2020

Paper Review: Disaggregated DB

Disaggregation is a hot topic. This week’s two paper mainly discussed the recent trend in cloud native database systems. I believe the first paper (Database High Availability Using SHADOW Systems) is one of the early attempts towards the goal: decouple the computing nodes with the storage nodes. The second paper is a more complete and more involved, it show cased how cloud native architecture inside the AWS. Database High Availability Using SHADOW Systems Database systems achieves high availability by duplicating the database instances. Read more

March 16, 2020

Paper Review: DB on NIC

This week’s topic is very like the “DB on new hardwares,” the difference is NIC has gained some special interests. The two papers, “HyperLoop” and “NetCache” are very interesting in terms of what problems they tried to solve. Some unrelated side notes: in the DB seattle report, people complained database conferences (VLDB and SIGMOD) are becoming elite conferences, where the reviewers asking for “perfect papers.” From my point of view, SIGCOMM (where the first paper comes from) indeed is a elite conference, which partially explains why the “Hyperloop” paper is extremely satisfying to read. Read more

March 8, 2020

Paper Review: Network DB

This week’s papers talk about distributed database systems. So what’s the difference between distributed database systems and other distributed systems? In the case of distributed system, the main challenge is the limited bandwidth and sub-optimal TCP/IP protocol. Most of the research work was spent on reducing the inter-data center network and increase the intra-nodes traffic. This kind of work is very much like the magnified NUMA issues, the difference though, is the difference between WAN speed and LAN speed is much bigger than that of local socket and remote socket. Read more

March 1, 2020

Paper Review: Accelerators

Accelerators, especially the FPGAs, have gained increasingly more popularity both in the industry and academia. The major reason behind this popularity stems from the end of Moore’s law, where people can not expect the CPU performance to grow exponentially to solve existing performance issues. In other words, we need to take actions to improve the system performance, otherwise it will likely to remain unchanged for the next few years. Read more

February 20, 2020

Paper Review: Persistent Memory

Persistent memory is different from other new hardware, because it breaks some old assumptions and introduces more complex concepts. Other new hardware, like GPU, can transparently replace some part of computation pipeline, thus researchers mainly focus on how to exploit the computation power of new devices. Persistent memory, however, fundamentally changed how the programming itself should look like: it requires applications to take control of the CPU cache behavior (while it’s designed to be transparent), it asks for a new level of memory safety, and etc. Read more

February 19, 2020

A Guide to Locate Linux Kernel Bugs

Recently we encountered yet another kernel bug: our data structure performs 3-4x slower on kernel v5.2 than on kernel v5.5.x So I tried to figure out exactly which commit caused the bug, and which commit fixed it. This is a very long journey, and it is extremely difficult for non-kernel developers to work on it. I found these experiences/lessons to be useful, hope they are helpful to you as well. Read more

February 6, 2020

A possible mmap bug from Linux kernel

The theory Before I discuss about today’s bug, here’s a little bit background: https://lwn.net/Articles/758594/ mmap() is not allowed (by standards like POSIX by many years of history) to return an error when given unknown flags… More serious is that there is no way for an application to know that the kernel it’s running on at the moment supports MAP_SYNC at all, since all kernels will return success with that flag set. Read more

February 3, 2020

Paper Review: Flash Memory

Both papers are not interesting to me, it’s not that flash memory are uninteresting, but these techniques are too far away from my current research, i.e. I can not think critically on their approaches, they are more like good-to-know papers. Page-Differential Logging: An Efficient and DBMS-Independent Approach for Storing Data into Flash Memory This paper tried to solve a old problem: asymmetric read/write time of data storage, in the context of flash memory, this paper also helps to improve the wear-level and thus increase the longevity of the storage device. Read more

January 27, 2020

Paper Review: Indexing

Key words: many-core, latch-free, cache, memory The Bw-Tree: A B-tree for New Hardware Platforms BwTree is a b+tree trying to fit with multi-core processor and flash based storage. To deal with multi-core processors the authors argued we ultimately need to achieve latch-free in order to eliminate the thread synchronization cost. To co-operate with the flash storage, the BwTree utilized the mapping table as the base for other innovations, such as delta updating and less internal node modifications. Read more

January 25, 2020

Unaligned mmap can decrease performance, and the lessons learned

Several days ago I was told a mysterious bug: the performance of our new data structure is unstable across different benchmark execution, specifically, the throughput fluctuates from 1x to 10x. Further investment shows that the root cause comes from uncommonly high page faults. There’s a long journey to find out the real problem, yet the conclusion is simple: Unaligned mmap address can significantly decrease the performance, but it's deceptively easy to mmap an unaligned address, especially for persistent memory. Read more

Xiangpeng Hao 2020