{"action":"created","issue":{"url":"https://api.github.com/repos/syncthing/syncthing/issues/3427","repository_url":"https://api.github.com/repos/syncthing/syncthing","labels_url":"https://api.github.com/repos/syncthing/syncthing/issues/3427/labels{/name}","comments_url":"https://api.github.com/repos/syncthing/syncthing/issues/3427/comments","events_url":"https://api.github.com/repos/syncthing/syncthing/issues/3427/events","html_url":"https://github.com/syncthing/syncthing/pull/3427","id":167043750,"number":3427,"title":"cmd/syncthing, lib/db, lib/model, lib/protocol: Implement delta indexes (fixes #438)","user":{"login":"calmh","id":125426,"avatar_url":"https://avatars.githubusercontent.com/u/125426?v=3","gravatar_id":"","url":"https://api.github.com/users/calmh","html_url":"https://github.com/calmh","followers_url":"https://api.github.com/users/calmh/followers","following_url":"https://api.github.com/users/calmh/following{/other_user}","gists_url":"https://api.github.com/users/calmh/gists{/gist_id}","starred_url":"https://api.github.com/users/calmh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/calmh/subscriptions","organizations_url":"https://api.github.com/users/calmh/orgs","repos_url":"https://api.github.com/users/calmh/repos","events_url":"https://api.github.com/users/calmh/events{/privacy}","received_events_url":"https://api.github.com/users/calmh/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":5,"created_at":"2016-07-22T13:20:24Z","updated_at":"2016-07-26T12:26:19Z","closed_at":"2016-07-23T12:46:34Z","pull_request":{"url":"https://api.github.com/repos/syncthing/syncthing/pulls/3427","html_url":"https://github.com/syncthing/syncthing/pull/3427","diff_url":"https://github.com/syncthing/syncthing/pull/3427.diff","patch_url":"https://github.com/syncthing/syncthing/pull/3427.patch"},"body":"### Purpose\r\n\r\nThis is the delta index implementation. There are a few main parts to it:\r\n\r\n- The \"IndexID\" stuff which is to ensure that we can detect when a given LocalVersion counter has reset or doesn't mean what we think it means. It also tells us whether the other side actually implements this part of the protocol or not (IndexID==0 meaning no support).\r\n\r\n- A tweak around how we handle incrementing LocalVersion in the database. I think this is simpler, and it's now just a regular incrementing counter per folder.\r\n\r\n- How we send indexes is changed, and it's now triggered from inside the code that takes care of receiving the ClusterConfig. There are a number of checks for the announced IndexID and MaxLocalVersion and if it checks out we start sending index updates only from that MaxLocalVersion and onwards.\r\n\r\n### Testing\r\n\r\nI've ran the integration tests that are suitable, including the various \"restart during transfer\" tests and it checks out. I'm running it myself on my device since a week or so, and it works as far as I can tell.\r\n\r\n### Docs\r\n\r\nSpec update: https://github.com/syncthing/docs/pull/208. It's a backwards compatible change."},"comment":{"url":"https://api.github.com/repos/syncthing/syncthing/issues/comments/235252198","html_url":"https://github.com/syncthing/syncthing/pull/3427#issuecomment-235252198","issue_url":"https://api.github.com/repos/syncthing/syncthing/issues/3427","id":235252198,"user":{"login":"rumpelsepp","id":1961699,"avatar_url":"https://avatars.githubusercontent.com/u/1961699?v=3","gravatar_id":"","url":"https://api.github.com/users/rumpelsepp","html_url":"https://github.com/rumpelsepp","followers_url":"https://api.github.com/users/rumpelsepp/followers","following_url":"https://api.github.com/users/rumpelsepp/following{/other_user}","gists_url":"https://api.github.com/users/rumpelsepp/gists{/gist_id}","starred_url":"https://api.github.com/users/rumpelsepp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rumpelsepp/subscriptions","organizations_url":"https://api.github.com/users/rumpelsepp/orgs","repos_url":"https://api.github.com/users/rumpelsepp/repos","events_url":"https://api.github.com/users/rumpelsepp/events{/privacy}","received_events_url":"https://api.github.com/users/rumpelsepp/received_events","type":"User","site_admin":false},"created_at":"2016-07-26T12:26:19Z","updated_at":"2016-07-26T12:26:19Z","body":"Wow! That's really exciting! Updating now..."}}
{"actor":{"display_login":"rumpelsepp"}}