Difficulty: Beginner
Estimated Time: 60 minutes

Database Lab aims to boost software development and testing processes via enabling ultra-fast provisioning of multi-terabyte databases.

Our steps:

  1. prepare a machine with ZFS,
  2. generate some PostgreSQL database for testing purposes,
  3. prepare at least one snapshot to be used for cloning,
  4. configure and launch the Database Lab server,
  5. setup client CLI,
  6. start using its API and client CLI for the fast cloning of the Postgres database,
  7. and, finally, consider benefits and power of thin clones.

If you want to use any cloud platform (like AWS or GCP) or run your Database Lab on VMWare, or on bare metal, only the first step will slightly differ. In general, the overall procedure will be pretty much the same.

That's it! Congratulations!

What's next?

Tutorial: Database Lab Engine

Step 1 of 10

Step 1. Prepare a Linux machine with Docker and ZFS

Install dependencies:

sudo apt-get update && sudo apt-get install -y \
  apt-transport-https \
  ca-certificates \
  curl \
  gnupg-agent \
  postgresql-client \
  software-properties-common \
  zfsutils-linux

Create a regular file to mock ZFS:

truncate --size 10GB disk

Now it is time to create a ZFS pool.

zpool create -f \
  -O compression=on \
  -O atime=off \
  -O recordsize=8k \
  -O logbias=throughput \
  -m /var/lib/dblab/data \
  dblab_pool \
  "$(pwd)/disk"

And check the result:

zfs list
df -hT