CN103678553A - 基于共享内存设计的无线终端数据库构建方法 - Google Patents
基于共享内存设计的无线终端数据库构建方法 Download PDFInfo
- Publication number
- CN103678553A CN103678553A CN201310655909.6A CN201310655909A CN103678553A CN 103678553 A CN103678553 A CN 103678553A CN 201310655909 A CN201310655909 A CN 201310655909A CN 103678553 A CN103678553 A CN 103678553A
- Authority
- CN
- China
- Prior art keywords
- wireless terminal
- shared drive
- bitmap
- terminal
- shared memory
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2308—Concurrency control
- G06F16/2336—Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
- G06F16/2343—Locking methods, e.g. distributed locking or locking implementation details
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明涉及一种基于共享内存设计的无线终端数据库构建方法,包括以下步骤:1)对每一个无线终端的用户表进行划分,并使用位图来分配每个无线终端的ID;2)利用位图分配的ID来标识无线终端的关键字,并通过利用非指针链表进行遍历共享内存中的哈希表;3)在共享内存中为每个进程设置一个标志位,用于标识该进程是否对共享内存中终端数据加锁,在进程重启加载共享内存后,检查该标志位是否加锁,若加锁,则先执行释放该锁。与现有技术相比,本发明具有节省内存空间、避免由于指针带来的多进程空间加载共享内存访问越界的情况、解决了多进程访问共享内存这块临界区导致的该临界区信息锁永远无法释放的问题等优点。
Description
技术领域
本发明涉及一种无线终端数据库构建方法,尤其是涉及一种基于共享内存设计的无线终端数据库构建方法。
背景技术
无线终端数据管理中,终端的mac、ip、流量、时长等需要被监管,多个业务进程使用共享内存访问这些终端的数据信息,相对与其它的存储介质,共享内存访问速度有较大的提升。
传统共享内存空闲空间分配若使用链表方法,链表本身结构额外在共享内存需要占用大量内存,对于临界区紧缺的共享内存,需要更加合理的优化共享内存大小。
传统共享内存空间被多进程加载地址要么是根据每个进程空闲的地址空间随机分配,要么是指定将要加载到每个进程的地址,对于这两种加载方式,随机分配或者当指定的加载地址已经被该进程加载后,无线终端数据中的一些指针索引,将会出现偏差,造成越界访问。
传统共享内存互斥锁,对于解决正常多进程访问临界区能起到有效保护,若获取锁的进程此时崩溃,直接导致共享内存中的锁永远无法被释放。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种基于共享内存设计的无线终端数据库构建方法,节省内存空间、避免由于指针带来的多进程空间加载共享内存访问越界的情况、解决了多进程访问共享内存这块临界区导致的该临界区信息锁永远无法释放的问题。
本发明的目的可以通过以下技术方案来实现:
一种基于共享内存设计的无线终端数据库构建方法,其特征在于,包括以下步骤:
1)对每一个无线终端的用户表进行划分,并使用位图来分配每个无线终端的ID;
2)利用位图分配的ID来标识无线终端的关键字,并通过非指针链表进行遍历共享内存中的哈希表;
3)在共享内存中为每个进程设置一个标志位,用于标识该进程是否对共享内存中终端数据加锁,在进程重启加载共享内存后,检查该标志位是否加锁,若加锁,则先执行释放该锁。
所述的对每一个无线终端的用户表进行划分,并使用位图来分配每个无线终端的ID具体为:
无线终端上线后发送鉴权关联报文,经过无线接入模块通知终端管理模块终端接入的基本信息,共享内存中利用位图数据结构,使用bit来标识该ID是否被分配出去,寻找到ID最小的未被分配出去的终端信息存储位置;
之后利用终端MAC进行哈希散列到MAC哈希表中,建立终端存储位置信息与MAC哈希表关联,等待DHCP或者其他终端的IP分配模块通知终端管理模块IP信息,将IP信息进行哈希散列到IP的哈希表中,建立终端存储位置信息与IP哈希表关联。
所述的利用非指针链表进行遍历共享内存中的哈希表具体为:
共享内存中链表利用位图分配的ID来代替MAC哈希与IP哈希链表的next与prev指针,即通过MAC与IP索引到哈希桶后的遍历该键值的链表,该链表并未存储下一个或者上一个哈希到相同键值的终端的指针,而是位图分配的ID。
终端信息存储与哈希表共同存储在共享内存当中。
与现有技术相比,本发明具有以下优点:
1)位图用于标识共享内存分配方式与用户结构信息,相对于传统的链表,不但节省了内存空间,更加能够适应整个无指针的共享内存。
2)非指针哈希表与链表的设计,避免由于指针带来的多进程空间加载共享内存访问越界的情况。
3)多进程加锁信息可以很好的避免多进程对共享内存中的临界区访问中的异常。
附图说明
图1为基本链表的示意图;
图2为共享内存与不同进程的内存关系示意图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。
实施例
一种基于共享内存设计的无线终端数据库构建方法,包括以下步骤:
1)对每一个无线终端的用户表进行划分,并使用位图来分配每个无线终端的ID;
2)对于加载地址空间偏差造成的指针偏差,本发明利用位图分配的ID来标识终端的关键字,不使用指针的类哈希表与类链表,并且封装出接口给其他模块调用,克服由于加载地址不一致,导致根据指针索引访问终端信息失败;
对于无线终端的关键字MAC与IP等,给出对应的索引,其他模块通过MAC与IP即可直接从共享内存中找到对应无线终端信息,从而即达到了减少了使用查找其他介质存储而多花费的时间,又能够正确的访问到内存数据。
3)对于共享内存中由于进程崩溃导致的锁无法释放问题,在共享内存中为每个进程设置一个标志位,用于标识该进程是否对共享内存中终端数据加锁,在进程重启加载共享内存后,检查该标志位是否加锁,若加锁,则先执行释放该锁,即使进程重启,该终端信息被加的锁依然能够释放,从而保证共享内存的锁特性。
如图1所示,基本链表存放在无线终端信息中,图中next与prev均使用位图分配的ID来寻找终端位置,同时设置了一个头尾结点来标识该哈希键值下非指针的链表,查找终端通过遍历链表比对MAC/IP等关键信息来实现。
如图2所示,表示共享内存与不同进程的内存关系,由于操作***的内存地址空间是一个4G的线性地址空间,3G以上为内核态进程空间,共享内存申请出来的内存存放在操作***的3G以下线性地址空间中。普通进程地址空间是相互独立的一个4G空间,并非是线性地址上,其他进程通过地址映射技术将这个内存映射到自己的地址空间内;图2中用户数据库用来标识真正存放用户信息的位置,其下方为一块存放MAC与IP的哈希桶,不同进程根据需求从哈希桶中获取到终端信息存储位置,进而去访问。进程A、B、X分别将这块共享内存映射到了自己不同的地址空间内,对用户数据进行访问,由于整个共享内存中并未存储指针,所以,在索引查找终端信息时,不会由于每个进程将共享内存映射到自己地址空间不一样而访问失败或者访问越界。图2最下方为一个存放不同模块的模块锁,用来标识哪个模块正在访问共享内存数据。
本发明相对于现有方案的优点是:
(1)位图在一个8192*128大小的用户表中,相对于500M的整个共享内存空间,能够节省20M的内存空间。
(2)相对于指定地址加载方式,在内存使用高的进程中,指定加载的地址可能会被使用而造成加载偏移;
相对于随机分配方式,为每个进程在共享内存保留一个偏移信息来解决多进程加载共享内存偏移这个问题,本发明不会导致由于偏移计算错误导致另外引入的越界问题。
(3)解决了多进程访问共享内存这块临界区导致的该临界区信息锁永远无法释放的问题。
Claims (3)
1.一种基于共享内存设计的无线终端数据库构建方法,其特征在于,包括以下步骤:
1)对每一个无线终端的用户表进行划分,并使用位图来分配每个无线终端的ID;
2)利用位图分配的ID来标识无线终端的关键字,并通过非指针链表进行遍历共享内存中的哈希表;
3)在共享内存中为每个进程设置一个标志位,用于标识该进程是否对共享内存中终端数据加锁,在进程重启加载共享内存后,检查该标志位是否加锁,若加锁,则先执行释放该锁。
2.根据权利要求1所述的无线终端数据库构建方法,其特征在于,所述的对每一个无线终端的用户表进行划分,并使用位图来分配每个无线终端的ID具体为:
无线终端上线后发送鉴权关联报文,经过无线接入模块通知终端管理模块终端接入的基本信息,共享内存中利用位图数据结构,使用bit来标识该ID是否被分配出去,寻找到ID最小的未被分配出去的终端信息存储位置;
之后利用终端MAC进行哈希散列到MAC哈希表中,建立终端存储位置信息与MAC哈希表关联,等待DHCP或者其他终端的IP分配模块通知终端管理模块IP信息,将IP信息进行哈希散列到IP的哈希表中,建立终端存储位置信息与IP哈希表关联。
3.根据权利要求1所述的无线终端数据库构建方法,其特征在于,所述的利用非指针链表进行遍历共享内存中的哈希表具体为:
共享内存中链表利用位图分配的ID来代替MAC哈希与IP哈希链表的next与prev指针,即通过MAC与IP索引到哈希桶后的遍历该键值的链表,该链表并未存储下一个或者上一个哈希到相同键值的终端的指针,而是位图分配的ID。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310655909.6A CN103678553A (zh) | 2013-12-06 | 2013-12-06 | 基于共享内存设计的无线终端数据库构建方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310655909.6A CN103678553A (zh) | 2013-12-06 | 2013-12-06 | 基于共享内存设计的无线终端数据库构建方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103678553A true CN103678553A (zh) | 2014-03-26 |
Family
ID=50316098
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310655909.6A Pending CN103678553A (zh) | 2013-12-06 | 2013-12-06 | 基于共享内存设计的无线终端数据库构建方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103678553A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104954351A (zh) * | 2014-05-23 | 2015-09-30 | 腾讯科技(深圳)有限公司 | 数据检测方法和装置 |
CN106663062A (zh) * | 2014-04-30 | 2017-05-10 | 甲骨文国际公司 | 在事务性中间件机器环境中提供分布式事务锁的***和方法 |
CN107797864A (zh) * | 2017-10-19 | 2018-03-13 | 浪潮金融信息技术有限公司 | 进程资源方法及装置、计算机可读存储介质、终端 |
CN110019232A (zh) * | 2017-12-27 | 2019-07-16 | 中移(杭州)信息技术有限公司 | 一种报文保存方法及装置 |
CN113032162A (zh) * | 2021-03-23 | 2021-06-25 | 重庆智行者信息科技有限公司 | 一种基于共享内存备份机制的多进程通讯方法 |
CN113297114A (zh) * | 2021-05-21 | 2021-08-24 | 清创网御(合肥)科技有限公司 | 一种基于加密卡pcie独立io支持多进程、多线程的方法 |
CN113342805A (zh) * | 2021-04-21 | 2021-09-03 | 湖北微源卓越科技有限公司 | 多进程共享数据的***及方法 |
CN113515527A (zh) * | 2021-09-13 | 2021-10-19 | 成都数默科技有限公司 | 一种聚合型ip索引的建立和应用方法 |
CN113688068A (zh) * | 2021-10-25 | 2021-11-23 | 支付宝(杭州)信息技术有限公司 | 图数据加载方法及装置 |
CN111061724B (zh) * | 2019-11-08 | 2023-11-14 | 珠海许继芝电网自动化有限公司 | 用于配电自动化***的高速实时数据库管理方法和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6578131B1 (en) * | 1999-04-27 | 2003-06-10 | Microsoft Corporation | Scaleable hash table for shared-memory multiprocessor system |
CN101676906A (zh) * | 2008-09-18 | 2010-03-24 | 中兴通讯股份有限公司 | 一种利用位图对内存数据库空间进行管理的方法 |
CN102195853A (zh) * | 2010-03-09 | 2011-09-21 | 杭州华三通信技术有限公司 | 一种保存位图的方法和装置 |
US20130097357A1 (en) * | 2011-10-18 | 2013-04-18 | Industrial Technology Research Institute | Method for identifying memory of virtual machine and computer system thereof |
CN103117931A (zh) * | 2013-02-21 | 2013-05-22 | 烽火通信科技股份有限公司 | 基于哈希表和tcam表的mac地址硬件学习方法及*** |
-
2013
- 2013-12-06 CN CN201310655909.6A patent/CN103678553A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6578131B1 (en) * | 1999-04-27 | 2003-06-10 | Microsoft Corporation | Scaleable hash table for shared-memory multiprocessor system |
CN101676906A (zh) * | 2008-09-18 | 2010-03-24 | 中兴通讯股份有限公司 | 一种利用位图对内存数据库空间进行管理的方法 |
CN102195853A (zh) * | 2010-03-09 | 2011-09-21 | 杭州华三通信技术有限公司 | 一种保存位图的方法和装置 |
US20130097357A1 (en) * | 2011-10-18 | 2013-04-18 | Industrial Technology Research Institute | Method for identifying memory of virtual machine and computer system thereof |
CN103117931A (zh) * | 2013-02-21 | 2013-05-22 | 烽火通信科技股份有限公司 | 基于哈希表和tcam表的mac地址硬件学习方法及*** |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106663062A (zh) * | 2014-04-30 | 2017-05-10 | 甲骨文国际公司 | 在事务性中间件机器环境中提供分布式事务锁的***和方法 |
CN106663062B (zh) * | 2014-04-30 | 2019-08-16 | 甲骨文国际公司 | 在事务性中间件机器环境中提供分布式事务锁的***和方法 |
CN104954351B (zh) * | 2014-05-23 | 2018-05-04 | 腾讯科技(深圳)有限公司 | 数据检测方法和装置 |
CN104954351A (zh) * | 2014-05-23 | 2015-09-30 | 腾讯科技(深圳)有限公司 | 数据检测方法和装置 |
CN107797864A (zh) * | 2017-10-19 | 2018-03-13 | 浪潮金融信息技术有限公司 | 进程资源方法及装置、计算机可读存储介质、终端 |
CN110019232A (zh) * | 2017-12-27 | 2019-07-16 | 中移(杭州)信息技术有限公司 | 一种报文保存方法及装置 |
CN111061724B (zh) * | 2019-11-08 | 2023-11-14 | 珠海许继芝电网自动化有限公司 | 用于配电自动化***的高速实时数据库管理方法和装置 |
CN113032162A (zh) * | 2021-03-23 | 2021-06-25 | 重庆智行者信息科技有限公司 | 一种基于共享内存备份机制的多进程通讯方法 |
CN113032162B (zh) * | 2021-03-23 | 2023-10-24 | 重庆兰德适普信息科技有限公司 | 一种基于共享内存备份机制的多进程通讯方法 |
CN113342805A (zh) * | 2021-04-21 | 2021-09-03 | 湖北微源卓越科技有限公司 | 多进程共享数据的***及方法 |
CN113297114B (zh) * | 2021-05-21 | 2022-12-06 | 清创网御(合肥)科技有限公司 | 一种基于加密卡pcie独立io支持多进程、多线程的方法 |
CN113297114A (zh) * | 2021-05-21 | 2021-08-24 | 清创网御(合肥)科技有限公司 | 一种基于加密卡pcie独立io支持多进程、多线程的方法 |
CN113515527A (zh) * | 2021-09-13 | 2021-10-19 | 成都数默科技有限公司 | 一种聚合型ip索引的建立和应用方法 |
CN113688068A (zh) * | 2021-10-25 | 2021-11-23 | 支付宝(杭州)信息技术有限公司 | 图数据加载方法及装置 |
CN113688068B (zh) * | 2021-10-25 | 2022-02-15 | 支付宝(杭州)信息技术有限公司 | 图数据加载方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103678553A (zh) | 基于共享内存设计的无线终端数据库构建方法 | |
TWI662426B (zh) | 分布式流式資料處理的方法和裝置 | |
CN102331993B (zh) | 分布式数据库的数据迁移方法和分布式数据库迁移*** | |
CA3154919A1 (en) | Data object identification generating method, device, computer equipment and storage medium | |
CN102495857B (zh) | 一种分布式数据库的负载均衡方法 | |
US20080243966A1 (en) | System and method for managing temporary storage space of a database management system | |
CN105677578A (zh) | 一种3d闪存的控制方法及控制*** | |
CN103049390A (zh) | 应用元数据的数据处理方法及存储*** | |
CN105260314A (zh) | 内存泄漏的监测方法 | |
US9047174B2 (en) | Method and system for hierarchically managing storage resources | |
CN105320654A (zh) | 动态布隆过滤器和基于动态布隆过滤器的元素操作方法 | |
CN105426321A (zh) | 采用远程位置信息的rdma友好缓存方法 | |
CN104516912A (zh) | 一种动态的数据存储方法及装置 | |
CN102088484A (zh) | 一种分布式文件***的写锁定方法及*** | |
CN104731799A (zh) | 内存数据库管理装置 | |
CN104331453A (zh) | 一种分布式文件***及分布式文件***的构建方法 | |
WO2020168522A1 (zh) | 一种片上***、访问命令的路由方法及终端 | |
CN106446038A (zh) | 基于混合数据库的数据访问控制***及方法 | |
CN103383690A (zh) | 分布式数据存储方法及*** | |
CN109032817B (zh) | 一种电能质量管理***共享内存实现方法 | |
CN104598615A (zh) | 一种支持数据持久化的内存存取方法和装置 | |
CN103218305A (zh) | 存储空间的分配方法 | |
US20120206981A1 (en) | Method and device for writing data | |
US20220107752A1 (en) | Data access method and apparatus | |
CN106155910B (zh) | 一种实现内存访问的方法、装置和*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20140326 |
|
RJ01 | Rejection of invention patent application after publication |