v1.4.0-RC2
Pre-release
Pre-release
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 | 78ad86d5cebbac8a17162724e3b82b14fa0574782790edb93d1c66622eb84659 |
immuclient-v1.4.0-RC2-linux-arm64 | 070a795c4f126d3aba32adae6d4732d0e8c3427ed38966912ff9c54ddff4e0fd |
immuclient-v1.4.0-RC2-linux-s390x | a9c23137ede12bf8446f2998ecc3e2cb5ca4d3066f842f318cc9f25156fbeb76 |
immuclient-v1.4.0-RC2-windows-amd64.exe | a579c6a8df65f0a422ea053865821047b3865c6a8eca02ef9ae2c41e78adcd2d |
immuadmin Binaries
File | SHA256 |
---|---|
immuadmin-v1.4.0-RC2-darwin-amd64 | 7d7ecdca28413fb5c8efb52be76c99c71424aa90b7db79ee2986e22c9040ca9b |
immuadmin-v1.4.0-RC2-darwin-arm64 | 98e8d87be6434c832d77e57be97e3a1a61340255d4987287e2f4becf566f71aa |
immuadmin-v1.4.0-RC2-freebsd-amd64 | 710202c04312aaaafced78f21d976b033ba0e38fd9c66be91d9dca94e402a579 |
immuadmin-v1.4.0-RC2-linux-amd64 | 4d1879f9bb20bfb97e67576b0f0f972406d39709cdd240ee0fec35baa19b267e |
immuadmin-v1.4.0-RC2-linux-amd64-fips | 2c51e6f8600513482d14b6917328ceea9fff092c7672d66a4cd699e0d62e5721 |
immuadmin-v1.4.0-RC2-linux-amd64-static | d24106fabbe3457457434f115cd5299604f88d9a094fb2538a4a9721180931e6 |
immuadmin-v1.4.0-RC2-linux-arm64 | 85d1f0ed2601a57783e2cf5c87d2cc86576729924fb84b67c21fdada4e8742bd |
immuadmin-v1.4.0-RC2-linux-s390x | e2f7e5060fee2ff5fa24359e3d8d989d1c03d8c8cd4330a6541ce01c3467d86b |
immuadmin-v1.4.0-RC2-windows-amd64.exe | 5e946797ee1cdcae7739f1b8f2140e9a854006125db84291c8f7eb933c1de1e5 |