Skip to content

rezib/carbond

Repository files navigation

Carbon daemon in C
==================

This is a pointless and desperate implementation of Graphite carbon daemon in C
instead of the reference implementation in Python.

Hey but why the hell? Few reasons:

- C is clearly the programming language of the future, no doubt.
- For the sake of better performances and deep tuning.
- Before anything else, it's just for fun. And profit, then.

Feel free to open tickets on GitHub:

 http://github.com/rezib/carbond/issues/new

And send pull requests!

Install and run
---------------

```
./configure && make && make install
```

Tune `--prefix` at your convenience.

Licence
-------

carbond is distributed under the terms of the GNU General Public License
version 3.

Roadmap
-------

### `0.1`

* X TCP receiver thread
* X handle SIGINT, still have to make all threads block SIGINT signal
* X make multiple archive creation works
* X make propagate works
* X replace sizeof(whisper structs) with *_SIZE macros
* X write TODO inline function to calculate timestamp of higher precision archive
* X write TODO inline function to write data point
* X load aggregation rules from storage-aggregation.conf
* X merge all wait thread functions
* X create struct for manipuling threads
* X add network port numbers in configuration file
* _ Benchmarks!

### `0.2`

* _ code architecture documentation (with schemas)
* X better log/output utilities
* _ cache query thread
* _ multiple write at once function for whisper
* _ implement cache priority queue with heap
* _ implement exclusive mode to cache files offset
* _ make Python linked query thread optional at configure time
* _ implement foreground/daemon (with logging to syslog)
* X handle SIGUP to reload configuration on the fly
* X internal counters threads with its own metrics
* X retry syscalls() on EINTR
* X find autoconf macro to add -lpcre and -lpthread automatically
* _ add thread launcher func pointer to factorize thread init
* _ create function threads_init(); to initialize threads list

### `0.3`

* _ unit tests

About

An implementation in C of Graphite carbon daemon

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages