Stagger scrapes to spread out load.

Change-Id: Ib141b271e4adfb817886871f86051c207b05cf35
Merge "Stagger scrapes to spread out load."
Format changelog properly.

Change-Id: I62c5bf8c5b880272d207da564a3fc45490c5db5e
Initial experimental snapshot of next-gen storage.

Change-Id: Ifb8709960dbedd1d9f5efd88cdd359ee9fa9d26d
Index-persistence switched from gob to a hand-coded solution.

Change-Id: Ib4ec42535bd08df16d34d4774bb638e35c5a1841
Add chunk persistence tests, fix storage tests.

Change-Id: Id0b8f5382e99efa839cc0f826e92bbda985fe9a9
Improve testing.

In particular, create a fuzz test for time series.

Change-Id: I523a17912405a0b6b46bd395c781d201dfe55036
Improvements after review.

Change-Id: I484359282d4c7113518bbbb131f4f18383c08fdb
Fix precision loss.

Large delta values often imply a difference between a large base value
and the large delta value, potentially resulting in small numbers with
a huge precision error. Since large delta values need 8 bytes anyway,
we are not even saving memory.

As a solution, always save the absoluto value rather than a delta once
8 bytes would be needed for the delta. Timestamps are then saved as 8
byte integers, while values are always saved as float64 in that case.

Change-Id: I01100d600515e16df58ce508b50982ffd762cc49
Remove float diff tolerance altogether.

Change-Id: I9ea9683a4665d5800fca75560bb4b8a8b4406d55
Check that chunk buffer length fits in 16 bit.

Change-Id: Id086a54aa8a1990c1979e747c1c02e53bed6d447
Unpin any already loaded chunks upon preloading error.

Change-Id: Ib451136e3ef21bce8b814c21b66eaab727ab341b
Use constants from math package instead of literals.

Change-Id: I55427ba32c2cbb32ee42ec1e3153160965ab8b3c
Remove use of freelists for chunk bufs.

Change-Id: Ib887fdb61e1d96da0cd32545817b925ba88831c1
Beginnings of a tiered index implementation.

This reintroduces a LevelDB-based metrics index.

Change-Id: I4111540301c52255a07b2f570761707a32f72c05