0
点赞
收藏
分享

微信扫一扫

Review of 4121 Computer System for Data Science

Contents

Computer systems and performance rules of thumb

  • Latency vs. throughput
  • Amdahl’s law
  • Back-of-the-envelope systems math
  • Performance bottlenecks

Latency = execution time for a single task
Throughput = number of tasks per unit time

p e r f o r m a n c e ( Y ) = 1 e x e c u t i o n   t i m e ( Z   o n Y ) performance(Y) = \frac{1}{execution\ time(Z\ on Y)} performance(Y)=execution time(Z onY)1
p e r f o r m a n c e ( Y ) = 1 n u m b   t i m e ( Z   o n Y ) performance(Y) = \frac{1}{numb\ time(Z\ on Y)} performance(Y)=numb time(Z onY)1


Data centers

  • What is a data center?
  • Data center failures
  • Achieving reliability with smart software

Databases

  • Relational model and SQL
  • SELECT, FROM, WHERE
  • GROUPBY
  • JOINs
  • Nested queries
  • Transactions
  • ACID
  • OLAP vs. OLTP, SQL vs. NoSQL
  • Indexing
  • Logging
  • System highlight: BigQuery, MySQL

ACID规则:

  • A (Atomicity) 原子性

原子性很容易理解,也就是说事务里的所有操作要么全部做完,要么都不做,事务成功的条件是事务里的所有操作都成功,只要有一个操作失败,整个事务就失败,需要回滚

比如银行转账,从A账户转100元至B账户,分为两个步骤:1)从A账户取100元;2)存入100元至B账户。这两步要么一起完成,要么一起不完成,如果只完成第一步,第二步失败,钱会莫名其妙少了100元。

  • C (Consistency) 一致性

一致性也比较容易理解,也就是说数据库要一直处于一致的状态,事务的运行不会改变数据库原本的一致性约束

例如现有完整性约束a+b=10,如果一个事务改变了a,那么必须得改变b,使得事务结束后依然满足a+b=10,否则事务失败。

  • I (Isolation) 独立性

所谓的独立性是指并发的事务之间不会互相影响,如果一个事务要访问的数据正在被另外一个事务修改,只要另外一个事务未提交,它所访问的数据就不受未提交事务的影响。

比如现在有个交易是从A账户转100元至B账户,在这个交易还未完成的情况下,如果此时B查询自己的账户,是看不到新增加的100元的。

  • D (Durability) 持久性

持久性是指一旦事务提交后,它所做的修改将会永久的保存在数据库上,即使出现宕机也不会丢失

Storage and distributed file systems

  • Storage technologies primer
  • Distributed file systems
  • System highlight: Hadoop File System (HDFS), amazon S3/Google Cloud Storage

Distributed systems

  • 2 Phase Commit – Locking
  • Sharding
  • Fault tolerance
  • Replication and consensus

Mapreduce

  • Mapreduce computing model
  • Stragglers
  • Importance of 99th latency
  • Strategies to mitigate tail latency and increase availability

Distributed analytics and streaming

  • Resilient Distributed Dataframes (RDD)
  • Fault tolerance in distributed analytics: lineage
  • Streaming computing model
  • Systems highlight: Spark, Google Dataproc, Spark streaming

Caching

  • Performance benefits
  • When to use a cache? (hint: almost everywhereJ) – Consistency and performance considerations
  • Eviction policies
  • Systems highlight: Memcached and Redis

Additional information

  • 硬盘与内存的区别:一、内存是计算机的工作场所,硬盘用来存放暂时不用的信息。二、内存是半导体材料制作,硬盘是磁性材料制作。三、内存中的信息会随掉电而丢失,硬盘中的信息可以长久保存。

  • 内存 (Memory)ROM (read only memory)RAM (Random Access Memory) 两部分,RAM可以理解为主存,ROM只是很小一部分,比如记录BIOS信息的ROM。而硬盘、U盘等存储设备属于外存,和ROM没有关系。

  • DRAM的性价比很高,且扩展性也不错,是现今一般电脑/手机主存的最主要部分。DRAM (Dynamic Random Access Memory),即动态随机存取存储器,最为常见的系统内存。DRAM只能将数据保持很短的时间。为了保持数据,DRAM使用电容存储,所以必须隔一段时间刷新 (refresh) 一次,如果存储单元没有被刷新,存储的信息就会丢失。

  • Flash 闪存闪存是一种非易失性(Non-Volatile)内存,在没有电流供应的条件下也能够长久地保持数据,其存储特性相当于硬盘,这项特性正是闪存得以成为各类便携型数字设备的存储介质的基础。

  • 硬盘

    • 传统硬盘(Hard Disk Drive,HDD)
    • 混合硬盘(Hybrid Hard Drive,HHD)
    • 固态硬盘 (Solid State Drive,SSD) 。固态硬盘的存储介质分为两种,一种是采用闪存(FLASH芯片)作为存储介质,另外一种是采用DRAM作为存储介质。

  • 非关系型数据库 NoSQL(Not only SQL)。NoSQL用于超大规模数据的存储。(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据)。这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。

  • Concurrent(并发)是指两个或多个事件在同一时间间隔内发生。
  • Parallel(并行)并行是指两个或者多个事件在同一时刻发生。
  • 在多道程序环境下,并发性是指在一段时间内宏观上有多个程序在同时运行
    • 在单处理机系统中,每一时刻却仅能有一道程序执行,故微观上这些程序只能是分时地交替执行
    • 倘若在计算机系统中有多个处理机,则这些可以并发执行的程序便可被分配到多个处理机上,实现并行执行,即利用每个处理机来处理一个可并发执行的程序,这样,多个程序便可以同时执行
举报

相关推荐

0 条评论