面向电子数字文献保存的元数据存储系统设计

2022-04-20 07:23张骞
电子设计工程 2022年7期
关键词:存储系统哈希分级

张骞

(陕西职业技术学院图书馆,陕西西安 710038)

随着社会信息化进程的加快,每天都会产生大量的数据,海量存储系统将这些复杂的数据进行存储,满足了人们对数据的需求[1]。但是在很多情况下,用户并不需要访问存储在大容量存储系统中的数据本身,而只需要使用元数据就可以[2]。在企业中,元数据存储方案是实现电子文件管理的重要环节,元数据存储系统中一般都采用树结构和基于哈希的元数据存储方式[3]。树结构中存在大量的分支,因此,每次访问元数据时需要经过不同的分支,这不仅会消耗大量的时间,而且会消耗大量的内存;使用基于哈希的元数据存储方法,会受到非活跃元数据影响,很难选择合适的哈希函数来进行存储,且哈希函数被修改后,调整元数据所需要的时间和空间都很大。针对以上问题,提出了面向电子数字文献保存的元数据存储系统设计。

1 系统硬件结构设计

系统硬件结构如图1 所示。

图1 系统硬件结构

由图1 可知,该系统主要是由DSP、SATA 硬盘、FPGA 主控单元组成的。

1.1 SATA电子硬盘

SATA 电子硬盘是一种高效率、高稳定性、高速度的存储介质组件,该硬盘具有操作简单、功能灵活可靠、无需修改设置等优点,是目前最好、最经济的存储介质之一[4-6]。另外,电子硬盘不易受温度、冲击、振动等外部环境的干扰,工作条件恶劣时,也不会对数据造成威胁,为系统提供了高性能、高可靠性的原始数据存储容器[7-9]。

1.2 FPGA主控单元

FPGA 作为主要控制核心部分,结合VHDL 语言方便系统移植[10]。该结构主要是由串行调试接口、SRAM 缓存管理结构、文件系统管理模块、IDE 时序模块、主控单元和串行调试接口组成的。串口调试接口负责控制寄存器的状态和寄存器的配置,用DART作为系统的读写接口,能够完成对芯片的调试。采用桥接芯片,IDE 时序产生模块可以实现ATA 信号的串行转换,实现硬盘数据的存取与控制[11]。SRAM 缓存管理结构负责读写离散信号,并控制数据的读取与写入,并保证两个高速缓存间的正确切换[12]。

SRAM 缓存管理结构如图2 所示。

图2 SRAM缓存管理结构

由图2 可知,SRAM 缓存管理结构中包含了大量的存储模块,因为存储器数组是按行和列组织的,所以解码器还可以分为行解码器和列解码器,必须先缓存地址才能解码[13-14]。内存阵列与外部数据开关接口连接,负责读取信号,并将读取结果写入内存阵列;时序控制模块负责控制信号读取与写入时间;电源控制模块是一种可以自由选择的电路单元,该单元无需对整个存储器进行读写操作,直接通过电源内部就可实现各个模块的无效操作,从而达到节能的目的[15]。

1.3 数字信号处理器DSP

数字信号处理器DSP 体系小,不仅方便存储,还能快速实时地处理信号。其结构如图3 所示。

图3 数字信号处理器DSP结构

由图3 可知,DSP 将多种硬件地址生成器封装在一个循环结构中,命令缓冲和获取机制独立于其他中央的处理器,大大减少处理时间[16]。

2 系统软件部分设计

2.1 元数据读写流程设计

2.1.1 元数据写流程

在对元数据项目进行写操作时,写入的元数据项目将附加到当前使用的元数据缓冲区,并更新元数据缓冲区头结构的散列表和记录作者的元数据项目索引信息的相应过滤器。通过构建元数据缓冲池,以避免写入请求的元数据缓冲对写入请求的影响。

2.1.2 元数据读流程

通过对包含目标元数据项的元数据存储单元进行筛选和读取,将存储器中的元数据读取操作分为两个阶段:第一阶段在元数据缓冲池中搜索;第二阶段直接在元数据缓冲池中读取。根据元数据索引单元中的散列列表,读取元数据项,并按写入元数据的顺序从新到旧搜索。

2.2 元数据分级算法

针对电子数字文献保存的元数据存在的生命周期问题,提出了元数据分级算法,依据该算法区分元数据的活动和非活动类别,为缩短元数据的存储时间提供了依据。时间和访问频率是影响元数据活跃度的主要因素,因此,将元数据活动P定义为活动计量依据,P值的计算公式如下:

式(1)中,tc表示元数据构建时间;t表示当前时间;nt表示元数据被访问次数。

设元数据活跃度阈值为Pd,如果f(P,Pd)=1,表示元数据为活跃元数据,如果f(P,Pd)=-1,表示元数据为非活跃元数据,由此区分活跃和非活跃元数据。其中,f表示元数据等级评价函数,公式为:

依据该公式区分活动和非活动元数据。

2.3 元数据存储过程

依据上述对元数据读写操作,需先选择寄存器,通过数据总线将命令写入存储器中。依据元数据分级结果,确定两种数据类型,分别是活跃元数据和非活跃元数据,这两种数据存储的具体流程如图4所示。

图4 元数据存储流程

由图4 可知,读主状态存储器,如果该存储器空闲,就需设置数据存储模式,并在相应寄存器内写入所需参数,完成数据存储。

3 实 验

3.1 实验环境

利用Java 实现了一个原型系统,对服务器群集中的6个节点进行了测试。从5个电子数字文献中选取元数据,分别为CADAL、Google book、SANQUAN、dl Library 以及Haith Trust。

通过测试程序模拟测试负载,可以对系统的读写接口进行独立测试。该程序用大约需要11 GB 的总运行内存对1 024×64 元数据项进行元数据读写测试。通过随机读取2 048 个元数据项来测量元数据存储时间。

3.2 实验结果与分析

3.2.1 存储时间

针对存储时间,分别使用树型结构、基于哈希的元数据存储方法和基于元数据分级系统对5 个电子数字文献元数据存储时间进行对比分析,结果如表1所示。

表1 3种方法元数据存储时间对比分析

由表1 可知,使用基于元数据分级的元数据存储系统相比于树型结构、基于哈希的元数据存储方法存储时间要短,说明使用该系统存储效率较高。

3.2.2 写操作

针对写信号操作,设SOC_ADR 为离散地址信号,以该信号为基础,实际写内容为:SOC_ADR[1:1]—1/8/4/2/1;SOC_ADR[1:2]—1/5/b/aa/1;SOC_ADR[1:3]—1/a/1/14/1;SOC_ADR[1:4]—1/20/5/8/1/20/1,a/b为两个特殊信号。

将树型结构、基于哈希的元数据存储方法和基于元数据分级系统对存储的写信号与实际信号进行对比分析,以此判断存储效果,3 种方式写信号对比结果如图5 所示。

由图5 可知,在树型结构下,SOC_ADR[1:2]、SOC_ADR[1:3]写内容与实际不一致,且无特殊写信号;使用基于哈希的元数据存储方法,SOC_ADR[1:3]写内容与实际不一致,其余均一致,且存在特殊写信号;使用基于元数据分级的元数据存储系统,写内容与实际内容一致。

图5 3种方法写信号对比分析

3.2.3 读操作

针对读信号操作,设SOC_ALE 为离散地址信号,以该信号为基础,实际读内容为:SOC_ALE [2:1]—1/6/4/2/0;SOC_ALE [2:2]—1/a/b/b/b—1/b/b/b/b;SOC_ALE[2:3]—1/a/a/a/a—1/b/a/a/b。

将树型结构、基于哈希的元数据存储方法和基于元数据分级系统对存储的读信号与实际信号进行对比分析,以此判断存储效果,3 种方式读信号对比结果如图6 所示。

图6 3种方式读信号对比分析

由图6 可知,在树型结构下,SOC_ALE [2:2]、SOC_ALE[2:3]读取内容与实际不一致;使用基于哈希的元数据存储方法,在SOC_ALE[2:3]读内容后半部分与实际内容一致,前半部分及SOC_ALE [2:2]内容与实际不一致;使用基于元数据分级的元数据存储系统,读内容与实际内容一致。

通过上述分析结果可知,文中系统写、读数据与实际内容一致,说明该系统存储效果较好。

4 结束语

采用SATA 硬盘技术,能够有效避免外界环境干扰,有效提高了数据传输效率,缩短元数据存储时间,解决了传统方法存在的传输时间长的问题。同时,使用FPGA 控制模块实现的电子数字文献保存的元数据存储系统具有良好扩展性,有效提高了串口转换效率,大大提高了数据存储速度和备用功能。

猜你喜欢
存储系统哈希分级
欢迎订阅4-6年级《新课标 分级阅读》
基于特征选择的局部敏感哈希位选择算法
哈希值处理 功能全面更易用
欢迎订阅4-6级《新课标 分级阅读》
分布式存储系统在企业档案管理中的应用
文件哈希值处理一条龙
天河超算存储系统在美创佳绩
巧用哈希数值传递文件
高速信号采集及存储系统的信号完整性研究分析
完形填空分级演练