Blocks
The fundamental data structures that M3 Query uses are . Blocks
are what get created from the series iterators that M3DB returns. A is associated with a start and end time. It contains data from multiple time series stored in columnar format.
Below is a visual representation of a set of Blocks
. On top is the M3QL query that gets executed, and on the bottom, are the results of the query containing 3 different Blocks.
At a high level, M3DB returns to M3 Query that contain a list of SeriesIterators
for a given timeseries per namespace. M3 Query then aligns the blocks across common time bounds before applying consolidation.