Git Product home page Git Product logo

nsdb's Introduction

Build Status codecov License

Natural Series Db

NSDb is a time-series database streaming oriented optimized for the serving layer.

License

NSDb is distributed under the Apache 2 license.

Main Features

  • Optimized time series management
  • Focus on read performance (doc)
  • High availability and clustering (doc)
  • Ad-hoc publish-subscribe streaming feature (using WebSockets) (doc)
  • SQL like query language (doc)
  • Fluent Java / Scala Api (doc)

Getting Started

You can get started with Nsdb with our quickstart guide.

Reporting Issues

If you find any bug, please open a GitHub issue.

Documentation

Contributing

If you're feeling courageous enough and want to contribute to NSDb You are very welcome! Please take a look at our Contributing Doc for info on how to open tasks or bugs, build from source, run tests and open pull requests.

nsdb's People

Contributors

artur-rashitov avatar maocorte avatar marcotagliabue avatar mascetti101 avatar riccardo14 avatar ricgatti avatar rivamarco avatar robbenti avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nsdb's Issues

Enhance Timeout configuration handling

Centralizes ask timeout handling. Inner ask timeouts are computed given the outer ones. Also removes useless configuration files and fix related test configuration.

Cluster aware coordinators creation

Currently, coordinators are created once, together with the cluster initialization, while metrics actors are created following cluster member lifecycle callback.
Coordinators must be created following cluster events as well, and, since they are not unique anymore, they must have convenient name that make them easily discoverable among the cluster.

Split-brain resolver architecture decision log

It would be good to mention why is Lithium chosen as the akka split brain resolver and maybe explain it's configuration and behavior in the cluster or architecture documentation.
How well tested is it? Can it be swapped out with other SBRs? What's it's configuration and how to override (if it makes sense for the NSDb use case).

Implement asyncronous shard replication

When a write batch is completed, it must be replicated to another node in order to guarantee fault tolerance.
This operation must be executed in background

Enhancing NSDb Kafka Connector robustness on structured types

The goal is to widen support for complex types on structured schemas (e.g. logical types).

The connector should be able to handle both raw and processed data when the schema is structured.

Along this, we should move nullable data discovery to previous steps of the SinkRecord processing logic.

Add `nsdb.defaultValue` field in Kafka sink configuration

Due to a limitation of the KCQL library, it is not possible to set a constant number for the value in the kafka connector sink.
Value must often be a constant (e.g. 1 in case the event represent the measure int itself).

In order to close this gap in a effective manner (without contributing to the external library), a new parameter can be added to the configuration and it would represent the default value to be used in case it is not provided in the kcql expression

Enhance metadata structure to support multiple shard locations on multiple nodes

Currently, metadata infrastructure is designed to support only one location for a metric shard.
In order to implement replication, this behaviour must be enriched in the following way:

  • When write coordinator asks for a write location to store a record in, the metadata coordinator must return a set of locations, according to the replication factor.
  • Similarly, read coordinator, when it asks for metric locations, will get a set of location for a single shard and it must choose which locations to spread messages among.

The algorithm responsible for the location choice (either for write or for read purposes) will be analysed in another issue. In this issue scope, this can be at random.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.