如何在Amazon S3中存储文件..?

时间:2012-12-24 10:09:21

标签: amazon-s3

我们都知道Dropbox使用Amazon S3来备份文件,据说Dropbox每15分钟就会处理一百万个文件。那么Amazon S3的读写必须是巨大的。

任何机构都知道S3如何处理那么多文件描述符..? S3背后是否有任何不同的文件系统?我的意思是S3是否为每个文件创建一个新的文件描述符..?或者打开一个文件,写入许多文件,直到它达到一定的大小,比如1 GB,等等。

1 个答案:

答案 0 :(得分:0)

(免责声明:我实际上并不知道S3的任何实现细节):

听起来你做了两个不正确的假设:

  1. 每个dropbox“file”==一个OS“文件”。
  2. 正在一台计算机上读取/写入所有文件。
  3. 每个DropBox文件可能映射到单个操作系统文件,但它们也可能执行类似the Google File System的操作,这会将文件分解为多个具有固定最大大小的较小文件。

    其次,这些文件不会全部存储在一台机器上,而是存储在许多不同的机器上。因此,您不会在任何给定的计算机上打开那么多文件描述符。

    第三,您可能忘记了在任何给定时间打开的默认最大文件描述符数可以通过ulimit(来自命令行)或setrlimit(来自C代码)来提升。如果限制超出标准默认值以最大化可用描述符,我不会感到惊讶。