v1.2.3-RC1
Pre-release
Pre-release
Changelog
[v1.2.3-RC1] - 2022-04-13
Bug Fixes
- CI/CD: Golang compiler is not needed for building docker images
- CI/CD: Use CAS for notarization
- embedded/store: Ensure up-to-date index on constrained writes
- embedded/store: Fix early precondition checks
- embedded/tbtree: copy-on-write when increasing root ts
- immudb: Fix the name of signing key env var
- pkg: Fix tests after recent changes in API
- pkg/api: Remove unused Sync field from IndexOptions
- pkg/api: typo in kv metadata message
- pkg/api/schema: Use correct id for preconditions in SetRequest
- pkg/auth: Avoid unguarded read from user tokens map
- pkg/client: Adopt to EncodeReference changes
- pkg/client: Prevent updates with incorrect database settings
- pkg/client: Use correct response for UpdateDatabaseV2
- pkg/client/errors: Ensure FromErrors works with ImmuError instance
- pkg/client/errors: Update the list of error codes
- pkg/database: Better handling of invalid constraints
- pkg/database: Improve test coverage for KV constraints
- pkg/database: automatically set max score if not specified in desc order
- pkg/errors: Correct GRPC error mapping for precondition failure
- pkg/server: Use buffered channel for catching OS signals
- pkg/server: adjust time to millis convertion
- pkg/server: ensure sessions locks get released
- pkg/server: override default settings with existent values
- pkg/server: typo in log message
- tools/monitoring: Update grafana dashboards
Changes
- Fix typo in a comment
- Rename Constraints to Preconditions
- cleanup percentage as float value
- Update copyright to 2022
- Dockerfile: Improve dockerfile builds
- build: improve release instructions (#1100)
- cmd/immuadmin: add safety flag in delete database command
- cmd/immuclient: health command description
- embedded/ahtree: fix error message
- embedded/appendable: appendable checksum calculation
- embedded/appendable: return io.EOF if there are not enough data for checksum calculation
- embedded/appendable: discard capability
- embedded/appendable: fix typo in error message
- embedded/store: syncThld at store options
- embedded/store: Add missing Copyright header
- embedded/store: declare constants for all the options
- embedded/store: parametrized index write buffer size
- embedded/store: add synced setting in index options
- embedded/store: sync aht when syncing the store
- embedded/store: verbose data corruption error
- embedded/store: index one tx per iteration
- embedded/store: use store layer for constraint validations
- embedded/store: constraint validations with deletion and expiration support
- embedded/store: do not skip expired entries when indexing
- embedded/store: verbose logging during compaction
- embedded/store: skip expired entries during indexing
- embedded/store: improve compaction logging
- embedded/store/options: Simplify validation tests
- embedded/tbree: only insert nodes in cache when they were mutated
- embedded/tbree: use shared writeOpts
- embedded/tbree: remove obsolete property
- embedded/tbree: bump index version
- embedded/tbtree: minOffset only for non-mutated nodes
- embedded/tbtree: Add metrics for index data size
- embedded/tbtree: reduce allocations when flushing
- embedded/tbtree: use double for min offset calculation
- embedded/tbtree: data discarding with opened and older snapshots
- embedded/tbtree: improve snapshot loading and discarding
- embedded/tbtree: synced flush if cleanup percentage is greater than zero
- embedded/tbtree: Add more internal metrics
- embedded/tbtree: reduce allocs during flush
- embedded/tbtree: ensure current snapshot is synced for compaction
- embedded/tbtree: validate input kv pairs before sorting
- embedded/tbtree: Use KV entries count for sync threshold
- embedded/tbtree: no cache update during compaction reads
- embedded/tbtree: discard unreferenced data when flushing index
- embedded/tbtree: discard unreferenced data
- embedded/tbtree: middle node split
- embedded/tbtree: min offset handling
- embedded/tbtree: validate compaction target path
- embedded/tbtree: positive compaction threshold
- embedded/tbtree: discard unreferenced data after sync
- embedded/tbtree: ensure sync on gracefully closing
- embedded/tbtree: checksum-based snapshot consistency validation
- embedded/tbtree: self-healing index
- embedded/tbtree: set initial offsets during initialization
- embedded/tbtree: validate data-format version
- embedded/tbtree: Extend buckets for child node count histogram
- embedded/tbtree: reduce fixed records length
- embedded/tbtree: open-ranged nodes
- embedded/tbtree: wip reduce node size
- embedded/tbtree: use binary search during key lookups
- embedded/tbtree: fully replace sync with syncThld
- embedded/tbtree: rebase non-indexed on kv syncthreshold
- embedded/tbtree: explicit error validation before loading
- embedded/tbtree: sort kv pairs in bulkInsert
- makefile: fix cas sign instructions
- metrics: Add better flush / compaction metrics for btree
- pkg/api: prepare flushindex endpoint for future extensions
- pkg/api: use entries spec in verified and scan tx endpoints
- pkg/api: parametrized index cleanup percentage
- pkg/api: non-indexable entries
- pkg/api: use nullable prefix in db settings message
- pkg/api: add synced param to flushindex endpoint
- pkg/api: change proto schema toward db loading/unloading
- pkg/api: uniform v2 endpoints
- pkg/api: db loading and unloading
- pkg/client: optional client connection
- pkg/client: synced flushing to enable physical data deletion
- pkg/client: use txRequest in TxByIDWithSpec method
- pkg/database: tx entries excluded by default if non-null spec is provided
- pkg/database: optional tx value resolution
- pkg/database: remove db name from options
- pkg/database: use shared tx holder when resolving tx entries
- pkg/database: parameters to resolve references at tx
- pkg/integration: integrate non-indexed into grpc apis
- pkg/server: Dump used db options when loading databases
- pkg/server: replication options for systemdb and defaultdb
- pkg/server: use syncThreshold
- pkg/server: use previous store default values
- pkg/server: endpoint to retrieve settings of selected database
- pkg/server: log web-console error on boot
- pkg/server: start/stop replicator when loading/unloading db
- pkg/server: expose max opened files for btree indexing
- pkg/server: minor changes
- pkg/server: synced db runtime operations
- pkg/server: expose flush index endpoint
- pkg/server: increase default max number of active snapshots
- pkg/server: tolerate failed user-created db loading
- pkg/server: convert time to milliseconds
- pkg/serverr: validate request in deprecated database creation endpoint
- stats: Add btree cache prometheus stats
Features
- Entries-independent constraints in GRPC api
- Improved API for database creation and update
- Move KV write constraints to OngoingTX member
- Improved validation of kv constraints
- KV: Add constrained KV writes for ExecAll operation
- KV: Do not create unnecessary snapshots when checking KV constraints
- KV: Move constraints validation to OngoingTx
- KV: Add constrained KV writes for Set operation
- KV: Add constrained KV writes for Reference operation
- embedded/cache: dynamic cache resizing
- embedded/store: Fail to write metadata if proof version does not support it
- embedded/store: Add max header version used during writes
- embedded/store: non-indexable entries
- embedded/store: Add tests for generation of entries with metadata
- embedded/store: Allow changing tx header value using GRPC api.
- embedded/tbtree: decouple flush and sync by introducing syncThreshold attribute
- immuadmin: Allow changing proof compatibility from immuadmin
- kv: Update grpc protocol with KV set constraints
- pkg/api: delete database endpoint
- pkg/api: tx api with entry filtering capabilities
- pkg/client: new method to fetch tx entries in a single call
- pkg/database: Updated GRPC protocol for constrained writes
- pkg/database: Update code for new constrained write protocol
- pkg/database: add noWait attribute in get request
- pkg/server: database health endpoint
- pkg/server: support database loading/unloading
- pkg/server: new endpoint databaseSettings
- pkg/server: expose all database settings
- tools/monitoring: Add immudb Grafana dashboard
- tools/monitoring: added datasource selection, added instance selection, labels include instance, fixed calculations
Downloads
Docker image
https://hub.docker.com/r/codenotary/immudb
Immudb Binaries
File | SHA256 |
---|---|
immudb-v1.2.3-RC1-darwin-amd64 | c2a0d651602862d4113adaf43708175cb9979e042e0705ade5481a773f214088 |
immudb-v1.2.3-RC1-darwin-arm64 | cfb782e84be293935adfc5c32d6bd1d617e8c8f2356b250c3753bd2db0347a0e |
immudb-v1.2.3-RC1-freebsd-amd64 | 72fbc59b9386d3dc1840210c7813854f9f18e00631378f8e83ad525955e95f10 |
immudb-v1.2.3-RC1-linux-amd64 | bb173f08a8471fe34fdc408af3c422497b7b678512789bc3cc1d560fa9a9ba37 |
immudb-v1.2.3-RC1-linux-amd64-static | d77b95a15ea342d856525ad5ff99e239707fe2dd41bd6507be8bc2ed13f152c3 |
immudb-v1.2.3-RC1-linux-arm64 | bb4ceebdea96d1a30097415d69db08e45d05261c705f1c6f247ed0801202c7ed |
immudb-v1.2.3-RC1-linux-s390x | 407e9ef061c1673a5b115c22d1631dbf2bed55be4bc5b068871bb05faa66b1be |
immudb-v1.2.3-RC1-windows-amd64.exe | 1cc69e02f8cffb82a25b8db90e1fe18fad0ad95ecbc3fa949812e3b7f12b37b9 |
Immuclient Binaries
File | SHA256 |
---|---|
immuclient-v1.2.3-RC1-darwin-amd64 | cb56b8ed8c55d66cf3556490541d39333dc3cc0e1f38c28a200e9d40b956a9d6 |
immuclient-v1.2.3-RC1-darwin-arm64 | cac6a368f152e16537bc391419bfaccd8c2707a87cb925aeddb90880633a4be2 |
immuclient-v1.2.3-RC1-freebsd-amd64 | 1616af8b9af84cb8249f0ddfab402e6cf3c6dc4f9449b98052b32ab79eec9cec |
immuclient-v1.2.3-RC1-linux-amd64 | 37b5df7012dac0cd60125a34e8cd475810f5f7f1f9e9a3864b25653f13ca10a9 |
immuclient-v1.2.3-RC1-linux-amd64-static | d268ba184a3c065e76d2efb45786cc454e3f29b6673f918d12d804eaedcba84c |
immuclient-v1.2.3-RC1-linux-arm64 | d10acafd7d73d14978706f72d786cc27849d31844bea045f4b49a940e0f9fe63 |
immuclient-v1.2.3-RC1-linux-s390x | 5a2daba300ea1dbe503bc02c458c707f0e092a56cf976763390e2699774e406f |
immuclient-v1.2.3-RC1-windows-amd64.exe | 319e458c529c63cfb530afdf0b19e3901e5b7e52f72489fa093612304edab8ea |
Immuadmin Binaries
File | SHA256 |
---|---|
immuadmin-v1.2.3-RC1-darwin-amd64 | 1e06edd0ea1b5641ecf1c60aee4ab5bae678840f7d05b7ebb6c7368b8c5a60fe |
immuadmin-v1.2.3-RC1-darwin-arm64 | 93daa69a3550b47691e9ab98f11a13ce71526b9c61bec9bfa8134b81c46c5d59 |
immuadmin-v1.2.3-RC1-freebsd-amd64 | c33b80db5ef12d5f5b5301170a8669e967cbea69cf2deeddaf6bfefc3cd96737 |
immuadmin-v1.2.3-RC1-linux-amd64 | 9c49e3da6cfd3cdf9672c84aca032ece3c812975acca5d39859418ebb144b6fb |
immuadmin-v1.2.3-RC1-linux-amd64-static | 3f4846f95936cae238005527bce415b4c19cc6414713df378cf5c064b530823a |
immuadmin-v1.2.3-RC1-linux-arm64 | f4d76cc153e5b8c52b916e9213e6e314f4c0e9b84389304e2ef13ab48fe815b4 |
immuadmin-v1.2.3-RC1-linux-s390x | 702376ef9efec2976462d88eb38f65c5bfd906b5e525b16968acf4ecb8ea1b7e |
immuadmin-v1.2.3-RC1-windows-amd64.exe | f4fd95f4cc1507ef0af1d08f95fc710f7a8d18f22c1fd7297bb2a2ce5f0221e5 |