[MCOL-4694] Distribute primitive jobs messages b/w TCP connections provided by DEC Created: 2021-04-22  Updated: 2021-06-21  Resolved: 2021-06-21

Status: Closed
Project: MariaDB ColumnStore
Component/s: None
Affects Version/s: 5.5.2
Fix Version/s: 6.1.1

Type: Task Priority: Major
Reporter: Roman Assignee: Daniel Lee (Inactive)
Resolution: Fixed Votes: 0
Labels: None

Issue Links:
PartOf
is part of MCOL-4593 Multiple concurrent queries with aggr... Stalled
Sprint: 2021-7, 2021-8, 2021-9

 Description   

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.



 Comments   
Comment by Roman [ 2021-05-12 ]

Waiting for MCOL-563 to be merged into develop.

Comment by Roman [ 2021-06-18 ]

4QA there is no way to properly test the distribution now however MCS must work with non-default value for PrimitiveServers.ConnectionsPerPrimProc in Columnstore.xml.

Comment by Daniel Lee (Inactive) [ 2021-06-21 ]

Build verified: 6.1.1 ( Drone #2587 )

Tested ConnectionsPerPrimProc with value set to 4. Ran regression test suite.

Generated at Thu Feb 08 02:52:17 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.