趁着刚回上海,不想干活(哪天都不想干活),简单写点感受。
人菜瘾大
不过最后也算是半个 Happy Ending 了。
(segfault一定不是个好名字,997不一定是个坏名字)
赛题
赛题就是个旁路导入,在答辩开始前,我都觉得这次比赛的难度相比来说没有第一届高(主要那个 NLJ 完全没思路)。
不过后来我觉得这次比赛其实已经有点天池的味道了,虽然比赛依托于Oceanbase,但是可操作空间还是非常大的。
一些简单的感想:
在数据编码上,其实大家都已经发现了数据里很多字段其实都是一些枚举值,虽然字段类型可能是 varchar,在这点上有很多队伍的做法我很喜欢,例如预先的采样+增量式处理,或者动态维护编码表(我最喜欢这种)。
而对于最后几个长字符串字段来说,大部分队伍还是靠压缩算法来兜底(我也是),但是也有队伍专门针对这几个字段优化的,让我很羞愧。
排序上,我的思路有点被束缚住了,我完全没有必要一步实现每个桶内数据的全局有序,这一点带来的overhead 真的是挺大的。维护每个线程内部的每个桶的有序化,再加上后续的归并排序,可能是个更好的方案。
内存排序方法上,前两名其实都是用的主键+index的排序方式,看来我还挺接近他们的。
异步IO,这个东西我折腾半天没搞明白就没整了,双缓冲的异步IO对读取CSV文件来说,我觉得应该是有作用的,特别是对于我现在这种专门开了8个线程来进行读取的实现来说。
我想做但是没能力的SIMD解析真有队伍做了,虽然和我所想的用法不一样,不过好像提升还不错,tql!
更新一下,北大季军更新了一下他们的解题思路,看完后我陷入了沉思,虽然思路上有类似的地方,但是过程却完全不一样,我目前还是更多的依赖于经验主义,很多想法其实非常 heuristic,work不work全靠一把梭(评委其实也提到了这一点)。抓住指标,再加上合适的工具,然后去探寻解决方法,才是正确的道路。(不过我已经有一一一一些反感指标这个词了,我绝没有在暗示什么)
后记
这次比赛让我知道了,答辩的准备其实也是很重要的。像我这种一天写PPT,半天写讲稿的,属于是典型反面教材了,答辩就像答辩。
这次都没拍什么照,因为对结果的预期有点低。
阿里大楼,不过OB不在这里
没敢去找院长合照><
DBHammer YYDS!
本来想要再和周校长拍张照的,不过校长发言完就走了...
没听说过的原创乐队,不过还不错
P.S. 答辩还被院长喷了Orz
P.P.S 下次我还要挂DaSE的名字,如果有下次的话
我也是今年ob选手 ,备考dase ing~|´・ω・)ノ
欢迎来DaSE~ヾ(≧∇≦*)ゝ
太强了
tql