For Shoreline, wavelets are the best way to deal with errors in the underlying data stream. It’s because they allow storing data at a very high resolution.
Here’s how it works:
1. Take a series of values and construct a binary tree where:- the top of the tree is the average- the left-hand side is the difference between the top average and the average of the first half- the same on the right-hand side
2. Keep recursing.
3. Remove all the zeros and minimal values that don't add to the total value.That’s how we get ~30x compression, compared to storing the timestamp and the value at 64 bits, while still getting a very good accuracy for the 4 decimal digits for all metrics.
Wavelets give an energy signature and focus your attention on the parts of the underlying signal that are changing a lot (either up or down).That’s why we prefer it over other compression techniques where you typically consider large spikes as noise to be filtered away.This is why wavelet compression is one of the core underpinning technologies of Shoreline.