skywalking-banyandb

module
v0.3.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 21, 2023 License: Apache-2.0

README

BanyanDB

BanyanDB, as an observability database, aims to ingest, analyze and store Metrics, Tracing and Logging data. It's designed to handle observability data generated by observability platform and APM system, like Apache SkyWalking etc.

Introduction

BanyanDB, as an observability database, aims to ingest, analyze and store Metrics, Tracing, and Logging data. It's designed to handle observability data generated by Apache SkyWalking. Before BanyanDB emerges, the Databases that SkyWalking adopted are not ideal for the APM data model, especially for saving tracing and logging data. Consequently, There’s room to improve the performance and resource usage based on the nature of SkyWalking data patterns.

The database research community usually uses RUM conjecture to describe how a database access data. BanyanDB combines several access methods to build a comprehensive APM database to balance read cost, update cost, and memory overhead.

Documents

Documents

RoadMap

Client manager
  • gRPC server
  • HTTP server
Distributed manager (v1.0.0)
  • Sharding
  • Replication and consistency model
  • Load balance
  • Distributed query optimizer
  • Node discovery
  • Data queue
Data processor
  • Schema management
  • Time-series abstract layer
  • Stream data processor
  • Measure data processor
  • Property data processor
  • TopNAggregation processor
  • Index processor
  • TTL
  • Cold data processor
  • WAL (v0.3.0)
Query processor
  • Stream query processor
  • Measure query processor
  • Index reader
  • Streaming pipeline processor(OR and nested querying)
  • Parallel executor
  • Cost-based optimizer
Verification
  • E2E with OAP and simulated data
  • E2E with showcases, agents and OAP (v0.3.0)
  • Space utilization rate
  • Leading and trailing zero (v0.4.0)
  • Stability (v0.3.0)
  • Crash recovery (v0.3.0)
  • Performance
Tools
  • Command-line
  • Webapp (v0.4.0)

Contributing

For developers who want to contribute to this project, see the Contribution Guide](CONTRIBUTING.md)

License

Apache 2.0 License.

Directories

Path Synopsis
api
common
Package common defines reusable objects for APIs.
Package common defines reusable objects for APIs.
data
Package data contains data transmission topics.
Package data contains data transmission topics.
event
Package event contains metadata syncing topics.
Package event contains metadata syncing topics.
Package banyand implements a executable database server.
Package banyand implements a executable database server.
cmd/server command
Package main implements the executable banyandb server named banyand.
Package main implements the executable banyandb server named banyand.
discovery
Package discovery implements the service discovery.
Package discovery implements the service discovery.
internal/cmd
Package cmd is an internal package defining cli commands for BanyanDB.
Package cmd is an internal package defining cli commands for BanyanDB.
kv
Package kv implements a key-value engine.
Package kv implements a key-value engine.
liaison
Package liaison implements a transmission layer between a data layer and a client.
Package liaison implements a transmission layer between a data layer and a client.
liaison/grpc
Package grpc implements the gRPC services defined by APIs.
Package grpc implements the gRPC services defined by APIs.
liaison/http
Package http implements the gRPC gateway.
Package http implements the gRPC gateway.
measure
Package measure implements a time-series-based storage which is consists of a sequence of data points.
Package measure implements a time-series-based storage which is consists of a sequence of data points.
metadata
Package metadata implements a Raft-based distributed metadata storage system.
Package metadata implements a Raft-based distributed metadata storage system.
metadata/schema
Package schema implements CRUD schema.
Package schema implements CRUD schema.
observability
Package observability provides metrics, profiling, and etc.
Package observability provides metrics, profiling, and etc.
query
Package query implement the query module for liaison and other modules to retrieve data.
Package query implement the query module for liaison and other modules to retrieve data.
queue
Package queue implements the data transmission queue.
Package queue implements the data transmission queue.
stream
Package stream implements a time-series-based storage which is consists of a sequence of element.
Package stream implements a time-series-based storage which is consists of a sequence of element.
tsdb
Package tsdb implements a time-series-based storage engine.
Package tsdb implements a time-series-based storage engine.
tsdb/bucket
Package bucket implements a rolling bucket system.
Package bucket implements a rolling bucket system.
tsdb/index
Package index implements transferring data to indices.
Package index implements transferring data to indices.
bydbctl
cmd/bydbctl command
Package main provides main entry for the command-line toolkit, i.e.
Package main provides main entry for the command-line toolkit, i.e.
internal/cmd
Package cmd is an internal package defining cli commands for bydbctl.
Package cmd is an internal package defining cli commands for bydbctl.
pkg/file
Package file provides utils to handle files.
Package file provides utils to handle files.
pkg
bus
Package bus implements a message bus which is a common data model and a messaging infrastructure to allow different modules to communicate locally or remotely.
Package bus implements a message bus which is a common data model and a messaging infrastructure to allow different modules to communicate locally or remotely.
config
Package config implements a configuration system which could load configuration from flags and env vars.
Package config implements a configuration system which could load configuration from flags and env vars.
convert
Package convert implements conversions to and from data.
Package convert implements conversions to and from data.
encoding
Package encoding implements encoding/decoding data points.
Package encoding implements encoding/decoding data points.
flow
Package flow implements a streaming calculation framework.
Package flow implements a streaming calculation framework.
flow/streaming
Package streaming implement the flow framework to provide the sliding window, top-n aggregation, and etc.
Package streaming implement the flow framework to provide the sliding window, top-n aggregation, and etc.
flow/streaming/sources
Package sources implements data sources to sink data into the flow framework.
Package sources implements data sources to sink data into the flow framework.
grpchelper
Package grpchelper implements helpers to access gRPC services.
Package grpchelper implements helpers to access gRPC services.
index
Package index implements the index system for searching data.
Package index implements the index system for searching data.
index/inverted
Package inverted implements a inverted index repository.
Package inverted implements a inverted index repository.
index/lsm
Package lsm implements a tree-based index repository.
Package lsm implements a tree-based index repository.
index/posting
Package posting implements a posting list contains a list of document ids.
Package posting implements a posting list contains a list of document ids.
index/posting/roaring
Package roaring implements the posting list by a roaring bitmap.
Package roaring implements the posting list by a roaring bitmap.
index/testcases
Package testcases implements common helpers for testing inverted and lsm indices.
Package testcases implements common helpers for testing inverted and lsm indices.
iter
Package iter implement a generic Iterator.
Package iter implement a generic Iterator.
logger
Package logger implements a logging system with a module tag.
Package logger implements a logging system with a module tag.
partition
Package partition implements a location system to find a shard or index rule.
Package partition implements a location system to find a shard or index rule.
pb/v1
Package v1 implements helpers to access data defined by API v1.
Package v1 implements helpers to access data defined by API v1.
pb/v1/tsdb
Package tsdb implements helpers around tsdb.IntervalRule.
Package tsdb implements helpers around tsdb.IntervalRule.
query/aggregation
Package aggregation implements aggregation functions to statistic a range of values.
Package aggregation implements aggregation functions to statistic a range of values.
query/executor
Package executor defines the specifications accessing underlying data repositories.
Package executor defines the specifications accessing underlying data repositories.
query/logical
Package logical implements the executable operations.
Package logical implements the executable operations.
query/logical/measure
Package measure implements execution operations for querying measure data.
Package measure implements execution operations for querying measure data.
query/logical/stream
Package stream implements execution operations for querying stream data.
Package stream implements execution operations for querying stream data.
run
Package run implements a lifecycle framework to control modules.
Package run implements a lifecycle framework to control modules.
schema
Package schema implements a framework to sync schema info from the metadata repository.
Package schema implements a framework to sync schema info from the metadata repository.
signal
Package signal implements a handler to listen to system signals.
Package signal implements a handler to listen to system signals.
test
Package test implements helpers for testing.
Package test implements helpers for testing.
test/flags
Package flags implements injected flags to run tests.
Package flags implements injected flags to run tests.
test/flow
Package flow implements mockers for testing flow.
Package flow implements mockers for testing flow.
test/helpers
Package helpers implements several helpers for testing.
Package helpers implements several helpers for testing.
test/measure
Package measure implements helpers to load schemas for testing.
Package measure implements helpers to load schemas for testing.
test/setup
Package setup implements a real env in which to run tests.
Package setup implements a real env in which to run tests.
test/stream
Package stream implements helpers to load schemas for testing.
Package stream implements helpers to load schemas for testing.
timestamp
Package timestamp implements several component related to time.
Package timestamp implements several component related to time.
version
Package version can be used to implement embedding versioning details from git branches and tags into the binary importing this package.
Package version can be used to implement embedding versioning details from git branches and tags into the binary importing this package.
test
cases/measure
Package measure_test contains integration test cases of the measure.
Package measure_test contains integration test cases of the measure.
cases/measure/data
Package data contains integration test cases of the measure.
Package data contains integration test cases of the measure.
cases/stream
Package stream_test contains integration test cases of the stream.
Package stream_test contains integration test cases of the stream.
cases/stream/data
Package data contains integration test cases of the stream.
Package data contains integration test cases of the stream.
cases/topn
Package topn_test contains integration test cases of the TopN.
Package topn_test contains integration test cases of the TopN.
cases/topn/data
Package data contains integration test cases of the topN.
Package data contains integration test cases of the topN.
e2e-v2/cases/profiling/ebpf/oncpu command
Package main is the entry point of the process for EBPF profiling.
Package main is the entry point of the process for EBPF profiling.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL