Releases: codenotary/immudb
v1.4.1
Release notes
We're pleased to announce new version of immudb: 1.4.1. This is a smaller maintenance release that fixes important issues discovered in the previous 1.4.0 release.
Important issues fixed
Along with this release, the go SDK for immudb comes with fixes to two security vulnerabilities (CVE-2022-36111 and CVE-2022-39199) that we've discovered through an internal security review. Those vulnerabilities only affect the client SDK that is part of the immudb release - for that reason make sure that the most recent go SDK version is used in your application.
More information about those vulnerabilities can be found in those adversaries:
Small improvements
Besides important fixes, this release also comes with improved naming convention related to replication options and an option to reset admin password without knowledge of the previous password. Such password reset is helpful in case the admin password is lost and can also be used to ensure there's a correct admin password set in cloud deployments such as Kubernetes.
Changelog
[v1.4.1] - 2022-11-16
Bug Fixes
- Change replication-related terms in codebase
- Change replication-related terms in tests
- cmd: Rename replication flags to follow consistent convention
- cmd/immudb: Better description of the
--force-admin-password
flag - cmd/immudb: Fix description of the
force-admin-password
flag - embedded/appendable: fsync parent directory
- embedded/appendable: fsync parent folder in remote appedable
- pkg: Rename replication-related fields in GRPC protocol
- pkg/client: Delay server identity validation
- pkg/client/cache: Add methods to validate server identity
- pkg/client/cache: Validate server's identity
- pkg/server: Remove includeDeactivated flag when querying for users
- pkg/server/servertest: Add uuid to buffconn server
- pkg/server/servertest: Fix resetting grpc connection
- test/perf-test-suite: Avoid dumping immudb logo on perf test results file
- test/performance-test-suite: Ensure results are shown after proper is finished
- verification: Additional Linear proof consistency check
- verification: Recreate linear advance proofs for older servers
Changes
- pkg/server: Add logs for activities related to users
- ci: migrate deprecating set-output commands
- cmd/immudb: Allow resetting sysadmin password
- docs/security: Be less specific about package version in examples
- docs/security: Add resources for the linear-fake vulnerability
- embedded/appendable: sync directories
- embedded/store: Disable asynchronous AHT generation
- embedded/store: Remove AHT Wait Hub
- pkg/client: Document
WithDisableIdentityCheck
option - pkg/client/cache: Describe serverIdentity parameter
- pkg/client/cache: Limit the hash part of the identity file name
- pkg/client/state: Cleanup mutex handling in StateService
- pkg/server: Warn if sysadmin user password was not reset
- pkg/server: Better warning for unchanged admin password
- test/performance-test-suite: Add summary to json output
Features
- ci: fix message and input
- ci: add runner name to mattermost message header
- ci: simplify results extraction
- ci: extract performance tests into separate workflow to be reused
- ci: add scheduled daily test runs and send results to Mattermost
- pkg/replication: Disable server's identity check in internal replication
Downloads
Docker image
https://hub.docker.com/r/codenotary/immudb
immudb Binaries
File | SHA256 |
---|---|
immudb-v1.4.1-darwin-amd64 | 120966d077c5ffca4bfd6745473a06c0ca219291adc49960108cc476e418cf5a |
immudb-v1.4.1-darwin-arm64 | d6469914115a58f9462c07b1d5aa0dbb1e777b80477d8baf8108bf51deabdd22 |
immudb-v1.4.1-freebsd-amd64 | 05a932c73bbb4305f6f7975a3bdc0f2198f8968776b16b84497584bb2742bc5a |
immudb-v1.4.1-linux-amd64 | a5ae370d6475026db7df5906ba037dc708b0a8bda52a0adf0d06c3dcdee587f1 |
immudb-v1.4.1-linux-amd64-fips | db4477eb54d0437b9b145dfa9f77b593fc3a149906b0c5cc1c4ed87301786298 |
immudb-v1.4.1-linux-amd64-static | 7b2c31569a513e072cefbdc7cbcf7c36421516230bf388a5156d95a5f3034b02 |
immudb-v1.4.1-linux-arm64 | 3d5f8784bdf652d2c067885d19b330d28bf497459b59a9358c0774dbff1f4d6f |
immudb-v1.4.1-linux-s390x | ee4efbcb850ab56da2fd3ed18226bd9808de404fd69ea425567952492e320e96 |
immudb-v1.4.1-windows-amd64.exe | 707963320c94390ac9f9ce8d20d4f274baf636df789c4a65f3dc1a74bfd7f52c |
immuclient Binaries
File | SHA256 |
---|---|
immuclient-v1.4.1-darwin-amd64 | 076c4f474e8f57d59ec20016d5f445205b80d16c0a7aebe6ae0b1d07310c5360 |
immuclient-v1.4.1-darwin-arm64 | 41bfe74f900e7bbd9cc57b89d3111edf9faa3f5ff4204995e352f02c78fa3c53 |
immuclient-v1.4.1-freebsd-amd64 | 286c48668fd772464217f26cfc30772819175e61452d860d44ad6ec04c437c79 |
immuclient-v1.4.1-linux-amd64 | 3ab44ad6d956a7f4ecff2da08738227e63cd4816ef7047dc63f671c6536969b7 |
immuclient-v1.4.1-linux-amd64-fips | 75cbdc3614cb345af53e127aaaf4e7633fde4710f1ce1f1191c12b1d7ce4ab0f |
immuclient-v1.4.1-linux-amd64-static | 1f33880078225f56b253e663fb5d6e8ef1927d4bc9019ad8ef40a1863d99be7e |
immuclient-v1.4.1-linux-arm64 | 30e736810ab08f74e4dbd22b9ddb369b321dde1c65b35879a3ed164c97e5e8a0 |
immuclient-v1.4.1-linux-s390x | 6fe337a5d14511eda8cad40d7ec4f6c483bf5b2811229678833286cfa373a7a0 |
immuclient-v1.4.1-windows-amd64.exe | 6790a7dc306f3669cb824774b45c140c9331b6a83ae8fb10629a7c58c495405d |
immuadmin Binaries
File | SHA256 |
---|---|
immuadmin-v1.4.1-darwin-amd64 | caf3308f916d43c79fc14c77c3452013f3580b4e7edfd0fe949219d945d3b245 |
immuadmin-v1.4.1-darwin-arm64 | 1a82fef2f16715591da9e74001a8db0d0838ce6e273cf08443e8261f89f6fedb |
immuadmin-v1.4.1-freebsd-amd64 | 42679b08927dcbef84b18eac78391e78c29a5c817e9febf56bc18485ee39c5a5 |
immuadmin-v1.4.1-linux-amd64 | 24126f6699b3ae3fe18910c5a4fb45d996bc9237ebb92e91ee2916b8f8379b0c |
immuadmin-v1.4.1-linux-amd64-fips | b5b457b179384a72a6486a5e82f16f8bfe449b467e31373627f94a736f7d7afb |
immuadmin-v1.4.1-linux-amd64-static | e68a4fc4640082a67522c9a77f081ee513cc87732900b3f0dd644deda6a58843 |
immuadmin-v1.4.1-linux-arm64 | 9cc7d0283b4e7bd58c1daa39ec1c93c9bdaeb7818b11ac5ac88a8d91be3ba658 |
immuadmin-v1.4.1-linux-s390x | 22408bc7d8e0cef8378fcff8b1079bfa574e0336e5ca77f77facf21c67e3f24e |
immuadmin-v1.4.1-windows-amd64.exe | 2fa628855a0c17aecb5cc675297a1bf217bbf595f40701ed740d6351279f7e2d |
v1.4.1-RC1
Changelog
[v1.4.1-RC1] - 2022-11-16
Bug Fixes
- Change replication-related terms in codebase
- Change replication-related terms in tests
- cmd: Rename replication flags to follow consistent convention
- cmd/immudb: Better description of the
--force-admin-password
flag - cmd/immudb: Fix description of the
force-admin-password
flag - embedded/appendable: fsync parent directory
- embedded/appendable: fsync parent folder in remote appedable
- pkg: Rename replication-related fields in GRPC protocol
- pkg/client: Delay server identity validation
- pkg/client/cache: Add methods to validate server identity
- pkg/client/cache: Validate server's identity
- pkg/server: Remove includeDeactivated flag when querying for users
- pkg/server/servertest: Add uuid to buffconn server
- pkg/server/servertest: Fix resetting grpc connection
- test/perf-test-suite: Avoid dumping immudb logo on perf test results file
- test/performance-test-suite: Ensure results are shown after proper is finished
- verification: Additional Linear proof consistency check
- verification: Recreate linear advance proofs for older servers
Changes
- ci: migrate deprecating set-output commands
- cmd/immudb: Allow resetting sysadmin password
- docs/security: Be less specific about package version in examples
- docs/security: Add resources for the linear-fake vulnerability
- embedded/appendable: sync directories
- embedded/store: Disable asynchronous AHT generation
- embedded/store: Remove AHT Wait Hub
- pkg/client: Document
WithDisableIdentityCheck
option - pkg/client/cache: Describe serverIdentity parameter
- pkg/client/cache: Limit the hash part of the identity file name
- pkg/client/state: Cleanup mutex handling in StateService
- pkg/server: Warn if sysadmin user password was not reset
- pkg/server: Better warning for unchanged admin password
- test/performance-test-suite: Add summary to json output
Features
- ci: fix message and input
- ci: add runner name to mattermost message header
- ci: simplify results extraction
- ci: extract performance tests into separate workflow to be reused
- ci: add scheduled daily test runs and send results to Mattermost
- pkg/replication: Disable server's identity check in internal replication
Downloads
Docker image
https://hub.docker.com/r/codenotary/immudb
immudb Binaries
File | SHA256 |
---|---|
immudb-v1.4.1-RC1-darwin-amd64 | 913a13e6502fa69e2a1a5660e1c1f4b0083da20858ecd4006febe2f05abc454a |
immudb-v1.4.1-RC1-darwin-arm64 | a260a1d9e47ab57dced53dc1c6202a830b9738f6be7159b223266c94974b9e1d |
immudb-v1.4.1-RC1-freebsd-amd64 | 1d566d726e9c459a903d83ae777c1515b52d8bfaccd2d44ce5378b6e56034636 |
immudb-v1.4.1-RC1-linux-amd64 | bcaadfa521cbd8b38d5ead125a3ac00bb263e37b6d0a9e0f8bf7405c48492f51 |
immudb-v1.4.1-RC1-linux-amd64-fips | 176b8a3e53ab3ae69215e7f3eaafaf7def986649c5c30b16f45504a8b5c18247 |
immudb-v1.4.1-RC1-linux-amd64-static | f7ffb591c50cf75ad102f04e7ac9d13186f5a6e87e9123954619a58aaab28052 |
immudb-v1.4.1-RC1-linux-arm64 | 1fa1438ccee5ef53c115c2977f0b26fef0e90ac6004d7ce2cfe221212e428132 |
immudb-v1.4.1-RC1-linux-s390x | 55a38e4473d68e1e80ba21148ceed57bef3ed8c9a856da869e064b5fd02f7a4f |
immudb-v1.4.1-RC1-windows-amd64.exe | 457dc5884aee3fd04895d4da93ec2aa778b6393b7bfb916b5f0653342897ead2 |
immuclient Binaries
File | SHA256 |
---|---|
immuclient-v1.4.1-RC1-darwin-amd64 | c5c0485e7ef0187034c5e338162e1a287cfbf97ce7849a0d89bfe4c0658d15d0 |
immuclient-v1.4.1-RC1-darwin-arm64 | 19e9b343cb12d2801821ca3a7f24f4c8e07fef5232d68e30e5bb7f9d4a940c11 |
immuclient-v1.4.1-RC1-freebsd-amd64 | 1338d111eef945a64fcf80eb093aeeac71e8814488a88ac2c7175425513f715f |
immuclient-v1.4.1-RC1-linux-amd64 | f5e0a5291c052c036707922826f54990e18acaa4d43f574c16ec2404f01e5024 |
immuclient-v1.4.1-RC1-linux-amd64-fips | 46d40a9f416b410a88d21ae7acae1375508df73dd577824bedd2e434e091fe28 |
immuclient-v1.4.1-RC1-linux-amd64-static | 5cac4760b6c4e35512634753fdf78612c2481f05eb408cbe686cc5b5f66a7f5d |
immuclient-v1.4.1-RC1-linux-arm64 | 12ee3dcff73320fea2aa6cf3fc59c2273300662ef61b9ad8e8e7d7de53cea2a3 |
immuclient-v1.4.1-RC1-linux-s390x | 4843734bf3607185c6410268b9ced9800319b95ab3e87cc51de847f97beb27d8 |
immuclient-v1.4.1-RC1-windows-amd64.exe | be8f1ec58b80625b6fe45e4b5a63e8f6e4ed471620d742aef0f812d0983a5544 |
immuadmin Binaries
File | SHA256 |
---|---|
immuadmin-v1.4.1-RC1-darwin-amd64 | c53bb2d72aab8751a53fcbc999edb22277c8d7506a82c475c46a65c8da935fdb |
immuadmin-v1.4.1-RC1-darwin-arm64 | 6bcc0afeca868485c1e1b87b5072ee18b3cc2e1ba557b159aa1c2a8b21a4e1f8 |
immuadmin-v1.4.1-RC1-freebsd-amd64 | b8c326d302e27d7e0c7c2ed7a06bc9c88cc752bd8ed8b3a8b0a76ff19e679552 |
immuadmin-v1.4.1-RC1-linux-amd64 | a5332af65375b881ef65c4828808e962f985303d5ff168b855c63b2969200497 |
immuadmin-v1.4.1-RC1-linux-amd64-fips | 6ead7189d35149645e44df5c06df73317322930d5b663c4e54f1532c49f3092f |
immuadmin-v1.4.1-RC1-linux-amd64-static | 458c4136443d8b5366f435dd979b698821954d511cdfc1931d64a5066fba52f6 |
immuadmin-v1.4.1-RC1-linux-arm64 | 7dd1a1090dd730680f37aefb6d15fbb29e0a4e87ecc82d1723a25f6264b3eb4e |
immuadmin-v1.4.1-RC1-linux-s390x | 1034aca0e52e03dadeb3e59dbd22cc58f400d2a301efed401cdfca9a64b73ff1 |
immuadmin-v1.4.1-RC1-windows-amd64.exe | 14959b7ee6e84cad591ce930166dc7ff3529092d2cc7a8c1ec7b641ec95e800c |
v1.4.0
Release notes
We're pleased to introduce version 1.4 of immudb, which comes with two major features: FIPS-Compliant Builds and Synchronous Replication. And, of course, we’ve fixed bugs and made other improvements.
FIPS-Compliant Builds
Starting with v1.4.0, immudb can be compiled using the go-boringcrypto fork of the Go compiler, which uses the FIPS 140-2 compliant boringssl library. We now also officially provide FIPS-compliant binaries and Docker images.
What is it? The FIPS 140-2 standard prescribes the design and security requirements for cryptographic modules that may be approved for use by the United States government. FIPS-140 is a collection of computer security standards set by the National Institute of Standards and Technology (NIST) for the United States government. FIPS 140–2 defines the critical security parameters vendors must use for encryption implementations sold to the U.S government.
A detailed information about FIPS-compliant immudb build can be found in immudb's source code repository.
Synchronous Replication
Synchronous replication improves the reliability of data replicated across the immudb nodes in a cluster. When an immudb cluster uses synchronous replication, the primary node waits for sufficient transaction confirmations from replicas before it considers the transaction fully committed and durably stored by multiple nodes. This feature increases data durability by allowing any single node in an immudb cluster—including the primary node—to be lost without causing the database state tracked by the nodes and clients to diverge.
Prior to version 1.4, immudb only supports asynchronous replication. When a cluster is configured to use asynchronous replication, replica nodes can lag behind the primary node, and any given transaction committed on the primary node isn’t guaranteed to be replicated to other nodes within a reasonable time period. Thus, transactions committed to a primary node that have not been replicated can be lost if the primary node is irrecoverably lost. When this occurs, the state of the surviving nodes may diverge from the state computed by the immudb client, because the new primary node elected from the remaining replicas could be missing the most recent commits tracked by the clients.
To get more information about synchronous replication please refer to the documentation on docs.immudb.io.
Replication performance
Due to additional synchronization between nodes, commit throughput with synchronous replication will naturally be slower compared to a single-node cluster. The performance difference will depend on various factors such as the speed of disks, network latency, and the number of followers.
In this release we also worked on improvements to the replication mechanism itself, achieving 17 to 20 times larger TX/s replication throughput than what was available in 1.3.2 release.
SDK Updates
This release also comes with significant updates to immudb SDKs. We've brought brand new .Net SDK; added inline documentation to Go SDK; added inline documentation and increased functionality of Python SDK and Java SDK; and made significant updates to the node.js SDK 1.
Changelog
[v1.4.0] - 2022-10-12
Bug Fixes
- build: Do not publish official non-dev images on RC tags
- pkg/client: replace keepAlive context from the original one to the background, avoiding parent expiration
- build: Use correct binary download links
- embedded/store: edge-case calculation of precommitted tx
- embedded/watchers: Fix invariant breakage in watchers
- embedded/watchers: Fix invariant breakage in watchers
- pkg/database: any follower can do progress due to its prefech buffer
- pkg/replication: Do not crash on invalid tx metadata
- pkg/replication: handle replication already closed case
- pkg/replication: discard precommitted txs and continue from latest committed one
- pkg/replication: solve issues when follower diverged from master
- wmbedded/watchers: Correctly fix the original implementation
- Makefile: add fips build flag to test/fips
- Makefile: remove interactive flag from dist/fips command
- ci: fix regex pattern for fips binaries
- cmd/immuadmin: set correct data-type for replication-sync-followers flag
- embedded/store: fix size calculation of precommitted txs
- embedded/store: Fix checking for closed store when syncing TXs
- embedded/store: avoid attempts to commit in wrong order
- embedded/store: expose durable precommitted state
- embedded/store: include allowPrecommitted into tx reader construction
- embedded/store: ensure tx is released upon error
- embedded/store: aht up to precommited tx
- github: Update github actions after migration of Dockerfile's
- pkg/database: return master commit state if failing to read follower precommitted one
- pkg/database: Fix mutex lock in ExportTx
- pkg/database: set follower states holder when changing replication status
- pkg/server: add logs when replicator does not start
Changes
- Rename sync-followers to sync-acks
- cmd/immuclient: include precommit state when quering status
- pkg/server: Better error message when validating replication options
- embedded/watchers: Simplify and document cancellation path
- embedded/watchers: Simplify mutex locking code
- embedded/watchers: single-point for init and cleanup
- pkg/database: wait for tx when a non-existent or non-ready transaction is requested
- pkg/database: add TODO comment on replication passive waiting
- pkg/database: simplify follower's wait
- pkg/replication: Add TX gap metrics
- pkg/replication: Add basic replication metrics
- pkg/replication: improve replication logging
- add dependabot config
- Add empty line between license header and package
- Dockerfile.fips: add fips build changes
- cmd/immuadmin: add new replication flags
- cmd/immuadmin: revert default replication-master-port
- cmd/immuadmin: use default immudb port as default value for replication-master-port flag
- cmd/immuclient: flag replication-sync-enabled to enable sync replication
- cmd/immudb: deprecate replication-enabled towards replication-is-replica
- docker: Move main Dockerfile's to build folder
- docker: Simplify the main Dockerfile
- embedded/store: resolve pre-committed using clogbuf
- embedded/store: wip reduce allocations in exportTx
- embedded/store: mutexless export-tx
- embedded/store: enhanced tx discarding logic
- embedded/store: wip load precommitted txs
- embedded/store: method to dynamically switch to external allowance
- embedded/store: wip wait for precommitted txs
- embedded/store: explicit allowPrecommitted and restricted access to precommitted txs
- embedded/store: minor code simplification
- embedded/store: possibility to read tx header of precommitted txs
- embedded/store: support for concurrent replicated precommits
- embedded/store: tx parsing with sanity checks
- embedded/store: handle commit case when there is nothing new to commit
- embedded/store: tolerate partial data or inconsistencies when loading pre-committed txs
- embedded/store: explanatory comments added
- embedded/store: waits for durable precommitted txs
- embedded/store: minor renaming and comment additions
- embedded/store: add integrity checks when reading precommitted txs
- pkg/api: currentState endpoint includes precommitted info
- pkg/api: explicit sync replication setting
- pkg/api/schema: reformat schema.proto file
- pkg/database: minor typo in comment
- pkg/database: sync exportTx
- pkg/database: improve error comparison
- pkg/database: follower commit progress without additional waits
- pkg/database: handle special case related to sql initialization
- pkg/database: disable automatic sql init on older databases
- pkg/integration: add synchronous replication integration tests
- pkg/replication: allowPreCommitted only with sync replication enabled
- pkg/replication: speed up follower reconnection
- pkg/replication: use session-based authentication
- pkg/replication: handling a particular case in an optimized manner
- pkg/replication: backward compatible replication
- pkg/replication: check committedTxID from master
- pkg/replication: wip optimize concurrency in replicators
- pkg/replication: handle case when follower precommit state is up-to-date but commit state is lies behind
- pkg/replication: sync replication using follower state
- pkg/replication: configurable prefetchTxBufferSize and replicationCommitConcurrency
- pkg/replication: improve error comparison
- pkg/replication: graceful closing
- pkg/replication: further progress in sync replication
- pkg/replication: replicator with backward compatibility mode
- **pkg/re...
-
Some SDKs updates will be released a few days after the immudb release. ↩
v1.4.0-RC2
Changelog
[v1.4.0-RC2] - 2022-10-06
Bug Fixes
- build: Use correct binary download links
- embedded/store: edge-case calculation of precommitted tx
- embedded/watchers: Fix invariant breakage in watchers
- embedded/watchers: Fix invariant breakage in watchers
- pkg/database: any follower can do progress due to its prefech buffer
- pkg/replication: Do not crash on invalid tx metadata
- pkg/replication: handle replication already closed case
- pkg/replication: discard precommitted txs and continue from latest committed one
- pkg/replication: solve issues when follower diverged from master
- wmbedded/watchers: Correctly fix the original implementation
Changes
- embedded/watchers: Simplify and document cancellation path
- embedded/watchers: Simplify mutex locking code
- embedded/watchers: single-point for init and cleanup
- pkg/database: wait for tx when a non-existent or non-ready transaction is requested
- pkg/database: add TODO comment on replication passive waiting
- pkg/database: simplify follower's wait
- pkg/replication: Add TX gap metrics
- pkg/replication: Add basic replication metrics
- pkg/replication: improve replication logging
[v1.4.0-RC1] - 2022-10-04
Bug Fixes
- Makefile: add fips build flag to test/fips
- Makefile: remove interactive flag from dist/fips command
- ci: fix regex pattern for fips binaries
- cmd/immuadmin: set correct data-type for replication-sync-followers flag
- embedded/store: fix size calculation of precommitted txs
- embedded/store: Fix checking for closed store when syncing TXs
- embedded/store: avoid attempts to commit in wrong order
- embedded/store: expose durable precommitted state
- embedded/store: include allowPrecommitted into tx reader construction
- embedded/store: ensure tx is released upon error
- embedded/store: aht up to precommited tx
- github: Update github actions after migration of Dockerfile's
- pkg/database: return master commit state if failing to read follower precommitted one
- pkg/database: Fix mutex lock in ExportTx
- pkg/database: set follower states holder when changing replication status
- pkg/server: add logs when replicator does not start
Changes
- add dependabot config
- Add empty line between license header and package
- Dockerfile.fips: add fips build changes
- cmd/immuadmin: add new replication flags
- cmd/immuadmin: revert default replication-master-port
- cmd/immuadmin: use default immudb port as default value for replication-master-port flag
- cmd/immuclient: flag replication-sync-enabled to enable sync replication
- cmd/immudb: deprecate replication-enabled towards replication-is-replica
- docker: Move main Dockerfile's to build folder
- docker: Simplify the main Dockerfile
- embedded/store: resolve pre-committed using clogbuf
- embedded/store: wip reduce allocations in exportTx
- embedded/store: mutexless export-tx
- embedded/store: enhanced tx discarding logic
- embedded/store: wip load precommitted txs
- embedded/store: method to dynamically switch to external allowance
- embedded/store: wip wait for precommitted txs
- embedded/store: explicit allowPrecommitted and restricted access to precommitted txs
- embedded/store: minor code simplification
- embedded/store: possibility to read tx header of precommitted txs
- embedded/store: support for concurrent replicated precommits
- embedded/store: tx parsing with sanity checks
- embedded/store: handle commit case when there is nothing new to commit
- embedded/store: tolerate partial data or inconsistencies when loading pre-committed txs
- embedded/store: explanatory comments added
- embedded/store: waits for durable precommitted txs
- embedded/store: minor renaming and comment additions
- embedded/store: add integrity checks when reading precommitted txs
- pkg/api: currentState endpoint includes precommitted info
- pkg/api: explicit sync replication setting
- pkg/api/schema: reformat schema.proto file
- pkg/database: minor typo in comment
- pkg/database: sync exportTx
- pkg/database: improve error comparison
- pkg/database: follower commit progress without additional waits
- pkg/database: handle special case related to sql initialization
- pkg/database: disable automatic sql init on older databases
- pkg/integration: add synchronous replication integration tests
- pkg/replication: allowPreCommitted only with sync replication enabled
- pkg/replication: speed up follower reconnection
- pkg/replication: use session-based authentication
- pkg/replication: handling a particular case in an optimized manner
- pkg/replication: backward compatible replication
- pkg/replication: check committedTxID from master
- pkg/replication: wip optimize concurrency in replicators
- pkg/replication: handle case when follower precommit state is up-to-date but commit state is lies behind
- pkg/replication: sync replication using follower state
- pkg/replication: configurable prefetchTxBufferSize and replicationCommitConcurrency
- pkg/replication: improve error comparison
- pkg/replication: graceful closing
- pkg/replication: further progress in sync replication
- pkg/replication: replicator with backward compatibility mode
- pkg/replicator: wip precommitted tx discarding when follower diverged from master
- pkg/server: explicit sync replication
- pkg/server: handle admin user creation with sync replication enabled
- pkg/server: support for systemdb with session-based auth
- pkg/server: display all replication settings
- pkg/server: include sync replication settings in options
- pkg/server: use replication settings
Features
- cmd/immuadmin: flag to set the number of sync followers
- cmd/immudb: flag to set the number of sync followers for systemdb and defaultdb
- embedded/store: functionality to discard precommitted txs
- embedded/store: core support for sync replication
- pkg/api: api extensions to support sync replication
- pkg/database: wip sync replication logic
- pkg/replication: mode to allow tx discarding on followers
- pkg/replication: wip replicator with support for sync replication
- pkg/server: sync replication logic
- pkg/server: Add ability to inject custom database management object
Downloads
Docker image
https://hub.docker.com/r/codenotary/immudb
immudb Binaries
File | SHA256 |
---|---|
immudb-v1.4.0-RC2-darwin-amd64 | 3e4d3cbfa37b93915d8134d25ed1023b23ffa6a149c5bf322b4876806d014eff |
immudb-v1.4.0-RC2-darwin-arm64 | 0b9b164e70b57bbda365850f2ebf74bfc5ae085697bb0ad773643727382957c3 |
immudb-v1.4.0-RC2-freebsd-amd64 | d4510c7bc0b165e51de3bae24d5dfb194b2540acc3930da5b5b164d9c1d5e666 |
immudb-v1.4.0-RC2-linux-amd64 | ce2cc8959dccbfc0135a39bfd7c36658c1953758927d0f5703837f630f40779c |
immudb-v1.4.0-RC2-linux-amd64-fips | 368273d2457d924cff3eb6fd3928c3f4eb2cb21fc6bfa9d89271628c7d2c8dae |
immudb-v1.4.0-RC2-linux-amd64-static | 29bfb2f2bf574973686fee95f9747f9a5029178ef3f217fd23e34b9f346d7937 |
immudb-v1.4.0-RC2-linux-arm64 | 74fef2616de7508b8fc8a776bbcd7b157369ea2c38b79535b632ff0f5345e363 |
immudb-v1.4.0-RC2-linux-s390x | 2238943a469c472a6efc4f633958c51991ff40e54136c4d7020f727bde279c0d |
immudb-v1.4.0-RC2-windows-amd64.exe | 6723269e6bde85611e2c1784d679579fc666f24a861a69726c331dd4c63c97fa |
immuclient Binaries
File | SHA256 |
---|---|
immuclient-v1.4.0-RC2-darwin-amd64 | 8330d88bb96a434470fc587a06bbd6063290240321a40420da692eef8786919c |
immuclient-v1.4.0-RC2-darwin-arm64 | 02f42f2e0c5271257d8f92e40ba4a2a93ed496ca78ecd8358bbb2b45506eddff |
immuclient-v1.4.0-RC2-freebsd-amd64 | cef95e5b58ef18684dd7934b59325dae1efe5b3f85fedcee37818aedb399b621 |
immuclient-v1.4.0-RC2-linux-amd64 | 77eb8275887dcf5a9ff41b2b67734ffda4d75c1c2661670e9edf07bc364197cf |
immuclient-v1.4.0-RC2-linux-amd64-fips | 8d68d3b17e4fc3b39be0f940ad2452f5b58f2b605f46666f036d9c6a8abdd6ca |
immuclient-v1.4.0-RC2-linux-amd64-static | 78ad86d5cebbac8a17162724... |
v1.4.0-RC1
Changelog
[v1.4.0-RC1] - 2022-10-04
Bug Fixes
- Makefile: add fips build flag to test/fips
- Makefile: remove interactive flag from dist/fips command
- ci: fix regex pattern for fips binaries
- cmd/immuadmin: set correct data-type for replication-sync-followers flag
- embedded/store: fix size calculation of precommitted txs
- embedded/store: Fix checking for closed store when syncing TXs
- embedded/store: avoid attempts to commit in wrong order
- embedded/store: expose durable precommitted state
- embedded/store: include allowPrecommitted into tx reader construction
- embedded/store: ensure tx is released upon error
- embedded/store: aht up to precommited tx
- github: Update github actions after migration of Dockerfile's
- pkg/database: return master commit state if failing to read follower precommitted one
- pkg/database: Fix mutex lock in ExportTx
- pkg/database: set follower states holder when changing replication status
- pkg/server: add logs when replicator does not start
Changes
- add dependabot config
- Add empty line between license header and package
- Dockerfile.fips: add fips build changes
- cmd/immuadmin: add new replication flags
- cmd/immuadmin: revert default replication-master-port
- cmd/immuadmin: use default immudb port as default value for replication-master-port flag
- cmd/immuclient: flag replication-sync-enabled to enable sync replication
- cmd/immudb: deprecate replication-enabled towards replication-is-replica
- docker: Move main Dockerfile's to build folder
- docker: Simplify the main Dockerfile
- embedded/store: resolve pre-committed using clogbuf
- embedded/store: wip reduce allocations in exportTx
- embedded/store: mutexless export-tx
- embedded/store: enhanced tx discarding logic
- embedded/store: wip load precommitted txs
- embedded/store: method to dynamically switch to external allowance
- embedded/store: wip wait for precommitted txs
- embedded/store: explicit allowPrecommitted and restricted access to precommitted txs
- embedded/store: minor code simplification
- embedded/store: possibility to read tx header of precommitted txs
- embedded/store: support for concurrent replicated precommits
- embedded/store: tx parsing with sanity checks
- embedded/store: handle commit case when there is nothing new to commit
- embedded/store: tolerate partial data or inconsistencies when loading pre-committed txs
- embedded/store: explanatory comments added
- embedded/store: waits for durable precommitted txs
- embedded/store: minor renaming and comment additions
- embedded/store: add integrity checks when reading precommitted txs
- pkg/api: currentState endpoint includes precommitted info
- pkg/api: explicit sync replication setting
- pkg/api/schema: reformat schema.proto file
- pkg/database: minor typo in comment
- pkg/database: sync exportTx
- pkg/database: improve error comparison
- pkg/database: follower commit progress without additional waits
- pkg/database: handle special case related to sql initialization
- pkg/database: disable automatic sql init on older databases
- pkg/integration: add synchronous replication integration tests
- pkg/replication: allowPreCommitted only with sync replication enabled
- pkg/replication: speed up follower reconnection
- pkg/replication: use session-based authentication
- pkg/replication: handling a particular case in an optimized manner
- pkg/replication: backward compatible replication
- pkg/replication: check committedTxID from master
- pkg/replication: wip optimize concurrency in replicators
- pkg/replication: handle case when follower precommit state is up-to-date but commit state is lies behind
- pkg/replication: sync replication using follower state
- pkg/replication: configurable prefetchTxBufferSize and replicationCommitConcurrency
- pkg/replication: improve error comparison
- pkg/replication: graceful closing
- pkg/replication: further progress in sync replication
- pkg/replication: replicator with backward compatibility mode
- pkg/replicator: wip precommitted tx discarding when follower diverged from master
- pkg/server: explicit sync replication
- pkg/server: handle admin user creation with sync replication enabled
- pkg/server: support for systemdb with session-based auth
- pkg/server: display all replication settings
- pkg/server: include sync replication settings in options
- pkg/server: use replication settings
Features
- cmd/immuadmin: flag to set the number of sync followers
- cmd/immudb: flag to set the number of sync followers for systemdb and defaultdb
- embedded/store: functionality to discard precommitted txs
- embedded/store: core support for sync replication
- pkg/api: api extensions to support sync replication
- pkg/database: wip sync replication logic
- pkg/replication: mode to allow tx discarding on followers
- pkg/replication: wip replicator with support for sync replication
- pkg/server: sync replication logic
- pkg/server: Add ability to inject custom database management object
Downloads
Docker image
https://hub.docker.com/r/codenotary/immudb
immudb Binaries
File | SHA256 |
---|---|
immudb-v1.4.0-RC1-darwin-amd64 | e2133e437897911b48ba4b7ec40c5a7a31b10522ce36f4f971d1964576642a59 |
immudb-v1.4.0-RC1-darwin-arm64 | a036f56e5465f5337edb56b45cff5c5ad23a65bb2d46efea536eeda43f9bc856 |
immudb-v1.4.0-RC1-freebsd-amd64 | 6eabed369b715bc6f1b5c0b3656a5b72878d664214d65ca2071e2240fbcbc235 |
immudb-v1.4.0-RC1-linux-amd64 | ac2543dc3952abc96199f40aa805ecfac335f7a76788a02e641bed111b35280c |
immudb-v1.4.0-RC1-linux-amd64-fips | a7842f83df2637118696c8c248977a465413696fa704631d2f1ab355250d307b |
immudb-v1.4.0-RC1-linux-amd64-static | bc03f2235255311fd52c1a69c99864f7db31a792a6a312c74df9991ac8f05a91 |
immudb-v1.4.0-RC1-linux-arm64 | e548ef5a4976e1925a08c6401688641af1c7da67dce2c401908e921a0d06169a |
immudb-v1.4.0-RC1-linux-s390x | 04c9b9820e79f52b757fd8ff462e9d65f785bb781a92bfd04c44c7cb2b94f07f |
immudb-v1.4.0-RC1-windows-amd64.exe | fecba3d6894bdb341de5b0e3c826ddd7cb390026b2e903935c3266d6f4beaa50 |
immuclient Binaries
File | SHA256 |
---|---|
immuclient-v1.4.0-RC1-darwin-amd64 | ae8977e1b07b923649b0cca1a20680e0501a04605daaf5c64dd9dc2b50478932 |
immuclient-v1.4.0-RC1-darwin-arm64 | ca39fd74a0818719908a7f3c46e8bb19ffc93678c953ae573d1d03b40b1a4965 |
immuclient-v1.4.0-RC1-freebsd-amd64 | c71787595d2da1ead1d6710d31a7859d2b5ef08efe7a9158c3933a1f3d1c4a60 |
immuclient-v1.4.0-RC1-linux-amd64 | 295f2457a3e271bdee1db1dc0b8349355661eeddece932c7bd22b44c132c4b88 |
immuclient-v1.4.0-RC1-linux-amd64-fips | f48de7b92695437bd3f7dc7e7ab8589b0dd4e96e4f0877c7e87770349c2d57bf |
immuclient-v1.4.0-RC1-linux-amd64-static | f3c6f4c08244e8e84bbefcb5f3e053a8612fa63c820015493bca87489773f765 |
immuclient-v1.4.0-RC1-linux-arm64 | 695f9c7f9ec5a147265b4489ae2e2282b144338a383d779037c58a8efed380fe |
immuclient-v1.4.0-RC1-linux-s390x | 4d7f0ff5eade6c0e29adf1467007481c14ed53ab8b606191244f5266683d1483 |
immuclient-v1.4.0-RC1-windows-amd64.exe | 851494f9e7b64356dce80220d41dbdd54954183b46430e77fd03779b60cd49e0 |
immuadmin Binaries
File | SHA256 |
---|---|
immuadmin-v1.4.0-RC1-darwin-amd64 | 4352e28868ac037b4e78478862a20460c88976b6d35562cea1c7e9df19d3810f |
immuadmin-v1.4.0-RC1-darwin-arm64 | 245b9644d1c74b24c612c651b644f87c182946b21877b73631513f8b8d250ac3 |
immuadmin-v1.4.0-RC1-freebsd-amd64 | 85c15624f3399570c9254e3e575fbcbdf62... |
v1.3.2
Release notes
Performance was the main focus of this immudb release. The way durability guarantees were implemented until now i.e. fsync was called synchronously as the final commit step, resulted in a lot of overhead for each transaction.
A significant improvement in write performance (up to x10 faster compared to previous immudb release v1.3.1) was achieved by grouping transactions in the last step of the commit process. The gains are greatest when there are fewer key-value entries per transaction and multiple writers are simultaneously working. The cost of the sync operation pays for itself as the number of key-value pairs in each transaction increases, although some noticeable speed can still be achieved (up to x2 compared to previous immudb release v1.3.1).
Read performance was also significantly improved due to the introduction of reusable pools of objects, which reduced allocations needed during query resolution. The gains are quite significant in both single and multi-get operations.
Benchmarking
Stay tuned, benchmarks done using stresser2
tool (https://github.com/codenotary/immudb-tools) will be available soon, we're still collecting some results.
JSON Logging
Logs can also be generated in json format for easier ingestion by logging platforms.
It's quite simple to enable this useful feature, just run immudb with the logformat
flag set to json
e.g. ./immudb --logformat=json
Go 1.18
immudb binaries and Docker images are now built with Go 1.18.
Changelog
[v1.3.2] - 2022-08-25
Bug Fixes
- access tls value in global scope within ingress annotations
- company name in webconsole and other files
- build: Fix go-acc and goveralls invocations
- build: update go version to 1.18 in Dockerfiles
- build/RELEASING.md: Add note about updating playground
- embedded: use tmp folder for unit test cases
- embedded/sql: Support single
BEGIN
statement. - embedded/store: Check precommitted state when replicating
- embedded/store: Optionally preallocate Tx pools
- embedded/store: Ensure ordering of transaction timestamps
- embedded/store: Assign blTxID within locked tx state
- embedded/store: ensure tx is released upon error
- embedded/store: Improved check for replicated transaction
- embedded/store: Return correct error on key length exceeded
- embedded/store: Protect against simultaneous replicators
- embedded/store: Reduce the amount of allocations for tx object
- embedded/tools/stress_tool: Fix compilation after recent update to tx holder pool
- getRandomTable: increase RNG range for table generation
- github: Remove unnecessary
/test/
path when uploading perf results to s3 - github: Do not use yaml anchors in github workflows
- pkg/client: Invalid client state after connection refused
- pkg/client/clienttest: enforce mock client to interface
- pkg/database: Fix calculation of proof for VerifiableTxByID
- pkg/database: Correct revision for Scan requirests
- server: Show info text with a logger
- servertest: Allow accessing Server object before starting the server
- stdlib/rows: add colums to row response
- test/performance: Cleanup test directory
Changes
- pin google.golang.org/protobuf to v1.27.1 (currently used version for generated code).
- Introduce separate TxHolder pools
- update github.com/spf13/viper to v1.12.0.
- makefile formatting.
- update build constraint to new & future-proof syntax.
- format tools.go.
- deprecate ImmuClient.HealthCheck in favour of ServerInfo.
- reimplement ImmuClient.HealthCheck using rpc ServerInfo instead of (deprecated) Health.
- refactor TestServerInfo.
- Update main go versin to 1.18
- generate gRPC stubs.
- ignore schema_grpc.pb.go in coveralls.
- use go.mod version of github.com/grpc-ecosystem/grpc-gateway when building codegen.
- regenerate with correct version of protoc-gen-go.
- ignore schema_grpc.pb.go in code coverage.
- pin github.com/pseudomuto/protoc-gen-doc to 1.4.1 (currently used version for generated code).
- Makefile: Update webconsole to 1.0.16
- build: Update RELEASING.md doc
- build: Improve generation of build checksums
- cmd/immuadmin: Add support for max-commit-concurrency option
- cmd/immuadmin: Add support for read-tx-pool-size option
- cmd/immudb: Add support for max-sessions command line option
- database/sql: Delay txholder allocation on VerifiableSQLGet
- embedded/ahtree: threshold-based sync
- embedded/ahtree: use bigger default write buffer size
- embedded/ahtree: improve error handling
- embedded/ahtree: flushless append
- embedded/ahtree: improve validations and error handling
- embedded/ahtree: support newst appendable implementation
- embedded/ahtree: improve error message consistency
- embedded/ahtree: minor error message change
- embedded/appendable: autosync when write buffer is full
- embedded/appendable: autosync support in multi-appendable
- embedded/appendable: flush when no more writes are done in appendable
- embedded/appendable: improve explanatory comment inside sync method
- embedded/appendable: improve singleapp validation and error handling
- embedded/appendable: error tolerant seek
- embedded/appendable: improve validations and error handling
- embedded/appendable: inmem buffer offset
- embedded/appendable: wip remoteapp validation
- embedded/appendable: return io.EOF when offset is out of range
- embedded/appendable: upgrade mocked and remote appendable based on new flushing assumptions
- embedded/appendable: auto-sync options
- embedded/appendable: multi-appendable shared write buffer
- embedded/htree: improve error handling
- embedded/sql: Remove unnecessary tx holder buffer from SQLTx
- embedded/store: Better errors returned during replication error
- embedded/store: aht options
- embedded/store: Use dedicated error for replication conflicts
- embedded/store: sync AHT before tx commit log
- embedded/store: in-mem clog buffer written when synced
- embedded/store: wrap internal already closed errors
- embedded/store: handle appendable already close error
- embedded/store: Optimize ReadTxHeader method
- embedded/store: Do not write values if concurrency limit is reached
- embedded/store: Add dedicated error for tx pool exhaustion
- embedded/store: add TODO comment
- embedded/store: parametrize write buffer size
- embedded/store: wip retryable sync
- embedded/store: flush-less precommit
- embedded/store: multi-tx syncs
- embedded/store: use smaller default buffer size
- embedded/store: Add txDataReader to process transaction data
- embedded/store: avoid sync waiting if there are no new transactions
- embedded/store: improve error comparison with errors.Is(...)
- embedded/store: wip error declaration
- embedded/store: Add explicit ReadTxEntry method
- embedded/store: Add explicit ReadTxHeader
- embedded/store: Optimize ReadTxEntry method
- embedded/store: Add txPoolOptions to setup pool parameters upon creation
- embedded/store: set new default write buffer values
- embedded/store/txpool: Allocate pool entries separately
- embedded/store/txpool: Make txPoolOptions members private
- embedded/tbtree: improve error handling
- embedded/tbtree: use non-retryable sync
- embedded/tbtree: define using generic errors towards errors.Is(...) usage
- embedded/watchers: improve error handling
- github: Update ACTIONS_SECRETS.md file
- github: Allow selection of runner to run perf test
- github: Run perf test suite on pull requests
- github: Run performance test suite on push to master
- github: Add simple documentation of
PERF_TEST_xxx
secrets - github: Install qemu using docker/setup-qemu-action
- github: Allow using multiple runners for perf test suite
- github: Upload perf results to AWS s3
- pkg/api: Add tx pool size to GRPC and stored db options
- pkg/api: milliseconds message type
- pkg/api: expose aht settings
- pkg/api: export syncFrequency database parameter
- pkg/api: deprecate rpc Health in favour of ServerInfo.
- pkg/database: Add tx pool size to db options
- pkg/database: Remove txHolder from get operation
- pkg/database: Do not allocate txholder for history scans
- pkg/database: allocate tx buffer before doing verified writes
- pkg/logger: Add memory logger
- pkg/logger: add json logger
- pkg/server: simplify ImmuServer.Health.
- pkg/server: Add pprof option
- test/performance: Add basic flags to the benchmark process
- test/performance: Add separate
Write KV/s
test. - test/performance: Split benchmark list and run code
- test/performance: Move test seed out of configuration
- test/performance: Move random generator and key tracker to common coode
- test/performance: Add CPU time / memory stats gathering
- test/performance: Allow customized name for the benchmark
- test/performance: Add basic IO stats
- test/performance: Improve live IO display
- test/performance: Better logging and output
- test/performance: Correctly close random data generator
Features
- revert usages of ServerInfo that would break backwards compatibility.
- add test for HealthCheck.
- cmd/immuadmin: expose syncFrequency and WriteBufferSize db parameters
- cmd/immuclient: add info command to immuclient.
- pkg/api: expose write buffer parameter
- pkg/api: improve documentation of ServerInfo.
- pkg/api: remove ServerInfoResponse.status field.
- pkg/api: add ServerInfo rpc to deprecate Health.
- pkg/client: revert WaitForHealthCheck change to...
v1.3.2-RC1
Changelog
[v1.3.2-RC1] - 2022-08-24
Bug Fixes
- access tls value in global scope within ingress annotations
- company name in webconsole and other files
- build: Fix go-acc and goveralls invocations
- build: update go version to 1.18 in Dockerfiles
- build/RELEASING.md: Add note about updating playground
- embedded: use tmp folder for unit test cases
- embedded/sql: Support single
BEGIN
statement. - embedded/store: Check precommitted state when replicating
- embedded/store: Optionally preallocate Tx pools
- embedded/store: Ensure ordering of transaction timestamps
- embedded/store: Assign blTxID within locked tx state
- embedded/store: ensure tx is released upon error
- embedded/store: Improved check for replicated transaction
- embedded/store: Return correct error on key length exceeded
- embedded/store: Protect against simultaneous replicators
- embedded/store: Reduce the amount of allocations for tx object
- embedded/tools/stress_tool: Fix compilation after recent update to tx holder pool
- getRandomTable: increase RNG range for table generation
- github: Remove unnecessary
/test/
path when uploading perf results to s3 - github: Do not use yaml anchors in github workflows
- pkg/client: Invalid client state after connection refused
- pkg/client/clienttest: enforce mock client to interface
- pkg/database: Fix calculation of proof for VerifiableTxByID
- pkg/database: Correct revision for Scan requirests
- server: Show info text with a logger
- servertest: Allow accessing Server object before starting the server
- stdlib/rows: add colums to row response
- test/performance: Cleanup test directory
Changes
- pin google.golang.org/protobuf to v1.27.1 (currently used version for generated code).
- Introduce separate TxHolder pools
- update github.com/spf13/viper to v1.12.0.
- makefile formatting.
- update build constraint to new & future-proof syntax.
- format tools.go.
- deprecate ImmuClient.HealthCheck in favour of ServerInfo.
- reimplement ImmuClient.HealthCheck using rpc ServerInfo instead of (deprecated) Health.
- refactor TestServerInfo.
- Update main go versin to 1.18
- generate gRPC stubs.
- ignore schema_grpc.pb.go in coveralls.
- use go.mod version of github.com/grpc-ecosystem/grpc-gateway when building codegen.
- regenerate with correct version of protoc-gen-go.
- ignore schema_grpc.pb.go in code coverage.
- pin github.com/pseudomuto/protoc-gen-doc to 1.4.1 (currently used version for generated code).
- Makefile: Update webconsole to 1.0.16
- build: Update RELEASING.md doc
- build: Improve generation of build checksums
- cmd/immuadmin: Add support for max-commit-concurrency option
- cmd/immuadmin: Add support for read-tx-pool-size option
- cmd/immudb: Add support for max-sessions command line option
- database/sql: Delay txholder allocation on VerifiableSQLGet
- embedded/ahtree: threshold-based sync
- embedded/ahtree: use bigger default write buffer size
- embedded/ahtree: improve error handling
- embedded/ahtree: flushless append
- embedded/ahtree: improve validations and error handling
- embedded/ahtree: support newst appendable implementation
- embedded/ahtree: improve error message consistency
- embedded/ahtree: minor error message change
- embedded/appendable: autosync when write buffer is full
- embedded/appendable: autosync support in multi-appendable
- embedded/appendable: flush when no more writes are done in appendable
- embedded/appendable: improve explanatory comment inside sync method
- embedded/appendable: improve singleapp validation and error handling
- embedded/appendable: error tolerant seek
- embedded/appendable: improve validations and error handling
- embedded/appendable: inmem buffer offset
- embedded/appendable: wip remoteapp validation
- embedded/appendable: return io.EOF when offset is out of range
- embedded/appendable: upgrade mocked and remote appendable based on new flushing assumptions
- embedded/appendable: auto-sync options
- embedded/appendable: multi-appendable shared write buffer
- embedded/htree: improve error handling
- embedded/sql: Remove unnecessary tx holder buffer from SQLTx
- embedded/store: Better errors returned during replication error
- embedded/store: aht options
- embedded/store: Use dedicated error for replication conflicts
- embedded/store: sync AHT before tx commit log
- embedded/store: in-mem clog buffer written when synced
- embedded/store: wrap internal already closed errors
- embedded/store: handle appendable already close error
- embedded/store: Optimize ReadTxHeader method
- embedded/store: Do not write values if concurrency limit is reached
- embedded/store: Add dedicated error for tx pool exhaustion
- embedded/store: add TODO comment
- embedded/store: parametrize write buffer size
- embedded/store: wip retryable sync
- embedded/store: flush-less precommit
- embedded/store: multi-tx syncs
- embedded/store: use smaller default buffer size
- embedded/store: Add txDataReader to process transaction data
- embedded/store: avoid sync waiting if there are no new transactions
- embedded/store: improve error comparison with errors.Is(...)
- embedded/store: wip error declaration
- embedded/store: Add explicit ReadTxEntry method
- embedded/store: Add explicit ReadTxHeader
- embedded/store: Optimize ReadTxEntry method
- embedded/store: Add txPoolOptions to setup pool parameters upon creation
- embedded/store: set new default write buffer values
- embedded/store/txpool: Allocate pool entries separately
- embedded/store/txpool: Make txPoolOptions members private
- embedded/tbtree: improve error handling
- embedded/tbtree: use non-retryable sync
- embedded/tbtree: define using generic errors towards errors.Is(...) usage
- embedded/watchers: improve error handling
- github: Update ACTIONS_SECRETS.md file
- github: Allow selection of runner to run perf test
- github: Run perf test suite on pull requests
- github: Run performance test suite on push to master
- github: Add simple documentation of
PERF_TEST_xxx
secrets - github: Install qemu using docker/setup-qemu-action
- github: Allow using multiple runners for perf test suite
- github: Upload perf results to AWS s3
- pkg/api: Add tx pool size to GRPC and stored db options
- pkg/api: milliseconds message type
- pkg/api: expose aht settings
- pkg/api: export syncFrequency database parameter
- pkg/api: deprecate rpc Health in favour of ServerInfo.
- pkg/database: Add tx pool size to db options
- pkg/database: Remove txHolder from get operation
- pkg/database: Do not allocate txholder for history scans
- pkg/database: allocate tx buffer before doing verified writes
- pkg/logger: Add memory logger
- pkg/logger: add json logger
- pkg/server: simplify ImmuServer.Health.
- pkg/server: Add pprof option
- test/performance: Add basic flags to the benchmark process
- test/performance: Add separate
Write KV/s
test. - test/performance: Split benchmark list and run code
- test/performance: Move test seed out of configuration
- test/performance: Move random generator and key tracker to common coode
- test/performance: Add CPU time / memory stats gathering
- test/performance: Allow customized name for the benchmark
- test/performance: Add basic IO stats
- test/performance: Improve live IO display
- test/performance: Better logging and output
- test/performance: Correctly close random data generator
Features
- revert usages of ServerInfo that would break backwards compatibility.
- add test for HealthCheck.
- cmd/immuadmin: expose syncFrequency and WriteBufferSize db parameters
- cmd/immuclient: add info command to immuclient.
- pkg/api: expose write buffer parameter
- pkg/api: improve documentation of ServerInfo.
- pkg/api: remove ServerInfoResponse.status field.
- pkg/api: add ServerInfo rpc to deprecate Health.
- pkg/client: revert WaitForHealthCheck change to maintain backwards-compatibility.
- pkg/client: implement ImmuClient.ServerInfo.
- pkg/server: implement ImmuServer.ServerInfo.
Downloads
Docker image
https://hub.docker.com/r/codenotary/immudb
immudb Binaries
File | SHA256 |
---|---|
immudb-v1.3.2-RC1-darwin-amd64 | 9c8373eb161e27f1e3e887725167bb58c37b9e395b102e50ba52efff1cf1a5f9 |
immudb-v1.3.2-RC1-darwin-arm64 | 5017bc5a24776d4f952a53cabe12efe0f9f90fb23fc21fe7f9cd7d6feabfe76e |
immudb-v1.3.2-RC1-freebsd-amd64 | 5925e6ea56bc070904ca1755aba8889e84b4baf225376b22126594fcfd1000b3 |
immudb-v1.3.2-RC1-linux-amd64 | 832fd0bbe3ce1d83dca47b814cecdf9161f63362d0e7c1c8601d5bb30eb56101 |
immudb-v1.3.2-RC1-linux-amd64-static | 8eb21972c3d89a7e365da23d254a2fa62bc09b2ef3d1a1b9d44113306129f4cf |
immudb-v1.3.2-RC1-linux-arm64 | cb8e63b556b59dbeac822a5f3d190077a68bacfce46fe166256767e7eced0e79 |
[immudb-v1.3.2-RC1-linux-... |
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 |
v1.3.1-RC1
Changelog
[v1.3.1-RC1] - 2022-06-30
Bug Fixes
- 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
- 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
Downloads
Docker image
https://hub.docker.com/r/codenotary/immudb
Immudb Binaries
File | SHA256 |
---|---|
immudb-v1.3.1-RC1-darwin-amd64 | a06254ce724fe9be3374c88664d0a27cd732a0eae0aa58451fe4d04f05f43c44 |
immudb-v1.3.1-RC1-darwin-arm64 | 45c996fca79126d409ba1e9520cf3f6172c04142916741643583fed77f840fca |
immudb-v1.3.1-RC1-freebsd-amd64 | aa5c35695d84b38e2f086ffde50558e9f8a958cc2ea8ce46b21dd44969aba969 |
immudb-v1.3.1-RC1-linux-amd64 | 2a7b1f28fd0e7bb9e5531a0efb2f0fc7c9c6ea0159053ca7878d5d82019e56bd |
immudb-v1.3.1-RC1-linux-amd64-static | bc459e15c8ea5722f9724c29566fb65c49f7894af2fc8e33a51ebcdb710a007c |
immudb-v1.3.1-RC1-linux-arm64 | 797822fc74a8137278c0de376966d9cfe239451920e68f102e1c77a3bcada40c |
immudb-v1.3.1-RC1-linux-s390x | 058e02a0e86fbce1609ed99792553f45bb7e2355f698137574d53fe201356a49 |
immudb-v1.3.1-RC1-windows-amd64.exe | d22b6f3db757997dca1f55500547dc989c700f1e795cc695e54f75545167750b |
Immuclient Binaries
File | SHA256 |
---|---|
immuclient-v1.3.1-RC1-darwin-amd64 | dd5fd916b1ca62593cf99dcc868485c32d32ff09f6a1d0215013bb9906470a0b |
immuclient-v1.3.1-RC1-darwin-arm64 | e80590acfc4bd3c31802caecf5317351cc65dcaf9758fa2c31a1bccf63006736 |
immuclient-v1.3.1-RC1-freebsd-amd64 | 513e3cff2f8dbde3c416eb3a6dc44c4c7d03c2eb5fd9505917f49e1c1aadff53 |
immuclient-v1.3.1-RC1-linux-amd64 | b97cba3d4b5b124b5df21e6847469d440cdf35d8ca78f5ad00b4e431fa9f832d |
immuclient-v1.3.1-RC1-linux-amd64-static | b0b6bc7f68557b6192cce4328f6ab7398ef4dd4ca55a6aafb909c7eb69dfc5fd |
immuclient-v1.3.1-RC1-linux-arm64 | 18a6a72394e07e3e6fb25507ead0698bdcf12f8bff79dd23fd29a9167fc971a0 |
immuclient-v1.3.1-RC1-linux-s390x | d95107808813e430474489e2e7c3302c2e46972595c92afaed22a16e42c9435a |
immuclient-v1.3.1-RC1-windows-amd64.exe | e1cc8758e76fb8db1b08018e60da8608619faa7806ce10c36b4fdf272b20ae8a |
Immuadmin Binaries
File | SHA256 |
---|---|
immuadmin-v1.3.1-RC1-darwin-amd64 | 168ec88456844898cba47e9eb6cd848d0f298b9af58956ec4cdd4fc6162f5c0b |
immuadmin-v1.3.1-RC1-darwin-arm64 | 6ef6511c1f4e3bc0ab7d2953aaae228bcb242a207d043a639d18fbf2ead1382a |
immuadmin-v1.3.1-RC1-freebsd-amd64 | b56a2c00fad79114369ed13b5dbe1f937b54df475c5596622f7e22eac6d99f86 |
immuadmin-v1.3.1-RC1-linux-amd64 | e057a9eb4744d80039f7f6b55ce7ab74111d67fa5eb933ae53e4500f0d02ea26 |
immuadmin-v1.3.1-RC1-linux-amd64-static | 47e44c628a466e254180647730e856ed7a8b06b34153592d81eae98bb4708d2f |
immuadmin-v1.3.1-RC1-linux-arm64 | 03f049db9313c2cf89fc60fec6f08f6bc16c4f82a7e36073ff1db741f56ee0ab |
immuadmin-v1.3.1-RC1-linux-s390x | 86c300e376ad02a472540734086c12ca6dbe9d2ad210dcc50934f44ba6ad043f |
immuadmin-v1.3.1-RC1-windows-amd64.exe | 43dfef022ad6f6d07afbe1ecddfc6663e808c6e97fbe28a10ab7b69c1a4a4662 |
v1.3.0
Release notes
We're pleased to announce immudb 1.3. This version brings some new notable changes, a lot of improvements and some bug fixes.
Revision-based queries
In this version we've extended queries on the KV level by adding value revisions. This brings up an easy to use and elegant way to access historical values for keys such as getting the first version (revision 1) or a previous value (revision -1). You can quickly check how it works with newest immuclient
by following our updated User quickstart guide or by writing an application using revision using our SDKs.
Initial support for ALTER TABLE
This version also brings the initial support for ALTER TABLE
statements in the SQL layer. We've added support for ADD COLUMN
and RENAME COLUMN
operations.
Temporal SQL queries based on time
When dealing with historical values on the SQL layer, it is now possible to use time expressions next to transaction ids for specifying historical values. Queries such as SELECT * FROM sales SINCE '2022-01-06 11:38' UNTIL '2022-01-06 12:00'
are now perfectly valid. You can find more info in the SQL reference.
Catalog queries
Information about the SQL catalog can now be read directly using SQL. For that purpose we've added few built-in functions into our SQL dialect such as DATABASES()
. Read more about this feature in the SQL reference
Documentation updates
In this release we also worked on the immudb documentation available at https://docs.mmudb.io/. Next to hundreds of smaller changes, the new menu structure will help finding useful resources. Most notably, the developer documentation is now split between the Key Value and SQL operations.
Other improvements
There are many more features added in this release. Most notably immudb now supports the USE [DATABASE] <dbname>
and UNION SELECT
SQL statements increasing the SQL compatibility. In addition to that, the Scan operation on the KV layer has now extended set of parameters allowing much greater filtering of scanned results.
Important notes
Starting with 1.3 release, immudb will now return an error if the amount of rows returned from the Scan
, TxScan
and ZScan
will be greater than the allowed maximum (1000). Before it would return the first 1000 entries without reporting the error. We've found out that the previous behavior lead to a very dangerous and hidden bugs if the caller made an assumption that those calls returned all available results if the limit was not given.
To retrieve results larger than 1000 elements, pagination with a proper limit value should be used. This is the same requirement as before however it currently requires explicit limit value.
In order to handle arbitrary result sizes, future releases of immudb will focus on streaming APIs where entries will be retrieved from the server in an incremental way.
Changelog
[v1.3.0] - 2022-05-23
Bug Fixes
- embedded/sql: return invalid value when using aggregated col selector in temporal queries
- pkg/client: enhance client-side validations in verified methods
- cmd/immuclient: Do not crash on login prompt
- embedded/sql: selector resolution using valuesRowReader
- embedded/sql: continue stmt execution on handler after changing db in use
- embedded/sql: increase auto_increment pk once per row
- embedded/sql: typo in error message
- embedded/sql: adjust named parameter parsing
- github: Run sonarcloud code analysis after cove coverate
- pkg/database: avoid silent returns when the scan limit is reached
- pkg/database: Fix detection of incorrect revision numbers
- pkg/database: Correctly interpret negative revision for getAt
Changes
- Dockerfile: Add EXPOSE 5432 and IMMUDB_PGSQL_SERVER to all immudb images
- README.md: Switch to github badge
- build: Update the RELEASING.md documentation
- cmd/immuclient: Remove unnecessary sleep for set commands
- cmd/immuclient: Move history command to a separate file
- cmd/immuclient: Extract separate immuclient options
- embedded/sql: validate current database as first step
- embedded/sql: check tx range edge cases
- embedded/sql: not showing unexistent db name as part of error message
- embedded/sql: fully non-transactional db creation and selection
- embedded/sql: re-include ttimestamp conversions in tx periods
- embedded/sql: de-duplicate error handling
- embedded/sql: database selection without multidb handler is still transactional
- embedded/sql: database selection as non-transactional
- embedded/sql: postpone period evaluation so to support parameters type inference
- embedded/sql: param substitution in functional datasource
- embedded/sql: functional-style catalog queries
- embedded/sql: quoted identifiers
- embedded/sql: ensure db selection is the last operation
- embedded/sql: unit testing db selection
- embedded/sql: include short database selection stmt
- embedded/sql: ensure context propagation with multiple txs
- embedded/sql: implicit time expression
- embedded/sql: functional catalog api
- embedded/sql: non-functional catalog access
- embedded/sql: wip grammar extensions to enrich temporal queries
- embedded/sql: sql tx with context
- embedded/sql: multi-db handler
- embedded/sql: detailed error messages
- embedded/store: minor refactoring time-based tx lookup
- github: Speedup push github actions
- grpc: Extend Scan API with endKey, inclusiveSeek, inclusiveEnd
- pkg/api: extend database creation response to indicate db already existed
- pkg/database: minor error renaming
- pkg/database: Rename getAt to getAtTx
- pkg/database: provide query parameters during resolution
- pkg/database: Add missing copyright header in scan_test.go
- pkg/database: contextual sql tx
- pkg/database: set multi-db handler after db initialization
- pkg/database: Improved checking of KeyRequest constraints
- pkg/database: databases catalog query yet unsupported
- pkg/database: maintain MaxKeyScanLimit for backward compatibility
- pkg/integration: Add SQL verify tests after ALTER TABLE
- pkg/integration: Cleanup and restructure SQL tests
- pkg/server: upgrade database method signature
- pkg/server: contextual sql tx
Features
- Add revision number when getting DB entries
- Calculate revision number when scanning key history
- api/schema: Add revision-based option to key query
- cmd/immuclient: Add restore operation
- cmd/immuclient: Add revision numbers when looking up key history
- cmd/immuclient: Add support for revision-based get in immuclient
- cmd/immuclient: Better error messages for invalid revision for restore command
- embedded/sql: create database if not exists
- embedded/sql: queries with temporal ranges
- embedded/sql: temporal row ranges
- embedded/sql: catalog queries
- embedded/sql: WIP - UNION operator
- embedded/sql: Implement ALTER TABLE ADD COLUMN
- embedded/store: time-based tx lookup
- embedded/store: ranged key update reading
- pkg/client: Add revision-based get request on the go client
- pkg/database: Add revision-based get request on the GRPC level
- pkg/server: support database creation from sql
- pkg/server: support database selection from sql stmt
Downloads
Docker image
https://hub.docker.com/r/codenotary/immudb
Immudb Binaries
File | SHA256 |
---|---|
immudb-v1.3.0-darwin-amd64 | 4dd1ffe15682edf57b5b3ee539808e140f4a3ae6f544b8b95ad875772c5776d2 |
immudb-v1.3.0-darwin-arm64 | 4dd6c91a59fd868b8b641b7557a9ccebf8f458d6ea5c3c3f6baf96e336bbd810 |
immudb-v1.3.0-freebsd-amd64 | 27b3533a1e665dbf74298ac76a67b37058974723f1b214e808cd7d511479c23b |
immudb-v1.3.0-linux-amd64 | 1aaab3892cc1f1ef8bd8e5f02e25e09c76d76cd1f10f57397329bc9040e38a9a |
immudb-v1.3.0-linux-amd64-static | 2f404dd618798ece9b3fc183a623b13c2bb646d914dbb82f56e1a317a47d0239 |
immudb-v1.3.0-linux-arm64 | 8192640ecd581fab6630034fe059a48ad7b1fa5fa0f62abdbfc2bbf219cd04ac |
immudb-v1.3.0-linux-s390x | 03751514079e98aaacd4bfdcfc26bd79a0abe6d0462ff030d2ecc429dc4da970 |
immudb-v1.3.0-windows-amd64.exe | 232ea264f32197288bea374a76ccb002ab24d3fbbff94aae79cbacdf18880701 |
Immuclient Binaries
File | SHA256 |
---|---|
immuclient-v1.3.0-darwin-amd64 | 5e9def61732ef67c9c78c84a41fe377beb00c81a19b098213ed4e3e80c5d9042 |
[immuclient-v1.3.0-darwin-arm64](https://github.com/vchain-us/immudb/releases/download/v1.3.0/immuclient-v1.3.0-d... |