BUGS
- **[done]**第二次添加文件时,BlockAckThread中的异常
- [done]在多个机器上测试时,DataNode向下一个DataNode发送block会出错。(BlockTransfer:String blkPath = Client.CLIENT_CACHE + blkID + ".cache";)
- **[done]**添加文件时,文件名中带空格(进行文件名validation)
- **[done]**创建文件时NameNode荡机的情况(返回创建文件失败,删除NameNode和Client中的相应的记录)
- **[done]**DataNode结束时,NameNode不能判断DataNode已断开连接;
- **[done]**Copy文件到client上的过程中,DataNode荡掉的情况。
- ####上传和下载下来的文件大小不一致,每个block相差5字节!!!
TODO
- **[done]**添加新文件时,目标DataNode荡机的异常处理;
- 测试测试,发现bug;
- 某些共享数据加锁。
- **[done]**保存任务列表
- **[done]**NameNode启动时自动加载未完成的任务列表
- 命令行可运行的程序;
- 多台电脑测试;
- 优化client命令行;
- 设置debug模式和非debug模式的输出。
DONE
- 目前独立的4个功能已经完成。
TODO:
- NameNode创建时,根据NameNode本地的log初始化NameNode,包括,系统中保存的文件及相关信息(大小等)
- NameNode对新文件分块完成后,在本地记录,维护两个文件log(Files.log, FilesUnderConstruction.log);
- 第一个DataNode 接收到client的数据块后,接着向向一个DataNode发送数据块的测试。
- 系统中的文件列表(根据NameNode维护的两个fiels×.log)[done]
- 下载文件
- 删除文件
- DataNode启动时,扫描存储的block信息,通知NameNode
DONE:
- Client添加新文件。(NameNode分配DataNode,将分块信息发送给client,client向目标块发送块信息)
TODO:
- Client和NameNode之间的通信
- Client与DataNode之间的通信
- DataNode与NameNode之间的心跳连接
- Client向DataNode发送Blick数据