[Dropbox] 一些问题

  1. 我看有一些资料提到了 client local metadata? 这个上课完全没有提到,感觉挺重要的, 还是这个完全不需要?

  2. 如果客户端 是把文件切开上传 服务器如何知道一共有几个小文件? 我理解是存在一个s3 folder下的metadata file ? 如果是存在metadata里 , 那如果保证之后全部小文件都上传好了,再通知其他客户端同步?

  3. Dropbox这种上传QPS的计算 如果我上传一个文件 切10份同一秒上传 意思是我qps就是10吗? 感觉qps不大 但实际占用资源很大 不知道理解的对不对

  4. dropbox 如果一个文件被多人共享?如果解决删除或更新的问题? 是一个人删了就删是吧 我理解是不用做reference count这种

  5. File Journal Table -> journey id的理解 我比如Allen作为namespace, 然后我Add two videos,然后更新了一个video的内容

e.g.
namespaceID, Relatieve Path, Journal ID, blocklist
Allen, ‘test1.mp4’, 1, [a, b, c, d]
Allen, ’test2.mp4‘, 2, [g, h, e, f]
Allen, ‘test2.mp4’, 3, [g, h, e, w]

我想请问我上面这个例子理解的对不对,

  1. journalID 是对应的一个namespace增长,而不是一个file增长
  2. blocklist是代表整个文件的所有的blocks, 而不是一次操作的diff?

谢谢

  1. 本地的 metadata 可以从课上提到的跟服务器交互的 API 中看到。比如说本地更新到哪个 namespace 的哪个 journal id.
  2. 客户端会把小文件分别上传,并且告诉 metadata server 哪些小文件属于一个整体。不是在 S3 folder,而是存在数据库里。同步的时间点问题,可以看课件P66的图。
  3. 对,占用带宽时间比较长。
  4. Last Writer Wins.
  5. 理解的完全正确。

追问一下
2. 不太理解为什么netflix就把metadata file存在cdn 这里就需要一个metadata server? 请问什么时候需要metadata server 什么时候一个metadata file就OK? 谢谢

Netflix 的视频总是完整地存储在一起的,这个 metadata file 只是说明这个文件夹里的文件是什么顺序。但是 Dropbox 的文件可能某一段和一个别的文件是一样的,所以 Dropbox 不保证整个文件存在一起,一个简单的 metadata file 就不足以解决问题了。

1 个赞