开发者社区 问答 正文

Bigtable中客户端是如何访问片的呢?

Bigtable中客户端是如何访问片的呢?

展开
收起
芯在这 2021-12-13 17:31:44 309 分享 版权
1 条回答
写回答
取消 提交回答
  • Bigtable使用一个类似B+树的数据结构存储片的位置信息。

    定位系统:

    Chubby file,保存着root tablet的位置。这个Chubby文件属于Chubby服务的一部分,一旦Chubby不可用,就意味着丢失了root tablet的位置,整个Bigtable也就不可用了。

    root tablet,root tablet其实是元数据表(METADATA table)的第一个分片,它保存着元数据表其它片的位置。root tablet很特别,为了保证树的深度不变,root tablet从不分裂。

    其它的元数据片,它们和root tablet一起组成完整的元数据表。每个元数据片都包含了许多用户片的位置信息。

    可以看出整个定位系统其实只是两部分,一个Chubby文件,一个元数据表。每个分片也都是由专门的片服务器负责,这就是不需要主服务器提供位置信息的原因。客户端会缓存片的位置信息,如果在缓存里找不到一个片的位置信息,就需要查找这个三层结构了,包括访问一次Chubby服务,访问两次片服务器。

    2021-12-13 17:33:37
    赞同 展开评论
问答分类:
问答地址: