3 ms·
It is definitely a huge step forward for time series data collection at scale, great props to the authors. With M3TSZ vs vanilla TSZ the major difference is th
by roskilli 7y ago
It is definitely a huge step forward for time series data collection at scale, great props to the authors.
With M3TSZ vs vanilla TSZ the major difference is that instead of XORing the value component of each datapoint it is determined if the precision of the float value is within a few significant digits and if so, it is turned into an int representation with delta-of-delta of the int value from value to value used to represent the different changes in value rather than just XORing the float bits. Also tracking how many significant digits and dampening the need to encode a change in that from value to value is also performed.
We should write up the specific algorithm differences for the value component encoding.
You can see the relative code here in "writeIntVal":
https://github.com/m3db/m3/blob/b25e111aab06fb7cde9f7e1be8b651946c21f341/src/dbnode/encoding/m3tsz/encoder.go#L198-L229 https://github.com/m3db/m3/blob/b25e111aab06fb7cde9f7e1be8b6...