Skip to content

v1.0.5

Choose a tag to compare

@byo byo released this 02 Aug 13:38
· 2354 commits to master since this release

Changelog

[v1.0.5] - 2021-08-02

Bug Fixes

  • bind psql port to the same IP address as grpc interface (#867)
  • Update crypto, sys dependencies
  • consistent reads of recently written data
  • embedded/ahtree: fix the full revert corner case
  • embedded/store: Truncate aht before commit
  • embedded/store: Don't fail to open on corrupted commit log
  • embedded/store: revert change so to prevent nil assigments
  • embedded/store: handle missing error case during commit phase
  • embedded/store: use reserved concurrency slot for indexing
  • embedded/tbtree: ensure clog is the last one being synced
  • embedded/tbtree: garbage-less nodes log
  • embedded/tbtree: use padding to ensure stored snapshots are named following lex order
  • embedded/tbtree: flush logs containing compacted index
  • embedded/tbtree: ensure proper data flushing and syncing
  • pkg/client/auditor: fix and enhance state signature verification
  • pkg/pgsql/server: fix boolean and blob extended query handling
  • pkg/pgsql/server: hardened bind message parsing and fix leftovers
  • pkg/pgsql/server/fmessages: use a variable size reader to parse fe messages
  • pkg/server: initialize db settings if not present
  • pkg/server: lock userdata map read
  • s3: Use remote storage for index
  • s3: Use remote storage for new databases
  • sql/engine: Harden DecodeValue
  • store/indexer: Ensure indexer state lock is always unlocked

Changes

  • Better logging when opening databases
  • increased coverage handling failure branches (#861)
  • remove unused interceptors and add missing error code prefixes
  • move sqlutils package to schema
  • group user methods in a dedicated file
  • Update dependencies
  • appendable: Expose validation functions of appendable options
  • appendable/multiapp: Introduce appendableLRUCache
  • appendable/multiapp: Add hooks to the MultiFileAppender implementation
  • cmd/immuclient: fix panic in immuclient cli mode
  • cmd/immuclient: update error comparisson
  • embedded: col descriptor with attributes
  • embedded/ahtree: minor changes towards code redabilitiy
  • embedded/ahtree: minor refactoring improving readability
  • embedded/ahtree: auto-truncate partially written commit log
  • embedded/cache: Add Pop and Replace methods to LRUCache.
  • embedded/sql: initial type specialization in place
  • embedded/sql: dump catalog with a different database name
  • embedded/sql: Remove linter warnings
  • embedded/sql: explicit catalog reloading upon failed operations
  • embedded/sql: parameters type inference working with aggregations
  • embedded/sql: towards non-blocking sql initialization
  • embedded/sql: remove public InferParameters operations from sql statements
  • embedded/sql: several adjustments and completion in type inference functions
  • embedded/sql: cancellable wait for catalog
  • embedded/sql: expose InferParameters function in RowReader interface
  • embedded/sql: type specialization
  • embedded/sql: validate either named or unnamed parameters are used within the same stmt
  • embedded/store: tx metatada serialization/deserialization
  • embedded/store: minor code simplification
  • embedded/store: validate replicated tx against current store
  • embedded/store: minor refactoring improving readability
  • embedded/store: edge-case validation with first tx
  • embedded/store: auto-truncate partially written commit log
  • embedded/tbtree: nodes and commit prefix renaming
  • embedded/tbtree: auto-truncate partially written commit log
  • embedded/tbtree: use setOffset for historical data overwriting
  • embedded/tbtree: enable snapshot generation while compaction is in progress
  • embedded/tbtree: expose current number of snapshots
  • embedded/tbtree: full snapshot recovery
  • embedded/tbtree: warn if an error is raised while discarding snapshots
  • pkg/api: kept simple db creation api to guarantee backward compatibility
  • pkg/api: kept same attribute id in TxEntry message
  • pkg/api: fix typo inside a comment
  • pkg/api: comment on deprecated and not yet supported operations
  • pkg/api: remove information not required to cryptographically prove entries
  • pkg/auth: list of supported operations in maintenance mode
  • pkg/database: support the case where database tx is not the initial one due to migration
  • pkg/database: sql operations after catalog is created
  • pkg/database: single-store databases
  • pkg/database: method to retrieve row cursor based on a sql query stament
  • pkg/database: no wait for indexing during tx replication
  • pkg/database: use fixed database name
  • pkg/database: sql catalog reloading on replica
  • pkg/database: migrate systemdb catalog to fixed database naming
  • pkg/database: internal method renaming
  • pkg/database: sql catalog per database. migration from shared catalog store when required
  • pkg/database: replace fixed naming with current database
  • pkg/database: replace fixing naming with current database
  • pkg/database: expose catalog loading operation
  • pkg/database: catalog reloading by replicas
  • pkg/database: parameter inference for parsed statements
  • pkg/database: re-construct sql engine once catalog is ready
  • pkg/database: wait for sql engine initialization before closing
  • pkg/database: add IsReplica method
  • pkg/database: gracefully stop by cancelling sql initialization
  • pkg/database: log when a database is sucessfully opened
  • pkg/database: log warning about WIP feature when using replication capabilities
  • pkg/errors: immuerrors use an internal map to determine code from the message
  • pkg/errors: add more error codes and add Cod prefix to codes var names
  • pkg/errors: fix user operations error codes with pgsql official ones, increase coverage
  • pkg/errors: add comments
  • pkg/pgsql: increase server coverage
  • pkg/pgsql/server: protect parameters description message from int16 overflown
  • pkg/pgsql/server: increase code coverage
  • pkg/pgsql/server: handle positional parameters
  • pkg/pgsql/server: add max parameters value size guard and move error package in a higher level to avoid cycle deps
  • pkg/pgsql/server: add bind message negative value size guards
  • pkg/pgsql/server: handle empty statements
  • pkg/pgsql/server: hardened INTEGER parameters conversion
  • pkg/pgsql/server: increase multi inserts tests number in simple and extended query
  • pkg/pgsql/server: some polishments in the state machine
  • pkg/pgsql/server: simplify query machine
  • pkg/pgsql/server: add a guard to check max message size and handle default case in parsing format codes in bind messages
  • pkg/pgsql/server/fmessages: uniform malformed bind messages
  • pkg/server: systemdb renaming
  • pkg/server: disable user mgmt operations in maintenance mode
  • pkg/server: move userdata lock in the inner method getLoggedInUserDataFromUsername
  • pkg/server: minor updates after rebasing
  • pkg/server: remove duplicated property
  • pkg/server: minor adjustments after rebasing from master branch
  • pkg/server: fix typo in error message
  • pkg/server: remove methods moved to user file
  • pkg/stream: inject immu errors
  • pkg/stream: fix namings on stream api objects
  • pkg/stream: use io.Reader interface
  • pkg/stream: use wrapped errors

Features

  • immuclient running as auditor - replace "prometheus-port" and "prometheus-host" CLI flags with "audit-monitoring-host" and "audit-monitoring-port" (int) and start a single HTTP server which exposes all the needed endpoints (GET /metrics, /initz, /readyz, /livez and /version)
  • add /healthz and /version endpoints for immudb and immuclient auditor
  • add immudb error package
  • appendable: Add remote s3 backend
  • cmd/immuadmin: update database command
  • cmd/immuadmin: upgrade database creation with settings
  • cmd/immuadmin: add flag to create database as a replica
  • cmd/immuclient: upgrade database creation with settings
  • embedded/sql: support for named positional parameters
  • embedded/sql: towards leveraging readers for type inference
  • embedded/sql: catalog dumping
  • embedded/sql: adding method to infer typed parameters from sql statements
  • embedded/sql: support for unnamed parameters
  • embedded/store: WIP replicatedCommit
  • embedded/store: passive waiting for transaction commit
  • embedded/store: tx export and commit replicated
  • pkg/api: enhanced createDatabase endpoint to specify database replication
  • pkg/api: new endpoint to update database settings
  • pkg/api: endpoints for exporting and replicating txs
  • pkg/client: replica creation and replication API
  • pkg/client: implements update database settings operation
  • pkg/client: deprecate CleanIndex operation
  • pkg/database: suppport runtime replication settings changes
  • pkg/database: implement passive wait for committed tx
  • pkg/database: parameters type inference exposed in database package
  • pkg/database: db as replica and replication operations
  • pkg/error: add improved error handling
  • pkg/pgsql/server: add extended query messages and inner logic
  • pkg/server: initial handling of database replication settings
  • pkg/server: replicas and replication endpoints
  • pkg/server: implements update database settings endpoint
  • pkg/server: leverage maintenance mode to recover systemdb and defaultdb databases
  • pkg/server: stream of committed txs
  • pkg/server: enable simultaneous replication of systemdb and defaultdb
  • pkg/stream: readFully method to read complete payload transmitted into chunks

Downloads

Docker image
https://hub.docker.com/r/codenotary/immudb

Immudb Binaries

File SHA256
immudb-v1.0.5-darwin-amd64 abf81f267102b4b177e460c67f570611971fe4d00f7e1b96fcffe96360cf8aed
immudb-v1.0.5-freebsd-amd64 0be8bce9e0d04f7264ed80b0b26c5b7e76ecc10ffcfe85af89b073f752adb1e1
immudb-v1.0.5-linux-amd64 24b5a9d9300d59f2469372a5f728406c8fcfd82616364e42f6e43ce4058bf3f6
immudb-v1.0.5-linux-amd64-static 1009b417768ad3cb4bfad035ae887d7816afbc7914ea38de9d08fb02091a0fce
immudb-v1.0.5-linux-arm64 c38c1ad212d0d897295a1ae5ef8d1b3ce0ce3f76b52726ad18c4e8fa2f6cec28
immudb-v1.0.5-linux-s390x 69af5b53fd14ff0edfec3d439d1d7446ae579412456ad2c18c380479479810b9
immudb-v1.0.5-windows-amd64.exe b37c12b0120a85bb732bd835e60dff83ccd0313d9cdf09a045e7d57f77a9f496

Immuclient Binaries

File SHA256
immuclient-v1.0.5-darwin-amd64 e01b1d0128eb5a7493c740b9e106ae14ea299a887f81ed218db972ff56700fd3
immuclient-v1.0.5-freebsd-amd64 a06fd1e1fa57141d4a560bb856db71d1f7035b20928a59b29c47ac609ae8add1
immuclient-v1.0.5-linux-amd64 3e02c58259f093ee6adf4687d7d462a6012b08f7488446675bd49df4da53cfa1
immuclient-v1.0.5-linux-amd64-static 0d8b32a18607f1317fcc15a369ae923810858c57a9d140e54bd5c4f3de9fd3ff
immuclient-v1.0.5-linux-arm64 4c40242c4249211f960d8c4c56986f62136a5cd1214cc3c5f5ab72c3d7fe403d
immuclient-v1.0.5-linux-s390x 299c16a37d652d4cf78efbb2ea1296412a53f4f1c4726e8526a46eb68ec44752
immuclient-v1.0.5-windows-amd64.exe 3f93580e40f401ebaf4df4e3c5a13831a87fc8a0b810419e3ebf7dbca912d2d3

Immuadmin Binaries

File SHA256
immuadmin-v1.0.5-darwin-amd64 f16851853b8d88cf6a2c5552063e96e0437f8e61e308bcd91bd1e51b73de327f
immuadmin-v1.0.5-freebsd-amd64 78d5ff27ce85cf21bf855bb9104d029a4ac9e5d9c8f2e02aca287f1feeb6003c
immuadmin-v1.0.5-linux-amd64 8b49d6060ea067fac4fe40898c4ecdc1ba0bdf8f38c3bef23b2b8fd53294ff4f
immuadmin-v1.0.5-linux-amd64-static a054e590b18dc9aebc48bfdb1a435225ec368a280269ea4573debb955d67df37
immuadmin-v1.0.5-linux-arm64 063739cb1f02a5ccd159aa51ab1d627e94ceda0d207818a427135c132bb6afb0
immuadmin-v1.0.5-linux-s390x 83d788cc57ea7e3cb249204fe25532af4ae004a8e15e96bab97f11cce20db7b4
immuadmin-v1.0.5-windows-amd64.exe b91397e84dfe58014f4142d62fdab12cc465ac678cd447e15f61680714e74cbb