ADD file via upload

This commit is contained in:
baohan 2021-10-14 17:11:26 +08:00
parent 05850e889e
commit 99b164b1fd
1 changed files with 26 additions and 0 deletions

View File

@ -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中主要由CoordinatorOECCoordinator和ClientOECClient负责访问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/中代码。