失业期间用 Rust 搓了一个 SQL 数据库: FnckSQL - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
/div>
爱意满满的作品展示区。
Kould
V2EX    分享创造

失业期间用 Rust 搓了一个 SQL 数据库: FnckSQL

  •  4
     
  •   Kould 2024-03-12 01:41:02 +08:00 3663 次点击
    这是一个创建于 610 天前的主题,其中的信息可能已经有所发展或是发生改变。

    主打一个 SQL as function for Rust

    求星星<- 点我去仓库围观一下

    • 原生 Rust 进行调用无任何中间损耗
    • 支持 PGWire 协议,可以兼容 psql 等 pg 客户端
    • 覆盖绝大多数 SQL2016 标准的 SQL 功能
    • 支持 CBO 索引选择以及 RBO 计划结构调整
    • 支持 Unique\Normal\Composite 索引
    • 并行事务,允许同时存在多个写事务(目前仅仅支持 RC 级别的事务)

    因为存储引擎是 LSM 的关系,数据插入性能是 SQLite 的几个数量级(可以自己跑一下 Benchmark 对比一下)

    SQL 计算以及 KV 存储均是业余/失业期间闲着没事搓的,虽然测试以及 sqllogictest(163 个!!!)测试文件不少,但因为还处于闭门造车而没有用户的阶段,所以用于生产环境容易倒大霉(有问题我会全力配合)

    最近投简历已经两个月只有面过达梦,大概因为学历以及毕业年龄被各种卡门栏,有 hc 的老哥可以捞捞我

    求 star,这对我很重要 QAQ

    24 条回复    2024-04-03 01:13:47 +08:00
    agagega
        1
    agagega  
       2024-03-12 01:57:10 +08:00
    我记得 Sqlite 最后是放弃了 LSM ?另外如果有一个单文件、带事务、支持查询语句的 KV 存储就好了
    Kould
        2
    Kould  
    OP
       2024-03-12 02:01:25 +08:00
    @agagega SQLite 确实放弃了 LSM: https://www.zhihu.com/question/67858225/answer/632339756 ,而且你说的单文件带事务支持查询语句的 KV 其实貌似有些人就是把 SQLite 这么使用?我看甚至有些 KV 会以 SQLite 来进行 get/set/remove 性能对比,例如 crosskv
    Actrace
        3
    Actrace  
       2024-03-12 02:08:42 +08:00
    给楼主点个赞,14 年前也玩写过数据库。还因为这个被技术总监捞到,进了业界。
    这个东西玩起来其乐无穷呀。
    Kould
        4
    Kould  
    OP
       2024-03-12 02:22:37 +08:00
    @Actrace 把我也捞进去把
    beimenjun
        5
    beimenjun  
    PRO
       2024-03-12 08:24:03 +08:00 via iPhone
    换个名字感觉比较好
    sankooc
        6
    sankooc  
       2024-03-12 08:24:09 +08:00
    不错 不错
    lairdnote
        7
    lairdnote  
       2024-03-12 08:36:09 +08:00
    牛啊 。支持的这些基本够用了 。
    flmn
        8
    flmn  
       2024-03-12 08:40:48 +08:00
    支持楼主!!
    tikazyq
        9
    tikazyq  
       2024-03-12 09:39:13 +08:00
    支持一下。不过这个数据库的名字是我想象中的那个意思么?
    lasuar
        10
    lasuar  
       2024-03-12 10:36:29 +08:00
    支持~
    dododada
        11
    dododada  
       2024-03-12 10:48:35 +08:00
    oceanbase 试试?当年有个老哥很热情的找我去写 C ,我说不会,他说没关系慢慢学,我说慢慢学你们不要出业绩么,他说人实在是不好找。楼主试试看呢?
    Kould
        12
    Kould  
    OP
       2024-03-12 13:18:36 +08:00
    @tikazyq 是的
    Kould
        13
    Kould  
    OP
       2024-03-12 13:19:10 +08:00
    @dododada 可能那是比较久以前的事情了,现在 db 行业很卷,所以连门栏都进不了
    bigscotaleha
        14
    bigscotaleha  
       2024-03-12 14:33:33 +08:00
    虽然看不懂,已 star
    Kould
        15
    Kould  
    OP
       2024-03-12 14:49:57 +08:00
    @bigscotaleha 感谢!
    Nosub
        16
    Nosub  
       2024-03-12 19:21:18 +08:00 via iPhone
    果然失业容易激发个人潜力,任何事情都有两面性,等 N 年后,回头看,也许这是危中的机遇。
    Kould
        17
    Kould  
    OP
       2024-03-12 19:27:28 +08:00
    @Nosub 其实是在职时期看了 ddia ,业余开始的,失业时间比较多就都投入在上面,不过面试还是没有
    zuisong
        18
    zuisong  
       2024-03-13 16:16:37 +08:00
    太酷啦 已经 star. 希望看完代码后有提 PR 的机会
    Kould
        19
    Kould  
    OP
       2024-03-13 16:39:21 +08:00
    @zuisong 可以看看 issues 里一边做简单的 issue 一边了解代码噢,当然也欢迎加我的微信仔细聊聊
    WebKit
        20
    WebKit  
       2024-03-25 10:15:56 +08:00
    github 上留得网站似乎打不开啊
    Kould
        21
    Kould  
    OP
       2024-03-31 01:34:45 +08:00
    @WebKit 网站没有时间维护了哈哈哈
    namonai
        22
    namonai  
       2024-03-31 16:38:51 +08:00
    兄弟,全是你一个人写的吗,我看这代码量都有两万行了,一个人组织维护这种规模的代码已经算相当不错了,即使是这样子都很难找到工作吗……
    Kould
        23
    Kould  
    OP
       2024-04-03 00:50:29 +08:00
    @namonai 哈哈哈,环境不好水平不够
    namonai
        24
    namonai  
       2024-04-03 01:13:47 +08:00
    @Kould 我也在找工作哈哈,看看有没有和 Rust 相关的……加油加油
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5311 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 07:48 PVG 15:48 LAX 23:48 JFK 02:48
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86