CN107908357B - 命名数据网转发平面pit存储结构及其数据检索方法 - Google Patents
命名数据网转发平面pit存储结构及其数据检索方法 Download PDFInfo
- Publication number
- CN107908357B CN107908357B CN201710952773.3A CN201710952773A CN107908357B CN 107908357 B CN107908357 B CN 107908357B CN 201710952773 A CN201710952773 A CN 201710952773A CN 107908357 B CN107908357 B CN 107908357B
- Authority
- CN
- China
- Prior art keywords
- data
- name
- bloom filter
- array
- deleted
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4552—Lookup mechanisms between a plurality of directories; Synchronisation of directories, e.g. metadirectories
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种命名数据网转发平面PIT存储结构,包括一个片内存储单元和一个片外存储单元;片内存储单元中具有一个可定位型布隆滤波器MBF,该MBF包含有一个BF和一个MA定位数组,BF用于判断要检索的数据名称是否在插入数据之后的PIT存储结构中,MA定位数组是与BF具有映射关系的比特数组,用于判断要检索的数据名称在字节数组Bitmap中的位置;片外存储单元具有一个字节数组Bitmap、一个CBF以及多个PacketStore,字节数组Bitmap用于存储要检索的数据名称所对应的地址偏移量,CBF与其他结构配合实现数据的插入和删除,Packet Store用于实现数据转发信息的存储。该结构可以实现快速数据检索,并可以极大降低存储消耗。
Description
技术领域
本发明属于高性能路由器结构设计领域,特别针对命名数据网(Named DataNetworking)转发平面中高性能PIT的数据名称检索问题。
背景技术
近年来,互联网规模呈现爆发性增长的趋势,AR/VR高清视频以及AI技术不断发展,使用户不再满足于传统的点到点通信方式,而是希望可以广泛分发、共享数据信息。然而基于传统TCP/IP技术的互联网通信模型逐渐暴露出IP地址空间耗尽、移动性差、安全性低等弊端,使得无法满足用户对于低延时数据传输、高质量通信的要求。为了应对TCP/IP网络的不足,一种新型未来网络架构命名数据网被提出,并得到快速发展。
与传统的TCP/IP网络不同,命名数据网使用面向数据内容的通信方式,以内容名称代替IP地址,不再关心内容存储在哪里,而仅关心内容本身。命名数据网通过在网络节点部署缓冲存储器,极大地提高了网络资源的共享率,降低了网络负载,提升了数据传输的性能。
为了实现命名数据网这一新型互联网架构,其转发平面需要部署一个全新的高效PIT存储结构,以支持更高速的数据处理操作,以及减少存储消耗。其中,无论兴趣包还是数据包到达转发平面后,都需要对PIT进行检索,因此PIT要求极高的处理速度;其次,考虑到PIT存储的数据数量可达百万级别,数据的转发信息将会消耗大量的存储空间,因此PIT需要最大化降低存储消耗,并充分考虑当前的硬件存储器技术水平以实现部署。然而,目前常用的基于Name Component Encoding(名称组件编码)方法、Hash(哈希)方法、Bloom filter(布隆滤波器)技术的PIT存储结构,都不能完全满足上述需求。
发明内容
针对现有技术,本发明提供了命名数据网转发平面PIT存储结构及其数据检索方法,其中设计了一种针对命名数据网转发平面特点的新型PIT存储结构,该结构可以实现快速数据检索操作,极大降低存储消耗,并可以部署于当前硬件环境下。
为了解决上述技术问题,本发明提出的一种命名数据网转发平面PIT存储结构及其数据检索方法,包括:命名数据网转发平面PIT存储结构的设计、在所述PIT存储结构中插入数据、对插入数据之后的PIT存储结构进行数据检索或删除;具体步骤如下:
步骤一、设计命名数据网转发平面PIT存储结构:命名数据网转发平面PIT存储结构包括一个片内存储单元和一个片外存储单元;其中,所述片内存储单元中具有一个可定位型布隆滤波器MBF,所述可定位型布隆滤波器MBF由一个通用型布隆滤波器和一个定位数组组成,其中,所述通用型布隆滤波器用于判断要检索的数据名称是否在所述插入数据之后的PIT存储结构中,所述定位数组是与所述通用型布隆滤波器具有映射关系的比特数组,用于判断要检索的数据名称在字节数组Bitmap中的位置;所述片外存储单元具有一个字节数组Bitmap、一个计数布隆滤波器CBF以及多个动态存储器,所述字节数组Bitmap用于存储要检索的数据名称所对应的地址偏移量,所述计数布隆滤波器CBF用于实现数据的插入,所述计数布隆滤波器CBF与通用型布隆滤波器实现数据的删除,所述动态存储器用于实现数据转发信息的存储;
步骤二、在步骤一所设计的命名数据网转发平面PIT存储结构中插入数据,每插入一个数据的过程包括:
步骤2-1、定位数组初始化:将定位数组中的所有比特位初始化为0;
步骤2-2、输入数据名称:将数据名称输入到上述的命名数据网转发平面PIT存储结构中;
步骤2-3、对该数据名称进行K次哈希编码:所述哈希函数选用CityHash256,同时,根据通用型布隆滤波器的大小来确定编码长度及编码次数K值;
步骤2-4、将K次哈希操作所映射到的通用型布隆滤波器的比特位数值全置为1:即如果哈希操作映射到通用型布隆滤波器的一个比特位,则该比特位置1,通过K次哈希操作后数据名称被插入到通用型布隆滤波器中;
步骤2-5、将K次哈希操作所映射到的计数布隆滤波器CBF的计数器加1:即如果哈希操作映射到计数布隆滤波器CBF的一个计数器,则该计数器加1,通过K次哈希操作后数据名称被插入到计数布隆滤波器CBF中;
步骤2-6、计算定位数组的数值:根据数据名称的K次哈希操作在通用型布隆滤波器中的映射值,计算得出定位数组的数值;
步骤2-7、计算该数据名称在字节数组Bitmap中的位置:根据步骤2-6中得出的定位数组的数值计算该数据名称在字节数组Bitmap中的第几部分的第几槽;
步骤2-8、为该数据名称分配地址偏移量:根据步骤2-7得到的该数据名称插入到所在部分的顺序为该数据名称标序号,该序号即为该数据名称在片外存储单元的动态存储器中的地址偏移量,并将该地址偏移量存储在该数据名称所在的字节数组Bitmap的槽内;
步骤2-9、将数据转发信息存储于动态存储器:根据步骤2-8分配的该数据名称的地址偏移量和动态存储器的基地址为该数据名称分配存储空间,并将与该数据名称对应的转发信息存储于该存储空间内;至此,完成了一个数据的插入操作;
步骤三、进行数据检索或是数据删除,分别为:
3-1)对一个数据检索的步骤如下:
步骤3-1-1、定位数组初始化:将定位数组中的所有比特位初始化为0;
步骤3-1-2、输入数据名称:将数据名称输入到上述的命名数据网转发平面PIT存储结构中;
步骤3-1-3、对该输入的数据名称进行K次哈希编码:采用CityHash256,并取步骤2-3确定的编码长度及编码次数K值对该数据名称进行K次哈希编码;
步骤3-1-4、判断K次哈希操作所映射的通用型布隆滤波器的比特位数值是否全为1:若映射值全为1,则该输入的数据名称存在于命名数据网转发平面PIT存储结构中,并继续执行步骤3-1-5,完成检索;否则,该输入的数据名称不存在于该命名数据网转发平面PIT存储结构中,终止检索;
步骤3-1-5、计算定位数组的数值:根据该输入的数据名称的K次哈希操作在通用型布隆滤波器中的映射值,计算得到定位数组的数值;
步骤3-1-6、计算该输入的数据名称在字节数组Bitmap中的位置:根据定位数组的数值计算该输入的数据名称在字节数组Bitmap中的具体位置,即在字节数组Bitmap中的第几部分的第几个槽;
步骤3-1-7、读取该数据名称的地址偏移量:读取与该输入的数据名称所对应的字节数组Bitmap中具体位置所存储的地址偏移量;
步骤3-1-8、输出检索结果:根据步骤3-1-7读取的该数据名称的地址偏移量以及该数据名称所对应的动态存储器的基地址,找到该数据名称在片外存储单元的动态存储器的存储空间,并读取该存储空间内的数据转发信息,该数据转发信息即为检索结果;
3-2)对一个数据删除的步骤如下:
步骤3-2-1、定位数组初始化:将定位数组中的所有比特位初始化为0;
步骤3-2-2、输入待删除的数据名称:将待删除的数据名称输入到上述的命名数据网转发平面PIT存储结构中;
步骤3-2-3、对待删除的数据名称进行K次哈希编码:采用CityHash256,并取步骤2-3确定的编码长度及编码次数K值对该数据名称进行K次哈希编码;
步骤3-2-4、读取待删除的数据名称的K次哈希操作在通用型布隆滤波器中的映射值;
步骤3-2-5、计算定位数组的数值及计算待删除数据名称在字节数组Bitmap中的位置:根据待删除数据名称的K次哈希操作在通用型布隆滤波器中的映射值,计算得出定位数组的数值;根据上述得出的定位数组的数值计算待删除数据名称在字节数组Bitmap中的第几部分的第几槽;
步骤3-2-6、读取待删除数据名称的地址偏移量:读取与待删除数据名称所对应的字节数组Bitmap中具体位置所存储的地址偏移量;
步骤3-2-7、将待删除数据名称的转发信息删除:根据步骤3-2-6读取的待删除数据名称的地址偏移量以及待删除数据名称所对应的动态存储器的基地址,找到该数据名称在片外存储单元的动态存储器的存储空间,并删除该存储空间内的数据转发信息;
步骤3-2-8、将K次哈希操作所映射到的计数布隆滤波器CBF的计数器减1:即如果哈希操作映射到计数布隆滤波器CBF的一个计数器,则该计数器减1,通过K次哈希操作后待删除的数据名称从计数布隆滤波器CBF中删除;
步骤3-2-9、将计数布隆滤波器CBF与通用型布隆滤波器进行同步:如果待删除数据名称的K次哈希操作对应的计数布隆滤波器CBF的计数器发生由1变为0的情况,则将计数布隆滤波器CBF的计数器数值与所对应的通用型布隆滤波器进行同步;否则无需进行计数布隆滤波器CBF与通用型布隆滤波器的同步操作;至此,完成了一个数据的删除操作。
与现有技术相比,本发明的有益效果是:
本发明中设计的一种PIT存储结构主要是针对命名数据网转发平面特点所设计的一种新型的PIT存储结构,该结构可以利用一个哈希函数得到K次哈希映射值,因此利用该结构可以实现数据的快速检索操作,能够满足百万级别数据处理速度的需求。同时,该结构没有在片外存储单元使用静态存储器,而是可以利用字节数组Bitmap为插入的数据动态分配存储空间,形成动态存储器,能够极大降低存储消耗。
本发明受到国家自然科学基金项目以及中兴产学研合作项目的支持,其中,国家自然科学基金项目的名称为:信息中心网络数据平面大规模名称数据快速检索技术研究,项目批准号为61602346;中兴产学研合作项目的名称为:信息中心网络数据平面检索技术研究,项目编号为2016ZTE04-09。
附图说明
图1为本发明中命名数据网转发平面PIT存储结构的系统结构图;
图2为本发明中涉及到的数据插入到BF、MA定位数组、Bitmap的原理图;
图3为本发明数据检索方法中关于PIT存储结构数据插入操作的流程框图。
图4为本发明数据检索方法中关于PIT存储结构数据检索操作的流程框图。
图5为本发明数据检索方法中关于PIT存储结构数据删除操作的流程框图。
具体实施方式
下面结合附图和具体实施例对本发明技术方案作进一步详细描述,所描述的具体实施例仅对本发明进行解释说明,并不用以限制本发明。
本发明提出的一种命名数据网转发平面PIT存储结构及其数据检索方法,包括:命名数据网转发平面PIT存储结构的设计、在所述PIT存储结构中插入数据、对插入数据之后的PIT存储结构进行数据检索或删除。
本发明中,命名数据网转发平面PIT存储结构设计,如图1所示,命名数据网转发平面PIT存储结构包括一个片内存储单元和一个片外存储单元;其中,所述片内存储单元中具有一个可定位型布隆滤波器(Mapping Bloom filter,MBF),所述MBF由一个通用型布隆滤波器(Bloom filter,BF)和一个定位数组(Mapping Array,MA)组成,其中,所述BF用于判断要检索的数据名称是否在所述插入数据之后的PIT存储结构中,所述MA是与所述BF具有映射关系的比特数组,用于判断要检索的数据名称在字节数组Bitmap中的位置;所述片外存储单元具有一个字节数组Bitmap、一个计数布隆滤波器(Counter Bloom filter,CBF)以及多个动态存储器(Packet Store),所述字节数组Bitmap用于存储要检索的数据名称所对应的地址偏移量,所述CBF与其他结构配合实现数据的插入和删除,所述Packet Store用于实现数据转发信息的存储。
在上述所设计的命名数据网转发平面PIT存储结构中插入数据,每插入一个数据的过程如图3所示,包括:
1)MA定位数组初始化:数据插入前,将MA定位数组中的所有比特位初始化为0;
2)输入数据名称:将数据名称输入到上述的命名数据网转发平面PIT存储结构中;
3)对该数据名称进行K次哈希编码:所述哈希函数可以选用CityHash256,同时,可以根据BF的具体大小来调整并确定编码长度及编码次数K值;
4)将K次哈希操作所映射的BF的比特位数值全部置为1:即如果哈希操作映射到BF的一个比特位,则该比特位置1,通过K次哈希操作后数据名称被插入到BF中;
5)将K次哈希操作所映射到的CBF的计数器加1:即如果哈希操作映射到CBF的一个计数器,则该计数器加1,通过K次哈希操作后数据名称被插入到CBF中;
6)计算MA定位数组的数值及计算该数据名称在字节数组Bitmap中的位置:根据该数据名称的K次哈希操作在BF中的映射值,计算得出MA定位数组的数值;然后,根据上述的MA定位数组的数值计算该数据名称在字节数组Bitmap中的第几部分的第几槽内。
本发明中,为了实现由BF至MA的映射操作以计算MA定位数组的数值,首先将BF平均分为j个大小相同的部分,同时MA定位数组的大小设置为j比特。BF的每一个部分依次对应MA定位数组的一个比特位。当进行数据名称插入时,若BF中的第i(i=1,2,…,j-1,j)个部分存在哈希映射,则相应MA定位数组的第i个比特位的值将设置为1,否则该比特位的值为0。经过数据名称的K次哈希映射,最终得出j比特MA定位数组的数值。为了实现由MA定位数值计算该数据名称在Bitmap的位置,首先将Bitmap的槽个数与MA定位数组的大小设置成指数关系,即Bitmap的槽个数为2j,并平均分为N部分。然后根据该MA定位数组的数值可以计算出该数据名称在Bitmap中的第m(m=1,2,…,N-1,N)部分,以及该部分的具体槽位置。
7)为该数据名称分配地址偏移量:根据上述操作得到的该数据名称插入到所在部分的顺序为该数据名称标序号,该序号即为该数据名称在片外存储单元的Packet Store中的地址偏移量,并将该地址偏移量存储在该数据名称所在的字节数组Bitmap的槽内。
本发明中,数据名称插入到BF、MA定位数组、字节数组Bitmap的一个实例如图2所示。在数据名称插入过程中,使用K=2个哈希函数,BF的大小被设置为16比特,同时BF被等分为4份。与之相对应的MA定位数组被设置为4比特,字节数组Bitmap的槽个数设置为16,并平均分为2部分。三个数据名称O、P、Q被依次输入,每次数据名称输入前,MA定位数组的所有比特位被初始化为0。当数据名称O输入时,BF中的5和9比特位被哈希函数映射,也就是说BF的第2和第3部分存在哈希映射,因此MA定位数组的第2、3比特位的数值被设定为1,其他比特位的数值为0,则得到MA定位数组的数值为0110。然后根据该MA定位数组的数值计算出数据名称O在字节数组Bitmap的位置为第1部分的第6个槽。因为数据名称O为该部分的第一个元素,则在第6个槽内记录序号为1,即地址偏移量。同理,数据名称P和Q的MA定位数组的数值分别为:0011和1010,所对应的字节数组Bitmap中的位置为第1部分的第3个槽和第2部分的第2个槽,则分配的地址偏移量分别为2和1。
8)将数据转发信息存储于Packet Store:根据上述操作分配的该数据名称的地址偏移量和Packet Store的基地址为该数据名称分配存储空间,并将该数据名称对应的转发信息存储于该存储空间内;至此,完成了一个数据的插入操作。
如果需要对插入数据之后的PIT存储结构进行数据检索,其中,对每一个数据的检索过程如图4所示,步骤如下:
1)MA定位数组初始化:数据检索前,将MA定位数组中的所有比特位初始化为0;
2)输入数据名称:将数据名称输入到上述的PIT存储结构中;
3)对该输入的数据名称进行K次哈希编码:使用的哈希函数和上述数据插入时的相同,即采用CityHash256,并取上述数据插入时确定的编码长度及编码次数K值对该数据名称进行K次哈希编码;
4)判断K次哈希操作所映射的BF的比特位数值是否全为1:若映射值全为1,则该输入的数据名称存在于PIT存储结构中,并继续执行步骤5),完成检索;否则,该输入的数据名称不存在于该PIT存储结构中,即表明不存在检索结果,终止检索过程;
5)计算MA定位数组的数值:根据该输入的数据名称的K次哈希操作在BF中的映射值,计算得到MA定位数组的数值;
6)计算该输入的数据名称在字节数组Bitmap中的位置:根据MA定位数组的数值计算该输入的数据名称在字节数组Bitmap中的具体位置,即在字节数组Bitmap中的第几部分的第几个槽;
7)读取该数据名称的地址偏移量:读取与该输入的数据名称所对应的字节数组Bitmap 中具体位置所存储的地址偏移量;
8)输出检索结果:根据7)读取的该数据名称的地址偏移量以及该数据名称所对应的Packet Store的基地址,找到该数据名称在片外存储单元的Packet Store的存储空间,并读取该存储空间内的数据转发信息,该数据转发信息即为检索结果。
如果需要对插入数据之后的PIT存储结构进行数据删除,每删除一个数据的过程如图5所示,步骤如下:
1)MA定位数组初始化:数据删除前,将MA定位数组中的所有比特位初始化为0;
2)输入待删除的数据名称:将待删除的数据名称输入到上述的PIT存储结构中;
3)对待删除的数据名称进行K次哈希编码:使用的哈希函数和上述数据插入时的相同,即采用CityHash256,并取上述数据插入时确定的编码长度及编码次数K值对该数据名称进行K次哈希编码;
4)读取待删除的数据名称的K次哈希操作在BF中的映射值;
5)计算MA定位数组的数值及计算待删除数据名称在字节数组Bitmap中的位置:根据待删除数据名称的K次哈希操作在BF中的映射值,计算得出MA定位数组的数值;根据上述的MA定位数组的数值计算待删除数据名称在字节数组Bitmap中的第几部分的第几槽;
6)读取待删除数据名称的地址偏移量:读取与待删除数据名称所对应的字节数组Bitmap中具体位置所存储的地址偏移量;
7)将待删除数据名称的转发信息删除:根据步骤6)读取的待删除数据名称的地址偏移量以及待删除数据名称所对应的Packet Store的基地址,找到该数据名称在片外存储单元的Packet Store的存储空间,并删除该存储空间内的数据转发信息;
8)将K次哈希操作所映射到的CBF的计数器减1:即如果哈希操作映射到CBF的一个计数器,则该计数器减1,通过K次哈希操作后待删除的数据名称从CBF中删除;
9)将CBF与BF进行同步:如果待删除数据名称的K次哈希操作对应的CBF的计数器发生由1变为0的情况,则将CBF的计数器数值与所对应的BF进行同步;否则无需进行CBF与BF的同步操作。至此,完成了一个数据的删除操作;
本发明中,为了实现CBF与BF的同步,设置CBF的计数器个数与BF的比特个数相同,即CBF中每个计数器与BF的比特位一一对应。
实施例:通过使用C++语言,将本发明中的PIT存储结构设计在一台配置为IntelCore i3-3220 3.30GHz、DDR3 4GB SDRAM的PC机上进行了软件测试部署。考虑到实际的转发平面需要处理百万级别的数据,来自ALEXA和DMOZ的两百万条数据名称被输入至该PIT存储结构中。实验结果表明,该PIT存储结构可以实现1.495MPPS(Million Packet PerSecond,每秒百万数据包)的检索速度,并能将两百万条数据名称的存储消耗降低到47.64MB,同时也能够满足当前互联网络错误率低于1%的通信需求。由此表明,本发明中设计的PIT存储结构能够实现高效的数据插入及检索操作,极大降低存储消耗,具有良好的性能。
尽管上面结合附图对本发明进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨的情况下,还可以做出很多变形,这些均属于本发明的保护之内。
Claims (1)
1.一种命名数据网转发平面PIT存储结构及其数据检索方法,其特征在于,包括:命名数据网转发平面PIT存储结构的设计、在所述PIT存储结构中插入数据、对插入数据之后的PIT存储结构进行数据检索或删除;具体步骤如下:
步骤一、设计命名数据网转发平面PIT存储结构:
命名数据网转发平面PIT存储结构包括一个片内存储单元和一个片外存储单元;其中,所述片内存储单元中具有一个可定位型布隆滤波器MBF,所述可定位型布隆滤波器MBF由一个通用型布隆滤波器和一个定位数组组成,其中,所述通用型布隆滤波器用于判断要检索的数据名称是否在所述插入数据之后的PIT存储结构中,所述定位数组是与所述通用型布隆滤波器具有映射关系的比特数组,用于判断要检索的数据名称在字节数组Bitmap中的位置;所述片外存储单元具有一个字节数组Bitmap、一个计数布隆滤波器CBF以及多个动态存储器,所述字节数组Bitmap用于存储要检索的数据名称所对应的地址偏移量,所述计数布隆滤波器CBF用于实现数据的插入,所述计数布隆滤波器CBF与通用型布隆滤波器实现数据的删除,所述动态存储器用于实现数据转发信息的存储;
步骤二、在步骤一所设计的命名数据网转发平面PIT存储结构中插入数据,每插入一个数据的过程包括:
步骤2-1、定位数组初始化:将定位数组中的所有比特位初始化为0;
步骤2-2、输入数据名称:将数据名称输入到上述的命名数据网转发平面PIT存储结构中;
步骤2-3、对该数据名称进行K次哈希编码:所述哈希函数选用CityHash256,同时,根据通用型布隆滤波器的大小来确定编码长度及编码次数K值;
步骤2-4、将K次哈希操作所映射到的通用型布隆滤波器的比特位数值全置为1:即如果哈希操作映射到通用型布隆滤波器的一个比特位,则该比特位置1,通过K次哈希操作后数据名称被插入到通用型布隆滤波器中;
步骤2-5、将K次哈希操作所映射到的计数布隆滤波器CBF的计数器加1:即如果哈希操作映射到计数布隆滤波器CBF的一个计数器,则该计数器加1,通过K次哈希操作后数据名称被插入到计数布隆滤波器CBF中;
步骤2-6、计算定位数组的数值:根据数据名称的K次哈希操作在通用型布隆滤波器中的映射值,计算得出定位数组的数值;
步骤2-7、计算该数据名称在字节数组Bitmap中的位置:根据步骤2-6中得出的定位数组的数值计算该数据名称在字节数组Bitmap中的第几部分的第几槽;
步骤2-8、为该数据名称分配地址偏移量:根据步骤2-7得到的该数据名称插入到所在部分的顺序为该数据名称标序号,该序号即为该数据名称在片外存储单元的动态存储器中的地址偏移量,并将该地址偏移量存储在该数据名称所在的字节数组Bitmap的槽内;
步骤2-9、将数据转发信息存储于动态存储器:根据步骤2-8分配的该数据名称的地址偏移量和动态存储器的基地址为该数据名称分配存储空间,并将与该数据名称对应的转发信息存储于该存储空间内;
至此,完成了一个数据的插入操作;
步骤三、进行数据检索或是数据删除,分别为:
3-1)对一个数据检索的步骤如下:
步骤3-1-1、定位数组初始化:将定位数组中的所有比特位初始化为0;
步骤3-1-2、输入数据名称:将数据名称输入到上述的命名数据网转发平面PIT存储结构中;
步骤3-1-3、对该输入的数据名称进行K次哈希编码:采用CityHash256,并取步骤2-3确定的编码长度及编码次数K值对该数据名称进行K次哈希编码;
步骤3-1-4、判断K次哈希操作所映射的通用型布隆滤波器的比特位数值是否全为1:若映射值全为1,则该输入的数据名称存在于命名数据网转发平面PIT存储结构中,并继续执行步骤3-1-5,完成检索;否则,该输入的数据名称不存在于该命名数据网转发平面PIT存储结构中,终止检索;
步骤3-1-5、计算定位数组的数值:根据该输入的数据名称的K次哈希操作在通用型布隆滤波器中的映射值,计算得到定位数组的数值;
步骤3-1-6、计算该输入的数据名称在字节数组Bitmap中的位置:根据定位数组的数值计算该输入的数据名称在字节数组Bitmap中的具体位置,即在字节数组Bitmap中的第几部分的第几个槽;
步骤3-1-7、读取该数据名称的地址偏移量:读取与该输入的数据名称所对应的字节数组Bitmap中具体位置所存储的地址偏移量;
步骤3-1-8、输出检索结果:根据步骤3-1-7读取的该数据名称的地址偏移量以及该数据名称所对应的动态存储器的基地址,找到该数据名称在片外存储单元的动态存储器的存储空间,并读取该存储空间内的数据转发信息,该数据转发信息即为检索结果;
3-2)对一个数据删除的步骤如下:
步骤3-2-1、定位数组初始化:将定位数组中的所有比特位初始化为0;
步骤3-2-2、输入待删除的数据名称:将待删除的数据名称输入到上述的命名数据网转发平面PIT存储结构中;
步骤3-2-3、对待删除的数据名称进行K次哈希编码:采用CityHash256,并取步骤2-3确定的编码长度及编码次数K值对该数据名称进行K次哈希编码;
步骤3-2-4、读取待删除的数据名称的K次哈希操作在通用型布隆滤波器中的映射值;
步骤3-2-5、计算定位数组的数值及计算待删除数据名称在字节数组Bitmap中的位置:根据待删除数据名称的K次哈希操作在通用型布隆滤波器中的映射值,计算得出定位数组的数值;根据上述得出的定位数组的数值计算待删除数据名称在字节数组Bitmap中的第几部分的第几槽;
步骤3-2-6、读取待删除数据名称的地址偏移量:读取与待删除数据名称所对应的字节数组Bitmap中具体位置所存储的地址偏移量;
步骤3-2-7、将待删除数据名称的转发信息删除:根据步骤3-2-6读取的待删除数据名称的地址偏移量以及待删除数据名称所对应的动态存储器的基地址,找到该数据名称在片外存储单元的动态存储器的存储空间,并删除该存储空间内的数据转发信息;
步骤3-2-8、将K次哈希操作所映射到的计数布隆滤波器CBF的计数器减1:即如果哈希操作映射到计数布隆滤波器CBF的一个计数器,则该计数器减1,通过K次哈希操作后待删除的数据名称从计数布隆滤波器CBF中删除;
步骤3-2-9、将计数布隆滤波器CBF与通用型布隆滤波器进行同步:如果待删除数据名称的K次哈希操作对应的计数布隆滤波器CBF的计数器发生由1变为0的情况,则将计数布隆滤波器CBF的计数器数值与所对应的通用型布隆滤波器进行同步;否则无需进行计数布隆滤波器CBF与通用型布隆滤波器的同步操作;
至此,完成了一个数据的删除操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710952773.3A CN107908357B (zh) | 2017-10-13 | 2017-10-13 | 命名数据网转发平面pit存储结构及其数据检索方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710952773.3A CN107908357B (zh) | 2017-10-13 | 2017-10-13 | 命名数据网转发平面pit存储结构及其数据检索方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107908357A CN107908357A (zh) | 2018-04-13 |
CN107908357B true CN107908357B (zh) | 2020-08-21 |
Family
ID=61840574
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710952773.3A Expired - Fee Related CN107908357B (zh) | 2017-10-13 | 2017-10-13 | 命名数据网转发平面pit存储结构及其数据检索方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107908357B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110399539A (zh) * | 2018-04-19 | 2019-11-01 | 中兴通讯股份有限公司 | 一种数据处理方法、设备和计算机可读存储介质 |
CN110460528A (zh) * | 2018-05-07 | 2019-11-15 | 天津师范大学 | 命名数据网转发平面的fib存储结构及其使用方法 |
CN110704419A (zh) * | 2018-06-21 | 2020-01-17 | 中兴通讯股份有限公司 | 数据结构、数据索引方法、装置及设备、存储介质 |
CN110138661A (zh) * | 2019-04-02 | 2019-08-16 | 天津大学 | 基于神经网络的命名数据网内容存储池 |
CN110109616B (zh) * | 2019-04-02 | 2022-03-01 | 天津大学 | 基于神经网络的命名数据网内容存储池数据删除方法 |
CN110096458B (zh) * | 2019-04-02 | 2022-03-01 | 天津大学 | 基于神经网络的命名数据网内容存储池数据检索方法 |
CN110851658B (zh) * | 2019-10-12 | 2023-05-05 | 天津大学 | 树形索引数据结构、内容存储池、路由器及树形索引方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103179037A (zh) * | 2012-12-13 | 2013-06-26 | 清华大学 | 基于内容的数据中心网络的数据传输方法 |
CN103581019A (zh) * | 2013-10-10 | 2014-02-12 | 北京交通大学 | 一种基于内容流行度的信息中心网络移动性管理方法 |
CN104025555A (zh) * | 2011-07-12 | 2014-09-03 | 华为技术有限公司 | 在命名数据网络中使用多路径路由和内容缓存的无缝移动方案 |
US20160110466A1 (en) * | 2014-10-16 | 2016-04-21 | Palo Alto Research Center Incorporated | System and method for ranking named-data networking objects in a cache |
-
2017
- 2017-10-13 CN CN201710952773.3A patent/CN107908357B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104025555A (zh) * | 2011-07-12 | 2014-09-03 | 华为技术有限公司 | 在命名数据网络中使用多路径路由和内容缓存的无缝移动方案 |
CN103179037A (zh) * | 2012-12-13 | 2013-06-26 | 清华大学 | 基于内容的数据中心网络的数据传输方法 |
CN103581019A (zh) * | 2013-10-10 | 2014-02-12 | 北京交通大学 | 一种基于内容流行度的信息中心网络移动性管理方法 |
US20160110466A1 (en) * | 2014-10-16 | 2016-04-21 | Palo Alto Research Center Incorporated | System and method for ranking named-data networking objects in a cache |
Non-Patent Citations (1)
Title |
---|
"内容中心网络转发平面数据快速检索研究";李卓;《中国博士学位论文全文数据库 信息科技辑》;20160815;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN107908357A (zh) | 2018-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107908357B (zh) | 命名数据网转发平面pit存储结构及其数据检索方法 | |
CN107832343B (zh) | 一种基于位图的mbf数据索引结构对数据快速检索的方法 | |
CN107204198B (zh) | 高速访问双倍速率同步动态随机存储器的控制方法及装置 | |
US7366865B2 (en) | Enqueueing entries in a packet queue referencing packets | |
US7733892B2 (en) | Buffer management method based on a bitmap table | |
CN109690500A (zh) | 使用在以处理器为基础的系统中的空间服务质量(QoS)标记提供异质存储器系统的弹性管理 | |
US10042576B2 (en) | Method and apparatus for compressing addresses | |
JP7074839B2 (ja) | パケット処理 | |
CN106326134A (zh) | Ftl地址映射的方法及装置 | |
CN101162441B (zh) | 数据的存取装置和方法 | |
US11385900B2 (en) | Accessing queue data | |
US11748279B2 (en) | System on chip, access command routing method, and terminal | |
CN117312201B (zh) | 一种数据传输方法、装置及加速器设备、主机和存储介质 | |
CN107451070B (zh) | 一种数据的处理方法和服务器 | |
CN107391672A (zh) | 数据的读写方法及消息化的分布式文件系统 | |
CN106598502A (zh) | 数据存储方法和系统 | |
CN113923061B (zh) | 基于智能网卡的gpu网络通信方法、智能网卡、介质、设备 | |
CN101420465A (zh) | 在地址转换表中映射源端口的方法及网络地址转换设备 | |
CN115190102A (zh) | 信息广播方法、装置、电子单元、soc及电子设备 | |
CN110633226A (zh) | 融合存储器、存储系统及深度学习计算方法 | |
US7099321B2 (en) | Symmetric dual-slot data hash method and network switching apparatus using same | |
CN106302174A (zh) | 一种实现路由查找的方法及装置 | |
WO2024001414A1 (zh) | 报文的缓存方法、装置、电子设备及存储介质 | |
US11895043B2 (en) | Method for accessing system memory and associated processing circuit within a network card | |
CN109634514A (zh) | 一种芯片存储器的读、写数据方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20200821 Termination date: 20211013 |
|
CF01 | Termination of patent right due to non-payment of annual fee |