V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Co1a
V2EX  ›  问与答

PingCAP 路径一 Project 1 的问题

  •  
  •   Co1a · 2021-03-04 01:16:32 +08:00 · 901 次点击
    这是一个创建于 1359 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近从武汉迁徙到了深圳,机会没有我想象的那么多,也仔细思考过这条路该怎么走,却怎么都走不好,找了一份相关的工作,工资不高,但好在有时间去自己学习.

    过年那段时间看着 tidb-dashboard 有个挺简单的 Feature,就自己做着玩玩,慢慢了解到 talent project,最近面试完了在深圳这边等着入职(应届像我这样的渣渣想入行还是非常困难的),下午有时间就顺着把路径 1 Project1 给做了,有些细枝末节还是不懂

    appendTableRecordPrefix中 有一个codec.EncodeInt的操作,对 tableID 进行编码,就是对 TableID 进行位运算(异或以及右移),为什么要这么做,这么做的好处在哪里?

    4 条回复    2021-03-04 22:29:11 +08:00
    IwfWcf
        1
    IwfWcf  
       2021-03-04 01:33:59 +08:00   ❤️ 1
    效果是把补码的符号位取反,这样正数就会比负数大
    Co1a
        2
    Co1a  
    OP
       2021-03-04 18:40:39 +08:00 via iPhone
    @IwfWcf 谢谢老哥半夜解答疑惑,那么这么做的目的是什么呢
    IwfWcf
        3
    IwfWcf  
       2021-03-04 22:23:44 +08:00
    @Co1a 函数名就解释了啊,EncodeIntToCmpUint 就是要把 int 转换为可比较的 uint 然后用大端序进行编码啊
    IwfWcf
        4
    IwfWcf  
       2021-03-04 22:29:11 +08:00   ❤️ 1
    @Co1a 在 tableid 编码这里可能是没有意义的,因为 tableid 不会是负数,但如果是在一个 int 上建索引,索引 key 中的编码就需要保有顺序了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2712 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 14:45 · PVG 22:45 · LAX 06:45 · JFK 09:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.