zju大规模系统构建课程作业。
- 通过
zookeeper
查找对应的Region Server
的地址 - 向
Region Server
发送读写等请求
- 向
Master
发送建立表的请求 Master
建立region(目前版本一个region对应一个一个table)并分配该region
给某个Region Server
- 返回该
Region Server
的地址给Client
- 管理和维护表的分区信息(哪个region在那一台server上)(参见HBase架构里面的META表)
- 副本维护:预留接口(暂时先不做该功能)
- 负载均衡:监测到某个
Region Server
负载过高的时候,将访问最频繁?最不频繁(需要注意热点过热的问题)的Region
转移到其他的Region Server
上(Region Server
需要不断向zookeeper
汇报自己的状态信息 - 容错容灾:监测
zookeeper
中的Region Server
信息,如果某台Region Server
掉线了,则将该其中的Region
移动到其他的Region Server
上(?存在疑问:如何在server挂了之后访问到其的Log
文件并发送给其他Region Server
)
- 对minisql的操纵(这部分简单,修改接口即可)
- Log文件的记录(日志格式,如何存储等)
- 根据Log文件重启回复(容错容灾步骤)
- 查看自己的性能指标并向?汇报
- 与
Client
通讯的接口 - 和
zookeeper
通讯(第一次启动的注册)
RIP 就連香港都禁止悼念了
人员分工:
- lc, lxw: master, zookeeper
- hsy, zy: client, region server, HackDFS(这部分打算照搬minisql)
==从今天之后,更新都在对应的文件夹中分开进行。==
==同时更新了参考文件:lwm关于分布式minisql的pdf,具体请移步至refs==
目前需要考虑的问题:
-
底层文件系统按照传统方式(行储存)还是按照HDFS
的列式储存按照行存
- ~~
Region Server
这部分使用C++
还是java
~~使用c++
- Client
- Master: 管理维护表的分区信息、维护
Region Server
列表、分配Region
和负载均衡 - Region Server:存储和维护分配给自己的
Region
、处理来自Client
的读写请求 - Related to Zookeeper:实现
Region
的定位和心跳检测等 - HackDFS(the file system)
- lwm课件(见
refs
中)