)]}' { "commit": "6a3ad5d484b61f7e848a2f92af9414ddd52a7613", "tree": "55f5f55204ae002b5eb33a3051669534298caac5", "parents": [ "15fb261e1fb9766f778863779d140a29f8f5f0a4" ], "author": { "name": "Ivan Pilat", "email": "ivanpi@google.com", "time": "Tue Jul 12 12:19:15 2016 -0700" }, "committer": { "name": "Ivan Pilat", "email": "ivanpi@google.com", "time": "Tue Jul 12 12:19:15 2016 -0700" }, "message": "syncbase: Implement log start marker and hook for GC.\n\nWatchable store now keeps track of the log start via a persistent\nmarker. The watch log is now contiguous starting from the marker,\nwhile entries before the marker may be sparse and partially garbage\ncollected. Clients attempting to start watching from a resume marker\nearlier than the log start are rejected.\n\nAdded UpdateLogStart() method to the watchable store. It is intended\nto be called by GC, passing in the sync resume marker. It persists and\nreturns the newly computed log start. The log start is computed as the\nearliest resume marker out of all active watch clients - ephemeral\nclients as well as the persistent sync watcher. This prevents garbage\ncollection from interrupting an active watch as well as ensuring that\nthe sync watcher sees all data.\n\nAdded test for UpdateLogStart(), also covering NextBatchFromLog()\niteration from previous CL.\n\nChange-Id: I5e38aef4414fce1495c8da80e907de13fce9ae14\n", "tree_diff": [ { "type": "modify", "old_id": "6b42d008e4ed6d77ec1691ca3f9fa483e12a7c73", "old_mode": 33188, "old_path": "services/syncbase/common/constants.go", "new_id": "56323491280fa861b708035f5b352144cf9af2e8", "new_mode": 33188, "new_path": "services/syncbase/common/constants.go" }, { "type": "modify", "old_id": "3f46db0e9b2a3ec3fd2e06058055566d78e1fcd7", "old_mode": 33188, "old_path": "services/syncbase/server/watchlog_test.go", "new_id": "8e3c96c3d2b6af3d2200e105d621bf66c4639bbd", "new_mode": 33188, "new_path": "services/syncbase/server/watchlog_test.go" }, { "type": "modify", "old_id": "406c7da689ca46ac3e1d4e932b335606bd0d0440", "old_mode": 33188, "old_path": "services/syncbase/store/watchable/store.go", "new_id": "af63214d927baf13fcd427c460483beb6d54eaf5", "new_mode": 33188, "new_path": "services/syncbase/store/watchable/store.go" }, { "type": "modify", "old_id": "6af8c06f98aae66d3757990e91fd549c8ce3d554", "old_mode": 33188, "old_path": "services/syncbase/store/watchable/store_test.go", "new_id": "f528528588120dfad8fe21e4479ba1ab3663f9d6", "new_mode": 33188, "new_path": "services/syncbase/store/watchable/store_test.go" }, { "type": "modify", "old_id": "f1a7a156c69c9f669887a593ee6cbf2e0430a8e5", "old_mode": 33188, "old_path": "services/syncbase/store/watchable/transaction.go", "new_id": "c9ee74f55835769ae7afed89d5d5b2c3198ce987", "new_mode": 33188, "new_path": "services/syncbase/store/watchable/transaction.go" }, { "type": "modify", "old_id": "f28f996c21f9037c65bfd0cf3fab544945182547", "old_mode": 33188, "old_path": "services/syncbase/store/watchable/transaction_test.go", "new_id": "e56ab0d7a9ab503296680be0523817873c0bed43", "new_mode": 33188, "new_path": "services/syncbase/store/watchable/transaction_test.go" }, { "type": "modify", "old_id": "a36405801a02a519f0dc10d4ced8935e431c4098", "old_mode": 33188, "old_path": "services/syncbase/store/watchable/util.go", "new_id": "33894215b8bbdb036cc7a42cbcef5b1d78406223", "new_mode": 33188, "new_path": "services/syncbase/store/watchable/util.go" }, { "type": "modify", "old_id": "adf00dd298eebb8f129348e701cb706e69452049", "old_mode": 33188, "old_path": "services/syncbase/store/watchable/util_test.go", "new_id": "761ec101b431f53473cec6df3b431346dcf4e596", "new_mode": 33188, "new_path": "services/syncbase/store/watchable/util_test.go" }, { "type": "modify", "old_id": "c4ca18af3adc46f6b3ce82a32d5ea7a77b9508af", "old_mode": 33188, "old_path": "services/syncbase/store/watchable/watcher.go", "new_id": "e1e068aab7bd0a6829197cc5568a20a8a7d7ba4f", "new_mode": 33188, "new_path": "services/syncbase/store/watchable/watcher.go" }, { "type": "modify", "old_id": "f7005fb0c9e8b84f79c24223db08f479433934d1", "old_mode": 33188, "old_path": "services/syncbase/store/watchable/watcher_test.go", "new_id": "38d29991188890e0a2c0c9ebedbd414f2e62607b", "new_mode": 33188, "new_path": "services/syncbase/store/watchable/watcher_test.go" } ] }