# 程序目标
你的coding目标是实现一个继承自OrderSystem接口的OrderSystemImpl类。
实现一些简单的订单查询功能。
* construct接口负责将数据文件路径传送到OrderSystemImpl中,其中storeFolders每个路径包含一块存储设备。用于供你存储内存外的数据。
* queryOrder、queryOrdersByBuyer、queryOrdersBySaler、sumOrdersByGood提供按照特定方式查询数据的接口,具体规则可以查看OrderSystem.java的注释部分
# 数据格式
有三种类型的文件,分别为订单文件、商品文件、买家文件。文件的基本格式相同。
我们对文件格式的约定如下
## 数据格式
* 数据都存储在文件中,每行代表一条记录。
* 每种类型的文件可能包含复数个文件。
* 保证所有文件的记录中的主键不重复。
* 每条记录包含若干Key-Value对。Key又称作字段。
* 每条记录的字段保证不重复。
* Key-Value对之间用制表符'\t'分隔,内容中如果出现空格,把空格当作Key或者Value的内容
* Key为ASCII字符集中的a..zA..Z0..9_-
* Value可以为Boolean, Long, Double, String之中的任意类型,原始数据中不会声明类型
* 如果类型为Boolean,其对应的字符是'true'和'false'
* 记录之间不保证顺序
* 记录内的字段之间也不保证顺序
* key的长度不超过256字节,value长度不超过64K
* 可以参考目录中的样例数据:buyer_records.txt、good_records.txt、order_records.txt
每种类型的文件中有一些字段是一定存在的,且类型固定。查询操作主要通过这些字段进行:
## 交易信息文件
一定包含的字段:
* orderid - 订单号,类型为Long
* buyerid - 买家ID,类型为String
* goodid - 商品ID,类型为String
* createtime - 交易创建时间,类型为Long
## 商品信息文件
一定包含的字段:
* goodid - 商品ID,类型为String
* salerid - 卖家ID,类型为String
## 买家信息文件
一定包含的字段:
* buyerid - 买家ID,类型为String
## 提示
* 数据量上,商品文件和买家文件总大小大于4G,订单文件总大小小于100G。
* 数据中的某些字段比较稀有,在所有记录中出现较少。某些字段比较常见,在记录中经常出现
# 查询条件
一共有四种类型的查询:
1. queryOrder,查询指定订单号的交易信息,可以指定要查询的列
1. queryOrdersByBuyer,查询买家某个时间范围内的交易信息
1. queryOrdersBySaler,查询卖家某个商品的交易信息,可以指定要查询的列
1. sumOrdersByGood,对商品的某个字段进行求和
## 提示
* queryOrder和queryOrdersBySaler两种查询大部分情况下只查询少量字段
* 查询可能存在热点
* 测试程序会并发进行查询,选手程序要保证查询接口能支持并发调用
# 程序打包
程序的类名一定为OrderSystemImpl,并实现一个不带参数的OrderSystemImpl构造函数,提供public访问权限。
Pom配置请参考git中的demo项目[OrderSystemImpl](https://code.aliyun.com/MiddlewareRace/order-system-impl/tree/master),使用预定义的打包插件。
## 第二/三方库规约
* 仅允许依赖JavaSE 7 包含的lib
# 测试环境
* JDK 1.7
* 多核CPU (暂定6核)
* jvm 4G内存
* 可以使用空间充足的多块磁盘(暂定3块)
# 测试评分
测试程序运行分为两个阶段:
1. 数据准备阶段,从测试程序调用construct开始到测试程序返回,记录时间为T0。如果超过一小时未返回,则判定程序运行失败,不记成绩。
2. 查询阶段,总共有n次查询。为了保证公平,每位选手的查询序列都完全相同。查询的结果会校验正确性,如果返回数据错误,则直接判定程序运行失败。
查询阶段至多运行一个小时,记录完成的查询次数x。如果程序提前完成n次查询,那么记录查询的总时间T1。
成绩排名规则:
1. 如果x < n,那么根据x从大到小进行排名
2. 如果x = n,那么根据 T0 + T1的总耗时从小到大进行排名
程序运行失败时,我们会给出失败的具体原因以及屏幕输出信息,供选手排查。
由于测试评分进行多天,选手的得分可能会有起伏,我们会记录得分最高的一次作为最后成绩。取得好成绩后,可以大胆的对程序继续优化,博取更好的表现。
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的竞赛项目学习资料,作为参考学习借鉴。 3、本资源作为“参考资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研,自行调试。 阿里中间件性能挑战赛亚军源码+学习说明+PPT.zip
资源推荐
资源详情
资源评论
收起资源包目录
阿里中间件性能挑战赛亚军源码+学习说明+PPT.zip (97个子文件)
code_20105
doc
Dova团队——阿里中间件性能挑战赛.pptx 301KB
trade-counter
sync.sh 72B
pom.xml 4KB
src
test
java
KryoTest.java 1KB
OrderJoinMapTest.java 4KB
ItemMapTest.java 2KB
PayRatioArrayTest.java 1KB
main
resources
assembly.xml 385B
log4j.properties 441B
java
com
alibaba
middleware
race
Tair
TairOperatorImpl.java 3KB
ResultCheck.java 1KB
rocketmq
ProducerAndCheck.java 8KB
Consumer.java 17KB
Producer.java 8KB
jstorm
PayRatioBolt.java 3KB
TBSpout.java 5KB
FlushTairBolt.java 3KB
AllInOneSpout.java 10KB
OrderJoinBolt.java 3KB
demo
SplitSentence.java 1KB
WordCount.java 2KB
RaceSentenceSpout.java 3KB
RaceTopology.java 2KB
OrderFlowBolt.java 2KB
PaySpout.java 5KB
AllInOneSpoutV2.java 12KB
AllSpout.java 7KB
v3
CalculateBolt.java 9KB
BatchSpout.java 6KB
TMSpout.java 5KB
PaySumBolt.java 3KB
RaceTopology.java 6KB
model
MetaMsg.java 346B
PaymentMessage.java 3KB
ItemArray.java 4KB
OrderMessage.java 3KB
OrderJoinMap.java 2KB
PayRatio.java 759B
Item.java 920B
ItemMap.java 2KB
TableItemFactory.java 1KB
PayRatioArray.java 4KB
OrderJoinItem.java 2KB
RaceUtils.java 1KB
RaceConfig.java 2KB
deploy
start.sh 106B
pom.xml.bak 5KB
README.md 4KB
README.md 337B
order-system
pom.xml 2KB
src
test
table
GoodTableTest.java 2KB
OrderTableTest.java 3KB
BuyerTableTest.java 2KB
RandomReadTest.java 1KB
RankTest.java 4KB
btree
BTreeV2InDiskTest.java 3KB
BTreeRangeTest.java 2KB
BTreeInDiskTest.java 3KB
PageTest.java 982B
BTreeTest.java 4KB
UtilTest.java 1KB
OrderSystemTest.java 4KB
TypeTest.java 1KB
simpleBtree
SimpleBTreeTest2.java 7KB
SimpleBTreeTest.java 4KB
RecordCreatorTest.java 3KB
main
resources
assembly.xml 386B
java
com
alibaba
middleware
race
table
GoodTable.java 7KB
BuyerTable.java 7KB
OrderTable.java 16KB
OrderSystemImpl.java 25KB
Tester.java 11KB
store
BTree.java 23KB
DirectBuffMgr.java 956B
StoreConfig.java 1KB
Page.java 2KB
BTreeV2.java 33KB
PageMgr.java 4KB
SimpleBTree.java 12KB
OriginStore.java 4KB
LruCache.java 917B
FlushHelper.java 1KB
OrderSystemImplDemo.java 14KB
model
OrderKey.java 6KB
GoodOrderKey.java 7KB
Pair.java 336B
Constant.java 478B
OrderSystem.java 4KB
util
TypeUtil.java 1KB
RankUtil.java 3KB
PrintUtil.java 278B
RecordCreator.java 2KB
OrderUtil.java 2KB
order_records.txt 2.11MB
good_records.txt 197KB
README.md 4KB
buyer_records.txt 47KB
共 97 条
- 1
资源评论
土豆片片
- 粉丝: 1567
- 资源: 5642
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功