Hacker News new | past | comments | ask | show | jobs | submit login

An earlier iteration of our storage was actually based on LevelDB (key-value store), with this kind of key->value layout:

[time series fingerprint : time range] -> [chunk of ts/value samples]]

At least this scheme performed way worse than what we currently have. You could say that file systems also come with pretty good memory buffering and can act as key-value stores (with the file name being the key and the contents the value), except that they also allow efficient appends to values.

> Issuing updates instead of deletes is possible because you know the storage duration and interval, and can thus easily identify an index at which to store the data.

Do you mean you would actually append/update an existing value in the KV-store (which most KV stores don't allow without reading/writing the whole key)?




Did your previous leveldb approach perform way worse on reads, writes or both?


Both. When I switched our production Prometheis over, the consoles rendered more than twice as fast for a simple test case.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: