【Geekband】系统设计.md

第一次接触大数据系统相关知识,完全零起点,共参考。

第一周

1. 分布式系统

【Geekband】系统设计.md_第1张图片

2. CAP理论

【Geekband】系统设计.md_第2张图片

3. 数据库系统

3.1 ACID与BASE

【Geekband】系统设计.md_第3张图片

3.2 具体结构设计

【Geekband】系统设计.md_第4张图片

4. 异步通信

【Geekband】系统设计.md_第5张图片

5. 一致性定义

【Geekband】系统设计.md_第6张图片

第二周

1. 系统设计基本意识

【Geekband】系统设计.md_第7张图片

2. Hadoop与MapReduce

2.1 Hadoop

【Geekband】系统设计.md_第8张图片

2.2 MapReduce

【Geekband】系统设计.md_第9张图片

【Geekband】系统设计.md_第10张图片

2.3 BigTable

This is Google's scalable database. It provides a way to create massive tables of information indexed by a primary key. As of this writing, over 90% of Google's web services are built on top of Bigtable, including Search, Google Earth, Google Analytics, Google Maps, Gmail, Orkut, YouTube, and many more. Hypertable is a high performance, open source implementation of Bigtable.


【Geekband】系统设计.md_第11张图片

2.4 Hbase与GFS

【Geekband】系统设计.md_第12张图片

作业一

网站的站点很慢 - 一个有多个webservers的网站与一个第三方关系型数据库相连接.如果有一天老板跑过来问你:“这个网站好慢啊”,而你的工作就是调查为什么会这么慢?

  • 先对比一下以往的相关基础数据。通过几个核心指标的对比,明确问题,即“这个网站好慢啊“是相比以前的确出现问题,且这个”慢“大概是怎样一个量级。

    • 当前访问量
    • 本地连接速度
    • 外部连接速度等
  • 服务器存在宕机(硬件故障、软件故障)

  • 恶意访问

  • 当前服务器的框架结构,不足以应对某个数量级的访问

  • URL解析算法不足以应对达到一定量级的数据

  • 读写策略不能应对达到一定量级的数据

  • 核心思路采用单一变量法,从服务器底层指顶层依次排查。

作业二

Webtrack - 我们需要在网站上跟着用户的活动信息。例如当跟踪搜索时,我们可能需要知道哪些用户进行了搜索,搜索时发生的时间,他们搜索了什么,显示的结果和各种排名信息.

  • 需要对注册用户和临时访客分别设计ID,来减少单纯增加新用户的开销。

    • 主要通过用户的注册ID或者登陆信息来判别
    • 对于访客,要检测相同IP地址的访问,为其建立临时常客ID
    • 上述工作应当可以用cookie来完成(不是很确定)
  • 存储所有“动作+时间戳”

    • 将核心动作进行编码,减少存储开销
    • 存储信息不要求实时性高,只要记录下来,再按步骤存储就好。
  • 存储所有搜索页面的信息

    • 考虑到搜索页面的实时变化,因此需要建立本地有效的short URL解析方法
    • 在更高的缓存中或者数据结构中,存储前几页(如2页)的标题信息,因为一般人使用搜索,不会向后翻太多页。
  • 建立有效检索结构(查询接口多样,关联性强,不要求强实时性)

    • 查询特定用户行为
    • 查询特定IP段用户行为
    • 查询用户执行某一个动作的数量

你可能感兴趣的:(【Geekband】系统设计.md)