{"push_id":1336348767,"size":1,"distinct_size":1,"ref":"refs/heads/master","head":"6db5cad81d2f55a750d0cac7a80d2888f51f4dd9","before":"cd69eb2eaaa20ff36d5e67fde66553875c0a7321","commits":[{"sha":"6db5cad81d2f55a750d0cac7a80d2888f51f4dd9","author":{"name":"Nicholas Parker","email":"3095c93d6ea7c5200e557b6036c9a91ff7a76ed2@nickbp.com"},"message":"Support atomically storing multiple values in CuratorPersister (#189)\n\n* Support atomically storing multiple values in CuratorPersister\r\n\r\nThis allows atomic operations such as:\r\n- Create and/or update multiple TaskInfos at once\r\n- Create/update a TaskInfo+TaskStatus at once\r\n\r\nCurator transactions require foreknowledge of whether nodes need to be\r\ncreated or merely modified, as there is no in-transaction statement\r\nfor 'create or update'. In addition, any parent nodes need to be\r\ncreated manually.\r\n\r\nThe logic here is a workaround for these deficiencies. The idea is to\r\ncompose a transaction based on the current state of the ZK tree which\r\ncreates nodes that don't exist and updates nodes that do exist, then\r\nthe composed transaction is executed.\r\n\r\nThis composition/execution cycle is attempted a maximum of three\r\ntimes, to handle potential situations where the tree is modified\r\nout-of-band by another party between the composition step and the\r\nexecution step. In practice this shouldn't come up but it's nice to\r\nhave.\r\n\r\n* Address comments, add CuratorUtils/CuratorPersister tests\r\n\r\n* Fix lint","distinct":true,"url":"https://api.github.com/repos/mesosphere/dcos-commons/commits/6db5cad81d2f55a750d0cac7a80d2888f51f4dd9"}]}
{"actor":{"display_login":"nickbp"}}