Skip to content

v1.3.1

Compare
Choose a tag to compare
@byo byo released this 30 Jun 15:24
· 1433 commits to master since this release

Release notes

Let us introduce another immudb release: 1.3.1. This time we focused mostly on stability and bug fixing, however some small features still managed to slip through into our changelog.

Reworked documentation structure

The documentation hosted on https://docs.immudb.io/ gained a brand new menu structure making it much cleaner for newcomers and much easier to navigate by more experienced immudb users. Make sure to check it out and remember that your feedback here is always very welcome.

S3 compatibility

One of the most important issues we've started observing was the incompatibility with various S3 storage implementations. Based on our internal tests and community feedback we managed to greatly improve support 3rd party S3 service providers such as elest.io.

SQL Snapshot leak fixes

When performing read operations on immudb, an internal snapshot of B-tree is created. We found few places (mostly in case of query errors) that would result in snapshots not being freed once the SQL operation is finished. Immudb has internal limit of active open snapshots at a time thus such leaked snapshots were causing significant issues during application development.

Idempotent NOW() function

The NOW() function available in SQL is now idempotent within a single transaction. Before it was returning the exact time when the NOW() function was called. The new implementation guarantees that it always returns the time when the current transaction was started.

Experimental support for OFFSET

The new OFFSET keyword can be used in SQL statements to instruct the server that it should skip some initial set of entries. Similarly, the GRPC methods for scanning KV entries got additional offset parameter. Internally offsets are implemented by skipping initial entries from the result on the server side thus it may come with performance penalty when the value of such offset is large.

Changelog

[v1.3.1] - 2022-06-30

Bug Fixes

  • embedded/store: filter evaluation after valRef resolution
  • README: Update readme to show examples for 1.3.0 version
  • cmd/immuadmin: use StreamChunkSize as max chunk size during tx replication
  • cmd/immudb: include metrics endpoint related flags
  • embedded/remotestorage: Fix invalid comment
  • embedded/remotestorage/s3: Correctly url decode entry names
  • embedded/remotestorage/s3: Simplify the code for scan
  • embedded/remotestorage/s3: Avoid using HEAD requests
  • embedded/remotestorage/s3: Fix s3 object name validation
  • embedded/sql: Use defer to cleanup unclosed readers on error
  • embedded/sql: Fix snapshot leak on query initialization failure
  • embedded/sql: Properly close readers in joint row reader
  • embedded/sql: Fix reader leaks during initialization failures
  • embedded/sql: Fix snapshot leaks in union readers
  • embedded/sql: ensure timestamp is evaluated with microsecond precision
  • pkg/client: ensure connection is closed and session can be re-established
  • pkg/database: Do not panic if incorrect number of pk values is given to VerifiableSQLGet
  • pkg/server: Fix remote storage test after recent changes
  • pkg/server/sessions: Avoid deadlock when closing session manager
  • pkg/server/sessions: Session manager test fixes
  • pkg/server/sessions: Handle short buffer read when generating session id
  • pkg/server/sessions: Correctly start session guard
  • pkg/server/sessions: Use strong random source for session ID

Changes

  • embedded/store: offset handling at keyreader
  • Update dependencies
  • build: Update RELEASING.md file
  • embedded/remotestorage: Improve error reporting
  • embedded/remotestorage: More detailed errors
  • embedded/remotestorage: Improve testing of remotestorage
  • embedded/remotestorage/s3: Improved s3 object name checks
  • embedded/sql: Do not return error from conditional and limit readers
  • embedded/sql: fixed-timed tx
  • github: Update push action
  • github: Run tests with minio service
  • github: On macOS run client only test on pull requests
  • github: Run coverage tests with minio enabled
  • github: Update minimal supported go version to 1.15
  • pkg/client: Better detection of tests that require external immudb
  • pkg/server: Add missing copyright headers
  • pkg/server/session: Move options normalization into options struct
  • pkg/server/sessions: Improve options handling
  • pkg/server/sessions: Add MaxSessions option
  • pkg/server/sessions: Simplify session handling code
  • remotestorage: Add prometheus metrics for remote storage kind
  • tools: Remove old stream tool

Features

  • embedded/sql: offset clause
  • embedded/store: offset in key scanning
  • pkg/api: offset attribute in scan and zscan endpoints

Downloads

Docker image
https://hub.docker.com/r/codenotary/immudb

Immudb Binaries

File SHA256
immudb-v1.3.1-darwin-amd64 be0c602551f801e3971360a6146d7d3edfd5d226381b95e5e1411c04f6662bfe
immudb-v1.3.1-darwin-arm64 c3c60ad8842f27765480c0ff21ed948e827f912fe75f97ac99a21b99116cd490
immudb-v1.3.1-freebsd-amd64 447021f9bc00b1ad08fd5f76550bc6240f18a762164178b8afa9197e6254df85
immudb-v1.3.1-linux-amd64 731d8de18e3d32e102a8aad70fd47234b46b2da0c5d8e04d33032af7624f37a5
immudb-v1.3.1-linux-amd64-static b0e22d11bfe3c1c4d05e37c22f30f1dc4072320e6b70f6db76f21a485d789075
immudb-v1.3.1-linux-arm64 8da9ca4bdb478eee408f5a37d8af9ab56e0f468476e959051cfdbf1cedd905ae
immudb-v1.3.1-linux-s390x 14e6ade9a657b333de52010ae4fcd714a2e48e9f38aecd965a22f6349814758e
immudb-v1.3.1-windows-amd64.exe 1396d0c61d215bcdbf43605808a5a81f419689f0e626a2f5b1b456e8dcc302e4

Immuclient Binaries

File SHA256
immuclient-v1.3.1-darwin-amd64 ce167f3b4569ab5fb4872120281211f9febf442a9443c03ddded38c8f14a62ac
immuclient-v1.3.1-darwin-arm64 16790e1ca4789c8bbb1ace95501915c17f1713e4e2d6d3a7d532054042ebdfe4
immuclient-v1.3.1-freebsd-amd64 e2f5d6c8e46ade303383c9a8d4094cc4fea0e3b7120bd6eac3ee135a5c5f45fe
immuclient-v1.3.1-linux-amd64 015aa7eb91fc011562db27a2b0172cf64f318dbf21e7588fedef43e5f62d1ee4
immuclient-v1.3.1-linux-amd64-static 526f942a711ccf644b402d7ad3599a32f00bbbd826bbc046cc2720aa61fc3686
immuclient-v1.3.1-linux-arm64 71314a0528df3d692f8789ade535f19db7e25319e377d8d0c32236dac4e6b4bf
immuclient-v1.3.1-linux-s390x 3d24102b76572931e91b1b06d35ae355cbc4c57fe669972096d0377f782f1fa4
immuclient-v1.3.1-windows-amd64.exe 233cb79db6c4317860138848aeb41fe5cb6ad2adaceeccc0e5ec4e0e8c17874c

Immuadmin Binaries

File SHA256
immuadmin-v1.3.1-darwin-amd64 a62b8942bb7fa9bde7b4905869ccf451ddd28ec477e1ad5d920a39f59afedff1
immuadmin-v1.3.1-darwin-arm64 ad3025ce49baec3008379648d760a2b2f93811a7f460132cfcd9ef5634a39ab0
immuadmin-v1.3.1-freebsd-amd64 bf935f03102eca534e466e3329f0434443bb41940b6590525a4d7796967ba2d1
immuadmin-v1.3.1-linux-amd64 3c5e343b408ff9600004022d02900b63e89bb888677ad843ec47cca7713bc431
immuadmin-v1.3.1-linux-amd64-static 135648491f5bc60c38733c270f0c448734f7406280da0aeadd60f4a71d3fb3e7
immuadmin-v1.3.1-linux-arm64 8c158fe6097a481276b71bec1777185e57f43fd6f16fd79cb78f9fe0ef397297
immuadmin-v1.3.1-linux-s390x 855f792bdc594551bf2e044e52b38f60fddc831684e2e5a5213138ec441952a4
immuadmin-v1.3.1-windows-amd64.exe 078e0f8b4d6cf4eca79e44a9df1b9b9869da22f24cb57d1f024f17d0bed08805