CN110502335A - 分布式数据库多级内存管理装置 - Google Patents
分布式数据库多级内存管理装置 Download PDFInfo
- Publication number
- CN110502335A CN110502335A CN201910505621.8A CN201910505621A CN110502335A CN 110502335 A CN110502335 A CN 110502335A CN 201910505621 A CN201910505621 A CN 201910505621A CN 110502335 A CN110502335 A CN 110502335A
- Authority
- CN
- China
- Prior art keywords
- memory
- administrative unit
- management
- unit
- level
- 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
Classifications
-
- 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/5016—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 the resource being the memory
-
- 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/5083—Techniques for rebalancing the load in a distributed system
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种分布式数据库多级内存管理装置,包括内存分配管理单元、内存划分单元、内存链式管理单元和内存淘汰管理单元;内存分配管理模块包括一级内存管理单元和二级内存管理单元;一级内存管理单元用于从操作***中释放内存以及分配所述二级内存管理单元应当管理的目标内存;二级内存管理单元用于对一级内存管理单元分别的目标内存进行申请与释放管理;内存划分单元是将内存按照程序大小划分为多少内存大小不同的内存;内存链式管理单元包括未分配管理链、使用管理链和淘汰自由链;内存淘汰管理单元用于对内存的数据进行淘汰。本发明提高了内存使用率和有效利用率,满足了日益增长的数据规模与用户对数据存储与处理的需求。
Description
技术领域
本发明涉及内存管理技术领域,具体涉及一种分布式数据库多级内存管理装置。
背景技术
分布式数据库管理***的内存管理不同于一般的应用程序的内存管理,因为涉及大量数据的访问和处理,因数据的庞大和增长规模,几乎不可能将所有数据都加载进内存,但也不能所有数据都从磁盘读取,这样速度会很慢,且数据库***对外提供服务是长时间不间断的,不能随时重启***释放资源,因此内存的管理非常重要。目前,内存管理装置都是自动内存管理,在程序运行过程中需要等待实用的内存量达到为程序分配的初始内存量时,才能得到内存使用,并且还需要对程序中使用的对象进行可达性分析,而在可达性分析做暂用的时间较长,导致卡顿等现象。
发明内容
本发明的目的在于提供一种分布式数据库多级内存管理装置,该装置提高了内存使用率和有效利用率,满足了日益增长的数据规模与用户对数据存储与处理的需求。
为实现上述目的,本发明是通过以下技术方案实现的:
分布式数据库多级内存管理装置,包括内存分配管理单元、内存划分单元、内存链式管理单元和内存淘汰管理单元;
所述内存分配管理模块包括一级内存管理单元和二级内存管理单元;所述一级内存管理单元用于从操作***中释放内存以及分配所述二级内存管理单元应当管理的目标内存;所述二级内存管理单元用于对一级内存管理单元分别的目标内存进行申请与释放管理;
所述内存划分单元是将内存按照程序大小划分为多少内存大小不同的内存;
所述内存链式管理单元包括未分配管理链、使用管理链和淘汰自由链;
所述内存淘汰管理单元用于对内存的数据进行淘汰。
进一步地,还包括内存封锁管理单元,用于对内存进行封锁避免其他程序访问或修改内存上的数据。
进一步地,所述内存封锁管理单元是将每一个内存的前面***缓冲区,通过对所述缓冲区进行加锁管理,实现对内存的封锁。
进一步地,所述内存划分单元根据程序大小将内存划分为内存大小不同的三种内存,分别是一级内存、二级内存和三级内存,一级内存可被拆分为两个二级内存或是个三级内存,二级内存可被拆分为两个三级内存;每个所述内存为使用状态和未分配状态,将使用状态的内存链接在使用管理链,将未分配的内存链接在未分配管理链。
进一步地,所述内存淘汰管理单元将淘汰的内存链连在淘汰自由链中,且每淘汰四个三级块,淘汰一个二级块;每淘汰三个二级块淘汰一个一级块。
进一步地,所述内存分配管理模块还包括应急存储调度单元,用于在内存资源紧张时将淘汰自由链中的内存分配给需要内存的程序使用。
本发明具有以下有益效果:
(1)通过设置一级内存管理单元和二级内存管理单元,实现多级内存自主分配提升内存资源的分配效率;
(2)通过设置内存划分单元将内存划分为内存大小不同的三种内存;精细化多级内存大小提高内存的资源合理利用率;
(3)通过设置内存链式管理单元管理内存,链式管理为内存的管理提供了便利,方便动态扩容;
(4)通过设置内存淘汰管理单元科学合理的淘汰机制提升内存资源的重用率;
(5)通过设置内存封锁管理单元,采用独特的封锁管理机制保证内存块的排他使用;
(6)通过设置应急存储调度单元,为内存紧张时提供有效内存调度策略保证***高效运行。
具体实施方式
本实施例提供的分布式数据库多级内存管理装置,包括内存分配管理单元、内存划分单元、内存链式管理单元、内存淘汰管理单元和内存封锁管理单元。
所述内存分配管理模块包括一级内存管理单元和二级内存管理单元;所述一级内存管理单元用于从操作***中释放内存以及分配所述二级内存管理单元应当管理的目标内存;所述二级内存管理单元用于对一级内存管理单元分别的目标内存进行申请与释放管理;通过分级分别分配管理,可有效提升内存资源分配效率。
所述内存划分单元是将内存按照程序大小划分为多少内存大小不同的内存;根据不同应用请求需求的内存大小不同,在多级内存分配中,进行初始化操作将内存按大小规格划分为一定数量的三级内存块,二级内存块,大量的一级内存块,且当三级块和二级块不够全部处于使用状态时或者在淘汰状态时,可将部分一级内存块***为一批三级内存块,或者一批二级内存块,以供请求内存的程序使用,但有就是一个一级块不能同时被拆分成二级块与三级块并存,这是出于方便统一管理的考虑。
所述内存链式管理单元包括未分配管理链、使用管理链和淘汰自由链;经初始化后的内存块都进入内存未分配管理链,分配给程序的内存记入内存使用管理链,程序淘汰释放的内存进入内存淘汰自由链,内存都进入链式管理,避免丢失,且可以根据程序的内存需求的增加动态从链表中增加新内存块给程序。
所述内存淘汰管理单元用于对内存的数据进行淘汰;有的内存请求是程序临时使用,分配给程序后使用完立即可释放,供其他程序再使用;而有的内存请求需要伴随整个任务生存期,直到整个任务完结才会释放;再有的内存会伴随着某个线程一直被使用直到线程的消亡才会被回收,分布式数据库管理***会将大量数据载入内存供查询和修改,称之为热数据,这样占用大量的内存,所以需要将不太常用的数据淘汰出内存,将常用数据留驻在内存,可提高程序运行效率,本实施例将根据使用内存的数据的重要性及使用频繁程度,将内存和其上的数据分为一级淘汰块、二级淘汰块和三级淘汰块;并且每淘汰四个三级内存块,淘汰一个二级内存块;每淘汰三个二级内存块淘汰一个一级内存块;避免发生只淘汰低级块而不淘汰高级块,保证了内存的合理淘汰。
所述内存封锁管理单元用于对内存进行封锁避免其他程序访问或修改内存上的数据,具体是将每一个内存的前面***缓冲区,通过对所述缓冲区进行加锁管理,实现对内存的封锁;内存与其上的数据根据应用的需求有的需要排他使用,需要在内存上加锁避免其他程序访问修改其上的数据,本实施例采用了独创的缓冲区加锁管理机制代替整块内存加锁,缓冲区与内存相结合,将缓冲区纳入锁管理模块,其他程序因访问发现缓冲区上有锁而不会访问与缓冲区对应的内存块,即节省***锁资源,又提高效率。
所述内存分配管理模块还包括应急存储调度单元,用于在内存资源紧张时将淘汰自由链中的内存分配给需要内存的程序使用;当程序多次申请内存而无法满足时,***判定内存资源紧张,进入应急内存模式状态,使用后不再用的内存没有立即释放的,并采取催还机制,将自由淘汰链中的内存分配给需要内存的程序,且采取淘汰整理等多种方法预留足够的内存供必需的程序内存需求,为排序等特定的内存需求提供足够的内存保证程序的有效快速运行;内存分配速度可能减慢,一级内存分配管理单元会搜寻有无程序释放了新内存,并纳入未分配管理链分配给内存请求程序。
以上所述仅是本发明优选的实施方式,但本发明的保护范围并不局限于此,任何基于本发明所提供的技术方案和发明构思进行的改造和替换都应涵盖在本发明的保护范围内。
Claims (6)
1.分布式数据库多级内存管理装置,其特征在于:包括内存分配管理单元、内存划分单元、内存链式管理单元和内存淘汰管理单元;
所述内存分配管理模块包括一级内存管理单元和二级内存管理单元;所述一级内存管理单元用于从操作***中释放内存以及分配所述二级内存管理单元应当管理的目标内存;所述二级内存管理单元用于对一级内存管理单元分别的目标内存进行申请与释放管理;
所述内存划分单元是将内存按照程序大小划分为多少内存大小不同的内存;
所述内存链式管理单元包括未分配管理链、使用管理链和淘汰自由链;
所述内存淘汰管理单元用于对内存的数据进行淘汰。
2.根据权利要求1所述的分布式数据库多级内存管理装置,其特征在于:还包括内存封锁管理单元,用于对内存进行封锁避免其他程序访问或修改内存上的数据。
3.根据权利要求2所述的分布式数据库多级内存管理装置,其特征在于:所述内存封锁管理单元是将每一个内存的前面***缓冲区,通过对所述缓冲区进行加锁管理,实现对内存的封锁。
4.根据权利要求1所述的分布式数据库多级内存管理装置,其特征在于:所述内存划分单元根据程序大小将内存划分为内存大小不同的三种内存,分别是一级内存、二级内存和三级内存,一级内存可被拆分为两个二级内存或是个三级内存,二级内存可被拆分为两个三级内存;每个所述内存为使用状态和未分配状态,将使用状态的内存链接在使用管理链,将未分配的内存链接在未分配管理链。
5.根据权利要求4所述的分布式数据库多级内存管理装置,其特征在于:所述内存淘汰管理单元将淘汰的内存链连在淘汰自由链中,且每淘汰四个三级块,淘汰一个二级块;每淘汰三个二级块淘汰一个一级块。
6.根据权利要求5所述的分布式数据库多级内存管理装置,其特征在于:所述内存分配管理模块还包括应急存储调度单元,用于在内存资源紧张时将淘汰自由链中的内存分配给需要内存的程序使用。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910505621.8A CN110502335A (zh) | 2019-06-12 | 2019-06-12 | 分布式数据库多级内存管理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910505621.8A CN110502335A (zh) | 2019-06-12 | 2019-06-12 | 分布式数据库多级内存管理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110502335A true CN110502335A (zh) | 2019-11-26 |
Family
ID=68585796
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910505621.8A Pending CN110502335A (zh) | 2019-06-12 | 2019-06-12 | 分布式数据库多级内存管理装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110502335A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112380017A (zh) * | 2020-11-30 | 2021-02-19 | 成都虚谷伟业科技有限公司 | 一种基于松散内存释放的内存管理*** |
CN115344507A (zh) * | 2021-05-14 | 2022-11-15 | 华为技术有限公司 | 内存分配方法、装置和*** |
CN117591293A (zh) * | 2023-12-01 | 2024-02-23 | 深圳计算科学研究院 | 内存管理方法、装置、计算机设备及计算机可读存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1427342A (zh) * | 2001-12-21 | 2003-07-02 | 上海贝尔有限公司 | 一种内存管理***及其分配方法 |
CN101110044A (zh) * | 2007-08-28 | 2008-01-23 | 中兴通讯股份有限公司 | 一种内存监控管理的方法及*** |
CN101493787A (zh) * | 2009-02-18 | 2009-07-29 | 中兴通讯股份有限公司 | 一种内存操作的管理方法及*** |
CN102915276A (zh) * | 2012-09-25 | 2013-02-06 | 武汉邮电科学研究院 | 一种用于嵌入式***的内存控制方法 |
CN105589809A (zh) * | 2014-10-24 | 2016-05-18 | 中国科学院深圳先进技术研究院 | 一种内存管理方法及装置 |
CN106970881A (zh) * | 2017-03-10 | 2017-07-21 | 浙江大学 | 一基于大页的冷热页追踪及压缩回收方法 |
-
2019
- 2019-06-12 CN CN201910505621.8A patent/CN110502335A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1427342A (zh) * | 2001-12-21 | 2003-07-02 | 上海贝尔有限公司 | 一种内存管理***及其分配方法 |
CN101110044A (zh) * | 2007-08-28 | 2008-01-23 | 中兴通讯股份有限公司 | 一种内存监控管理的方法及*** |
CN101493787A (zh) * | 2009-02-18 | 2009-07-29 | 中兴通讯股份有限公司 | 一种内存操作的管理方法及*** |
CN102915276A (zh) * | 2012-09-25 | 2013-02-06 | 武汉邮电科学研究院 | 一种用于嵌入式***的内存控制方法 |
CN105589809A (zh) * | 2014-10-24 | 2016-05-18 | 中国科学院深圳先进技术研究院 | 一种内存管理方法及装置 |
CN106970881A (zh) * | 2017-03-10 | 2017-07-21 | 浙江大学 | 一基于大页的冷热页追踪及压缩回收方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112380017A (zh) * | 2020-11-30 | 2021-02-19 | 成都虚谷伟业科技有限公司 | 一种基于松散内存释放的内存管理*** |
CN112380017B (zh) * | 2020-11-30 | 2024-04-09 | 成都虚谷伟业科技有限公司 | 一种基于松散内存释放的内存管理*** |
CN115344507A (zh) * | 2021-05-14 | 2022-11-15 | 华为技术有限公司 | 内存分配方法、装置和*** |
CN117591293A (zh) * | 2023-12-01 | 2024-02-23 | 深圳计算科学研究院 | 内存管理方法、装置、计算机设备及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101221536B (zh) | 嵌入式***的内存管理方法及装置 | |
CN104915151B (zh) | 多虚拟机***中一种主动共享的内存超量分配方法 | |
CN105049268B (zh) | 分布式计算资源分配***和任务处理方法 | |
CN1174323C (zh) | 管理共享内存的方法 | |
US20080243966A1 (en) | System and method for managing temporary storage space of a database management system | |
CN110502335A (zh) | 分布式数据库多级内存管理装置 | |
US7908454B2 (en) | Application-specific heap management | |
CN106095590B (zh) | 一种基于线程池的任务分配方法及装置 | |
CN101196832B (zh) | 一种面向照明异构设备的资源代理器 | |
CN104731799B (zh) | 内存数据库管理装置 | |
CN104216767A (zh) | 多线程之间访问共享数据的方法及装置 | |
CN105095094A (zh) | 内存管理方法和设备 | |
CN109086301A (zh) | 一种基于云计算的数据管理平台 | |
CN102609467A (zh) | 数据库连接管理方法和装置 | |
CN103425538A (zh) | 进程通讯方法及*** | |
CN110727517A (zh) | 一种基于分区设计的内存分配方法和装置 | |
US10338965B2 (en) | Managing a set of resources | |
CN104077266B (zh) | 多内核操作***实现方法和实现装置及*** | |
CN102567096A (zh) | 一种在多任务环境下防止死锁的互斥信号量管理方法 | |
CN1326567A (zh) | 处理***调度 | |
CN104573112B (zh) | Oltp集群数据库中页面查询方法及数据处理节点 | |
Renner et al. | CoLoc: Distributed data and container colocation for data-intensive applications | |
CN108595259A (zh) | 一种基于全局管理的内存池管理方法 | |
CN105893147A (zh) | 多任务队列管理方法、设备及*** | |
US7188113B1 (en) | Reducing contention by slaves for free lists when modifying data in a table partition |
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 |