immudb v1.3.2-RC1 Release Notes

Release Date: 2022-08-24 // over 1 year ago
  • ๐Ÿ› Bug Fixes

    • access tls value in global scope within ingress annotations
    • company name in webconsole and other files
    • ๐Ÿ— build: Fix go-acc and goveralls invocations
    • ๐Ÿ— build: update go version to 1.18 in Dockerfiles
    • ๐Ÿ— build/RELEASING.md: Add note about updating playground
    • embedded: use tmp folder for unit test cases
    • embedded/sql: Support single BEGIN statement.
    • embedded/store: Check precommitted state when replicating
    • embedded/store: Optionally preallocate Tx pools
    • embedded/store: Ensure ordering of transaction timestamps
    • embedded/store: Assign blTxID within locked tx state
    • embedded/store: ensure tx is released upon error
    • embedded/store: Improved check for replicated transaction
    • embedded/store: Return correct error on key length exceeded
    • embedded/store: Protect against simultaneous replicators
    • embedded/store: Reduce the amount of allocations for tx object
    • embedded/tools/stress_tool: Fix compilation after recent update to tx holder pool
    • getRandomTable: increase RNG range for table generation
    • github: Remove unnecessary /test/ path when uploading perf results to s3
    • github: Do not use yaml anchors in github workflows
    • pkg/client: Invalid client state after connection refused
    • โœ… pkg/client/clienttest: enforce mock client to interface
    • pkg/database: Fix calculation of proof for VerifiableTxByID
    • pkg/database: Correct revision for Scan requirests
    • server: Show info text with a logger
    • โœ… servertest: Allow accessing Server object before starting the server
    • stdlib/rows: add colums to row response
    • ๐ŸŽ test/performance: Cleanup test directory

    ๐Ÿ”„ Changes

    • ๐Ÿ“Œ pin google.golang.org/protobuf to v1.27.1 (currently used version for generated code).
    • Introduce separate TxHolder pools
    • โšก๏ธ update github.com/spf13/viper to v1.12.0.
    • ๐Ÿ‘‰ makefile formatting.
    • โšก๏ธ update build constraint to new & future-proof syntax.
    • format tools.go.
    • ๐Ÿ—„ deprecate ImmuClient.HealthCheck in favour of ServerInfo.
    • ๐Ÿ—„ reimplement ImmuClient.HealthCheck using rpc ServerInfo instead of (deprecated) Health.
    • ๐Ÿ”จ refactor TestServerInfo.
    • โšก๏ธ Update main go versin to 1.18
    • generate gRPC stubs.
    • ignore schema_grpc.pb.go in coveralls.
    • ๐Ÿ— use go.mod version of github.com/grpc-ecosystem/grpc-gateway when building codegen.
    • regenerate with correct version of protoc-gen-go.
    • ignore schema_grpc.pb.go in code coverage.
    • ๐Ÿ“Œ pin github.com/pseudomuto/protoc-gen-doc to 1.4.1 (currently used version for generated code).
    • ๐Ÿ‘‰ Makefile: Update webconsole to 1.0.16
    • ๐Ÿ— build: Update RELEASING.md doc
    • ๐Ÿ— build: Improve generation of build checksums
    • cmd/immuadmin: Add support for max-commit-concurrency option
    • cmd/immuadmin: Add support for read-tx-pool-size option
    • cmd/immudb: Add support for max-sessions command line option
    • database/sql: Delay txholder allocation on VerifiableSQLGet
    • embedded/ahtree: threshold-based sync
    • embedded/ahtree: use bigger default write buffer size
    • embedded/ahtree: improve error handling
    • embedded/ahtree: flushless append
    • embedded/ahtree: improve validations and error handling
    • embedded/ahtree: support newst appendable implementation
    • embedded/ahtree: improve error message consistency
    • embedded/ahtree: minor error message change
    • embedded/appendable: autosync when write buffer is full
    • embedded/appendable: autosync support in multi-appendable
    • embedded/appendable: flush when no more writes are done in appendable
    • embedded/appendable: improve explanatory comment inside sync method
    • embedded/appendable: improve singleapp validation and error handling
    • embedded/appendable: error tolerant seek
    • embedded/appendable: improve validations and error handling
    • embedded/appendable: inmem buffer offset
    • embedded/appendable: wip remoteapp validation
    • embedded/appendable: return io.EOF when offset is out of range
    • embedded/appendable: upgrade mocked and remote appendable based on new flushing assumptions
    • embedded/appendable: auto-sync options
    • embedded/appendable: multi-appendable shared write buffer
    • embedded/htree: improve error handling
    • embedded/sql: Remove unnecessary tx holder buffer from SQLTx
    • embedded/store: Better errors returned during replication error
    • embedded/store: aht options
    • embedded/store: Use dedicated error for replication conflicts
    • embedded/store: sync AHT before tx commit log
    • embedded/store: in-mem clog buffer written when synced
    • embedded/store: wrap internal already closed errors
    • embedded/store: handle appendable already close error
    • embedded/store: Optimize ReadTxHeader method
    • embedded/store: Do not write values if concurrency limit is reached
    • embedded/store: Add dedicated error for tx pool exhaustion
    • embedded/store: add TODO comment
    • embedded/store: parametrize write buffer size
    • embedded/store: wip retryable sync
    • embedded/store: flush-less precommit
    • embedded/store: multi-tx syncs
    • embedded/store: use smaller default buffer size
    • embedded/store: Add txDataReader to process transaction data
    • embedded/store: avoid sync waiting if there are no new transactions
    • embedded/store: improve error comparison with errors.Is(...)
    • embedded/store: wip error declaration
    • embedded/store: Add explicit ReadTxEntry method
    • embedded/store: Add explicit ReadTxHeader
    • embedded/store: Optimize ReadTxEntry method
    • embedded/store: Add txPoolOptions to setup pool parameters upon creation
    • embedded/store: set new default write buffer values
    • embedded/store/txpool: Allocate pool entries separately
    • embedded/store/txpool: Make txPoolOptions members private
    • embedded/tbtree: improve error handling
    • embedded/tbtree: use non-retryable sync
    • embedded/tbtree: define using generic errors towards errors.Is(...) usage
    • embedded/watchers: improve error handling
    • github: Update ACTIONS_SECRETS.md file
    • github: Allow selection of runner to run perf test
    • github: Run perf test suite on pull requests
    • github: Run performance test suite on push to master
    • github: Add simple documentation of PERF_TEST_xxx secrets
    • github: Install qemu using docker/setup-qemu-action
    • github: Allow using multiple runners for perf test suite
    • github: Upload perf results to AWS s3
    • pkg/api: Add tx pool size to GRPC and stored db options
    • pkg/api: milliseconds message type
    • pkg/api: expose aht settings
    • pkg/api: export syncFrequency database parameter
    • pkg/api: deprecate rpc Health in favour of ServerInfo.
    • pkg/database: Add tx pool size to db options
    • pkg/database: Remove txHolder from get operation
    • pkg/database: Do not allocate txholder for history scans
    • pkg/database: allocate tx buffer before doing verified writes
    • pkg/logger: Add memory logger
    • pkg/logger: add json logger
    • pkg/server: simplify ImmuServer.Health.
    • pkg/server: Add pprof option
    • ๐ŸŽ test/performance: Add basic flags to the benchmark process
    • ๐ŸŽ test/performance: Add separate Write KV/s test.
    • ๐ŸŽ test/performance: Split benchmark list and run code
    • ๐ŸŽ test/performance: Move test seed out of configuration
    • ๐ŸŽ test/performance: Move random generator and key tracker to common coode
    • ๐ŸŽ test/performance: Add CPU time / memory stats gathering
    • ๐ŸŽ test/performance: Allow customized name for the benchmark
    • ๐ŸŽ test/performance: Add basic IO stats
    • ๐ŸŽ test/performance: Improve live IO display
    • ๐ŸŽ test/performance: Better logging and output
    • ๐ŸŽ test/performance: Correctly close random data generator

    ๐Ÿ”‹ Features

    • โช revert usages of ServerInfo that would break backwards compatibility.
    • โž• add test for HealthCheck.
    • cmd/immuadmin: expose syncFrequency and WriteBufferSize db parameters
    • cmd/immuclient: add info command to immuclient.
    • pkg/api: expose write buffer parameter
    • pkg/api: improve documentation of ServerInfo.
    • pkg/api: remove ServerInfoResponse.status field.
    • pkg/api: add ServerInfo rpc to deprecate Health.
    • pkg/client: revert WaitForHealthCheck change to maintain backwards-compatibility.
    • pkg/client: implement ImmuClient.ServerInfo.
    • pkg/server: implement ImmuServer.ServerInfo.