|
As of now the meta primitive messages:
- BATCH_PRIMITIVE_DESTROY
- BATCH_PRIMITIVE_ADD_JOINER
- BATCH_PRIMITIVE_END_JOINER
- BATCH_PRIMITIVE_ABORT
- DICT_CREATE_EQUALITY_FILTER
- DICT_DESTROY_EQUALITY_FILTER
are always sent of over the first DEC connections to PMs. This fact results in a contention given that BATCH_PRIMITIVE_ADD_JOINER streams a lot of small side table data with it.
Low level scanning/filtering primitives:
- BATCH_PRIMITIVE_RUN
- DICT_TOKEN_BY_SCAN_COMPARE
Are effectively distributed b/w first min(N, M) connections where N is a number of connections to every PP and M is a number of primitive jobs sent(effectively produced by TupleBPS::makeJobs)
MCS needs to distribute workload b/w connections using round-robin algorithm.
Future investigation might point to a finer-grained distribution algo.
|