非结构化存储.docx
一.非结构化文件存储全国中心提供两种写处理操作,CREATE和UPDATE,CREATE是第一次写入FILEBLOCK操作,UPDATE是对FILEBLOCK的修改、追加、删除操作。1文件块创建(CREATE)功能描述接收创建请求,在HDFS上创建新文件块。文件块仅包括文件块头信息。业务流程1接收文件块写请求2判断不存在该文件块,则创建新文件块。流程图文件埠创建请求返回块存在YES创建新文件块,尽为文件块头NO接口WRITEEMPTYFILEBLOCKHEADERFILEFILE2文件块更新(UPDATE)功能描述对已有文件进行更新操作。文件索引不变,内容追加到文件块尾部。业务流程1接收文件块更新请求,2获取原METADATA信息版本,子文件数,加密等级等,3生成新METADATA信息(版本1),4将新METADATA及文件内容追加到文件块尾部。5METADATA存入MONGODB流程图文件更新请求获取原文件元数据写入成功生成新文件元数据信息追加写入文件块尾元数据存入MONGODBYES返回失败NO接口INTUPDATEINTKEY,INTFILETYPE,FILEFILE,INTFILEINDEXINTUPDATEINTKEY,INTFILETYPE,STREAMIS,INTFILEINDEXINTUPDATEINTKEY,INTFILETYPE,BYTEBUFFERBUFFER,INTFILEINDEX3文件块追加(APPEND)功能描述接收文件ID及文件流,在现有块尾部追加新文件元数据及文件信息。业务流程1.接收文件块追加写入请求,2.生成METADATA信息,3.将METADATA及文件内容追加到文件块尾部。4.METADATA存入MONGODB流程图文件追加请求写入成功生成新文件元数据信息追加写入文件块尾元数据存入MONGODBYES返回失败NO接口INTAPPENDINTKEY,INTFILETYPE,INTSECURITYTYPE,FILEFILEINTAPPENDINTKEY,INTFILETYPE,INTSECURITYTYPE,STREAMISINTAPPENDINTKEY,INTFILETYPE,INTSECURITYTYPE,BYTEBUFFERBYTEBUFF4文件块删除(DELETE)功能描述接收文件ID及页码,删除块中已有文件(标记删除)。业务流程1接收文件删除请求,2定位文件位置,3置FLAG位为1(即标记删除),4删除MONGODB中该文件METADATA信息流程图文件删除请求修改块中元数据删除标志位修改成功删除MONGODB元数据信息YES删除失败NO接口INTDELETEINTKEY,INTFILEINDEX5文件块调阅(READ)功能描述根据索引号找到文件块,通过页码、版本信息定位偏移量找出影像文件通过SOCKET返回给客户端。业务流程1接收请求,2获取METADATA,3读取数据。流程图接口BYTEBUFFERREADINTKEY,INTFILEINDEX,INTVERSION6文件块METADATA抽取加载功能描述抽取文件块METADATA信息,并存储METADATA信息到MONGODB中。业务流程流程图接口ADDNEWMETADATAINDEXSTRINGFILEBLOCKNAME,METADATAINDEXFILEINDEXLISTGETSORTEDMETADATAINDEXSTRINGFILEBLOCKNAME,INTKEY二.存储策略业务描述将省前置存储到期的文件块移到全国中心云上去。业务流程图读取数据库,获取迁移文件列表抽取成功写入MOGODBYESYES已存在块查询MOGODB抽取文件块METANO记录文件块信息NO写入成功NO从消息队列取文件块存储策略将文件块存储到HDFSYESEFTP传输文件块写入成功删除源文件块YES删除MOGODB文件块META信息NO接口三.离线存储1部分离线业务描述对已有文件块进行部分离线。即只抽取块中部分数据进行离线。业务流程1接收离线请求2访问数据库,查询该块中待离线文件数3如果待离线数,超过伐值,则进行离线4访问数据库,获取待离线文件索引列表5抽取所有待离线文件数据合并到新文件块中6如果新文件块合并成功,则将新文件索引信息封装为LINK信息填充到原文件块数据域7新旧索引关联关系存入数据库8修改原文索引状态为离线9如果新文件块合并失败,则记录文件索引。下次离线请求时再离线。流程图文件离线请求查询块中待离线文件数抽取待离线文件待离线数100YESNO记录块中待离线文件数合并离线文件数据到新文件块合并成功修改文件索引状态为已离线YES修改源块文件,添加LINK信息结束记录索引以及META信息NO新旧索引关联信息存入数据库2离线调阅业务描述对已离线文件进程调阅业务流程1接收离线调阅请求,2查询数据库是否存在新旧索引对应关系。3如果存在新旧关系,则使用新索引进行离线调阅,4如果不存在关系,则使用原索引进行离线调阅。流程图调阅请求WEBSERVICES查询数据库有新旧索引对应关系使用新索引离线调阅使用原索引离线调阅NOYES四.数据库1部分离线新旧索引对应关系表2元数据表