网站结构 seo,微信公众平台续费步骤,网站架构图怎么做,京东导购网站开发读写操作
系统的工作负载主要两种读操作组成#xff0c;一是大规模的流式读取#xff0c;二是小规模的随机读取。
大规模流式读取通常是一次性读取1MB以上的数据。
小规模的随机读取通常是读几个KB的数据#xff0c;为了提升性能#xff0c;会把一系列的读取操作排序后一是大规模的流式读取二是小规模的随机读取。
大规模流式读取通常是一次性读取1MB以上的数据。
小规模的随机读取通常是读几个KB的数据为了提升性能会把一系列的读取操作排序后按顺序读取节省时间。
写操作通常是以追加的形式出现。这个文件系统也可以支持小规模的随机写入但效率低下。
通常会有数百个写操作同时需要处理这就需要使用最小的同步开销来实现原子的多路追加数据操作。
架构 一个GFS集群包含一个单独的Master节点和多台Chunk服务器。
架构中主要有三者GFS master、GFS chunkserver、GFS client。
初始化Master会给每个chunk分配一个唯一且不变的64位标识。
读取客户端将文件名字节偏移量Chunk的大小 Chunk 索引index。将多个信息文件名Chunk索引发给Master。Master把多个信息Chunk标识副本位置发给客户端。客户端用文件名Chunk索引作为keyChunk标识副本位置作为value来做缓存处理。
客户端发送请求Chunk表示字节范围至一个最近的副本处。
其中Chunk的大小选择了64MB优点有二一是减少通讯的需求和成本二是减少Master节点需要保存的的元数据的数量。缺点是对于只占一个Chunk的小文件容易成为热点可以通过更多得副本和错开批处理对鞋系统程序的启动时间来解决这个问题。
元数据
内存
Master节点是逻辑层面上的Master服务器是物理层面上的。
Master服务器存储三种元数据命名空间文件和Chunk的、映射关系文件和Chunk、每个Chunk副本的存放位置。
元数据保存在Master服务器的内存中日志记录前两种元数据保存在本地磁盘并且会被拷贝到其他Master服务器上。保存变更日志→更新Master服务器状态→防止Master服务器崩溃导致数据不一致。
Chunk信息
Master服务器启动时或Chunk服务器薪加入时Master向每个Chunk服务器轮询它们所存储的Chunk信息结合“心跳”来维持信息最新并不会去维护一个Chunk信息的全局视图。
Master服务器周期性扫描自己保存的状态信息用于垃圾收集、失效Chunk的拷贝、通过Chunk的迁移实现跨Chunk服务器的负载均衡、磁盘状况统计等。
操作日志
操作日志是元数据唯一的持久化存储记录是判断同步操作顺序的逻辑时间基线所以它极其重要。必须确保日志文件完整所先拷贝日志再相应客户端的操作请求。为了提高效率Master服务器会收集多个日志后批量处理拷贝。
日志每增长一定量会做一次checkpoint将状态数据写入一个checkpoint文件以压缩B-树存储灾难恢复时读取checkpoint然后重演checkpoint之后的有个日志文件来恢复系统。
在创建checkpoint时Master服务器使用独立的线程切换到新的日志文件和创建新的checkpoint文件新的checkpoint文件将包括切换前所有的修改。