influxdb/README.md

77 lines
3.1 KiB
Markdown
Raw Normal View History

2013-09-26 14:31:11 +00:00
chronosdb
=========
Scalable datastore for metrics, events, and real-time analytics
2013-09-27 16:37:19 +00:00
Requirements
------------
* horizontal scalable
* http interface
* udp interface (low priority)
* persistent
* metadata for time series
* perform functions quickly (count, unique, sum, etc.)
* group by time intervals (e.g. count ticks every 5 minutes)
* joining multiple time series to generate new timeseries
* dynamic schema
* filter/query language (sql subset) with where clauses
* support multiple databases with read/write api key
* single time series should scale horizontally (no hot spots)
* dynamic cluster changes and data balancing
* pubsub layer
* continuous queries (keep connection open and return new points as they arrive)
* Delete ranges of points from any number of timeseries (that should reflect in disk space usage)
* querying should support one or more timeseries (possibly with regex to match on)
2013-09-30 15:03:05 +00:00
New Requirements
----------------
* Easy to backup and restore
* Large time range queries with one column ?
* Optimize for HDD access ?
* What are the common use cases that we should optimize for ?
2013-09-30 15:03:05 +00:00
Modules
-------
+--------------------+ +--------------------+
| | | |
| WebConsole/docs | | Http API |
| | | |
+------------------+-+ +-+------------------+
| |
| |
+-----+-------+-----------+
| |
| Lang. Bindings |
| |
+-----------------+ |
| | |
| Query Engine | |
| | |
+-----------------+-------+
| |
| Processing Engine |
| |
+-------------------------+
| |
+----+ Coordinator (consensus) +-----+
| | | |
| +-------------------------+ |
2013-09-30 15:03:05 +00:00
| |
| |
+--------+-----------+ +-------+------------+
| | | |
| Storage Engine | | Storage Engine |
| | | |
+--------+-----------+ +-------+------------+
Concensus Notes
---------------
Two state machines:
* 1 for the entire cluster of which machines are taking which portions of the ring
* 1 for each portion of the ring to replicate the operations
sequence number per ring location? that's the concensus, if they don't agree then request a replay from the last known sequence number