rondb icon indicating copy to clipboard operation
rondb copied to clipboard

RONDB-589 Pushdown Aggregation

Open KernelMaker opened this issue 1 year ago • 0 comments

Description:

  1. API provides interfaces to write assembly-style code program for aggregation query.
  2. API pushes the program with scan request to RonDB data nodes.
  3. Data nodes scan the rows from specific table, for each row it gets, executing the pushed down program to generate the aggregation results locally.
  4. when the scan is done on data nodes, they send the local result back to API.
  5. API gathers and merge the results to get the final aggregation results.

Current abilities: a.Supported column type:

  1. TINYINT
  2. TINYINT UNSIGNED
  3. SMALLINT
  4. SMALLINT UNSIGNED
  5. MEDIUMINT
  6. MEDIUMINT UNSIGNED
  7. INT
  8. INT UNSIGNED
  9. BIGINT
  10. BIGINT UNSIGNED
  11. FLOAT
  12. DOUBLE
  13. DECIMAL(Partially supported. Pushdown interpreter can load and parse DECIMAL column and try to convert it to BIGINT/BIGINT UNSIGNED/DOUBLE dynamically)

b.Supported arithmetic operator:

  1. Addition
  2. Subtraction
  3. Multiplication
  4. Division (DIV operator is supported. TODO: support / operator)
  5. Modulus

c. Support group by operation

d. Support working with pushdown filter

e. Support working with table-scan, index-scan( and range-scan).

KernelMaker avatar Jun 10 '24 13:06 KernelMaker