欢迎报名Rust China Hackathon 2022 达坦科技组

12月4日下午,DatenLord就2022Rust China Hackathon大赛活动企业组(达坦科技组)的赛题进行了空中宣讲会。不仅对赛事流程进行了全面的讲解,同时对赛题背景以及完赛标准和要点进行了深入的剖析。会后更是设置问答环节,细致、详尽地解答了大家所提的各种问题,以便大家对赛题有更加充分的理解。

本届Hackathon为Rust中文社区举办的第一届的线上黑客马拉松,大赛主题为「RustForFun」,分为社区组企业组。达坦科技作为本届Hackathon的协办方,赞助参与本次企业组赛道。希望借此机会激发大家对Rust语言的学习热情,提高应用Rust的能力,同时结识志趣相投的好友,一起进行思维的碰撞。

赛事日程表

报名+组队:11.15~12.12

- 组委会整理报名资料:12.12-12.14

- 开发:12.15~12.18

作品提交:12.19

- 作品初评:12.20~12.25 (评委会 + 社区投票)

- 大赛线上路演:12.29(线上直播 :14:00 ~ 18:00)+ 观众投票 + 社区媒体

- 作品颁奖:12.30

(如上述安排有调整,小助手会第一时间提前告知各位参赛人员,请务必报名后联系小助手入群)

扫码加小助手入群,备注:Rust 参赛

参赛福利

本次hackathon大赛设有一、二、三等奖各一组,除此之外为鼓励大家积极参与,组委会还另外设置了5组最佳参与奖。奖品更是丰富多样:不仅包含高额奖金,更有社区限量大礼包,甚至还有社区访谈。除此以外,我们还为参赛者谋取了更多的福利:譬如,你将会体验到前所未有的与线上同好进行技术交流的友好氛围,以及收获到评委大咖的资深点评。

赛题评审

本次大赛将由企业组社区专家两组评审团共同评审,对基础的代码完成情况和整体作品的性能表现两方面同时进行评分,且二者占比相同。

参赛及代码提交

- 参加本次Hackathon的每个队伍只能选择参加一个赛题,每队成员限1~5人。

扫码参赛报名,每个ID仅限1次

- 第一行代码 commit 的时间不得早于12月15日,否则即视为违规,取消参赛资格。为防止队伍之间的代码冲突,每支参赛队伍需要自己创建一个独立。即每个项目需要以一个独立目录提交,且文件名为团队拼音。

- 代码需统一提交至:

https://github.com/datenlord/rustChinaHackathon22

赛题剖析

在赛事流程介绍完毕后,达坦科技联合创始人兼CTO施继成先生进行本次企业组赛题的介绍。他从当今云计算发展的宏观角度出发,不同的云厂商提供着各种不同的云服务,而一些大企业的内部也建有各独立的私有云。由此,云与云之间的阻隔带来了诸多问题,譬如:一旦选择其一种云服务后,如想将数据导出则变得无比困难。为了解决这个问题,海外学界有人提出了天空计算的概念,旨在解决云之间的隔阂问题,将云服务商(cloud vendor)变成基础设施提供商。达坦科技的开源项目Xline正是在这个背景下应运而生。

与普通的KV不同,Xline是专门应用于全球部署、多集群的情况下的分布式存储KV。它不仅拥有统一的元数据管理系统,同时也保证了在多数据中心情况下的高性能实现。为了给用户带来更多便利,Xline同时也兼容ETCD interface。而我们使用的CURP共识协议也可以保证即使在分布式的情况下,不同server间也保持着同频共振。

Xline KV中设有索引,起到了定位器的作用,可以快速定位数据,同时进行“增删改查”的工作。它能够处理并发操作、Range操作,其最简单的实现是Lock+Btree,但是这也带来了不能scale的问题,即当用户访问量过大时就会受到影响。

本场赛题正是基于此展开的。题目要求实现一个高速并发的 Index 数据结构,满足以下 Trait;同时到达的请求 Key 不会出现 overlap。在并发数据结构的设计以及支持高速 Range 操作(保续)方面是有一定技术难度的,但我们也相信在诸位优秀青年才俊的努力下,更完善的解决方案将会被提出,更多思想火花可以得到释放,技术难题也将被攻破。

 

达坦科技DatenLord赛题

主题:Concurrent Indexing

背景

Xline是达坦科技推出的分布式元数据KV存储器。在使用中,此系统需要处理来自客户端的高并发请求,数目有时甚至可以扩展到数百至数千个。为了在内存中定位到相应KV数据,我们维护了一个索引,而此索引也成为了整个系统的瓶颈之一。在这样的情况下,如何提高索引在处理并发请求时的性能就成为了一个问题。

挑战

在本次Hackathon中,你将需要通过创建这样一个并发索引来解决此问题,此索引应该满足以下要求:

1、客户端将并发地发送请求,但并不会发送冲突的请求。

2、无冲突的请求应当被并发执行,以提高生产量。

/// Operations of Index
pub(crate) trait IndexOperate<K: Ord, V> {
    /// Get a range of keys in [key, range_end]
    fn get(&self, key: &K, range_end: &K) -> Vec<&V>;
    /// delete a range of keys in [key, range_end]     
    fn delete(&self, key: &K, range_end: &K) -> Vec<V>;
    /// insert of update a key     
    fn insert_or_update(&self, key: K, value: V) -> Option<V>;
}

评估标准

你的实现应遵从上述 Trait 并满足上述要求。我们将使用一定基准测试来进行评估,并根据其结果评分。在基准测试中,我们将发送大量并发请求,因此你也可以创建自己的性能测试来帮助进行优化。

欲了解更多达坦 科技的赛题,获得赛题宣讲的完整材料,请添加海报中小助手微信咨询、领取,并加入比赛沟通群。

想要获得更多的赛题背景,欢迎收看:Rust唠嗑室-Xline:跨数据中心一致性管理

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

达坦科技DatenLord

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值