Great lecture so far. Haven't had the time to watch the whole lecture, but one thing I want to mention is that there are techniques to improve the buffer manager performance as for instance described here by Goetz Graefe:
<a href="http://www.vldb.org/pvldb/vol8/p37-graefe.pdf" rel="nofollow">http://www.vldb.org/pvldb/vol8/p37-graefe.pdf</a><p>I've implemented an even simpler solution for my Open Source Data Store (<a href="https://sirix.io" rel="nofollow">https://sirix.io</a>) in that each page stores a number of references, which are itself lightweight pointer objects (in Java) and it simply stores an in-memory reference as well as a pointer to the location to fetch it from disk/a flash drive. If the buffer manager has these Objects as keys on eviction we can simply null the reference to the in-memory page instance.
Also check out other courses from Prof. Andy Pavlo <a href="https://www.youtube.com/channel/UCHnBsf2rH-K7pn09rb3qvkA/playlists" rel="nofollow">https://www.youtube.com/channel/UCHnBsf2rH-K7pn09rb3qvkA/pla...</a>
I find it hard to reconcile the incredible generousity of making this material available for free on the internet with the cringeworthiness of Andy Pavlo's style. I love the material but the "6th form humour" is really off-putting and he doesn't need it.<p>See <a href="https://www.youtube.com/watch?v=m72mt4VN9ik&t=781" rel="nofollow">https://www.youtube.com/watch?v=m72mt4VN9ik&t=781</a> for an example of what I mean
Check out the CMU database group for all the other content and the multiple courses: <a href="https://db.cs.cmu.edu/" rel="nofollow">https://db.cs.cmu.edu/</a><p>Here's their Youtube channel: <a href="https://www.youtube.com/channel/UCHnBsf2rH-K7pn09rb3qvkA/featured" rel="nofollow">https://www.youtube.com/channel/UCHnBsf2rH-K7pn09rb3qvkA/fea...</a>
I've watched some of these and the material and teacher are awesome. Two questions come to mind:<p>1. A ton of effort seems to be spent on making things run in parallel, but that introduces quite a bit of overhead too, so how well does a sequential baseline actually perform? By sequential baseline I mean a single thread that just executes all incoming transactions one by one in sequence.<p>2. This course seems to spend a lot of time on things that the teacher says are things you shouldn't do anyway. For instance there is an entire lecture on skip lists and Bw-trees, and at the end the teacher mentions that these are terrible. This is interesting from a historical perspective, but not only does this take a lot of time, I also lose track of which things you should and which things you shouldn't do. It'd be interesting to have a compressed course that spends less time on things you should not do, perhaps by adding annotations to the video to skip sections that are about things you should not do.