kubebrain icon indicating copy to clipboard operation
kubebrain copied to clipboard

Provide more detail on reproducing the benchmark result

Open tomasliu-agora opened this issue 2 years ago • 4 comments

What would you like to be added?

What etcd version the benchmark is using? 3.5.x or 3.4.x go-ycsb doesn't support etcd protocol on the master branch, so is the benchmark using a non-release version? Is there any Tikv tuning or it is all default setting? What is the version of Tikv in the benchmark report?

Why is this needed?

We need to reproduce the benchmark result to determine whether or not to replace etcd to kubebrain.

tomasliu-agora avatar Jul 30 '22 08:07 tomasliu-agora

  1. We use etcd 3.4.x and defragment it before test to make it without too many fragments inpacting on Writing.
  2. We implement the protocal with etcd client and kubebrain client to test, we may file an PR to do that soon. We use etcd Txn API to do revision comparing just like it's used by APIServer,but not the common write. Writing in our benchmark is Insert,because Update should get the previous revision first through Get
  3. TiKV is run with default setting.
  4. TiKV 5.1

divanodestiny avatar Jul 31 '22 18:07 divanodestiny

2. get

Thanks, I will try to reproduce it by myself.

Is there any plan on fully implement the ETCD Protocol?

There are Txn, Watch and Range, but the rest is not implemented.

If I am planning to do so, is there any suggestion?

tomasliu-agora avatar Aug 01 '22 14:08 tomasliu-agora

  1. get

Thanks, I will try to reproduce it by myself.

Is there any plan on fully implement the ETCD Protocol?

There are Txn, Watch and Range, but the rest is not implemented.

If I am planning to do so, is there any suggestion?

@tomasliu-agora thanks for filing the issue.

Yes, we would love to fully implement the ETCD protocol, but several features may need to be added to the TiKV, like TTL. For more details, please check the issue https://github.com/tikv/tikv/issues/12920 submitted by @divanodestiny

charleszheng44 avatar Aug 01 '22 18:08 charleszheng44

If I am planning to do so, is there any suggestion?

If you want to support common put or common delete, just implement it by WriteBatch without CAS RevisionKey but Put RevisionKey, and expose the method to out side.

KubeBrain support TTL just for events now,and do not support fully support for lease. If you want to implement that, you should make a proposal to discuss about that.

There are Txn, Watch and Range, but the rest is not implemented.

We implement KubeBrain for matching the requirement of APIServer. So we don't implement all etcd3 API now.

@tomasliu-agora Why do you want to do that? Do you want to use it in any other case? Can you explain your requirement in detail?

divanodestiny avatar Aug 02 '22 06:08 divanodestiny

@tomasliu-agora is there any further concern? if none, I will close this issue.

xuchen-xiaoying avatar Dec 29 '22 14:12 xuchen-xiaoying