In the Select statement doc I noticed that: "Extremely large result sets (greater than 10 megabytes in size) are not supported. If you execute a SELECT statement that generates a result set of more than 10 megabytes, VoltDB will return an error."
10 MB isn't "extremely large". If I have 200 bytes in a row, that's only 50,000 rows that I can process (e.g. rank) in one shot. 50,000 rows is tiny.
What am I missing?
VoltDB supports a maximum result set of 10MB from the server back to the client. VoltDB allows more than 10MB of row data to be processed and ranked, we can create internal/temporary tables of up to 100MB. Lets use the following SQL statement for an example:
where t1.c1 < 500000
order by t1.c2
This statement will filter the first 500,000 rows of t1 (if c1 starts at 1 and has no gaps) into a temporary table, order the results, and return the first 50,000 rows back to the client. It is the final return to the client that must be below 10MB.
Also, a VoltDB stored procedure actually returns an array of results to the client. This entire array must be less than 50MB, each individual table in the array is limited to 10MB.