高并发网络身份认证数据库应用技术研究

2023-12-18 17:25刘冰刘乾坤
警察技术 2023年6期
关键词:键值哈希内存

刘冰 刘乾坤

1.公安部第一研究所 2.北京中盾安信科技发展有限公司

引言

随着互联网的高速发展,网络社会与现实社会已融为一体,网络身份管理和网络可信身份认证的需求愈加强烈。“互联网+”可信身份认证平台是为支撑国家“互联网+”行动计划的大数据基础设施,由国家发改委和科技部支持建设、公安部组织实施、公安部一所承建推广。平台的核心功能包括居民网络身份的签发、基础数据的存储、网络身份的核验认证。数据库系统作为后台服务的根基,其性能表现直接影响着平台的服务质量。面对数据体量庞大、日活量高、并发查询高等应用需求,传统的数据库存在一定的局限性,本文通过融合目录访问协议、热数据缓存检索等多种技术,研究满足该场景的数据库应用技术。

一、现存问题及需求分析

(一)现存问题

网络可信身份认证是一项重大的系统工程,以法定身份证件信息和国家人口基础信息为基础,面向全网提供网络身份认证能力。网络身份凭证的签发和管理、真实身份核验和网络身份认证等业务场景,都需要后台数据库提供高效、精准的数据服务能力。关系型数据库的优势在于事务隔离和处理,目录服务的优势在于小数量的检索,但是对于网络身份认证需求,面向单表十几亿数据规模且多种检索条件下的高效、精确查询,这两种现有的数据库服务均无法单独满足网络身份认证场景中并发量高、数据体量大、检索条件不一且快速响应的业务需求。

(1)基于SQL的关系型数据库因为事务隔离、SQL语言解析、锁机制等体积庞大而复杂,在数据快速检索时速度不占优势。

(2)目录服务系统[3]是用于网络数据资源的分布式存储和快速查询的专用数据库系统,内部数据存储一般使用B+树结构,这就使得在小数据量时可以获得优越的检索性能,但面临大规模数据量时,由于B+树结构分成太多层而导致检索性能大幅下降。尤其是为了维持B+树结构的平衡性,新数据的增加还可能引起整棵B+树结构的重新平衡,存储性能也是大幅度下降。为了容纳更多的数据,一般应用势必会采用搭建目录服务集群的方式来管理数据,这就带来了数据管理和维护的复杂度。

(3)目录服务系统也具有一些其他Key-Value类型数据库所不具备的优势,目录服务系统是用于网络数据资源的分布式存储和快速查询的专用数据库系统,是专门为那些检索频率大大高于数据更新频率的信息服务而设计的。目录服务系统一般都遵循LDAP轻型目录访问协议,从而能够保持应用的标准性和独立性。该协议中规定了目录的数据单元-条目,并且规定了操作条目数据的九个基本操作,包括绑定、添加、修改、删除、搜索、比较、解绑等,非常适合网络身份认证服务的操作。

(二)需求分析

本文尝试融合多种技术优势,研究使用单一系统作为网络身份认证数据库,解决大规模基础数据下快速存储及检索的问题。构建分布式内存Key-Value数据库(以下简称“新型KV数据库”),支持轻型数据访问协议、并行接收并处理查询请求、采用键值对存储数据、提供优化的热数据键值对内存缓存机制等功能,以满足网络身份认证应用的需求。

二、总体架构

新型KV数据库由通讯接口、前端、数据缓存、后端存储等几部分组成。居民身份认证平台通过通讯接口的轻型数据访问协议与新型KV数据库前端之间建立网络连接;新型KV数据库前端实现并行接收、处理居民身份认证平台的认证数据访问请求;数据缓存组件提供优化的与存储数据相适应的热数据键值对认证数据内存缓存机制;新型KV数据库后端采用哈希与内分区技术相结合的键值对认证数据落地存储。新型KV数据库的总体架构如图1所示。

新型KV数据库采用分布式集群架构解决大并发问题,采用分片的Key-Value方式数据存储,通过自定义策略将热数据存储在内存中,并且通过Key索引方式保障几十亿身份认证数据的极速即时访问,平均每条数据的查询时间小于1毫秒。新型KV数据库分布式集群架构示意如图2所示。

三、技术路线及关键技术

新型KV数据库的技术路线是从接口到存储模型,都不再要求树形组织形式,而只要求数据具有查询条件与证书实体之间的键值对表达形式,不再使用B+树结构,而是换成大数据检索性能更好的Hash结构,使用哈希与内分区技术相结合的键值对存储结构,随机拆分和均衡证书数据,减少落地数据的数量和被访问次数,实现更少的磁盘I/O次数,提高新型KV数据库的证书容量和存储效率,获得更好的检索性能。并且采用优化的内存缓存机制减少数据访问延迟,保证支持十几亿数量规模时的存储和检索性能。新型KV数据库的关键技术包含:

(一)新型数据访问协议

利用轻型目录访问协议构建轻型数据访问协议,并在格式定义上与标准的轻型目录访问协议相兼容,避免了复杂的SQL语言解析,从而能够继续保持认证服务应用的标准性和独立性。轻型数据访问协议提供完整齐备的数据表达结构、传输编码封装、数据访问操作和安全控制功能等。但唯一不要求所存储的数据必须具有目录树形结构和目录层次特征,而是依据认证数据的特性保持键值对形式,提取证书序列号作为主键值,证书内容等作为检索目标,建立检索条件与主键值的索引映射关系,证书使用范围作为数据存储的库名标识。

新型KV数据库前端系统负责接收、解析认证系统通过轻型数据访问协议发送过来的认证数据访问请求。这些访问请求包括:绑定、解绑定、添加、删除、修改、搜索、扩展、元数据查询、放弃。与标准的轻型目录访问不同在于,库名就是所有认证数据快速存储及检索的BASE,忽略认证系统提供的SCOPE,即认证系统无需提供检索范围,由认证数据存储及检索系统依据认证数据的特性来优化存储和定位检索目标。

1.认证数据的检索特征和证书结构

新型KV数据库为每类认证数据建立单独的识别名,数据条目包括检索条件和属性值。数据条目的检索条件和每个属性值都会通过hash转化为0~9、A~F、a~f之间的数据,每个字段存储相应的数据信息。例如识别名为CT,检索条件为sn,属性值分别为base_dn和scope。

2.使用改造后轻型数据访问协议进行访问

以API为例,存储函数:

LDAPEntry entry=new LDAPEntry(dn,attrs);//参数:属性集合

ld.add(entry);//添加

检索函数:ld.search(base_dn,scope,filters,attrs,attrsonly);

其中,base_dn填写证书类型CT,scope随意填写,fileters使用sn的具体值。

(二)基于哈希和内分区的认证数据存储

后端系统负责前端请求的持久化访问,将认证数据按照键值对形式进行哈希结构存储,并依据指定分区个数将键值数字分配到特定的分区文件中,实现了对亿级数量级认证数据的化整为零,减少数据访问次数,可以快速存储和检索。

全部的证书数据分为若干个分区文件进行存储,需要对检索字段sn进行分区,假如需要分成3个文件区域,分别将键值字符串的ASCII码值逐个累加转为十进制数字,根据提供的分区数量进行取模,即可转为特定的分区编号。示例中的SN1~SN4分别为65/3=2、66/3=0、67/3=1、68/3=2。可以将SN2定位到分区1中存储,将SN3定位到分区2中存储,将SN1和SN4定位到分区3中存储。成功存储后,该证书数据同步更新到内存的热数据缓存结构中。

(三)热数据缓存检索

新型KV数据库缓存系统提供优化的与存储数据相适应的热数据键值对认证数据内存缓存机制,其机制为在内存中申请内存容量允许范围的空间,依据指定分区个数分区若干个哈希结构进行管理,将从磁盘存储中特定的分区文件的认证数据的访问,包括添加、修改,都对应在特定内存哈希结构中进行缓存,当对磁盘存储中特定的分区文件的认证数据进行检索之前,首先在特定内存哈希结构中进行检索,检索到即返回,内存检索不到再从分区磁盘存储中特定的分区文件的认证数据进行检索,检索到在特定内存哈希结构中进行缓存后返回,如果将认证数据从磁盘存储中特定的分区文件进行成功删除后,需要对应在特定内存哈希结构中进行删除。使用该内存缓存机制,第一利用了内存的访问速度明显快于磁盘的访问速度,第二内存申请的空间数量小于磁盘空间数量,所容纳的认证数据基本为访问的热数据,申请的内存空间需要循环利用,常访问的热数据在运行一段时间之后基本都从内存中可以检索到。

内存的热数据缓存结构与分区存储的结构相对应,只是限制于内存大小,在检索时首先检索热数据,没有再检索硬盘分区存储数据,成功检索后,该证书数据同步更新到内存的热数据缓存结构中。如检索SN2后,即在内存,下次可直接检索出SN2。

(1)数据第一次被访问,加入到访问历史列表;

(2)如果数据在访问历史列表里后没有达到K次访问,则按照规则淘汰;

(3)当访问历史队列中的数据访问次数达到K次后,将数据索引从历史队列删除,将数据移到缓存队列中,并缓存此数据,缓存队列重新按照时间排序;

(4)缓存数据队列中被再次访问后,重新排序;

(5)需要淘汰数据时,淘汰缓存队列中排在末尾的数据,即淘汰“倒数第K次访问离现在最久”的数据。

四、实现和验证

本文通过融合改造轻型目录访问协议、基于哈希和内分区的认证数据存储方法、热数据缓存检索方法等多种技术方法,从原理上设计了一种新的认证数据快速存储及检索的方法,并构建了新型KV数据库的原型系统。

根据网络身份认证服务应用场景特点,完成了基于轻型数据访问协议的业务适配、模拟业务场景的功能测试、单机和集群两种部署模式的性能对比测试。在具备一定规模的基础数据环境下,业务方通过API与数据库建立网络连接,并向数据库发起查询请求,其中请求数据包括已缓存的热数据和查磁盘的冷数据。测试场景包括不同数据结构下的高并发精确查询、混合读写、批量文件导入,初步验证了新型KV数据库原型系统的功能和性能可以基本满足应用场景的需要。且在亿级别基础数据规模下,数据库性能表现符合预期,测试结果均高于业务需求指标,且集群部署模式的性能较单机基本呈线性提升。

五、结语

本文研究的新型KV数据库研究成果应用于“互联网+”可信身份认证平台,为平台百亿级基础数据分区、十万级业务并发查询、百万级吞吐量的快速检索及响应提供了高效、可靠、稳定的数据服务支撑。

猜你喜欢
键值哈希内存
外部高速缓存与非易失内存结合的混合内存体系结构特性评测
非请勿进 为注册表的重要键值上把“锁”
“春夏秋冬”的内存
一键直达 Windows 10注册表编辑高招
基于OpenCV与均值哈希算法的人脸相似识别系统
基于维度分解的哈希多维快速流分类算法
基于同态哈希函数的云数据完整性验证算法
一种基于Bigram二级哈希的中文索引结构
基于内存的地理信息访问技术
注册表值被删除导致文件夹选项成空白