https://github.com/cboudereau/dataseries
Functions for dataseries / timeseries
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
Repository
Functions for dataseries / timeseries
Basic Info
Statistics
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 3
- Releases: 7
Topics
Metadata Files
README.md
dataseries
data-series functions support for data-series and time-series.
rust
java
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
- Twitter: cboudereau
- Repositories: 14
- Profile: https://github.com/cboudereau
GitHub Events
Total
- Create event: 1
Last Year
- Create event: 1
Committers
Last synced: 8 months ago
Top Committers
| Name | 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
- Documentation: https://docs.rs/dataseries/
- License: MIT
-
Latest release: 0.1.6
published over 2 years ago
Rankings
Maintainers (1)
Dependencies
- criterion ^0.5.1 development
- rand ^0.8.5 development
- actions/checkout v3 composite
- actions/setup-java v3 composite
- codecov/codecov-action v3 composite
- actions-rs/toolchain v1 composite
- actions/checkout v3 composite
- codecov/codecov-action v3 composite
- actions/checkout v3 composite
- actions/setup-java v3 composite
- actions-rs/toolchain v1 composite
- actions/checkout v3 composite
- katyo/publish-crates v2 composite
- org.junit.jupiter:junit-jupiter-engine 5.10.0 test