Regarding your concerns to plumb the change through the ThriftBroker
and HQL.
- HQL here I see two option
a) Consider the row set scan as a none HQL requirement or
b) anyway a new row_predicate will be required, maybe something like
ROW IN '(' row_key [, row_key] ')' - which is independent, the
same if using the
rowset member or the existing row_intervals
- ThriftBroker, thrift does support a set type (not for PHP) which
could be used - so no difficulties,
just adding a new line 13:optional set<string> rowset or with PHP
support 13:optional list<string>; other
2 lines in ThriftBroker.cc convert_scan_spec would be required in
addition, which is also not really an issue
I see following disadvantages to use the existing row_interval member
- the row interval data structure obviously does not fit well to a row
set
- an additional loop in TableScanner would be required to split away
row
intervals from single rows
- IntervalScanner is limited to 0 or 1 row interval at the moment,
which
we have to break with the scan_and_filter_rows flag
- IntervalScanner needs to maintain the row set as a set data
structure and
as well for the row_intervals, which needs to be rebuild for each
range
(in front of each create_scanner call) and in addition the row
interval for the
first/last row in the actual row set must be squeezed in
- ScanContext needs to rebuild the row set from the row intervals
again, just another
sanity check will be required - many additional comparisons per
range
- the amount of data to transfer to the range server will be more than
double in size
compared to the rowset approach
- overall I think the maintainability for IntervalScanner and
ScanContext will be much better
using the rowset member approach, because we do not mixup the
meaning of the row_interval, rowset
scans will be better isolated using the rowset member approach
Where do you see the advantages to use the existing row_interval
member? Or
where do you see troubles adding a "rowset" member to the ScanSpec?
-Andy
--
You received this message because you are subscribed to the Google Groups
"Hypertable Development" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/hypertable-dev?hl=en.