diff --git a/README.md b/README.md index 65b290918d..47f6e2c419 100644 --- a/README.md +++ b/README.md @@ -8,45 +8,74 @@ Zenith substitutes PostgreSQL storage layer and redistributes data across a clus ```sh git clone --recursive https://github.com/libzenith/zenith.git cd zenith -make +make -j5 ``` 2. Start pageserver and postgres on top of it (should be called from repo root): ```sh -# Create ~/.zenith with proper paths to binaries and data +# Create repository in .zenith with proper paths to binaries and data # Later that would be responsibility of a package install script ->./target/debug/zenith init +> ./target/debug/zenith init +<...> +new zenith repository was created in .zenith # start pageserver -> ./target/debug/zenith pageserver start -Starting pageserver at '127.0.0.1:64000' +> ./target/debug/zenith start +Starting pageserver at '127.0.0.1:64000' in .zenith +Pageserver started -# create and configure postgres data dir -> ./target/debug/zenith pg create -Creating new postgres: path=/Users/user/code/zenith/tmp_check_cli/compute/pg1 port=55432 -Database initialized +# start postgres on top on the pageserver +> ./target/debug/zenith pg start main +Starting postgres node at 'host=127.0.0.1 port=55432 user=stas' +waiting for server to start.... done -# start it -> ./target/debug/zenith pg start pg1 - -# look up status and connection info +# check list of running postgres instances > ./target/debug/zenith pg list -NODE ADDRESS STATUS -pg1 127.0.0.1:55432 running +BRANCH ADDRESS LSN STATUS +main 127.0.0.1:55432 0/1609610 running ``` 3. Now it is possible to connect to postgres and run some queries: -``` +```sh > psql -p55432 -h 127.0.0.1 postgres postgres=# CREATE TABLE t(key int primary key, value text); CREATE TABLE postgres=# insert into t values(1,1); INSERT 0 1 +postgres=# select * from t; + key | value +-----+------- + 1 | 1 +(1 row) +``` + +4. And create branches and run postgres on them: +```sh +# create branch named migration_check +> ./target/debug/zenith branch migration_check main +Created branch 'migration_check' at 0/1609610 + +# check branches tree +> ./target/debug/zenith branch + main + ┗━ @0/1609610: migration_check + +# start postgres on that branch +> ./target/debug/zenith pg start migration_check +Starting postgres node at 'host=127.0.0.1 port=55433 user=stas' +waiting for server to start.... done + +# this new postgres instance will have all the data from 'main' postgres, +# but all modifications would not affect data in original postgres +> psql -p55433 -h 127.0.0.1 postgres postgres=# select * from t; key | value -----+------- 1 | 1 (1 row) + +postgres=# insert into t values(2,2); +INSERT 0 1 ``` ## Running tests @@ -54,7 +83,7 @@ postgres=# select * from t; ```sh git clone --recursive https://github.com/libzenith/zenith.git make # builds also postgres and installs it to ./tmp_install -cargo test -- --test-threads=1 +pytest ``` ## Source tree layout