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