首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
有100亿个url,要求设计一个系统,能实现url的添加、删
[问答题]
有100亿个url,要求设计一个系统,能实现url的添加、删除、更新,并能查看url的内容
添加笔记
求解答(0)
邀请回答
收藏(10)
分享
纠错
2个回答
添加回答
1
Mathew Rice
感觉和搜索引擎有点关系。可以先用Hash把这100亿个URL均匀的分布到不同的结点上,取模即可。把URL看成是一个一个的字符串。首先选择Hash表这样的数据结构来存储这些URL,Hash码相同的URL采取链地址法解决碰撞。然后添加,删除,更新查看均可以模拟HashMap的实现原理进行设计。当然100亿个URL估计内存很大,如果有必要,设计分布式的存储系统。后面的balabalabalabala........
发表于 2015-03-09 15:37:48
回复(0)
0
Monk
需要解决的问题:URL数量多,查询受到内存限制。
系统设计:
由于URL数目比较多,自然联想到使用分布式存储,根据内存大小,通过hash将这些URL分布到M个不同的文件中,这里根据需求控制粒度M,保证文件小于内存大小。如果文件大小超过内存大小,可以通过再hash法继续分成合适的小文件。由于hash的特点,相同的URL不会分到不同的文件中。
既然采用分布式存储,可以使用一个dispatcher来分发查询增删等任务操作,锁的粒度可以控制在文件级别。另外,由于采用了hash策略,所以更新操作应该由删增操作组合来完成。
发表于 2015-08-05 17:39:24
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
百度
分布式
系统设计
上传者:
liberal
难度:
2条回答
10收藏
9491浏览
热门推荐
相关试题
系统设计题:设计一个服务调度管理器...
百度
高级算法
系统设计
评论
(1)
百度Spider如何在不超过抓取限...
百度
2011
系统设计
Java工程师
C++工程师
评论
(7)
来自
百度2011研发工程师笔试卷
大规模的字典中,需要词与词中间的搭...
查找
分布式
系统设计
百元难题
评论
(0)
分页系统的逻辑地址结构是一维的,分...
操作系统
评论
(1)
关于分段系统与分页系统的区别,描述...
操作系统
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题