Database Lab Engine Versions Save

DBLab enables 🖖 database branching and ⚡️ thin cloning for any Postgres database and empowers DB testing in CI/CD. This optimizes database-related costs while improving time-to-market and software quality. Follow to stay updated.

v3.0.0

2 years ago

Database Lab Engine (DLE) is an open-source technology that enables thin cloning for PostgreSQL. Thin clones are exceptionally useful when you need to scale the development process. DLE can manage dozens of independent clones of your database on a single machine, so each engineer or automation process works with their very own database provisioned in seconds without extra costs.

DLE v3.0.0 includes more than 100 individual changes. This is the most advanced open-source software ever released that empowers development, testing, and troubleshooting environments for fast-growing projects. The use of Database Lab Engine 3.0 provides a competitive advantage to companies via implementing the "Shift-left testing" approach in software development.

Read the blog post about this release: https://postgres.ai/blog/20211221-dle-3-0-0-brings-ui-and-persistent-clones

Among major changes:

  • UI included to the core, it allows working with a single DLE instance,
  • persistent clones: clones now survive DLE (or VM) restart,
  • for the "logical" data provisioning mode: the ability to switch reset clone's state using a snapshot from different pool/dataset,
  • better logging, easier configuration,
  • improvements for the cases with multiple DLEs are running a single machine,
  • PostgreSQL 14 support.

Please note that upgrading from an older version requires some actions from the DLE administrator (see "Migration notes" below).

The development team asks everyone to participate in testing and report any bugs or improvement ideas in the DLE repository: https://gitlab.com/postgres-ai/database-lab.

Changelog

New features

Improvements and fixes

Internal

Migration notes

The Database Lab configuration contains a new section, embeddedUI, to run UI application that allows observing the current state of the instance and performing basic clone operations:

embeddedUI:
  enabled: true
  dockerImage: "postgresai/ce-ui:latest"
  host: ""
  port: 2346

Note, this application is delivered as a separate Docker container ("Embedded UI") and is controlled by DLE.

Starting with version v3.0.0, DLE collects non-personally identifiable telemetry data. The Engine uses anonymous usage data to assist users and improve product quality.

it is possible to manage the configuration in the section global:

global:
  telemetry:
    enabled: true
    url: "https://postgres.ai/api/general"
    ...

Please leave it enabled if possible – this will contribute to Database Lab development. See more details on the Telemetry page in the docs

Now it is available to select a specific pool to work with, use a new option selectedPool in the poolManager section

poolManager:
  selectedPool: "dblab_pool"
  ...

Starting with version v3.0.0, Database Lab Engine can be running with an empty verification token, which is not recommended by default. In such a case DLE warns about empty token in instance logs and API will not require any credentials. Be sure that this option is configured correctly

In order to make the management of service containers easier, special labels have been added to them:

- `dblab_instance_id`: <dle_instance_id>
- `dblab_engine_name`: <dle_container_name>

For example, there is a snippet of the docker inspection response of a sync instance:

"Labels": {
    "dblab_control": "dblab_sync",
    "dblab_instance_id": "c64mvrvku3086hlp2e6g",
    "dblab_engine_name": "dblab_server",
    "maintainer": "postgres.ai"
}

See more examples of configuration files in the Database Lab repository

The Docker image of DLE v3.0.0: postgresai/dblab-server:3.0.0

Launch command example:

sudo docker run \
  --name dblab_server \
  --label dblab_control \
  --privileged \
  --publish 127.0.0.1:2345:2345 \
  --volume /var/run/docker.sock:/var/run/docker.sock \
  --volume /var/lib/dblab:/var/lib/dblab/:rshared \
  --volume ~/.dblab/engine/configs:/home/dblab/configs:ro \
  --volume ~/.dblab/engine/meta:/home/dblab/meta \
  --env DOCKER_API_VERSION=1.39 \
  --detach \
  --restart on-failure \
  postgresai/dblab-server:3.0.0

If you have problems or questions, please contact our communities for help: https://postgres.ai/docs/questions-and-answers#where-to-get-help

Request for feedback

Any feedback would be greatly appreciated:

Compare versions

Diff between versions 2.5.0 and v3.0.0: https://gitlab.com/postgres-ai/database-lab/-/compare/2.5.0...v3.0.0

v3.0.0-rc.2

2 years ago

The second release candidate of DLE version 3.0.0, a major release with many changes and improvements. See the release notes for RC1: https://gitlab.com/postgres-ai/database-lab/-/tags/v3.0.0-rc.1

Compared to RC1, this version fixes multiple bugs, points on logical inconsistency, and issues based on users' feedback during RC1 testing:

Migration notes

Upgrading from version 2.5.x and earlier require some actions from the DLE administrator; see the migration notes for v3.0.0-rc.1: https://gitlab.com/postgres-ai/database-lab/-/tags/v3.0.0-rc.1#migration-notes

Request for feedback

Any feedback would be greatly appreciated:

Compare versions

Diff between versions v3.0.0-rc.1 and v3.0.0-rc.2: https://gitlab.com/postgres-ai/database-lab/-/compare/v3.0.0-rc.1...v3.0.0-rc.2

v3.0.0-rc.1

2 years ago

DLE v3.0.0-rc.1 includes several major changes and many improvements. Most notable changes are:

  • persistent clones: clones now survive DLE (or VM) restart,
  • GUI included to the core, it allows working with a single DLE instance,
  • PostgreSQL 14 support.

Please note that upgrading from an older version requires some actions from the DLE administrator (see "Migration notes" below).

The list below has "WIP" status. The final list for the 3.0 major version release may include some changes.

The development team asks everyone to participate in testing and report any bugs or improvement ideas in the DLE repository: https://gitlab.com/postgres-ai/database-lab.

Changelog

New features

Improvements and fixes

Internal

Migration notes

The Database Lab configuration contains a new section localUI to run UI application that allows observing the current state of the instance and performing basic clone operations:

localUI:
  enabled: true
  dockerImage: "postgresai/basic-ui:latest"
  host: ""
  port: 2346

Note, this application is delivered as a separate Docker container (Local UI) and running by the Database Lab Engine.

Since v3.0.0-rc.1, DLE collects non-personally identifiable telemetry data. The Engine uses anonymous usage data to assist users and improve product quality.

it is possible to manage the configuration in the section global:

global:
  telemetry:
    enabled: true
    url: "https://postgres.ai/api/general"
    ...

Please leave it enabled if possible – this will contribute to Database Lab development. See more details on the Telemetry page in the docs

Now it is available to select a specific pool to work with, use a new option selectedPool in the poolManager section

poolManager:
  selectedPool: "dblab_pool"
  ...

Since version v3.0.0-rc.1, Database Lab Engine can be running with an empty verification token, which is not recommended by default. In such a case DLE warns about empty token in instance logs and API will not require any credentials. Be sure that this option is configured correctly

In order to make the management of service containers easier, special labels have been added to them:

- `dblab_instance_id`: <dle_instance_id>
- `dblab_engine_name`: <dle_container_name>

For example, there is a snippet of the docker inspection response of a sync instance:

"Labels": {
    "dblab_control": "dblab_sync",
    "dblab_instance_id": "c64mvrvku3086hlp2e6g",
    "dblab_engine_name": "dblab_server",
    "maintainer": "postgres.ai"
}

See more examples of configuration files in the Database Lab repository

The Docker image of DLE 3.0.0-rc.1: registry.gitlab.com/postgres-ai/database-lab/dblab-server:test-3-0-0-rc-1

Launch command example:

sudo docker run \
  --name dblab_server \
  --label dblab_control \
  --privileged \
  --publish 127.0.0.1:2345:2345 \
  --volume /var/run/docker.sock:/var/run/docker.sock \
  --volume /var/lib/dblab:/var/lib/dblab/:rshared \
  --volume ~/.dblab/engine/configs:/home/dblab/configs:ro \
  --volume ~/.dblab/engine/meta:/home/dblab/meta \
  --env DOCKER_API_VERSION=1.39 \
  --detach \
  --restart on-failure \
  registry.gitlab.com/postgres-ai/database-lab/dblab-server:test-3-0-0-rc-1

If you have problems or questions, please contact our communities for help: https://postgres.ai/docs/questions-and-answers#where-to-get-help

Request for feedback

Any feedback would be greatly appreciated:

Compare versions

Diff between versions 2.5.0 and v3.0.0-rc.1: https://gitlab.com/postgres-ai/database-lab/-/compare/2.5.0...v3.0.0-rc.1