diff --git a/CHANGELOG.md b/CHANGELOG.md index 832669287e..23660c1f77 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,8 +4,24 @@ All notable changes to this project will be documented in this file. This projec ## [Unreleased] + +## [v1.9.5] - 2024-09-16 +### Bug Fixes +- time.Since should not be used in defer statement +- **pkg/dabase:** return error when attempting to access deleted database +- **pkg/pgsql/server:** close row readers to release resources +- **pkg/server:** run metrics server under HTTPS + +### Changes +- **embedded/logging:** improve file base logging. +- **embedded/sql:** improvements on SQL layer. +- **embedded/store:** improve index flush logic +- **pkg/database:** implement database manager +- **pkg/server:** implement automatic generation of self-signed HTTPS certificate + + -## [v1.9.4] - 2024-07-24 +## [v1.9.4] - 2024-07-25 ### Bug Fixes - set mattermost payload @@ -3885,7 +3901,8 @@ All notable changes to this project will be documented in this file. This projec - **tree:** MTH reference impl -[Unreleased]: https://github.com/vchain-us/immudb/compare/v1.9.4...HEAD +[Unreleased]: https://github.com/vchain-us/immudb/compare/v1.9.5...HEAD +[v1.9.5]: https://github.com/vchain-us/immudb/compare/v1.9.4...v1.9.5 [v1.9.4]: https://github.com/vchain-us/immudb/compare/v1.9.3...v1.9.4 [v1.9.3]: https://github.com/vchain-us/immudb/compare/v1.9DOM.2...v1.9.3 [v1.9DOM.2]: https://github.com/vchain-us/immudb/compare/v1.9DOM.2-RC1...v1.9DOM.2 diff --git a/Makefile b/Makefile index 6584a451d6..351c9fdecf 100644 --- a/Makefile +++ b/Makefile @@ -16,7 +16,7 @@ export GO111MODULE=on SHELL=/bin/bash -o pipefail -VERSION=1.9.4 +VERSION=1.9.5 DEFAULT_WEBCONSOLE_VERSION=1.0.18 SERVICES=immudb immuadmin immuclient TARGETS=linux/amd64 windows/amd64 darwin/amd64 linux/s390x linux/arm64 freebsd/amd64 darwin/arm64 diff --git a/README.md b/README.md index e616e06adb..a38c338db1 100644 --- a/README.md +++ b/README.md @@ -68,11 +68,11 @@ When used as a relational data database, it supports both transactions and blobs ### Getting immudb running: executable -You may download the immudb binary from [the latest releases on Github](https://github.com/codenotary/immudb/releases/latest). Once you have downloaded immudb, rename it to `immudb`, make sure to mark it as executable, then run it. The following example shows how to obtain v1.9DOM.1 for linux amd64: +You may download the immudb binary from [the latest releases on Github](https://github.com/codenotary/immudb/releases/latest). Once you have downloaded immudb, rename it to `immudb`, make sure to mark it as executable, then run it. The following example shows how to obtain v1.9.5 for linux amd64: ```bash -wget https://github.com/codenotary/immudb/releases/download/v1.9DOM.1/immudb-v1.9DOM.1-linux-amd64 -mv immudb-v1.9DOM.1-linux-amd64 immudb +wget https://github.com/codenotary/immudb/releases/download/v1.9.5/immudb-v1.9.5-linux-amd64 +mv immudb-v1.9.5-linux-amd64 immudb chmod +x immudb # run immudb in the foreground to see all output @@ -101,6 +101,7 @@ helm repo add immudb https://packages.codenotary.org/helm helm repo update helm install immudb/immudb --generate-name ``` + ### Using subfolders Immudb helm chart creates a persistent volume for storing immudb database. @@ -114,6 +115,7 @@ This is different from what we did on older (<=1.3.1) helm charts, so if you hav value volumeSubPath to false (i.e.: `--set volumeSubPath.enabled=false`) when upgrading so that the old way is used. You can alternatively migrate the data in a `/immudb` directory. You can use this pod as a reference for the job: + ```yaml apiVersion: v1 kind: Pod @@ -131,12 +133,13 @@ spec: - mountPath: "/data" name: "vol0" command: - - sh - - -c - - | - mkdir -p /data/immudb - ls /data | grep -v -E 'immudb|lost\+found'|while read i; do mv /data/$i /data/immudb/$i; done + - sh + - -c + - | + mkdir -p /data/immudb + ls /data | grep -v -E 'immudb|lost\+found'|while read i; do mv /data/$i /data/immudb/$i; done ``` + As said before, you can totally disable the use of subPath by setting `volumeSubPath.enabled=false`. You can also tune the subfolder path using `volumeSubPath.path` value, if you prefer your data on a different directory than the default `immudb`. @@ -235,7 +238,6 @@ Or just use Docker to run immuclient in a ready-to-use container. Nice and simpl docker run -it --rm --net host --name immuclient codenotary/immuclient:latest ``` - ## Using immudb Lot of useful documentation and step by step guides can be found at https://docs.immudb.io/ @@ -272,7 +274,6 @@ Our [immudb Playground](https://play.codenotary.com) provides a guided environme - We've developed a "language-agnostic SDK" which exposes a REST API for easy consumption by any application. [immugw](https://github.com/codenotary/immugw) may be a convenient tool when SDKs are not available for the programming language you're using, for experimentation, or just because you prefer your app only uses REST endpoints. @@ -289,34 +290,34 @@ Click here to try out the immudb web console access in an [online demo environme ## Tech specs -| Topic | Description | -| ----------------------- | -------------------------------------------------- | -| DB Model | Key-Value with 3D access, Document Model, SQL | -| Data scheme | schema-free | -| Implementation design | Cryptographic commit log with parallel Merkle Tree,| -| | (sync/async) indexing with extended B-tree | -| Implementation language | Go | -| Server OS(s) | BSD, Linux, OS X, Solaris, Windows, IBM z/OS | -| Embeddable | Yes, optionally | -| Server APIs | gRPC | -| Partition methods | Sharding | -| Consistency concepts | Immediate Consistency | -| Transaction concepts | ACID with Snapshot Isolation (SSI) | -| Durability | Yes | -| Snapshots | Yes | -| High Read throughput | Yes | -| High Write throughput | Yes | -| Optimized for SSD | Yes | +| Topic | Description | +| ----------------------- | --------------------------------------------------- | +| DB Model | Key-Value with 3D access, Document Model, SQL | +| Data scheme | schema-free | +| Implementation design | Cryptographic commit log with parallel Merkle Tree, | +| | (sync/async) indexing with extended B-tree | +| Implementation language | Go | +| Server OS(s) | BSD, Linux, OS X, Solaris, Windows, IBM z/OS | +| Embeddable | Yes, optionally | +| Server APIs | gRPC | +| Partition methods | Sharding | +| Consistency concepts | Immediate Consistency | +| Transaction concepts | ACID with Snapshot Isolation (SSI) | +| Durability | Yes | +| Snapshots | Yes | +| High Read throughput | Yes | +| High Write throughput | Yes | +| Optimized for SSD | Yes | ## Performance figures immudb can handle millions of writes per second. The following table shows performance of the embedded store inserting 1M entries on a machine with 4-core E3-1275v6 CPU and SSD disk: | Entries | Workers | Batch | Batches | time (s) | Entries/s | -| ------ | ------ | ------ | ------ | ------ | ------ | -| 1M | 20 | 1000 | 50 | 1.061 | 1.2M /s | -| 1M | 50 | 1000 | 20 | 0.543 | 1.8M /s | -| 1M | 100 | 1000 | 10 | 0.615 | 1.6M /s | +| ------- | ------- | ----- | ------- | -------- | --------- | +| 1M | 20 | 1000 | 50 | 1.061 | 1.2M /s | +| 1M | 50 | 1000 | 20 | 0.543 | 1.8M /s | +| 1M | 100 | 1000 | 10 | 0.615 | 1.6M /s | You can generate your own benchmarks using the `stress_tool` under `embedded/tools`. @@ -337,7 +338,7 @@ Below is a list of known projects that use immudb: - [alma-sbom](https://github.com/AlmaLinux/alma-sbom) - AlmaLinux OS SBOM data management utility. - [immudb-log-audit](https://github.com/codenotary/immudb-log-audit) - A service and cli tool to store json formatted log input -and audit it later in immudb Vault. + and audit it later in immudb Vault. - [immudb-operator](https://github.com/unagex/immudb-operator) - Unagex Kubernetes Operator for immudb. diff --git a/helm/Chart.yaml b/helm/Chart.yaml index 763bc24e71..d21f23e26b 100644 --- a/helm/Chart.yaml +++ b/helm/Chart.yaml @@ -2,5 +2,5 @@ apiVersion: v2 name: immudb description: The immutable database type: application -version: 1.9.4 -appVersion: "1.9.4" +version: 1.9.5 +appVersion: "1.9.5"