ADD file via upload
This commit is contained in:
parent
05850e889e
commit
99b164b1fd
|
@ -0,0 +1,26 @@
|
|||
#赛题四:
|
||||
|
||||
为了提高系统的可扩展性,JCEC使用MongoDB集群来管理文件元数据。JCEC的MongoDB集群中包括一个masterMongoDB和多个slaveMongoDB。
|
||||
|
||||
其中,masterMongoDB负责管理所有文件的元数据(总量较少);slaveMongoDB 负责管理编码条带及编码块的元数据(总量较多)——系统根据文件名的哈希值将不同文件的编码条带及编码块的元数据映射到不同的slaveMongoDB,也就是说同一文件的条带元数据和编码块元数据位于同一slaveMongoDB中。
|
||||
|
||||
这样做的好处在于:(1)系统只需要访问一个节点就能获取到所有的文件的元数据;(2)系统只需要访问一个节点就能获得一个文件的所有条带元数据和编码块元数据,使得读取一个文件时仅需访问一个节点;(3)总量较多的编码条带及编码块的元数据被分散存储到多个节点上,消除了存储瓶颈以及访问瓶颈。
|
||||
|
||||
然而,由于JCEC中只有一个masterMongoDB且其中存储了所有文件的元数据,当masterMongoDB故障时,所有文件将无法被正常访问(系统健壮性不足)。因此,需要参赛者将masterMongoDB调整为多个并设计和实现多个masterMongoDB的访问策略以及数据同步策略。
|
||||
|
||||
当然,参赛者也可以尝试利用MongoDB Sharded Cluster来兼顾可扩展性和健壮性。
|
||||
|
||||
在JCEC中,主要由Coordinator(OECCoordinator)和Client(OECClient)负责访问masterMongoDB中的数据。因此,建议参赛者重点阅读、理解和调整JCEC-openec中的OECClient.cc、OECCoordinator.cc和Coordinator.cc。
|
||||
|
||||
|
||||
|
||||
#赛题五:
|
||||
|
||||
JCEC的Coordinator主要负责生成和分发读、写、修复等操作的控制命令,这些控制命令将控制各个Agent协同完成读、写、修复任务。在当前JCEC的架构中,Coordinator只有一个,当其故障时,系统将无法正常读、写、修复数据。因此,需要参赛者将Coordinator调整为多个并设计和实现多个Coordinator的协同策略,以提高系统的健壮性。
|
||||
建议参赛者重点阅读、理解和调整JCEC-openec中的OECCoordinator.cc和Coordinator.cc。
|
||||
|
||||
|
||||
|
||||
#赛题六:
|
||||
|
||||
JCEC是基于OpenEC的。在OpenEC上可以方便地实现各类纠删码(包括纠删码的编码、修复过程),具体可参考论文OpenEC: Toward Unified and Configurable Erasure Coding Management in Distributed Storage Systems。建议参赛者重点修改/JCEC-openec/src/ec/中代码。
|
Loading…
Reference in New Issue