CN111143357A - 一种基于共享内存的高速数据查询平台 - Google Patents
一种基于共享内存的高速数据查询平台 Download PDFInfo
- Publication number
- CN111143357A CN111143357A CN201911281482.1A CN201911281482A CN111143357A CN 111143357 A CN111143357 A CN 111143357A CN 201911281482 A CN201911281482 A CN 201911281482A CN 111143357 A CN111143357 A CN 111143357A
- Authority
- CN
- China
- Prior art keywords
- data
- memory
- channel
- shared
- 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
- 238000013500 data storage Methods 0.000 claims abstract description 8
- 230000006870 function Effects 0.000 claims description 7
- 238000004891 communication Methods 0.000 claims description 4
- 238000004458 analytical method Methods 0.000 claims description 3
- 238000007726 management method Methods 0.000 abstract description 4
- 238000000034 method Methods 0.000 description 16
- 230000008569 process Effects 0.000 description 16
- 238000002360 preparation method Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000004140 cleaning Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
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
-
- 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
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于共享内存的高速数据查询平台,具体涉及计算机数据存储检索领域,包括控制台工具,所述控制台工具的连接端设有共享内存,所述共享内存的连接端设有数据通道,所述共享内存的输入端通过API连接有客户端。本发明通过共享内存作为存储载体,数据加载完毕后,直接使用平台提供的API按照既定的算法访问共享内存上的数据,对于项目中要求频繁查询数据的场合,应用程序数据查询效率大幅度提高,应用程序编程时不需要考虑数据库数据访问的压力问题,把数据缓存到本地内存再进行管理,为应用客户端提供真正高速的数据查询服务。
Description
技术领域
本发明涉及计算机数据存储检索领域,更具体地说,本发明涉及一种基于共享内存的高速数据查询平台。
背景技术
随着信息化的不断深入发展,数据生成速度正在提高,需要处理的数据量急速膨胀,大数据时代即将到来,所谓大数据指所涉及的数据量规模巨大,以至于无法通过主流软件在合理的时间内进行处理的数据,在面对海量数据时,传统关系数据库虽然具有支持完整性约束、支持事务等优点,但是在大规模海量数据面前显得力不从心,传统关系数据库主要存在以下问题,一是在数据格式转化和存储方面无法满足海量数据处理对性能的要求;二是无法满足动态扩展和高可用性的需求;三是传统大型关系数据库通常运行在大型设备上,成本高昂,大数据对数据的存储和处理方法提出了新的要求,如何有效地对这些大规模数据进行存储、查询、分析,已经成为一个亟待解决的问题。
在高速数据存储于检索方面,目前市面上有不少的开源产品,能提供比较高速的数据存储于检索效率以及比较高的并发访问量,但目前市面上的所有的产品基本上都是基于网络服务模式的,数据的查询效率不可避免的会被协议编解码转换,以及网络通信本身的延迟所影响,即使以性能著称的内存数据库服务,每秒对于单客户顿的交互次数最多也仅为一万次左右,同时对于不同客户端的请求,服务端相应则需要排队处理,无法做到实际意义上的并发访问,在对某些需要非常高速访问数据的场合,比如说,应用客户端需要频繁的请求数据,同时客户端对调用访问数据接口的时延有严格要求的时候,这些产品就显得力不从心。
故需要一种基于共享内存的高速数据查询平台。
发明内容
为了克服现有技术的上述缺陷,本发明的实施例提供一种基于共享内存的高速数据查询平台,通过共享内存作为存储载体,数据加载完毕后,直接使用平台提供的API按照既定的算法访问共享内存上的数据,对于项目中要求频繁查询数据的场合,应用程序数据查询效率大幅度提高,应用程序编程时不需要考虑数据库数据访问的压力问题,把数据缓存到本地内存再进行管理,为应用客户端提供真正高速的数据查询服务。
为实现上述目的,本发明提供如下技术方案:一种基于共享内存的高速数据查询平台,包括控制台工具,所述控制台工具的连接端设有共享内存,所述共享内存的连接端设有数据通道,所述共享内存的输入端通过API连接有客户端;
所述控制台工具用于控制平台的建立、初始化、格式化、数据清除和内存分析功能;
所述共享内存用于作为数据存放载体,所述共享内存内部存储有数据库;
所述数据通道用于数据之间的通信以及数据申请;
所述客户端通过API连接数据库以及数据通道之后,可以实现常用的增删改查等操作来完成业务逻辑的调用。
在一个优选地实施方式中,所述数据通道的个数需要在建立时进行规定,同时需要规定每个数据通道包含的索引空间的大小,每个所述数据通道包含独立的数据空间视图,数据只存在于一个数据通道之中,不同数据通道之间的数据互相不可见,不同所述数据通道共享整个共享内存的存储空间。
在一个优选地实施方式中,所述共享内存内部空闲的内存空间初始化的时候会被分割成固定大小的内存页,被平台统一管理,所述通道数据需要使用内存时的步骤如下:
(1)所述通道数据向平台申请一个内存页,然后在内存页上建立索引节点或者数据节点,并存入数据;
(2)系统内存页池可以接受所有通道的数据申请,一旦某个内存页被申请后,只会属于某个申请到此内存页的通道。
在一个优选地实施方式中,每个所述数据通道内会维护本通道的内存页链表以及空闲内存页链表,需要空间的时候首先查看已存在的空闲空间,如若不够则向系统申请。
在一个优选地实施方式中,本平台不提供服务端模块,所有的功能均在提供的API中实现。
在一个优选地实施方式中,为了跟普通的关系数据库模型兼容,从而提供了数据表的概念,支持二级索引,如调用的时候可以使用key-key-value的模式来存取数据,第一级的key对应为关系数据库中的表,第二级的key对应于表中的索引字段。
本发明的技术效果和优点:
1、本发明通过共享内存作为存储载体,数据加载完毕后,直接使用平台提供的API按照既定的算法访问共享内存上的数据,对于项目中要求频繁查询数据的场合,应用程序数据查询效率大幅度提高,应用程序编程时不需要考虑数据库数据访问的压力问题,把数据缓存到本地内存再进行管理,为应用客户端提供真正高速的数据查询服务;
2、对于某些特殊的大并发量的访问场合,使用不同的数据通道隔开操作,可以提供比常用内存数据库(比如说redis)访问极限高的多的并发访问量。
附图说明
图1为本发明的参数服务程序流程图;
图2为本发明的网络数据查询服务系统图;
图3为本发明的利用平台进行实时用户的session管理图;
具体实施方式
下面将结合本发明中的实施例,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1:
本发明提供了一种基于共享内存的高速数据查询平台,包括控制台工具,所述控制台工具的连接端设有共享内存,所述共享内存的连接端设有数据通道,所述共享内存的输入端通过API连接有客户端;
所述控制台工具用于控制平台的建立、初始化、格式化、数据清除和内存分析功能;
所述共享内存用于作为数据存放载体,所述共享内存内部存储有数据库;
所述数据通道用于数据之间的通信以及数据申请;
所述客户端通过API连接数据库以及数据通道之后,可以实现常用的增删改查等操作来完成业务逻辑的调用。
所述数据通道的个数需要在建立时进行规定,同时需要规定每个数据通道包含的索引空间的大小,每个所述数据通道包含独立的数据空间视图,数据只存在于一个数据通道之中,不同数据通道之间的数据互相不可见,不同所述数据通道共享整个共享内存的存储空间。
所述共享内存内部空闲的内存空间初始化的时候会被分割成固定大小的内存页,被平台统一管理,所述通道数据需要使用内存时的步骤如下:
(1)所述通道数据向平台申请一个内存页,然后在内存页上建立索引节点或者数据节点,并存入数据;
(2)系统内存页池可以接受所有通道的数据申请,一旦某个内存页被申请后,只会属于某个申请到此内存页的通道。
每个所述数据通道内会维护本通道的内存页链表以及空闲内存页链表,需要空间的时候首先查看已存在的空闲空间,如若不够则向系统申请。
本平台不提供服务端模块,所有的功能均在提供的API中实现。
为了跟普通的关系数据库模型兼容,从而提供了数据表的概念,支持二级索引,如调用的时候可以使用key-key-value的模式来存取数据,第一级的key对应为关系数据库中的表,第二级的key对应于表中的索引字段。
实施例2:
本发明提供一种高速数据访问模式,程序流程如图1所示:
数据访问开启两个数据通道做主备处理,即一个数据通道提供正常数据访问的时候,另外一个数据通道作为备用通道,用于当数据发生更新的时候,后台的数据准备。
系统中有一个服务进程专门用于数据准备与通知,以及数据通道切换等工作,工作具体流程如下:
S1、当服务进程发现数据需要更新的时候(有新的数据文件出现在特定目录),会让系统切往数据准备状态,将数据文件按照规则读入内存并加载进共享内存的备用数据通道;
S2、加载完毕后,服务进程发出切换标记更新,通知连接在上面的所有客户端进程,可以前往新的数据通道读取更新后的数据;
S3、客户端进程会周期性的调用切换函数,如发现系统通道切换,则会切换本进程的进程通道标记;
S4、当所有的客户端进程的数据通道标记切换完毕后,服务端进程切换系统状态为数据准备完毕,所有客户端进程切换至新数据通道进行数据访问。在这个状态结束之前,客户端进程无论访问哪个数据通道都可以得到正确数据,所以对于客户端的业务来说,服务端的数据装载,数据通道切换的过程是完全透明的,也没有任何时间上的阻塞;
S5、当所有客户端进程切换完毕后,服务端进程将旧数据通道数据清理完毕,并将系统状态切换为就绪态,等待下一次的数据更新。
由于是采用主备数据通道切换来进行数据更新,将数据的更新与数据的读取从时间跟空间上进行了分离,所以对于数据读取来说,就无需锁等待,所有的客户端的访问都是完全并发的。
实施例3:
如图2所示,以本发明为核心,将参数访问模式开放至网络,提供基于json的通用数据访问接口,为系统内所有有高速数据访问需求的客户端提供网络数据查询服务。
实施例4:
如图3所示,给多个数据通道需要session管理的业务模块提供session的增删改查以及超时扫描服务,每个业务通道占用一个数据通道,各业务通道的数据操作完全并行,同时全局提供一个统一的session扫描进程来处理超时的session。
实施例5:
本发明对应的数据查询平台利用了共享内存作为存储载体,数据加载完毕后,直接使用平台提供的API(应用编程接口)按照既定的算法访问共享内存上的数据,不同客户端之间可以完全并行访问,完全基于内存的访问给客户端提供了非常高速的数据访问速度(查询速度接近每秒百万次),比常用的基于网络的数据访问快了接近两个数量级,非常适合基于内存的实时交易系统。应用的场合比较常见于大批量查询某些不易变的数据(比如说频繁查询系统的用户资料、系统的参数表等等),另外由于使用了共享内存做数据载体,本平台不支持跨主机访问。
本发明的优点:对于项目中要求频繁查询数据的场合,应用程序数据查询效率大幅度提高,应用程序编程时不需要考虑数据库数据访问的压力问题,把数据缓存到本地内存再进行管理,对于某些特殊的大并发量的访问场合,使用不同的数据通道隔开操作,可以提供比常用内存数据库(比如说redis)访问极限高的多的并发访问量,(该平台曾经在某省级运营商BOSS系统中管理超过3000w用户的实时session)。
最后:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种基于共享内存的高速数据查询平台,包括控制台工具,其特征在于:所述控制台工具的连接端设有共享内存,所述共享内存的连接端设有数据通道,所述共享内存的输入端通过API连接有客户端;
所述控制台工具用于控制平台的建立、初始化、格式化、数据清除和内存分析功能;
所述共享内存用于作为数据存放载体,所述共享内存内部存储有数据库;
所述数据通道用于数据之间的通信以及数据申请;
所述客户端通过API连接数据库以及数据通道之后,可以实现常用的增删改查等操作来完成业务逻辑的调用。
2.根据权利要求1所述的一种基于共享内存的高速数据查询平台,其特征在于:所述数据通道的个数需要在建立时进行规定,同时需要规定每个数据通道包含的索引空间的大小,每个所述数据通道包含独立的数据空间视图,数据只存在于一个数据通道之中,不同数据通道之间的数据互相不可见,不同所述数据通道共享整个共享内存的存储空间。
3.根据权利要求1所述的一种基于共享内存的高速数据查询平台,其特征在于:所述共享内存内部空闲的内存空间初始化的时候会被分割成固定大小的内存页,被平台统一管理,所述通道数据需要使用内存时的步骤如下:
(1)所述通道数据向平台申请一个内存页,然后在内存页上建立索引节点或者数据节点,并存入数据;
(2)系统内存页池可以接受所有通道的数据申请,一旦某个内存页被申请后,只会属于某个申请到此内存页的通道。
4.根据权利要求1所述的一种基于共享内存的高速数据查询平台,其特征在于:每个所述数据通道内会维护本通道的内存页链表以及空闲内存页链表,需要空间的时候首先查看已存在的空闲空间,如若不够则向系统申请。
5.根据权利要求1所述的一种基于共享内存的高速数据查询平台,其特征在于:本平台不提供服务端模块,所有的功能均在提供的API中实现。
6.根据权利要求1所述的一种基于共享内存的高速数据查询平台,其特征在于:为了跟普通的关系数据库模型兼容,从而提供了数据表的概念,支持二级索引,如调用的时候可以使用key-key-value的模式来存取数据,第一级的key对应为关系数据库中的表,第二级的key对应于表中的索引字段。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911281482.1A CN111143357A (zh) | 2019-12-13 | 2019-12-13 | 一种基于共享内存的高速数据查询平台 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911281482.1A CN111143357A (zh) | 2019-12-13 | 2019-12-13 | 一种基于共享内存的高速数据查询平台 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111143357A true CN111143357A (zh) | 2020-05-12 |
Family
ID=70518212
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911281482.1A Pending CN111143357A (zh) | 2019-12-13 | 2019-12-13 | 一种基于共享内存的高速数据查询平台 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111143357A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116107843A (zh) * | 2023-04-06 | 2023-05-12 | 阿里云计算有限公司 | 确定操作系统性能的方法、任务调度方法、设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101986649A (zh) * | 2010-11-29 | 2011-03-16 | 深圳天源迪科信息技术股份有限公司 | 应用于电信行业计费系统的共享数据中心 |
US20150134709A1 (en) * | 2013-11-08 | 2015-05-14 | Samsung Electronics Co., Ltd. | Hybrid buffer management scheme for immutable pages |
-
2019
- 2019-12-13 CN CN201911281482.1A patent/CN111143357A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101986649A (zh) * | 2010-11-29 | 2011-03-16 | 深圳天源迪科信息技术股份有限公司 | 应用于电信行业计费系统的共享数据中心 |
US20150134709A1 (en) * | 2013-11-08 | 2015-05-14 | Samsung Electronics Co., Ltd. | Hybrid buffer management scheme for immutable pages |
Non-Patent Citations (1)
Title |
---|
周霆;张勇;: "基于权限控制的分区操作系统安全数据通信方法" * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116107843A (zh) * | 2023-04-06 | 2023-05-12 | 阿里云计算有限公司 | 确定操作系统性能的方法、任务调度方法、设备 |
CN116107843B (zh) * | 2023-04-06 | 2023-09-26 | 阿里云计算有限公司 | 确定操作系统性能的方法、任务调度方法、设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6240422B1 (en) | Object to relational database mapping infrastructure in a customer care and billing system | |
US9684702B2 (en) | Database redistribution utilizing virtual partitions | |
CN102254021A (zh) | 基于虚拟机管理系统的数据库构建方法 | |
US7809882B1 (en) | Session independent backend data cache system | |
CN102033912A (zh) | 一种分布式数据库访问方法及系统 | |
CN105164674A (zh) | 涉及多个数据库和执行引擎的查询 | |
CN107766343B (zh) | 一种数据存储方法、装置及存储服务器 | |
WO2016192496A1 (zh) | 数据迁移处理方法及装置 | |
CN102955792A (zh) | 一种实时全文搜索引擎事务处理的实现方法 | |
CN104090901A (zh) | 一种对数据进行处理的方法、装置及服务器 | |
CN109885642B (zh) | 面向全文检索的分级存储方法及装置 | |
CN105608126A (zh) | 一种建立海量数据库二级索引的方法和装置 | |
CN114090580A (zh) | 数据处理方法、装置、设备、存储介质及产品 | |
CN105589881A (zh) | 一种数据处理方法和装置 | |
US11249968B2 (en) | Large object containers with size criteria for storing mid-sized large objects | |
CN107590199B (zh) | 一种面向内存的多线程数据库设计方法 | |
CN111143357A (zh) | 一种基于共享内存的高速数据查询平台 | |
CN113157692A (zh) | 一种关系型内存数据库系统 | |
WO2024108638A1 (zh) | 一种基于分片索引的自适应查询方法和装置 | |
CN101754156A (zh) | 局数据管理方法、装置及计费系统 | |
CN115510072A (zh) | 一种基于多租户SaaS应用平台的主数据引擎 | |
CN117131080A (zh) | 一种基于流处理和消息队列的数据处理平台 | |
CN111680069B (zh) | 数据库访问方法及装置 | |
CN110019113B (zh) | 一种数据库的业务处理方法及数据库服务器 | |
WO2024108639A1 (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200512 |
|
RJ01 | Rejection of invention patent application after publication |