Request a new category for execution

Discussion about the coprocessor protocol, which is used by both TiKV and TiFlash, including its definition and execution.

Actually, I’m unclear what is the scope of coprocessor protocol. Are both kvproto and tipb related?

The coprocessor is more than its protocols. Currently, it also involves the implementation of the TiDB vectorized execution framework on the TiKV side and has a plugin framework introduced recently.

sig-copr members don’t have permission to operate on the kvproto repo and the tipb repo. They are closely related to the coprocessor, but not owned by sig-copr members.

1 Like

Agreed with @skyzh.

For now, I think we don’t need category for copr.

Do you have a reason why a category of copr is unnecessary? I think it is not for sig-copr but the concept coprocessor among TiDB as a distributed computing system.

Coprocessor plugin, the protocol and the execution of coprocessor are significant parts of TiDB.

But yes, if there is no content, a category is meaningless.

In fact, I mean coprocessor category should not be limited to protocols and should include such things :frowning:

I’m a bit confused that this is a forum for TiDB, should we need to include content from TiKV?

Not solely for TiDB, but for ecosystem around that. Welcome to TiDB Internals

1 Like

I agree with @skyzh.

Generally speaking, we talk about TiDB executor when we are talking about Coprocessor. It isn’t worth adding a category for kvproto and tipb.

Yep. In my mind the concept is coprocessor but I’m unclear the border. kvproto and tipb are parts of it, not a separated category request.

I think TiFlash also follows the coprocessor protocol.

The word coprocessor mentioned in community discussion always indicates computation push down in TiDB world, which is like distsql in CockroachDB world and coprocessor in HBase world(not exactly).

IMO, nobody should care about the coprocessor protocol. If someone really want to know how does TiDB implement coprocessor, I would tell him: TiDB sends DAGRequest to TiKV or TiFlash nodes and receive Chunks as result from them. That’s enough.

IMO, we do not need a category for coprocessor protocol.
But I think it’s ok to maintain a category for coprocessor

@XuHuaiyu @zz-jason @skyzh @leiysky I’m trying to coordinate the category name issue here at once.

With an offline discussion with @TennyZhuang and several previous discussions, possibly tidb-server category proposed in the other thread is too much wider than it would be, while the most significant part of coprocessor is actually distributed execution as mentioned @leiysky.

Thus I’d suggest create

  • execution, including topics for coprocessor.
  • tidb-server, for things inside pingcap/tidb exclude distsql, and if other components show their activity, for example the optimizer, parser or privilege, spawn a new category on demand.

for these two category requests, separately.


Then tidb-server will introduce further confusion.
I suggest leave things in chaos and let it grow naturally, like we first introduce the execution category, and leave all others uncategorized for now.

Make sense, taking down tidb-server.