No description
  • Erlang 98.7%
  • Makefile 0.9%
  • Shell 0.4%
Find a file
2022-10-16 19:02:13 +02:00
bin Add fixed-interval strong heartbeat 2021-04-30 09:52:30 +02:00
config Add fixed-interval strong heartbeat 2021-04-30 09:52:30 +02:00
include Implement causal reordering 2021-03-17 18:28:25 +01:00
src Clean up releases 2021-05-17 17:41:09 +02:00
test Differentiate between no strong service and no strong entry in profiles 2021-05-17 13:30:13 +02:00
.editorconfig Update editorconfig 2021-04-06 16:33:57 +02:00
.gitignore Ignore crashdumps 2020-06-18 11:21:28 +02:00
LICENSE Add license, expand readme 2022-10-16 19:02:13 +02:00
Makefile Use default profile for ct target 2021-05-13 11:01:23 +02:00
README.md Add license, expand readme 2022-10-16 19:02:13 +02:00
rebar.config Clean up releases 2021-05-17 17:41:09 +02:00
rebar.lock Add observer_cli dep 2021-01-08 11:38:55 +01:00
rebar3 Upgrade rebar3 2021-05-24 21:21:23 +02:00

UniStore

For more information, consult our paper UniStore: A fault-tolerant marriage of causal and strong consistency (ATC 21).

Build

UniStore is written in Erlang. It has been tested up to OTP 24.3.3. You can download it here: https://www.erlang-solutions.com/downloads/

make # Downloads and caches dependencies, compiles the code
make rel # Builds an release, which can be ran using the console

Test

make test # Unit tests
make ct # Common Tests

Run

make rel # If you haven't done it before
make start

To stop the server, run make stop. To attach to the running server, run make attach.

Try

There are two ways of poking the system: using the Erlang shell, or by running a local deployment.

Erlang Shell

If you haven't built a release, do it first by running make rel. Then, run and connect to a local test server by running make console. Check out the API on the grb.erl file to know what you can do.

To quit, you can run the following:

q().

Local Cluster

You can perform a local deployment of four replicas by running the following:

# Creates a release for every server.
# You should run this _even_ if you have already run `make rel`
make devrel

# Start the servers
make devstart

# Verify that the servers are running
make devping

# Join the four servers as four different replicas
make devreplicas

To stop the servers, run make devstop.

License

Licensed under Apache License, Version 2.0.