Data within the archival delay of a table is kept uncompressed in live batches, while everything else is stored in compressed archival batches. If new data is ingested that is outside the archival array, it's added to an archival backfill queue which will be inserted into the archived batches asynchronously.
The CPU is only used to load information from storage into CPU memory and to distribute this data to GPU memory. The database system delegates each operator in a query to some GPU, so it's able to handle multiple GPUs by delegating different operations to different GPUs, each of which have completely separate memory. There are plans to implement proper distributed designs, but currently we're limited to a single system with multiple GPUs.
https://github.com/uber/aresdb
https://github.com/uber/aresdb/wiki
Uber
2018