维护100亿个URL
来源:互联网 发布:网络人工投票公司 编辑:程序博客网 时间:2024/05/01 22:33
http://s.sousb.com/2011/04/19/%E7%BB%B4%E6%8A%A4100%E4%BA%BF%E4%B8%AAurl/
题目:url地址 比如http://www.baidu.com/s?wd=baidu 的属性,包括定长属性(比如其被系统发现的时间)和不定长属性(比如其描述)实现一个系统a.储存和维护100亿个url及其属性。b.实现url及其属性的增删改。c.查一个url是否在系统中并给出信息。d.快速选出一个站点下所有url
提示:因为数据量大,可能存储在多台计算机中。
分析:这是一道百度的笔试题,这道题比较难,笔者只能给出几个认识到的点。
- 首先,这些url要经过partition分到X台机器中:考虑使用一个hash函数hash(hostname(url))将url分配到X台机器中,这样做的目的:一是数据的分布式存储,二是同一个站点的所有url保存到同一台机器中。
- 其次,每台机器应该如何组织这些数据?一种思路是用数据库的思路去解决,这里提供另外一种思路。考虑将url直接放在内存,接将url组织成树状结构,对于字符串来说,最长使用的是Trie tree,由于所占空间由最长url决定,在这里绝对不适用,再加上很多url拥有相同的属性(如路径等)这样,使用trie tree 的一个变种radix tree,相比会非常节省空间,并且不会影响效率。
- 最后,给出了存储模型,上面的abcd四问该怎么回答,这里就不一一解答了。
- 维护100亿个URL
- 维护100亿个URL(Radix TRee)
- 找到100亿个URL中的重复URL以及搜索词汇的topK问题
- 找到100亿个url中重复的url以及搜索词汇的topk问题
- 从两个文件(各含50亿个url)中找出共同的url
- 从两个文件(各含50亿个url)中找出共同的url
- 从两个文件(各含50亿个url)中找出共同的url
- 从两个文件(各含50亿个url)中找出共同的url
- 从两个文件(各含50亿个url)中找出共同的url
- 从两个文件(各含50亿个url)中找出共同的url
- 从两个文件(各含50亿个url)中找出共同的url
- 菜鸟做个维护人员难啊!
- 维护多个软件版本的问题
- 30个电脑日常维护小技巧
- hdu4288(线段树维护多个sum)
- poj3468线段树维护多个数据
- 有关链表中维护二个指针
- app的api维护多个版本
- stm32驱动3.2寸触摸屏(包括IO模拟,SPI硬件接口)
- c# 仿微信二维码生成
- 简单模板,小样,难道简单点不好吗?
- MFC线程中Cstring类型的比较注意
- vs2010使用命令行编译的方法
- 维护100亿个URL
- JSP运行原理
- 50条常用SQL语句
- MAC OS tips
- 《MYSQL性能调优与架构设计》第四章--mysql权限系统介绍
- 一次性执行多条SQL语句
- btrfs文件系统Kconfig分析
- 二分法求方程根
- 程序(并联串联电路公式)