Comments (2)
One possible solution is by setting the min timestamp in the memory partition constructor, and letting the creator enforce the min timestamp to never be less than the max timestamp of the previous partition.
@nakabonne let me know if I'm missing anything with this. Also, do you think this is a real issue and is it worth working on?
from tstorage.
@dpgil You're right. This is the issue that I've put off for a while. Basically most data points get timestamped on other programs, where timestamps are not always the same as the process tstorage runs on. Because of that, I presumed we don't determine the min timestamp until the first data point reached.
However, I was totally wrong. We can determine the next min timestamp by just incrementing to the previous max timestamp, a kind of like:
func (s *storage) ensureActiveHead() {
head := s.partitionList.getHead()
if head.active() {
return
}
nextMin := head.maxTimestamp + 1
// All partitions seems to be inactive so add a new partition to the list.
p := newMemoryPartition(nextMin, s.wal, s.partitionDuration, s.timestampPrecision)
from tstorage.
Related Issues (20)
- tstorage + gRPC = tstorage-server HOT 5
- Handle data points outside range of the head partition HOT 1
- Stop sharing lock between write and read HOT 1
- Can I ask a question? why not lock in here. See the link below HOT 4
- examples HOT 2
- Support for external TSDB storage HOT 13
- Return labels as part of the returned datapoints HOT 3
- WAL recovery issue HOT 10
- Partial label matching in selects HOT 2
- Missing meta.json file HOT 1
- Compress WAL file HOT 6
- Unable to load previous metrics HOT 2
- multiple events on the same timestamp
- inclusive end in Select
- Read during writing
- Read during writing
- Proposal: gzip partition data
- Wildcard in Select method
- nil tail when recovering existing partitions
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from tstorage.