immudb v1.4.0-RC1 Release Notes

Release Date: 2022-10-04 // over 1 year ago
  • ๐Ÿ› 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