Changes by Version

Release Notes.

0.6.0

Features

  • Support etcd client authentication.
  • Implement Local file system.
  • Add health check command for bydbctl.
  • Implement Inverted Index for SeriesDatabase.
  • Remove Block Level from TSDB.
  • Remove primary index.
  • Measure column-based storage:
    • Data ingestion and retrieval.
    • Flush memory data to disk.
    • Merge memory data and disk data.
  • Stream column-based storage:
    • Data ingestion and retrieval.
    • Flush memory data to disk.
    • Merge memory data and disk data.

Bugs

  • Fix the bug that property merge new tags failed.

Chores

  • Bump go to 1.21.
  • Bump node to 20.9.
  • Bump several tools.
  • Bump all dependencies of Go and Node.
  • Combine banyand and bydbctl Dockerfile.

0.5.0

Features

  • List all properties in a group.
  • Implement Write-ahead Logging
  • Document the clustering.
  • Support multiple roles for banyand server.
  • Support for recovery buffer using wal.
  • Register the node role to the metadata registry.
  • Implement the remote queue to spreading data to data nodes.
  • Implement the distributed query engine.
  • Add mod revision check to write requests.
  • Add TTL to the property.
  • Implement node selector (e.g. PickFirst Selector, Maglev Selector).
  • Unified the buffers separated in blocks to a single buffer in the shard.

Bugs

  • BanyanDB ui unable to load icon.
  • BanyanDB ui type error
  • Fix timer not released
  • BanyanDB ui misses fields when creating a group
  • Fix data duplicate writing
  • Syncing metadata change events from etcd instead of a local channel.
  • Fix parse environment variables error

Chores

  • Bump several dependencies and tools.
  • Drop redundant “discovery” module from banyand. “metadata” module is enough to play the node and shard discovery role.

0.4.0

Features

  • Add TSDB concept document.
  • [UI] Add YAML editor for inputting query criteria.
  • Refactor TopN to support NULL group while keeping seriesID from the source measure.
  • Add a sharded buffer to TSDB to replace Badger's memtable. Badger KV only provides SST.
  • Add a meter system to control the internal metrics.
  • Add multiple metrics for measuring the storage subsystem.
  • Refactor callback of TopNAggregation schema event to avoid deadlock and reload issue.
  • Fix max ModRevision computation with inclusion of TopNAggregation
  • Enhance meter performance
  • Reduce logger creation frequency
  • Add units to memory flags
  • Introduce TSTable to customize the block's structure
  • Add /system endpoint to the monitoring server that displays a list of nodes' system information.
  • Enhance the liaison module by implementing access logging.
  • Add the Istio scenario stress test based on the data generated by the integration access log.
  • Generalize the index's docID to uint64.
  • Remove redundant ID tag type.
  • Improve granularity of index in measure by leveling up from data point to series.
  • [UI] Add measure CRUD operations.
  • [UI] Add indexRule CRUD operations.
  • [UI] Add indexRuleBinding CRUD operations.

Bugs

  • Fix iterator leaks and ensure proper closure and introduce a closer to guarantee all iterators are closed
  • Fix resource corrupts caused by update indexRule operation
  • Set the maximum integer as the limit for aggregation or grouping operations when performing aggregation or grouping operations in a query plan.

Chores

  • Bump go to 1.20.
  • Set KV's minimum memtable size to 8MB
  • [docs] Fix docs crud examples error
  • Modified TestGoVersion to check for CPU architecture and Go Version
  • Bump node to 18.16

0.3.1

Bugs

  • Fix the broken of schema chain.
  • Add a timeout to all go leaking checkers.

Chores

  • Bump golang.org/x/net from 0.2.0 to 0.7.0.

0.3.0

Features

  • Support 64-bit float type.
  • Web Application.
  • Close components in tsdb gracefully.
  • Add TLS for the HTTP server.
  • Use the table builder to compress data.

Bugs

  • Open blocks concurrently.
  • Sync index writing and shard closing.
  • TimestampRange query throws an exception if no data in this time range.

Chores

  • Fixes issues related to leaked goroutines.
  • Add validations to APIs.

For more details by referring to milestone 0.3.0

0.2.0

Features

  • Command line tool: bydbctl.
  • Retention controller.
  • Full-text searching.
  • TopN aggregation.
  • Add RESTFul style APIs based on gRPC gateway.
  • Add “exists” endpoints to the schema registry.
  • Support tag-based CRUD of the property.
  • Support index-only tags.
  • Support logical operator(and & or) for the query.

Bugs

  • “metadata” syncing pipeline complains about an “unknown group”.
  • “having” semantic inconsistency.
  • “tsdb” leaked goroutines.

Chores

  • “tsdb” structure optimization.
    • Merge the primary index into the LSM-based index
    • Remove term metadata.
  • Memory parameters optimization.
  • Bump go to 1.19.

For more details by referring to milestone 0.2.0

0.1.0

Features

  • BanyanD is the server of BanyanDB
    • TSDB module. It provides the primary time series database with a key-value data module.
    • Stream module. It implements the stream data model's writing.
    • Measure module. It implements the measure data model's writing.
    • Metadata module. It implements resource registering and property CRUD.
    • Query module. It handles the querying requests of stream and measure.
    • Liaison module. It's the gateway to other modules and provides access endpoints to clients.
  • gRPC based APIs
  • Document
    • API reference
    • Installation instrument
    • Basic concepts
  • Testing
    • UT
    • E2E with Java Client and OAP