建议使用以下浏览器,以获得最佳体验。 IE 9.0+以上版本 Chrome 31+ 谷歌浏览器 Firefox 30+ 火狐浏览器
请选择 进入手机版 | 继续访问电脑版
设置昵称

在此一键设置昵称,即可参与社区互动!

确定
我再想想
选择版块

HW云数据库

发帖: 129粉丝: 1

级别 : 版主

Rank: 7Rank: 7Rank: 7

发消息 + 关注

发表于2019-7-17 14:56:08 8407 39 楼主 显示全部楼层
[挑战赛讨论区] 【华为云TaurusDB性能挑战赛】初赛FAQ

本帖对参加华为云TaurusDB性能挑战赛初赛选手的问题进行解答

    Q1:  是否可以使用aio

             可以使用

   

    Q2:

class KVIntf {
public:
    virtual ~KVIntf() {};
 
    virtual bool Init(const char * dir, int id) = 0;
 
    virtual void Close() = 0;
 
    virtual int Set(KVString &key, KVString & val) = 0;
 
    virtual int Get(KVString &key, KVString & val) = 0;
};

   1. 接口Init的参数id是什么含义,怎样约定的?

       测试程序运行时,每个线程会调用Init,init中的dir相同,id不同。参赛者可以使用,也可以不使用这个id来识别不同的线程。这个id仅体现线程的不同,没有其他含义。另外每个线程都会调用 GetKVIntf, Init, Close;  只有init会传线程标记。

   2. 接口Get和Set的返回值是怎样约定的?

       在一个实际的使用场景中,返回值可以表征错误码/或者分区信息等,第一阶段的比赛中,没有检验这个返回值;

   3. kv_string.h是否可以修改?如果不能修改,主办方如何保证判题的时候、所有人的kv_string.h是原始没有被修改?

       判题为自动化程序,判题时不会检查kv_string文件本身是否被修改,但会判题程序会使用原始kv_string的定义来检验返回的k/v是否和原始值相同。

  4. 性能评测

性能评测
随机写入:16个线程并发随机写入,每个线程使用Set各写400万次随机数据(key 8B、value 4KB)
顺序读取:16个线程并发按照写入顺序读取,每个线程各使用Get读取400万次随机数据
随机读取:16个线程并发读取,每个线程随机读取400万次数据,读取范围覆盖全部写入数据

 

注:
1. 共2个维度测试性能,每一个维度测试结束后会保留DB数据,关闭实例,重启进程,清空PageCache,下一个维度开始后重新打开新的实例

      这里是2个维度还是3个维度?如果是2个维度,哪两个阶段是在一起的?

      随机写入和顺序读取是一个阶段(即写入完成后立即读取),随机读取是另一个阶段(经过Close和Init后再读取)


Q3:关于 Key的问题


1)不同线程的key不会重复

Q4: GCC 版本

gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-36)

Copyright (C) 2015 Free Software Foundation, Inc.




 





    

举报
分享

分享文章到朋友圈

分享文章到微博

alpc62

发帖: 0粉丝: 0

级别 : 新手上路

Rank: 1

发消息 + 关注

发表于2019-7-17 15:30:18 沙发 显示全部楼层

kv_string.h 文件本身不严谨,编译有警告,第72行的函数实现没有return,如果增加-Wall -Werror无法编译通过

点赞 引用 举报

alpc62

发帖: 0粉丝: 0

级别 : 新手上路

Rank: 1

发消息 + 关注

发表于2019-7-17 15:45:45 板凳 显示全部楼层

"测试程序运行时,每个线程会调用Init,init中的dir相同,id不同。"

Close并没有id参数,意味着最后结束只调用一次Close吗?还是与Init对应,每个线程都会调用一次Close?

点赞 引用 举报

Robotxm

发帖: 0粉丝: 0

级别 : 新手上路

Rank: 1

发消息 + 关注

发表于2019-7-18 02:31:17 地板 显示全部楼层

Multi-Catch 似乎需要至少 JDK 1.7 才能使用,是否可以修改 POM 以增加属性指定 JDK 版本?

点赞 引用 举报

ykddd123

发帖: 0粉丝: 0

级别 : 新手上路

Rank: 1

发消息 + 关注

发表于2019-7-18 10:06:19 5# 显示全部楼层

每天只能提交五次吗?还是一共只能提交五次

点赞 引用 举报

triple_6

发帖: 0粉丝: 0

级别 : 新手上路

Rank: 1

发消息 + 关注

发表于2019-7-18 20:11:26 6# 显示全部楼层

java1.7可以吗

点赞 引用 举报

triple_6

发帖: 0粉丝: 0

级别 : 新手上路

Rank: 1

发消息 + 关注

发表于2019-7-18 20:19:27 7# 显示全部楼层

在mvn clean install时提示:

Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project kvstore_common: Fatal error compiling: 找不到目录: /home//code/kvstore_java_race/kvstore_common/target/classes 

请问是怎么回事?

点赞 引用 举报

papapapa

发帖: 0粉丝: 0

级别 : 新手上路

Rank: 1

发消息 + 关注

发表于2019-7-19 11:04:21 8# 显示全部楼层

16个thread,同一个key会在不同thread吗?还是你们测试程序保证同一个key只会由同一个thread读写?

点赞 引用 举报

brucehe

发帖: 0粉丝: 0

级别 : 新手上路

Rank: 1

发消息 + 关注

发表于2019-7-19 11:06:20 9# 显示全部楼层

只有get接口,范围读取是测试端包装好一直发get请求吗?这样数据库是不是不知道需要查询的数据范围?

点赞 引用 举报

ccfarm

发帖: 0粉丝: 0

级别 : 新手上路

Rank: 1

发消息 + 关注

发表于2019-7-21 01:14:40 10# 显示全部楼层

key value是固定8 、4K大小么,看到tester里有如下代码,好像value没有固定大小。

static auto buildVal = [](int idx)->KVString {
    char buf[256];
    const char * prefix = "hello";
    snprintf(buf, sizeof(buf),"%s_%d", prefix, idx);
    return KVString(buf);
};


点赞 引用 举报

游客

富文本
Markdown
您需要登录后才可以回帖 登录 | 立即注册