cmu-db / peloton

The Self-Driving Database Management System
http://pelotondb.io
Apache License 2.0
2.03k stars 624 forks source link

Garbage collection fixes (again) #1428

Closed mbutrovich closed 6 years ago

mbutrovich commented 6 years ago

This is a subset of the changes of #1349 and a replacement for #1326. It contains only the garbage collection fixes, ignoring the TileGroup freeing and TileGroup compaction features. This PR resolves almost all of the issues identified in issue #1325.

It includes the results of a thorough correctness audit we performed on Peleton's garbage collection system. It includes a whole new test suite for the Transaction-Level Garbage Collector and several important bug fixes to the Garbage Collector and Transaction Manager. The bug fixes themselves are a very small number of the line changes, with the majority being added tests, documentation, and refactoring.

GC Fixes Summary:

A significant portion of this code was co-written by @dqrs but it was easier for me pull the bug fixes from our TG compaction branch than to remove the undesired changes.

coveralls commented 6 years ago

Coverage Status

Coverage increased (+0.3%) to 76.849% when pulling f0130ef89db336712168ca8f72a57a64c7c835fb on mbutrovich:gc_fixes_2 into 196f663d8f04d0a92b878d8efcf799b280c65376 on cmu-db:master.

mbutrovich commented 6 years ago

We passed 78% coverage!

tli2 commented 6 years ago

@mbutrovich My theory is that we can increase coverage simply by deleting unused code and simplifying what we have without having to write new test cases for probably a month or so at this point.😅