v1.3.1
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 |