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"