immudb v0.8.1 Release Notes
Release Date: 2020-12-08 // over 3 years ago-
๐ Bug Fixes
- file ext removal
- ๐ fix batchOps permission and clean sv ones
- โ add permissions for the new CountAll gRPC method
- ๐ appID parsing from filename
- appendable extensions without dot
- โช restore current offset after reading compressed data
- ๐ encode metadata numeric fields with 64bits
- consider the case when key was not yet inserted
- ๐ set fileSize after reading values from metadata
- ๐ read metadata before reading
- pass compression settings into newly created single-file appendable
- compression with bigger values
- compression with multiple-files
- return EOF when data cannot be fully read from appendables
- set new appendable id when changing current appendable
- โ๏ธ typos
- avoid duplicate index insertion in zAdd batch operation transaction
- ๐ fix batchOps tests and minors fix for zAdd sorted set key generation
- embedded: set correct offset while reading node
- embedded/store: use verificatication methods for dual proof evaluation
- embedded/store: release tx before linear proof generation
- embedded/tools: catch ErrNoMoreEntries when iterating over txs (#569)
- pkg: handle expired token error
- pkg/client: token service is not mandatory for setup a client
- pkg/client: handle rootservice error inside constructor
- pkg/store: fixes issue #532 (#549)
- pkg/store: fix bug on lexicographical read of multiple sets
- pkg/store: move separator at the beginning of a keyset
- pkg/store: fix scan and add tests for pagination
- pkg/store: scan item now contains immudb index, not badger timestamp
- pkg/store: fix key set generation. index reference flag (0,1 bit) is put at the end of the key to mantain lexicographical properties
- pkg/store: in reference based command key is optional if index is provided. Increase code coverage
- pkg/store: fix reverse history pagination
๐ Changes
- error naming
- include github stars over time chart (#509)
- ๐ fix naming conventions
- export uwrap and wrap value method to be used in nimmu
- ๐ link to immuchallenge repo (#528)
- ๐ fix typo in cmd help (#541)
- renaming set key generation method
- โ remove *sv methods
- โก๏ธ update readme with SDKs urls (#506)
- ๐ move set and get batch in a separate file
- ๐ fix naming conventions and typos
- โ increase testing timeout
- โ add setBatch, getBatch, setBatchOps method in mock client
- โ unit testing
- close appendable hash tree on close
- ๐ print commiting status after sync
- root method without error
- cbuffer pkg
- cbuffer pkg
- ๐ use constants for field len
- simplify linear proof
- โ remove verification during indexing
- unify kv hash calculation
- LinearProof verification
- minor code change
- multierror handling on close func
- multierror handling on close func
- error naming
- ๐ improved comprehensibility of the immudb configuration file
- unify options for appendables
- unify naming
- ๐ move options validations to options file
- minor changes in append operation
- hash tree construction
- advances in hash tree and proof construction
- ๐ make spec read fields public
- ๐ฒ implement commit log for btree and improved reduced dump
- txi commit file ext
- 0๏ธโฃ aof as default file ext
- ๐ sync also applies to index
- panic if set key fails
- panic when close returns an error
- ๐ validate clog size after setting fileSize from metadata
- index file extensions
- return after auto mode
- mode as required flag
- ๐ renamed to IndexInfo
- random and monotonic keys
- split code into files, index options exposed for external config
- ๐ support for historical value tracing
- ๐ changes on historical value tracing
- validate hvalue when reading value from vlog
- ๐ newTx method using store values
- check for non-duplication within same tx
- when txInclusion is true then txLinking is made as well
- options validation
- close index when closing store
- โ add VERSION to metadata section
- time-based flushing
- renaming batchOps in ops and SetBatchOps in ExecAllOps
- solved concurrency issues
- ๐ changes to solve and improve concurrency
- copy on insert and fresh snapshots
- when compression is enabled, each append takes place into a single file
- set fileSize based on initial value set at creation time
- ๐ change max value length to 64Mb
- return partially written number of bytes when write is not completed
- ๐ฆ reorg appendable packages
- ๐ moved stress_tool under tools folder
- ๐ renamed filesize flag
- ๐ use channels for communicating data offsets
- close txlog after completion
- random key-value generation in stress tool
- kv alloc inside tx prep
- ๐ parallel IO non-exclusive yet synchorinized with store closing
- open with appendables to facilitate parallel IO
- spec parallel IO in stress tool
- appendale with path
- preparing for parallel IO
- โก๏ธ optimized hashtree generation
- minor internal change on commit tx method
- time only considering commit time
- ๐จ don't print dots if printAfter is 0
- ๐จ don't print dots if printAfter is 0
- minor typo in error message
- preparing for concurrency optimization
- minor changes in stress tool
- ๐ฒ close commit log file
- return EOF when available content is less than buffer size
- ๐ make key-value struct public
- โ add more batchOps tests, fixing naming typo
- ๐ fix immudb consistency diagram
- do not store hvalue in index
- โ add more tests and remove code duplications
- ๐ initial commit with functional implementation
- embedded/store: sleep indexing thread until there are entries to be indexed
- embedded/store: internal changes to use innerhash for proof generation
- embedded/store: permit immediate snapshot renewals
- embedded/store: sleep binary linking thread until txs are committed (#572)
- embedded/store: return ErrNoMoreEntries when all tx has been read
- embedded/store: use embedded reusable built-at-once hash tree
- embedded/store: add data consistency validation during dual proof construction
- embedded/store: pre-allocated tx pool used for indexing and proofs
- embedded/store: pre-allocated tx pool used with dual proof
- embedded/store: changed defaults
- pkg/api/schema: increase code readability
- pkg/auth: fix get batch permissions
- pkg/client: client exposes structured values conversion tools
- pkg/client: fix comment
- โ pkg/client/clienttest: add mock service client constructor
- โ pkg/client/clienttest: add inclusion, consistency, byIndex mock methods
- โ pkg/client/clienttest: add missing method inside service client mock
- pkg/client/timestamp: fix naming convention
- pkg/server: remove ScanSV test
- pkg/server: add database name server validator
- pkg/store: add consistency check on zadd and safezadd index reference method and tests
- pkg/store: fix comments in test
- pkg/store: move reference code to a dedicated file
- server: enhance namings related audit report notification
๐จ Code Refactoring
- batch ops produces monotonic ts sequences, index is mandatory if reference key is already persisted
- pkg/client: decoupled immuclient from rootService
- pkg/store: get resolve reference only by key
- pkg/store: add set separator. Fixes #51
๐ Features
- inclusion and consistency verification algorithms
- ๐ง configurable max incomming msg size (#526)
- ๐ extend sorted set to support multiple equals key
- getReference is exposed throught gRPC server and in SDK
- ๐ client supports paginated scan, zscan, history
- โจ enhance auditor to publish tampering details at a specified URL (optional)
- ๐ฐ payload and digest lru caches
- replay missing binary linking entries
- binary linking in-memory integration
- root returns number of entries
- dual proof construction and verification
- towards linear and dual proofs
- dual proof and liearProof against target accumulative linear hash
- dual cryptographic linking
- store accumulative linear hash into mutable hash tree
- towards dual cryprographic linking
- โ add ZScan pagination
- consistency proof
- multierr custom error wrapping multiple errors when closing the store
- several improvements, data by index
- towards persistent storage of mutable hash tree
- ongoing implementation of appendable hash tree
- โ add sync method
- TxReader starts from a txID
- IndexInfo to return up to which tx was indexed and error status of indexing task
- โ add interactive mode for get/set key values
- โ add method for reading value of a key within a tx
- โก๏ธ retrieve the list of ts at which a key was updated
- โก๏ธ key updates tracing to support historical reading
- back btree with multi-appendables
- โ add read numeric values
- ๐ initial indexing
- towards k-indexing
- โ add flag to stress_tool to specify if values are random or fixed
- โ add lzw compression format
- โ Add awesome-go badge (#554)
- data compression
- towards data compression capabilities
- ๐ set compression setting into value logs
- towards data compression capabilities
- ๐ store immutable settings into metadata section
- โ add log file sizes and number of openned files per log type flags
- enable file mgmt settings
- multi-file appendables
- โ add metadata to appendables
- ๐ include full tx validation and fixed sync issue
- full committed tx verification against input kv data
- โ add key and value length params in stress tool
- ๐ parallel IO support
- โก๏ธ optimized for concurrent committers
- โ added concurrent committers to stress tool
- โ add cryptographic linking verification of transactions
- โ add method to retrieve number of committed txs
- ๐ export sync mode config
- โ add batchOps reference operation
- โ add history pagination
- โ add reverse zscan and reverse history pagination
- rearrange badges on README (#555)
- ๐ data compression support by stress tool
- โ add atomic operations method
- ๐ฆ expose CountAll through gRPC
- embedded/htree: reusable build-at-once hash tree
- embedded/store: add Alh method to get last committed tx ID and alh (#570)
- pkg/client: sdk support index reference resolving)
- pkg/client: add SetAll operation for simple multi-kv atomic insertion (#556)
- pkg/client: sdk support execAllOps
- pkg/client/auditor: enhance auditor to always send audit notification (even when no tampering was detected) if a notification URL is specified
- pkg/store: reference support index resolution
- pkg/store: sorted sets support multiple equal keys with same score
- server: add --audit-databases optional auditor flag
โช Reverts
- โ chore: increase testing timeout