chutianyao 最近的时间轴更新
chutianyao

chutianyao

V2EX 第 667494 号会员,加入于 2023-12-18 14:17:47 +08:00
chutianyao 最近回复了
1. REDIS 单实例写 ops 扛 1w 毫无压力, 正常 key 分散的情况下 5-6w 应该可以, 但这种热 key 不确定
2.预计就是实现了一个 id 生成器, jvm 中预先分配号段, 我之前实现过, 这种简单的接口单机扛百万 qps 毫无压力
24 天前
回复了 linlinzzo 创建的主题 分享创造 我们正在尝试收录所有的中文博客
@JavenXiao 我自己做的博客聚合网站,也收录快 3000 个独立博客,这几年下来, 还坚持更新的只有极少数了
30 天前
回复了 trumandu 创建的主题 RSS 欢迎大家推荐一下自己博客的 RSS
@trumandu 已删除,谢谢!
32 天前
回复了 trumandu 创建的主题 RSS 欢迎大家推荐一下自己博客的 RSS
@lsk569937453 所以我说了嘛,看行重复比例. 同时哈希值前缀相同, 也能节省一些内存吧.
这个方案只是存在一定可行性,但不保证
203 亿行,逐行 hash, 假设 hash256, 单个值占用内存 32 字节, 203 亿行差不多试用内存 604G

1. 逐行读取并进行 hash
2. 使用 hash 值构建前缀树
3. 对每一行的哈希值,有两种情况:
1) 前缀树中已经存在, 说明哈希值重复, 该行重复了. 操作: 直接忽略本行,读取并处理下一行
2) 前缀树中不存在, 说明行不重复. 操作: 新建文件 result.csv, 将该行追加到 result.csv 中, 再处理下一行

关键点:
1.所有行的哈希值占用空间 604G, 内存才 256G 无法直接存储; 使用硬盘存储后续逐行比对查找的性能太差, 所以这里使用前缀树来存储, 减少相同前缀的哈希值使用的内存空间.(具体能节省多少内存,取决于哈希值/文本行的重复比例, 极端情况 203 亿行都不重复的情况下, 前缀树估计也会把内存耗尽?)
2.发现重复行,不直接从原文件中删除, 而是新建文件保存结果. 目的是使用追加写文件的形式、减少随机读写文件造成的性能磁盘 io 损耗
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1912 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 15ms · UTC 00:41 · PVG 08:41 · LAX 17:41 · JFK 20:41
Developed with CodeLauncher
♥ Do have faith in what you're doing.