V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  lmshl  ›  全部回复第 1 页 / 共 24 页
回复总数  479
1  2  3  4  5  6  7  8  9  10 ... 24  
如果是物流追踪号这种定长且总长度不长的短字符串, 直接把每个截断前缀都做一遍索引还更简单, 也能支持精确匹配.
tracking_number[0:16]
tracking_number[1:16]
tracking_number[2:16]
tracking_number[3:16]
...
tracking_number[13:16]
都做成表达式索引, 查询的时候只需要 LIKE ‘123%’, 一样可以做的很快
@laminux29 笑死, 上网不带脑子

一亿行 pgtrgm 不做分区直接搜, 平均时间也不到 200ms, 要什么集群分片硬件硬扛?
单核 pg, 一年百十块搞定的需求, 照你的方案没个几百万硬件成本怎么玩

https://i.imgur.com/F2dUyyO.png
45 天前
回复了 MoeMagicMango 创建的主题 程序员 小 心 任 何 二 次 接 手 的 代 码
这代码写的挺不错的啊,没看出来哪里有问题
```
import { fromEvent } from 'rxjs';

const clicks = fromEvent(img, 'onload');
clicks.subscribe(x => { <你的业务逻辑> });
```
不要自作聪明发明那些不可维护的代码,你能想得到的场景,早已有无数前辈替你趟过坑。
等你哪天觉得 “RxJS 不过如此,我还有个更好的想法” 的时候,再发明也不迟(顺便发几篇论文)
版本答案:RocksDB (与其他 leveldb family 产品)

解析:203 亿个 bloomfilter 在 p=0.01 下所需的内存空间约为 23.75GB 。实际上,去重所需的空间会少于 203 亿,所以在这个内存空间下,实际 p 值将进一步降低。

大部分人可能对 bloomfilter 的使用存在误解,他们只考虑在只有 bloomfilter 单一算法存在的前提下来解决需求,这显然是错误的。现代数据库对 bloomfilter 的应用主要是用来降低 miss key 对磁盘 IO 的影响。如果 bloomfilter 认为这个 key 没有出现过,那么这个 key 确实没有出现过。当 bloomfilter 认为它可能出现过,那么出现的概率为 1-p ,此时需要回表二次确认(磁盘 IO )。

假设一个典型的重复度为 10 倍的 200 亿数据表文件,在这个空间下,p 值会低至 1e-20 。

那么对这个文件去重,总共会发生 200 亿次内存 bloomfilter 读取,20 亿次 bloomfilter 写入+磁盘顺序写入,以及 180 亿次磁盘随机读取。(考虑到数据库对磁盘的批量写入优化,sstable/memtable 这个数值将会被巨幅降低)

假设一个重复度为 0.1 倍的 200 亿数据表文件,在这个空间下,p 值变化不大。

那么对这个文件去重,总共发生 200 亿次内存 bloomfilter 读取,180 亿次 bloomfilter 写入+磁盘顺序写入,以及 20 亿次磁盘随机读取。(同上)

根据网上其他人做的吞吐量测试,rocksdb 在现代硬件条件下可以稳定达到 10k*rows/s 以上的写入性能,或>1GB/s 的写入吞吐量。乐观地估计,6.2TB 的文件应该能在 2 小时到 2 天左右完成去重。
186 天前
回复了 Gabrielle70 创建的主题 程序员 学一门 IT 技术: 精学和泛学哪种效率高?
我没有泛学也没有精学,我就直接开写
反正你泛学精学的目标也是最终变成自己的技能,能写得出来。
那为何不直接开始写。

学习学习,学只是一半,习是另一半。只学不习永远学不会
先把 Explain 贴上来再说
230 天前
回复了 dsvshx 创建的主题 Java Grpc 服务优化 GC 的一个问题,请教一下大佬们
一个大部分连续的 bytes 卡住 gc ,听起来还是很离谱的,除非你给出详细测试步骤,不然很难证明你的前提是对的。
即便你前提成立,也可以简单粗暴的直接上 ZGC 来解决,不需要你重复发明任何东西。
231 天前
回复了 nnegier 创建的主题 程序员 Java 后端有用 Kotlin 的吗?
我是精通 Scala ,同时也熟悉且写过万把行 Rust ,所以换到 Kotlin 对我来说算是能力上封印了。
至于论坛里没写过几行 coroutine 的开发来说,对鞋城和虚拟县城的理解不一定强于前端仔( async/await ),现在谈 VT 取代 coroutine 有点言之过早
231 天前
回复了 nnegier 创建的主题 程序员 Java 后端有用 Kotlin 的吗?
最近一个后端项目:ktor + kotlinx + flow api + coroutine + context receivers + arrow.kt
JDK 21 开 Generational ZGC 和 Virtual Thread (作为 coroutine 的 blocking dispatcher )
我算啥成分?
239 天前
回复了 hepin1989 创建的主题 Java 大家用上了 ZGC 了吗?
上生产了,童叟无欺
```
env:
- name: JAVA_OPTS
value: "-Dconfig.file=/app/application.conf -XX:+UseZGC -XX:+ZGenerational"
```
241 天前
回复了 linuxsuren 创建的主题 程序员 你现在能做几个标准的引体向上
最多的时候负重 5kg 做 10 个(电脑包+mbp 以及其他杂物,差不多 5kg 左右)
负重 15kg 做不到 4 个
https://v2ex.com/t/1022551
《每天 1 块钱,1 分钟,彻底治好了我的腰肌劳损和肩关节疼痛》
亲测有效,腰肌劳损腰痛 10 年,肩关节痛 3 年
我精通 JavaScript/TypeScript/Scala/Kotlin 等语言
还精通 Pure-FP 与 Reactive Stream
各位精通 PTSD 患者来喷我吧 🐶
我们写函数式的,完全不需要“防御性编程”。
我们就正常发挥,除了同门之外别人都看不懂我们 Pure FP 代码🐶。
关键是,自己维护起来还超 tm 轻松。
252 天前
回复了 YugenFring 创建的主题 程序员 kotlin 可以完美平替 Java 吗?
我现在的 Kotlin 技术栈:
Ktor ( http4k 也挺好)
Exposed + HikariCP
Arrow
kotlinx.serialization/coroutine/flow
编译器启用 context receive 语法扩展,凑合当 effect 用
JRE21 开 ZGenerational 和 VirtualThread
写起来体验还是可以的

之前也在知乎回答过此类问题
https://www.zhihu.com/question/641140617/answer/3375582454
@ptsa 图不图的不重要,总之单杠引体向上,练就完了
首先,不要试图挑战 CAP
然后,我们再谈其他的

你唯一能做的是用同步协议尽可能快的达成最终一致,但你无法始终保证一致性
253 天前
回复了 YugenFring 创建的主题 程序员 kotlin 可以完美平替 Java 吗?
说实话平替 Java 有点过于低估 Kotlin 了
1  2  3  4  5  6  7  8  9  10 ... 24  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2564 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 43ms · UTC 15:54 · PVG 23:54 · LAX 07:54 · JFK 10:54
Developed with CodeLauncher
♥ Do have faith in what you're doing.