{"push_id":1446972319,"size":3,"distinct_size":3,"ref":"refs/heads/table-locks","head":"319205f7f9a6bdbb32163743fea887b969520161","before":"2c35ea9cb7d3e41d1742813dea601ea7e8e7b383","commits":[{"sha":"098421f92c7d2c8059ecb5ce9e912d7d68b5ff74","author":{"name":"Matthew Mussomele","email":"424e77c8311932b7ac565b65146ed83e6164754f@berkeley.edu"},"message":"db: Increase db lock granularity to the table level\n\nPreviously, if some goroutine wanted to perform a db transaction, it\nwould lock the whole database while doing so. But, almost all of our\ntransactions use only a few tables. This patch adds additional\nfunctionality to the db, specifically a restricted connection.\nRestricted connections can only access a subset of tables, and lock\nonly those tables when performing transactions. This will allow\ntransactions that are independent to run concurrently in the\ndatabase, likely adding some small speedups and avoiding unneeded\nblocking.","distinct":true,"url":"https://api.github.com/repos/mmussomele/quilt/commits/098421f92c7d2c8059ecb5ce9e912d7d68b5ff74"},{"sha":"699cddb96cd10f868961fe882204f80ae2e52a3a","author":{"name":"Matthew Mussomele","email":"424e77c8311932b7ac565b65146ed83e6164754f@berkeley.edu"},"message":"db: Triggers now trigger on all tables of their Conn\n\nNow that the DB has table level locks, there is no reason to specify\ntables for a trigger. Triggers simply trigger on all tables the Conn\nhas access to. To trigger on a subset of table, we now restrict the\nconnection and then ask for a trigger.","distinct":true,"url":"https://api.github.com/repos/mmussomele/quilt/commits/699cddb96cd10f868961fe882204f80ae2e52a3a"},{"sha":"319205f7f9a6bdbb32163743fea887b969520161","author":{"name":"Matthew Mussomele","email":"424e77c8311932b7ac565b65146ed83e6164754f@berkeley.edu"},"message":"db: Change Database API to support Conn-less access\n\nBefore, any function that wanted to access the database had to be\npassed a Conn in order to do so. This leads to a lot of Conn objects\nbeing passed around. Since we only ever use one database, it would\nbe cleaner to be able to open a connection to a default global\ndatabase from anywhere.\n\nAn advantage of this is that the code has less clutter; there are no\nlonger Conn's being passed as arguments simply to give other\nfunctions access to the database. In addition, now that any function\ncan open up a DB connection, these connections can be restricted\nbetter, since each function knows exactly what tables it needs to\naccess.\n\nOne consequence of this is that tests need to be written with more\ncare. Any test that involves a function that calls db.Open(...)\ncannot be run in parallel and must call db.Reset() before calling\nsaid function.","distinct":true,"url":"https://api.github.com/repos/mmussomele/quilt/commits/319205f7f9a6bdbb32163743fea887b969520161"}]}
{"actor":{"display_login":"mmussomele"}}