{"repo":"sfu-dis/preemptdb","free":true,"listed":false,"github":"https://github.com/sfu-dis/preemptdb","clone":"git clone https://github.com/sfu-dis/preemptdb.git","description":"Low-Latency Transaction Scheduling via Userspace Interrupts: Why Wait or Yield When You Can Preempt? (SIGMOD 2025 Best Paper Award)","language":"C++","stars":81,"topics":["database","scheduling","uintr","htap","preemptive-scheduling","transactions","user-interrupt","priority"],"license":"MIT","category":"databases-storage","readme_excerpt":"PreemptDB: Low-Latency Transaction Scheduling via Userspace Interrupts PreemptDB a database engine that supports lightweight userspace preemptible transactions enabled by Intel x86 user interrupt (uintr). PreemptDB allows high-priority, short-transactions to quickly preempt and pause long-running, low-priority transactions which is resumed after the short-transaction concludes. Check out more details in our SIGMOD 2025 paper (received Best Paper Award !). If you use our work, please cite: Step 1: Check if User Interrupt is Supported Please build and run this tool to check if your CPU supports user interrupt. Step 2: Enable Kernel Support for User Interrupt We have two options to enable kernel support for user interrupts: 1. Patched Kernel: We provide a patched kernel with uintr support. You can download it from here. Follow the instructions in the repository to build and install the kernel. 2. Character Device: If you prefer not using a patched kernel, you can use an alternative character device interface from here. This allows you to enable uintr support without modifying the kernel. If your kernel already enables uintr, do not use the character device. To build the system with the alternative device driver, please add -DUSE LIBUINTRDRIV=ON flag to the cmake command in step 4. Step 3: Allocate Huge Pages PreemptDB uses huge pages for memory allocation. You can allocate huge pages using the following command: Step 4: Build PreemptDB Step 5: Run PreemptDB Before you run Preemp","default_branch":null,"files":null,"tree":[],"storefront":"/r/sfu-dis","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/sfu-dis/preemptdb/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}