{"action":"closed","issue":{"url":"https://api.github.com/repos/ashwin153/caustic/issues/2","repository_url":"https://api.github.com/repos/ashwin153/caustic","labels_url":"https://api.github.com/repos/ashwin153/caustic/issues/2/labels{/name}","comments_url":"https://api.github.com/repos/ashwin153/caustic/issues/2/comments","events_url":"https://api.github.com/repos/ashwin153/caustic/issues/2/events","html_url":"https://github.com/ashwin153/caustic/issues/2","id":232338549,"number":2,"title":"Generic Conditional Put Implementation","user":{"login":"ashwin153","id":1892049,"avatar_url":"https://avatars2.githubusercontent.com/u/1892049?v=4","gravatar_id":"","url":"https://api.github.com/users/ashwin153","html_url":"https://github.com/ashwin153","followers_url":"https://api.github.com/users/ashwin153/followers","following_url":"https://api.github.com/users/ashwin153/following{/other_user}","gists_url":"https://api.github.com/users/ashwin153/gists{/gist_id}","starred_url":"https://api.github.com/users/ashwin153/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ashwin153/subscriptions","organizations_url":"https://api.github.com/users/ashwin153/orgs","repos_url":"https://api.github.com/users/ashwin153/repos","events_url":"https://api.github.com/users/ashwin153/events{/privacy}","received_events_url":"https://api.github.com/users/ashwin153/received_events","type":"User","site_admin":false},"labels":[{"id":546597257,"url":"https://api.github.com/repos/ashwin153/caustic/labels/Feature","name":"Feature","color":"fbca04","default":false}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/ashwin153/caustic/milestones/1","html_url":"https://github.com/ashwin153/caustic/milestone/1","labels_url":"https://api.github.com/repos/ashwin153/caustic/milestones/1/labels","id":2560185,"number":1,"title":"caustic-2.0","description":"","creator":{"login":"ashwin153","id":1892049,"avatar_url":"https://avatars2.githubusercontent.com/u/1892049?v=4","gravatar_id":"","url":"https://api.github.com/users/ashwin153","html_url":"https://github.com/ashwin153","followers_url":"https://api.github.com/users/ashwin153/followers","following_url":"https://api.github.com/users/ashwin153/following{/other_user}","gists_url":"https://api.github.com/users/ashwin153/gists{/gist_id}","starred_url":"https://api.github.com/users/ashwin153/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ashwin153/subscriptions","organizations_url":"https://api.github.com/users/ashwin153/orgs","repos_url":"https://api.github.com/users/ashwin153/repos","events_url":"https://api.github.com/users/ashwin153/events{/privacy}","received_events_url":"https://api.github.com/users/ashwin153/received_events","type":"User","site_admin":false},"open_issues":4,"closed_issues":19,"state":"open","created_at":"2017-06-04T02:07:18Z","updated_at":"2018-03-08T08:25:09Z","due_on":null,"closed_at":null},"comments":2,"created_at":"2017-05-30T18:19:37Z","updated_at":"2018-03-08T08:25:09Z","closed_at":"2018-03-08T08:25:09Z","author_association":"OWNER","body":"Rather than rely on databases to provide a conditional put implementation, which can be difficult to implement in distributed databases, ```Caustic``` will provide a generic implementation.\r\n\r\n# Adaptive Placement\r\nThere are two kinds of conditional put operations, or transactions, that may be performed on a distributed database: distributed and local. Distributed transactions span multiple shards and require an expensive coordination operation to guarantee that transactions atomically commit or abort. Local transactions occur only on a single shard and do not require any coordination. Local transactions are clearly more efficient than distributed transactions. Therefore, the library should perform *adaptive placement*. Whenever a distributed transaction is performed, the library may decide to colocate keys so that future transactions will be local.\r\n\r\n# Links\r\nhttp://people.csail.mit.edu/idish/ftp/JCSS.pdf\r\nhttp://rystsov.info/2012/09/01/cas.html\r\nhttps://arxiv.org/pdf/1509.07815.pdf\r\nhttps://www.cockroachlabs.com/blog/how-cockroachdb-distributes-atomic-transactions/"}}
{"actor":{"display_login":"ashwin153"}}