dropbox一些问题

  1. 资源估算的时候算qps 要不要考虑平均每个user有一个device,假如是3,那么上传或者更新的每一个request都会是的server需要另外多发送两个notification到其他device上?所以qps要乘3?
  2. 在high level architecture里面block server为啥不需要load balancer?是因为1.2k qps不够大一台机器就可以搞定?
  3. File journal table设计的时候好像没有考虑小改动存储diff的情况,如果是存diff该怎么存储?
  4. 2.6存储里面Block storage: SHA-256 Hash, Block。这个是说把hash和block都存在block storage里面还是说我们在db或者cache里存一个key value pair(hash+block address in block storage)?
  1. 是的。
  2. Block Service 这也是一个机群,这里没连 load balancer 的意思是每台服务器存的东西都不一样,不是根据 load 来分配,而是根据具体数据存在哪来来分配。
  3. 提得很好,我具体没有查到 dropbox 是怎么做的,我猜测是在 Bloc 层面上的一个优化 - 用户往服务器里存一个很接近的 Bloc 的时候,实际只存储 diff 和相关的 Bloc ID。这样就不影响 File Journal Table。
  4. Block Storage 有这个 content-addressable storage 的功能,内部的话肯定还是有一个 index,存 hash 到文件位置的 mapping
  1. level 7 load balancer 不是可以根据request content来route traffic么?而且block server不需要存东西吧?他只需要把内容存在s3里面就好了啊?

明白你的意思。block server 确实也可以 stateless,但除了存内容在 S3 以外,还需要做 content addressable 的 mapping,可以使用一个外部的 DB table 来存这个 mapping。
这样的话,就用普通的 LB 就可以。