【7月11日更新】阿里中间件性能挑战赛 - 第二赛季答疑汇总-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

【7月11日更新】阿里中间件性能挑战赛 - 第二赛季答疑汇总

中间件那珂 2016-07-11 11:25:58 6391
本帖持续更新,大家问问题之前可以先看看这张帖子,也可以在这张帖子里提问题。


Q: 关于三方库的使用问题
A:
1. 为了公平起见,禁止使用jdk7原生以外的三方库。
2. 可以直接将常用基础开源工具类(如guava、netty)搬到自己项目中使用。可以参考和借鉴其他三方库。
3. 不允许抄袭已有开源数据库代码。我们会对复赛中排名靠前的选手进行代码review,如果发现直接抄袭则成绩作废。
4. 关于借鉴和抄袭的标准:
    借鉴:有选择的引用,能说出自己为什么选择这样写,这段代码在上下文环境中承担了什么作用,自己对开源代码做了什么样的改进。
    抄袭:大段copy,无用代码比例高,自身不理解代码的用意,仅分装开源库接口



我们不是封闭式的比赛,大家在筹备比赛期间可以去学习,去参考你能接触到的任何代码。造轮子是一种能力,使用轮子也是一种能力,大家的目的是造车。 禁止引用三方库是出于公平考虑,我们提倡大家自己造好轮子,也不反对大家搬轮子。但是你不能把一部现成的跑车直接搬进来。我们会对排行榜前面的同学进行代码review,如果有明显的抄袭数据库代码的行为的话,我们会取消他参加复赛的机会。





Q: 关于3张表的3个ID的各种问题
A:
1. orderid,buyerid,goodid可以认为就是这三张表的PrimaryKey。即这三个id不会在表中出现多次
2. orderid仅且仅对应一个goodid, orderid仅且仅对应一个buyerid。可以保证orderid对应的goodid以及buyerid一定会存在买家表和商品表中
3. 在商品表中的goodid对应于一个salerid,一个salerid可能对应于多个goodid
  

Q: 用orderid查询订单时,有没有可能查询一个在买家表、商品表中的字段?
A: 可能的。复赛的查询的所有数据,都是基于在对三张表做了join的前提下进行查询。


Q: 样例数据中的app_buyer_xxx是什么意思?
A: 这是模拟数据。会被查询查到,不要理解为无效数据。

  
Q: 提交代码时,OrderSystem对象是通过maven依赖还是放到自己的代码中?
A: 将OrderSystem.java放到自己代码中。


Q: 第三类查询,通过salerid和goodid查询订单,既然已经提供了goodid,为什么还要提供buyerid?
A: 理论上通过goodid就可以查出想要的订单来。并且,测试中不会有反向case以正确的goodid+错误的salerid进行校验。


Q: 查询中是否可能查询不存在的records或者不存在的字段
A: 可能,按照OrderSystem.java中的规约返回数据。


Q: 最终运行时的硬件环境是怎样的?
A: 目前机器还没下来,所以运行时环境还未完全确定。可以按以下条件暂时进行预估,
CPU: 5 ~ 6核
查询并发数: 10 ~ 20
存储:
一共有3块磁盘,原始数据均匀存放在3块磁盘中。你的程序产生的中间数据也会放在这3块磁盘中 (存储这块和我之前解释的有些不一样,根据机器情况进行了调整,请大家注意以下)
内存:
测试程序会占用一定内存,所以JVM内存会设置为5g,如果你要计算jvm可用内存量的话,请以4G作为参考。
存储 Java 中间件 数据库 Maven
分享到
取消 提交回答
全部回答(11)
  • aliy_vick
    2016-07-18 13:35:24
    Re【7月11日更新】阿里中间件性能挑战赛第二赛季答疑汇总
    要用数据库吗
    0 0
  • ladventure
    2016-07-16 20:08:37
    Re【7月11日更新】阿里中间件性能挑战赛第二赛季答疑汇总
    请问,数据时部分有序还是完全无序的?
    0 0
  • cmptmn
    2016-07-15 16:03:31
    Re【7月11日更新】阿里中间件性能挑战赛第二赛季答疑汇总
    不是说第二赛季通知本周以邮件形式发出的吗?怎么我还没收到邮件的?

    -------------------------

    Re【7月11日更新】阿里中间件性能挑战赛第二赛季答疑汇总
    Q: 用orderid查询订单时,有没有可能查询一个在买家表、商品表中的字段?
    A: 可能的。复赛的查询的所有数据,都是基于在对三张表做了join的前提下进行查询。
       * @param keys 如果为null,则查询所有字段,
      Result queryOrder(long orderId, Collection<String> keys);

    是不是:@param keys 如果为null就查询三张表join后的所有字段。

    -------------------------

    Re【7月11日更新】阿里中间件性能挑战赛第二赛季答疑汇总

    Q: 用orderid查询订单时,有没有可能查询一个在买家表、商品表中的字段?
    A: 可能的。复赛的查询的所有数据,都是基于在对三张表做了join的前提下进行查询。


    /**
       * 查询订单号为orderid的指定字段
       *
       * @param orderid
       *          订单号
       * @param keys
       *          待查询的字段,如果为null,则查询所有字段,如果为空,则排除所有字段
       * @return 查询结果,如果该订单不存在,返回null
       */
      Result queryOrder(long orderId, Collection<String> keys);


    是不是可以理解为:@param keys 待查询的字段,如果为null就查询三张表join后的所有字段。


    /**
       * 查询某位买家createtime字段从[startTime, endTime) 时间范围内发生的所有订单的所有信息
       *
       * @param startTime 订单创建时间的下界
       * @param endTime 订单创建时间的上界
       * @param buyerid
       *          买家Id
       * @return 符合条件的订单集合,按照createtime大到小排列
       */
      Iterator<Result> queryOrdersByBuyer(long startTime, long endTime,
          String buyerid);


    是不是可以理解为:@return 符合条件的订单集合(包含三张表Join后的所有字段)。


    /**
       * 查询某位卖家某件商品所有订单的某些字段
       *
       * @param salerid 卖家Id
       * @param goodid 商品Id
       * @param keys 待查询的字段,如果为null,则查询所有字段,如果为空,则排除所有字段
       * @return 符合条件的订单集合,按照订单id从小至大排序
       */
      Iterator<Result> queryOrdersBySaler(String salerid, String goodid,
          Collection<String> keys);


    是不是可以理解为:@param keys 待查询的字段,如果为null,则查询三张表join后的所有字段。




    /**
       * 对某件商品的某个字段求和,只允许对long和double类型的KV求和 如果字段中既有long又有double,则使用double
       * 如果求和的key中包含非long/double类型字段,则返回null 如果查询订单中的所有商品均不包含该字段,则返回null
       *
       * @param goodid 商品Id
       * @param key 求和字段
       * @return 求和结果
       */
      KeyValue sumOrdersByGood(String goodid, String key);


    是不是可以理解为:如果查询订单中的所有商品或买家信息均不包含该字段,则返回null


    最后,建议更新接口类的注释以免造成误解。

    -------------------------

    Re【7月11日更新】阿里中间件性能挑战赛第二赛季答疑汇总
    最后,建议更新接口OrderSystem的注释以免造成误解。
    0 0
  • qhpxy
    2016-07-15 09:41:44
    ReRe【7月11日更新】阿里中间件性能挑战赛第二赛季答疑汇总
    引用第9楼hujianhong于2016-07-14 15:55发表的 Re【7月11日更新】阿里中间件性能挑战赛第二赛季答疑汇总 :
    数据集中的单个文件的大小有没有一个上限?就是说每个文件最大的大小 [url=https://bbs.aliyun.com/job.php?action=topost&tid=288212&pid=804643][/url]
    同问!
    0 0
  • hujianhong
    2016-07-14 15:55:55
    Re【7月11日更新】阿里中间件性能挑战赛第二赛季答疑汇总
    数据集中的单个文件的大小有没有一个上限?就是说每个文件最大的大小
    0 0
滑动查看更多
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题
推荐课程