{"id":13571533,"url":"https://github.com/wlloyd/eiger","last_synced_at":"2025-04-04T08:31:33.218Z","repository":{"id":7086707,"uuid":"8377193","full_name":"wlloyd/eiger","owner":"wlloyd","description":"A research fork of cassandra that provides causal+ consistency, read-only transaction, and write-only transaction across all the servers in each datacenter.","archived":false,"fork":false,"pushed_at":"2017-05-18T12:56:42.000Z","size":9095,"stargazers_count":77,"open_issues_count":1,"forks_count":15,"subscribers_count":11,"default_branch":"eiger-release","last_synced_at":"2024-11-05T04:34:10.545Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wlloyd.png","metadata":{"files":{"readme":"README.txt","changelog":"CHANGES.txt","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-02-23T15:26:26.000Z","updated_at":"2024-01-29T21:27:32.000Z","dependencies_parsed_at":"2022-08-29T16:22:03.904Z","dependency_job_id":null,"html_url":"https://github.com/wlloyd/eiger","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wlloyd%2Feiger","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wlloyd%2Feiger/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wlloyd%2Feiger/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wlloyd%2Feiger/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wlloyd","download_url":"https://codeload.github.com/wlloyd/eiger/tar.gz/refs/heads/eiger-release","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247147298,"owners_count":20891668,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T14:01:02.855Z","updated_at":"2025-04-04T08:31:28.209Z","avatar_url":"https://github.com/wlloyd.png","language":"Java","funding_links":[],"categories":["Java"],"sub_categories":[],"readme":"Eiger is a research prototype that provides stronger consistency\n(causal consistency) and semantics (read- and write-only transactions)\nfor low-latency geo-replicated storage.  It is a fork of Cassandra.\n\n\nRelease Information\n-------------------\n\nThe code is released in its current research-quality form.  I plan on\nimproving it in the future if time allows.  I stripped out the\nparameterization of the Facebook workload for now, because I'm not\nsure if I'm allowed to release it.\n\n\nPaper Abstract\n--------------\n\nWe present the first scalable, geo-replicated storage sys- tem that\nguarantees low latency, offers a rich data model, and provides\n“stronger” semantics. Namely, all client requests are satisfied in the\nlocal datacenter in which they arise; the system efficiently supports\nuseful data model abstractions such as column families and counter\ncolumns; and clients can access data in a causally-consistent fashion\nwith read-only and write-only transactional support, even for keys\nspread across many servers.  The primary contributions of this work\nare enabling scalable causal consistency for the complex column-\nfamily data model, as well as novel, non-blocking al- gorithms for\nboth read-only and write-only transactions. Our evaluation shows that\nour system, Eiger, achieves low latency (single-ms), has throughput\ncompetitive with eventually-consistent and non-transactional Cassandra\n(less than 7% overhead for one of Facebook’s real-world workloads),\nand scales out to large clusters almost linearly (averaging 96%\nincreases up to 128 server clusters).\n\n\nMore Information\n----------------\n\nOur paper on Eiger has more information:\nhttp://www.cs.princeton.edu/~wlloyd/papers/eiger-nsdi13.pdf\n\n\nRequirements\n------------\n  * Java \u003e= 1.6 (OpenJDK has been tested)\n\n\nGetting started\n---------------\n\nPlease see the documentation for Cassandra.\n\nRunning Eiger\n-------------\nIf you're just trying to a run a small cluster on your own machine then you want to use the cassandra_dc_launcher.bash script. If you're trying to run on a real cluster of machine checkout the kodiak_dc_launcher.bash script. The local script has only been tested on macs. And both still have somethings hard coded in them (or in the base configuration files) that need to be changed, see the other open issues for some pointers.\n\nFork Point From Cassandra \u0026 Tips For Understanding Our Changes\n--------------------------------------------------------------\nForked from 44a7db706885430128d305adb56899595eccc8ae, which is just a few commits after the cassandra 1.0.7 release.\n\nThe best places to look at my new code to see where things change would be the thrift interface (this is only for client\u003c-\u003eserver communication):\ninterface/cassandra.thrift\n\nand the new code:\ngit diff --stat 44a7db706885430128d305adb56899595eccc8ae src/java/org/apache/cassandra/* | sort -nrk 3\n\nand the tests I wrote:\ngit diff --stat 44a7db706885430128d305adb56899595eccc8ae test/unit/org/apache/cassandra/ | sort -nrk 3\n\nThe other thing to know starting off is that server\u003c-\u003eserver communication is done by sending XYZMessages that are handled by XYZVerbHandlers.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwlloyd%2Feiger","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwlloyd%2Feiger","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwlloyd%2Feiger/lists"}