scan的next操作是串行执行的,能不能设计为并发执行?

已邀请:

openinx - HBase Committer @小米

赞同来自:

我觉得一旦一个scan拿到了readpoint之后,然后按照这个readpoint去取数据,理论上是可以弄成并发执行的.并发的粒度,简单做的话,可以以region为单位. 不过我想,如果用户需要按照rowKey排序去扫数据的话,并发执行的意义不大,因为两个线程读了region1和region2之后,返回给用户的时候,还是的按照先region1然后再region2的顺序返回给用户.
 
但对于salted table这种scan需求,用户需要把salt前缀去掉,然后按照原始rowKey返回给用户,并发扫region应该还是有一定的优势,两个线程并发的读了region1和region2一段数据,然后再在客户端层面做merge,这样应该能快不少.
 
其他的场景,例如按照某一个CF去排序, 而不是按照rowKey排序返回,应该也会快不少.
 
先想到这么些..

要回复问题请先登录注册