惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
Stack Overflow Blog
Stack Overflow Blog
人人都是产品经理
人人都是产品经理
Y
Y Combinator Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
D
DataBreaches.Net
GbyAI
GbyAI
Microsoft Security Blog
Microsoft Security Blog
博客园_首页
大猫的无限游戏
大猫的无限游戏
Jina AI
Jina AI
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Engineering at Meta
Engineering at Meta
IT之家
IT之家
MongoDB | Blog
MongoDB | Blog
The GitHub Blog
The GitHub Blog
月光博客
月光博客
U
Unit 42
Hugging Face - Blog
Hugging Face - Blog
博客园 - 叶小钗
腾讯CDC
B
Blog RSS Feed
博客园 - Franky
爱范儿
爱范儿

奇客Solidot–传递最新科技情报

NASA 关闭旅行者 1 号的 LECP 仪器以节省电力维持运行 奇客Solidot | 人形机器人打破人类半马世界纪录 奇客Solidot | 卫星无人机图像显示美国四成数据中心可能延期 奇客Solidot | 内存芯片短缺可能持续到 2030 年 奇客Solidot | 果糖不只是糖,它更像是激素 奇客Solidot | Grinex 交易所声称遭敌对国家黑客入侵 奇客Solidot | 大白鲨面临过热风险 奇客Solidot | 暗能量巡天绘制出迄今最大的高分辨率 3D 宇宙地图 微软正式将 FAT32 分区大小从 32GB 增加到 2TB 奇客Solidot | 拼多多美团等被罚 36 亿 奇客Solidot | 英伟达 CEO 反对进一步限制向中国出口芯片 奇客Solidot | 美国科技巨头成功在欧盟法律中将数据中心环境影响列为保密信息 奇客Solidot | 乌克兰军方开始大规模使用地面武装机器人 Firefox 加入了对 Web Serial API 的支持 奇客Solidot | 大自然仍然在铸造人类基因 奇客Solidot | 威尼斯如何应对海平面上升 SpaceX 将发射 ESA 的 Rosalind Franklin 火星漫游车 奇客Solidot | Discourse 强调会继续开源 奇客Solidot | 美国主流媒体封禁互联网档案馆的存档机器人 奇客Solidot | 新研究再次证实 AI 有害大脑 Mozilla 宣布开源可自托管 AI 客户端 Thunderbolt 奇客Solidot | Linux Mint 宣布采用更长的开发周期 奇客Solidot | 人类的噪音在伤害动物,我们会学会安静吗? 奇客Solidot | 帝企鹅因气候变化导致数量减少被列为濒危 奇客Solidot | 抹香鲸的发声沟通方式与人类相似 奇客Solidot | 中国手游如何征服世界 奇客Solidot | IPv6 普及度突破 50% 奇客Solidot | 挪威男子在移植其兄弟的干细胞后治愈 HIV 波士顿动力的机器狗集成了 Google 的 Gemini 模型 奇客Solidot | Cal.com 因 AI 从开源转为闭源
奇客Solidot | 理论突破提升数据存储效率
2021-11-18 · via 奇客Solidot–传递最新科技情报

包括 MIT 计算机科学博士生 William Kuszmaul 在内的三名研究人员的发现

可以提高计算机数据存储和检索的效率

。这项发现与“线性探测哈希表(linear-probing hash tables)”有关,于 1954 年引入,是当今可用的最古老、最简单和最快的数据结构之一。数据结构提供了在计算机中组织和存储数据的方法,哈希表是最常用的方法之一。在线性探测哈希表中,可存储信息的位置位于一个线性数组中。

Kuszmaul 表示,假设一个数据库旨在存储 10,000 个人的社会保障号码。“我们获取你的社会保障号码x,然后我们将计算x的哈希函数 h(x),它会为你提供一个 1 到10,000之间的随机数。”下一步是将随机数h(x)移到数组中的相应位置,然后将社会保障号码x放入该位置。

Kuszmaul 表示,如果该位置已被占用,“你只需要向前移动到下一个闲置位置然后将其放入。这就是‘线性探测’一词的由来,因为你一直线性前进,直到找到一个空位。”为了稍后检索社会保障号码x,你只需要前往指定位置 h(x),如果它不在那里,就继续前进,直到你找到 x,或者到达一个闲置位置并得出结论:x不在你的数据库之中。

删除项目(例如社会保障号码)的协议略有不同。如果你在删除信息后,在哈希表中留下一个空位,那么当你之后试图寻找其他内容时就可能造成混淆,因为该空位可能错误地表明你在寻找的项目不在数据库中。为 了避免这个问题,Kuszmaul 解释说,“你可以去元素被删除的地方放上一个叫作‘墓碑(tombstone)’的小标记,表明这里曾有一个元素,但现在已被删除了。”

这个程序已使用了半个多世纪。在此期间,几乎每个使用线性探测哈希表的人都认为,如果你让它们变得太满,那么长长的、被占据的位置就会聚集在一起形成“集群”。结果找到一个空位所花费的时间会急剧增加——事实上是二次方的——时间长到不现实。因此人们接受了以低容量操作哈希表的培训——这种做法会影响企业必须购买并维护的硬件数量,从而造成经济损失。

但是这个由来悠久、一直不利于高负载率的原则已被 Kuszmaul 和他的同事——石溪大学的 Michael Bender 和 Google 的 Bradley Kuszmaul 的工作彻底颠覆。他们发现,对于插入和删除数量大体相等的应用程序——添加的数据量大致等于删除的数据量——线性探测哈希表可以在不牺牲速度的情况下以高存储容量运行。