百度的系统设计题
2013-10-02 12:23
148 查看
你得先知道什么缓存
假设 我现在要从包含大数据的文件中查找一个数据
数据格式是一个结构体
struct Data
{
int id;
char name[255];
...
};
那现在我们需要这么做呢 当用户发送一个id过来的时候 我们开始遍历文件 查找id相等的结构体记录
现在我们发现一个规律 在多数情况下 前后 5次左右的请求 id 是相同的
我们是不是可以优化一下,每次在内存中保留上一次找到的 结构体记录,那么下次请求来的时候 我们直接对比上次的查找结果 如果id确实相等 那么我就直接返回,如果不等 再查找文件
万一这个时候数据变了呢...我们先讨论不变的情况。
那么问题就来了 我们采用什么数据结构 来组织这些内存中的缓存呢?
链表是最直观的 ,简单 但是每次就变成先遍历链表了
于是 我们可以考虑 树结构。根据ID 分级存储。二叉排序树。这样二级缓存就出来了。
第一级我们先确定id位于哪个子树中 接着 我们遍历对应的子树
这个就是数据结构的应用之一 大型的公司 产品中都有类似的问题
整个意图是提高大数据的查找性能
当数据量比较大的时候,将所有的数据建成一棵树是否可行? 当你采用的缓存技术不能提高访问性能的时候 就要考虑是不是需要继续了
百度的这个题 除了考察缓存的思想 还考察分布式系统的概念
其实就是在不同的机器上都分配缓存的备份,这样可以保证 当一台机器down掉之后 服务可以持续
相关文章推荐
- 微信小说分销系统设计之使用百度Echarts地图统计功能统计微信粉丝地域分布情况
- 一个完整推荐系统的设计实现-以百度关键词搜索推荐为例
- 系统设计一(百度笔试题,请大家讨论)
- 系统设计四(百度笔试题,请大家讨论)
- 一个完整推荐系统的设计实现-以百度关键词搜索推荐为例
- 系统设计六(百度笔试题,请大家讨论)
- 系统设计七(百度笔试题)
- 35. 百度研发笔试题:设计一个系统处理词语搭配问题
- 一个完整推荐系统的设计实现-以百度关键词搜索推荐为例
- 一个推荐系统,实现完整的设计-在百度搜索关键词推荐案例
- WebGIS系统的设计与实现
- CAP理论与分布式系统设计
- 系统设计时应尽量避免出现left outer join, right outer join
- 房间计费系统改造E-R图纸设计
- 20135203齐岳 信息安全系统设计基础第三周学习总结
- ASP.NET 系统支持数据库访问设计
- C++面向对象编程分享11----系统设计01
- Linux内核设计基础(七)之系统调用
- 信息安全系统设计基础第八周期中总结
- 信息安全系统设计基础第三周学习总结