https://github.com/cboudereau/dataseries

Functions for dataseries / timeseries

https://github.com/cboudereau/dataseries

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (7.6%) to scientific vocabulary

Keywords

data-series dataseries java rust time-series timeseries union
Last synced: 6 months ago · JSON representation

Repository

Functions for dataseries / timeseries

Basic Info
  • Host: GitHub
  • Owner: cboudereau
  • License: mit
  • Language: Java
  • Default Branch: main
  • Homepage:
  • Size: 197 KB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • Open Issues: 3
  • Releases: 7
Topics
data-series dataseries java rust time-series timeseries union
Created over 2 years ago · Last pushed about 1 year ago
Metadata Files
Readme License

README.md

dataseries

License:MIT

data-series functions support for data-series and time-series.

rust

build codecov docs.rs crates.io crates.io (recent)

java

build codecov maven central javadoc

functions

union

Continuous time series union between 2 series. Left and right data can be absent (left and right only cases).

``` 1 3 10 20 Left: |-----|-----|------------------|- 130 120 95 160 12 15 Right: |------|-------- 105 110 1 3 10 12 15 20 Expected: |-----|-----|----|------|------|- 130,∅ 120,∅ 95,∅ 95,105 95,110 160,110

```

eventual consistency and conflict resolution for data-series

The crdt example provides an example of the conflict-free replicated data type resolution based on data-series union function and VersionedValue type to solve conflict with a timestamp (any variable supporting partially ordered set) for rust and java.

trade-offs

interval representation

Half-open interval Data-series (time-series/gauge) (n value and 2n points/delta) (n+1 datapoints) \ 1 3 5 \ 1 3 5 +∞ [----[----[ \ |----|----|------------ 100 120 / 100 120 ∅ / / ||pros|cons| |-|-|-| |half-open interval|+same read and write model|-illegal state representation
-requires global secondary index to support range queries| |data-series/time-series|+nosql and TSDB friendly
+less illegal states
+compatibility with time/data-series functions and visualization
+compact format (requires only n+1 datapoint intead of 2n))
+partitionning is trivial (only one dimension)
+updates are less complex (no need to update impacted points of interval)|-read and write models are different
-hole should be represented with a datapoint None value|

An interval can be defined by using 2 points (upper and lower bound) with an associated value but it can be difficult to index those 2 points in nosql databases (Global secondary index) or simply using a TSDB (timeseries database).

Another approach consists of defining an intermediate model, a data-series with only one point and one value so that the datapoint fits really well with TSDB and is algorithm friendly.

It becomes also easy to avoid unwanted states; an interval can be defined with 2 points and the last point can be before the first one which is a bug in the domain. You can also define a point and a non negative offset which can work but requires more code.

For database support, interval reading requires 2 reads to compute the interval but the extra read can be hidden in easily in an Iterator.

implementation

rust and java implementation are provided in respective directories.

Owner

  • Name: Clément Boudereau
  • Login: cboudereau
  • Kind: user

GitHub Events

Total
  • Create event: 1
Last Year
  • Create event: 1

Committers

Last synced: 8 months ago

All Time
  • Total Commits: 95
  • Total Committers: 1
  • Avg Commits per committer: 95.0
  • Development Distribution Score (DDS): 0.0
Past Year
  • Commits: 1
  • Committers: 1
  • Avg Commits per committer: 1.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Clément Boudereau c****u@g****m 95

Issues and Pull Requests

Last synced: 8 months ago

All Time
  • Total issues: 2
  • Total pull requests: 34
  • Average time to close issues: N/A
  • Average time to close pull requests: about 5 hours
  • Total issue authors: 1
  • Total pull request authors: 1
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.62
  • Merged pull requests: 26
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 1
  • Average time to close issues: N/A
  • Average time to close pull requests: 22 minutes
  • Issue authors: 0
  • Pull request authors: 1
  • Average comments per issue: 0
  • Average comments per pull request: 1.0
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • cboudereau (1)
Pull Request Authors
  • cboudereau (31)
Top Labels
Issue Labels
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • cargo 6,773 total
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 6
  • Total maintainers: 1
crates.io: dataseries

dataseries support for rust

  • Versions: 6
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 6,773 Total
Rankings
Dependent repos count: 29.0%
Dependent packages count: 32.6%
Forks count: 40.9%
Average: 51.5%
Stargazers count: 56.2%
Downloads: 98.8%
Maintainers (1)
Last synced: 6 months ago

Dependencies

rust/Cargo.toml cargo
  • criterion ^0.5.1 development
  • rand ^0.8.5 development
rust/xtask/Cargo.toml cargo
.github/workflows/build-java.yml actions
  • actions/checkout v3 composite
  • actions/setup-java v3 composite
  • codecov/codecov-action v3 composite
.github/workflows/build-rs.yml actions
  • actions-rs/toolchain v1 composite
  • actions/checkout v3 composite
  • codecov/codecov-action v3 composite
.github/workflows/publish-java.yml actions
  • actions/checkout v3 composite
  • actions/setup-java v3 composite
.github/workflows/publish-rs.yml actions
  • actions-rs/toolchain v1 composite
  • actions/checkout v3 composite
  • katyo/publish-crates v2 composite
java/pom.xml maven
  • org.junit.jupiter:junit-jupiter-engine 5.10.0 test