Skip to content

v1.4.0-RC2

Pre-release
Pre-release
Compare
Choose a tag to compare
@byo byo released this 10 Oct 13:34
· 1087 commits to master since this 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