liquid-cache-client 0.1.10

10x lower latency for cloud-native DataFusion
Documentation
---
source: src/client/src/tests/mod.rs
expression: displayable.tree_render().to_string()
---
┌───────────────────────────┐
│  SortPreservingMergeExec  │
│    --------------------   │
│  cntrycode ASC NULLS LAST │
└─────────────┬─────────────┘
┌─────────────┴─────────────┐
│          SortExec         │
│    --------------------   │
│ cntrycode@0 ASC NULLS LAST│
└─────────────┬─────────────┘
┌─────────────┴─────────────┐
│       ProjectionExec      │
│    --------------------   │
│    cntrycode: cntrycode   │
│                           │
│          numcust:         │
│      count(Int64(1))      │
│                           │
│        totacctbal:        │
│  sum(custsale.c_acctbal)  │
└─────────────┬─────────────┘
┌─────────────┴─────────────┐
│       AggregateExec       │
│    --------------------   │
│           aggr:           │
│   count(1), sum(custsale  │
│        .c_acctbal)        │
│                           │
│    group_by: cntrycode    │
│                           │
│           mode:           │
│      FinalPartitioned     │
└─────────────┬─────────────┘
┌─────────────┴─────────────┐
│    CoalesceBatchesExec    │
│    --------------------   │
│     target_batch_size:    │
│           16384           │
└─────────────┬─────────────┘
┌─────────────┴─────────────┐
│      RepartitionExec      │
│    --------------------   │
│ partition_count(in->out): │
│           8 -> 8          │
│                           │
│    partitioning_scheme:   │
│   Hash([cntrycode@0], 8)  │
└─────────────┬─────────────┘
┌─────────────┴─────────────┐
│       AggregateExec       │
│    --------------------   │
│           aggr:           │
│   count(1), sum(custsale  │
│        .c_acctbal)        │
│                           │
│    group_by: cntrycode    │
│       mode: Partial       │
└─────────────┬─────────────┘
┌─────────────┴─────────────┐
│       ProjectionExec      │
│    --------------------   │
│    c_acctbal: c_acctbal   │
│                           │
│         cntrycode:        │
│   substr(c_phone, 1, 2)   │
└─────────────┬─────────────┘
┌─────────────┴─────────────┐
│     NestedLoopJoinExec    ├──────────────┐
└─────────────┬─────────────┘              │
┌─────────────┴─────────────┐┌─────────────┴─────────────┐
│       AggregateExec       ││      RepartitionExec      │
│    --------------------   ││    --------------------   │
│           aggr:           ││ partition_count(in->out): │
│  avg(customer.c_acctbal)  ││           1 -> 8          │
│                           ││                           │
│        mode: Final        ││    partitioning_scheme:   │
│                           ││     RoundRobinBatch(8)    │
└─────────────┬─────────────┘└─────────────┬─────────────┘
┌─────────────┴─────────────┐┌─────────────┴─────────────┐
│   CoalescePartitionsExec  ││    CoalesceBatchesExec    │
│                           ││    --------------------   │
│                           ││     target_batch_size:    │
│                           ││           16384           │
└─────────────┬─────────────┘└─────────────┬─────────────┘
┌─────────────┴─────────────┐┌─────────────┴─────────────┐
│   LiquidCacheClientExec   ││        HashJoinExec       │
│    --------------------   ││    --------------------   │
│          server:          ││    join_type: LeftAnti    │
│  http://localhost:50051,  ││                           ├──────────────┐
│      object_stores=[]     ││            on:            │              │
│                           ││  (c_custkey = o_custkey)  │              │
└─────────────┬─────────────┘└─────────────┬─────────────┘              │
┌─────────────┴─────────────┐┌─────────────┴─────────────┐┌─────────────┴─────────────┐
│       AggregateExec       ││   LiquidCacheClientExec   ││   LiquidCacheClientExec   │
│    --------------------   ││    --------------------   ││    --------------------   │
│           aggr:           ││          server:          ││          server:          │
│  avg(customer.c_acctbal)  ││  http://localhost:50051,  ││  http://localhost:50051,  │
│                           ││      object_stores=[]     ││      object_stores=[]     │
│       mode: Partial       ││                           ││                           │
└─────────────┬─────────────┘└─────────────┬─────────────┘└─────────────┬─────────────┘
┌─────────────┴─────────────┐┌─────────────┴─────────────┐┌─────────────┴─────────────┐
│      RepartitionExec      ││       DataSourceExec      ││       DataSourceExec      │
│    --------------------   ││    --------------------   ││    --------------------   │
│ partition_count(in->out): ││          files: 1         ││          files: 1         │
│           1 -> 8          ││      format: parquet      ││      format: parquet      │
│                           ││                           ││                           │
│    partitioning_scheme:   ││         predicate:        ││                           │
│     RoundRobinBatch(8)    ││ substr(c_phone, 1, 2) IN  ││                           │
│                           ││  (13, 31, 23, 29, 30, 18, ││                           │
│                           ││             17)           ││                           │
└─────────────┬─────────────┘└───────────────────────────┘└───────────────────────────┘
┌─────────────┴─────────────┐
│       DataSourceExec      │
│    --------------------   │
│          files: 1         │
│      format: parquet      │
│                           │
│         predicate:        │
│  c_acctbal > Some(0),15,2 │
│   AND substr(c_phone, 1,  │
│   2) IN (13, 31, 23, 29,  │
│         30, 18, 17)       │
└───────────────────────────┘