CN110019475A - 数据持久化处理方法、装置及系统 - Google Patents
数据持久化处理方法、装置及系统 Download PDFInfo
- Publication number
- CN110019475A CN110019475A CN201711393149.0A CN201711393149A CN110019475A CN 110019475 A CN110019475 A CN 110019475A CN 201711393149 A CN201711393149 A CN 201711393149A CN 110019475 A CN110019475 A CN 110019475A
- Authority
- CN
- China
- Prior art keywords
- memory
- isolated location
- operating system
- target
- lease
- 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.)
- Granted
Links
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
-
- 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/25—Integrating or interfacing systems involving database management systems
- G06F16/256—Integrating or interfacing systems involving database management systems in federated or virtual 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45587—Isolation or security of virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Hardware Redundancy (AREA)
Abstract
本申请提供了一种数据持久化处理方法、装置及系统,属于计算机技术领域。该数据持久化处理方法用于Redis服务器,该方法包括:目标隔离单元向主操作系统发送租借请求信息,目标隔离单元为Redis服务器的主操作系统上运行的多个隔离单元中的任一隔离单元。当共享内存的容量大于或等于租借内存的容量时,主操作系统从共享内存中划分出与租借内存相同容量的内存作为租借内存。主操作系统向目标隔离单元发送第一租借响应信息。目标隔离单元基于主操作系统分配的租借内存执行数据持久化操作,解决了不同Redis服务的进程共享同一主操作系统提供的共享内存时,进程间的安全性较差的问题,提高了进程间的安全性,用于数据持久化处理。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种数据持久化处理方法、装置及系统。
背景技术
远程字典服务(Remote Dictionary Service,Redis)数据库是一个支持持久化的内存数据库,因为内存本身的易失性特点,维护Redis数据库的Redis服务器需要经常将内存中的数据保存到磁盘以保证数据的持久化,该操作也称作数据持久化操作。
Redis服务器通常采用主操作系统(主操作系统为物理机上运行的操作系统)提供的创建新进程(Fork)机制来执行数据持久化操作,Redis服务器通过该创建新进程机制为当前进程(也称作父进程)创建一个新的进程(也称作子进程),之后,父进程基于内存页中的数据向客户端提供Redis访问服务,子进程将内存页中的数据保存到磁盘中。子进程和父进程在开始时刻指向同一页表中的同一内存页。其中,一个页表包括多个内存页。
当客户端请求Redis服务器修改父进程指向的内存页A中的数据时,为了不影响子进程执行数据持久化操作,父进程对内存页A进行复制,得到内存页B,然后修改内存页B中的数据,子进程将内存页A中的数据保存到磁盘中,该技术称为写时复制(Copy On Write,COW)技术。COW技术保证了数据持久化操作的正常执行,但COW技术是以内存页为单位进行修改的,也就是说,只要某一内存页中有1比特数据需要修改,整个内存页都会被复制,如果给每个进程都额外预留一个固定容量的内存用于存放复制的内存页,那么Redis服务器需要设置的内存的总容量就较大,成本较高。
目前为了降低成本,主操作系统为所有进程额外设置一共享内存,当某一进程指向的内存页需要被复制时,该进程请求获取该共享内存,然而当不同Redis服务的进程都共享同一主操作系统提供的共享内存时,进程间的安全性较差。
发明内容
本本申请提供了一种数据持久化处理方法、装置及系统,可以解决相关技术中不同Redis服务的进程共享同一主操作系统提供的共享内存时,进程间的安全性较差的问题。所述技术方案如下:
第一方面,提供了一种数据持久化处理方法,用于Redis服务器的主操作系统,主操作系统设置一共享内存,主操作系统上运行有多个隔离单元,每个隔离单元运行有一个Redis服务,Redis服务包括至少一个进程,该方法包括:主操作系统接收目标隔离单元发送的租借请求信息,该租借请求信息包括目标隔离单元执行数据持久化操作所需的租借内存的容量和租借时长,目标隔离单元为多个隔离单元中的任一隔离单元;当共享内存的容量大于或等于租借内存的容量时,主操作系统从共享内存中划分出与租借内存相同容量的内存作为租借内存;主操作系统向目标隔离单元发送第一租借响应信息,该第一租借响应信息用于指示租借内存被分配给目标隔离单元。
在申请中,由于不同Redis服务的进程被隔离单元隔离,所以增强了进程间的隔离性,进而提高了进程间的安全性。
可选的,在向目标隔离单元发送第一租借响应信息之后,该方法还可以包括:当目标隔离单元不再占用租借内存时,主操作系统清除租借内存中的中间数据,该中间数据为目标隔离单元执行数据持久化操作所产生的数据。
当目标隔离单元不再占用租借内存时,假设另一隔离单元请求占用租借内存,为了避免目标隔离单元基于租借内存执行数据持久化操作产生的数据发生泄漏现象,主操作系统可以清除租借内存中的中间数据,这样一来,进一步提高了数据的安全性。
可选的,在向目标隔离单元发送第一租借响应信息之后,该方法还可以包括:在租借时长内,当接收到目标隔离单元发送的归还响应信息时,主操作系统确定目标隔离单元不再占用租借内存,该归还响应信息用于指示目标隔离单元已完成数据持久化操作。
当目标隔离单元完成数据持久化操作所用的时长小于租借时长时,目标隔离单元可以在完成数据持久化操作之后就向主操作系统发送归还响应信息,主动归还主操作系统为其分配的租借内存,以便于其余隔离单元能够占用该租借内存,进而执行数据持久化操作,实现了节省内存资源及降低成本的目的。同时,由于主操作系统为目标隔离单元分配了执行数据持久化操作所需的租借内存,所以能够避免在数据持久化期间因内存不够用而对客户端的工作造成影响,客户端可以根据实际用户需求向Redis服务器发送修改请求指令,以指示Redis服务器对内存页中的数据进行修改。
可选的,在向目标隔离单元发送第一租借响应信息之后,该方法还可以包括:当检测到目标隔离单元占用租借内存的时长达到租借时长时,主操作系统向目标隔离单元发送归还指示信息,该归还指示信息用于指示目标隔离单元停止占用租借内存。之后,主操作系统确定目标隔离单元不再占用租借内存。
为了使其余隔离单元可以占用租借内存以执行数据持久化操作,进而实现内存共享的目的,主操作系统可以在检测到目标隔离单元占用租借内存的时长达到租借时长时,向目标隔离单元发送归还指示信息,强制收回为目标隔离单元分配的租借内存。
可选的,在向目标隔离单元发送第一租借响应信息之后,该方法还可以包括:当检测到目标隔离单元占用租借内存的时长达到租借时长,且经过预设时长后未接收到目标隔离单元发送的归还响应信息时,主操作系统向目标隔离单元发送归还指示信息,该归还指示信息用于指示目标隔离单元停止占用租借内存。之后,主操作系统确定目标隔离单元不再占用租借内存。
示例的,预设时长可以为1~2个租借时长。
当目标隔离单元占用租借内存的时长已达到租借时长但仍未完成数据持久化操作时,为了保证目标隔离单元成功完成数据持久化操作,主操作系统可以为目标隔离单元默认延长预设时长,比如延长1~2个租借时长,然后在预设时长后,如果主操作系统仍未接收到目标隔离单元发送的归还响应信息,为了使其余隔离单元可以占用租借内存以执行数据持久化操作,实现内存共享的目的,主操作系统可以在检测到目标隔离单元占用租借内存的时长达到租借时长时,且经过预设时长后未接收到目标隔离单元发送的归还响应信息时,向目标隔离单元发送归还指示信息,强制收回为目标隔离单元分配的租借内存。
可选的,在接收目标隔离单元发送的租借请求信息之后,该方法还可以包括:当共享内存的容量小于租借内存的容量时,主操作系统向目标隔离单元发送第二租借响应信息,该第二租借响应信息用于指示租借内存的分配操作执行失败。
当共享内存的容量小于目标隔离单元所需的租借内存的容量时,主操作系统可以向目标隔离单元发送第二租借响应信息,以通知目标隔离单元:租借内存的分配操作执行失败。目标隔离单元便放弃本次的数据持久化操作,之后,目标隔离单元可以经过预设请求时长后再次请求主操作系统为其分配租借内存。
可选的,隔离单元可以为虚拟机,或者为容器,或者为其他隔离机制的单元。
第二方面,提供了一种数据持久化处理方法,用于目标隔离单元,目标隔离单元为多个隔离单元中的任一隔离单元,多个隔离单元运行在Redis服务器的主操作系统上,主操作系统设置有一共享内存,每个隔离单元运行有一个Redis服务,Redis服务包括至少一个进程,该方法包括:目标隔离单元向主操作系统发送租借请求信息,该租借请求信息包括目标隔离单元执行数据持久化操作所需的租借内存的容量和租借时长。然后,目标隔离单元接收主操作系统发送的第一租借响应信息,该第一租借响应信息用于指示租借内存被分配给目标隔离单元,该第一租借响应信息是主操作系统在共享内存的容量大于或等于租借内存的容量,从共享内存中划分出与租借内存相同容量的内存作为租借内存时生成的。之后,目标隔离单元基于主操作系统分配的租借内存执行数据持久化操作。
由于不同Redis服务的进程被隔离单元隔离,所以增强了进程间的隔离性,进而提高了进程间的安全性。
可选的,在基于主操作系统分配的租借内存执行数据持久化操作之后,该方法还可以包括:在租借时长内,目标隔离单元向主操作系统发送归还响应信息,该归还响应信息用于指示目标隔离单元已完成数据持久化操作。
当目标隔离单元完成数据持久化操作所用的时长小于租借时长时,目标隔离单元可以在完成数据持久化操作之后就向主操作系统发送归还响应信息,主动归还主操作系统为其分配的租借内存,以便于其余隔离单元能够占用该租借内存,进而执行数据持久化操作,实现了节省内存资源及降低成本的目的。
可选的,在基于主操作系统分配的租借内存执行数据持久化操作之后,该方法还可以包括:目标隔离单元接收主操作系统发送的归还指示信息,该归还指示信息用于指示目标隔离单元停止占用租借内存,该归还指示信息是主操作系统在检测到目标隔离单元占用租借内存的时长达到租借时长时生成的。之后,目标隔离单元基于归还指示信息停止占用租借内存。
为了使其余隔离单元可以占用租借内存以执行数据持久化操作,进而实现内存共享的目的,主操作系统可以在检测到目标隔离单元占用租借内存的时长达到租借时长时,向目标隔离单元发送归还指示信息,强制收回为目标隔离单元分配的租借内存,目标隔离单元便停止占用租借内存。
可选的,在基于主操作系统分配的租借内存执行数据持久化操作之后,该方法还可以包括:目标隔离单元接收主操作系统发送的归还指示信息,该归还指示信息用于指示目标隔离单元停止占用租借内存,该归还指示信息是主操作系统在检测到目标隔离单元占用租借内存的时长达到租借时长,且经过预设时长后未接收到目标隔离单元发送的归还响应信息时生成的。之后,目标隔离单元基于归还指示信息停止占用租借内存。
为了保证目标隔离单元成功完成数据持久化操作,主操作系统可以为目标隔离单元默认延长预设时长。然后在预设时长后,如果主操作系统仍未接收到目标隔离单元发送的归还响应信息,为了使其余隔离单元可以占用租借内存以执行数据持久化操作,实现内存共享的目的,主操作系统可以在检测到目标隔离单元占用租借内存的时长达到租借时长时,且经过预设时长后未接收到目标隔离单元发送的归还响应信息时,向目标隔离单元发送归还指示信息,强制收回为目标隔离单元分配的租借内存,目标隔离单元便停止占用租借内存。
可选的,在向主操作系统发送租借请求信息之后,该方法还可以包括:目标隔离单元接收主操作系统发送的第二租借响应信息,该第二租借响应信息用于指示租借内存的分配操作执行失败,该第二租借响应信息是主操作系统在共享内存的容量小于租借内存的容量时生成的。
目标隔离单元接收到主操作系统发送的第二租借响应信息时,可以确定租借内存的分配操作执行失败,目标隔离单元便放弃本次的数据持久化操作,之后,目标隔离单元可以经过预设请求时长后再次请求主操作系统为其分配租借内存。
可选的,目标隔离单元为虚拟机,目标隔离单元上运行有目标客户机操作系统和目标Redis服务,相应的,目标隔离单元向主操作系统发送租借请求信息,包括:目标隔离单元通过目标客户机操作系统向主操作系统发送租借请求信息,该租借请求信息是目标Redis服务发送至目标客户机操作系统的;目标隔离单元接收主操作系统发送的第一租借响应信息,包括:目标隔离单元通过目标客户机操作系统接收主操作系统发送的第一租借响应信息;目标隔离单元基于主操作系统分配的租借内存执行数据持久化操作,包括:目标隔离单元通过目标客户机操作系统控制目标Redis服务,基于租借内存执行数据持久化操作。
第三方面,提供了一种数据持久化处理方法,用于Redis服务器,Redis服务器上运行有主操作系统,主操作系统设置一共享内存,主操作系统上运行有多个隔离单元,每个隔离单元运行有一个Redis服务,Redis服务包括至少一个进程,该方法包括:目标隔离单元向主操作系统发送租借请求信息,该租借请求信息包括目标隔离单元执行数据持久化操作所需的租借内存的容量和租借时长,目标隔离单元为多个隔离单元中的任一隔离单元。当共享内存的容量大于或等于租借内存的容量时,主操作系统再从共享内存中划分出与租借内存相同容量的内存作为租借内存。然后,主操作系统向目标隔离单元发送第一租借响应信息,该第一租借响应信息用于指示租借内存被分配给目标隔离单元。之后,目标隔离单元基于主操作系统分配的租借内存执行数据持久化操作。
第四方面,提供了一种数据持久化处理装置,用于Redis服务器的主操作系统,主操作系统设置一共享内存,主操作系统上运行有多个隔离单元,每个隔离单元运行有一个Redis服务,Redis服务包括至少一个进程,该数据持久化处理装置包括至少一个模块,至少一个模块用于实现上述第一方面所述的数据持久化处理方法。
第五方面,提供了一种数据持久化处理装置,用于目标隔离单元,目标隔离单元为多个隔离单元中的任一隔离单元,多个隔离单元运行在Redis服务器的主操作系统上,主操作系统设置有一共享内存,每个隔离单元运行有一个Redis服务,Redis服务包括至少一个进程,该数据持久化处理装置包括至少一个模块,至少一个模块用于实现上述第二方面所述的数据持久化处理方法。
第六方面,提供了一种数据持久化处理装置,包括主操作系统,该数据持久化处理装置包括:处理器、存储器、网络接口和总线。其中,总线用于连接处理器、存储器和网络接口。处理器用于执行存储器中存储的程序来实现第一方面所述的数据持久化处理方法。
第七方面,提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当该计算机可读存储介质在计算机上运行时,使得计算机执行第一方面所述的数据持久化处理方法。
第八方面,提供了一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行第一方面所述的数据持久化处理方法。
第九方面,提供了一种数据持久化处理装置,包括目标隔离单元,该数据持久化处理装置包括:处理器、存储器、网络接口和总线。其中,总线用于连接处理器、存储器和网络接口。处理器用于执行存储器中存储的程序来实现第二方面所述的数据持久化处理方法。
第十方面,提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当该计算机可读存储介质在计算机上运行时,使得计算机执行第二方面所述的数据持久化处理方法。
第十一方面,提供了一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行第二方面所述的数据持久化处理方法。
第十二方面,提供了一种数据持久化处理系统,该系统包括:主操作系统和目标隔离单元,主操作系统和目标隔离单元位于同一数据持久化处理装置中,该数据持久化处理装置包括第四方面所述的数据持久化处理装置,以及第五方面所述的数据持久化处理装置;
或者,该数据持久化处理装置包括第六方面所述的数据持久化处理装置,以及第九方面所述的数据持久化处理装置。
上述第四方面、第六方面、第七方面及第八方面所获得的技术效果与第一方面中对应的技术手段所获得的技术效果近似,在这里不再赘述。
上述第五方面、第九方面、第十方面及十一方面所获得的技术效果与第二方面中对应的技术手段所获得的技术效果近似,在这里不再赘述。
本申请提供的技术方案带来的有益效果是:
目标隔离单元能够向主操作系统发送租借请求信息,当共享内存的容量大于或等于租借内存的容量时,主操作系统从共享内存中划分出与租借内存相同容量的内存作为租借内存,并向目标隔离单元发送第一租借响应信息,该第一租借响应信息用于指示租借内存被分配给目标隔离单元,之后,目标隔离单元能够基于主操作系统分配的租借内存执行数据持久化操作,由于不同Redis服务的进程被隔离单元隔离,所以增强了进程间的隔离性,进而提高了进程间的安全性。
附图说明
图1是本发明实施例所涉及的Redis服务器的结构示意图;
图2是本发明实施提供的一种数据持久化处理方法的方法流程图;
图3是本发明实施提供的另一种数据持久化处理方法的方法流程图;
图4是本发明实施提供的一种Redis服务器的结构示意图;
图5是本发明实施提供的另一种Redis服务器的结构示意图;
图6是本发明实施提供的一种数据持久化处理装置的结构示意图;
图7是本发明实施提供的另一种数据持久化处理装置的结构示意图;
图8是本发明实施提供的又一种数据持久化处理装置的结构示意图;
图9是本发明实施提供的再一种数据持久化处理装置的结构示意图;
图10是本发明实施提供的一种数据持久化处理装置的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
请参考图1,其示出了本申请各个实施例所涉及的Redis服务器的结构示意图,示例的,该Redis服务器可以应用于公有云场景,如图1所示,该Redis服务器上运行有主操作系统(Host Operating System,Host OS)01,主操作系统01上运行有多个隔离单元02,每个隔离单元02运行有一个Redis服务,该Redis服务包括至少一个进程,对于每个Redis服务来说,同一时刻仅有一个进程执行数据持久化操作,主操作系统01设置一共享内存(图1中未画出),主操作系统可以将该共享内存分配给隔离单元,以使隔离单元执行数据持久化操作。
其中,Redis服务器可以为一台服务器,或者由若干台服务器组成的服务器集群,或者为一个云计算服务中心。隔离单元可以为虚拟机(virtual machine,VM),或者为容器,或者为其他隔离机制的单元,本申请对隔离单元不做限定。示例的,当隔离单元为虚拟机时,虚拟机上运行有客户机操作系统(Guest Operating System,Guest OS),虚拟机可以通过客户机操作系统向主操作系统租借共享内存。
在本申请中,隔离单元对不同的Redis服务具有隔离作用,这样一来,增强了进程间的隔离性,进而提高了进程间的安全性。假设Redis服务器需要运行3个相互隔离的Redis服务,那么Redis服务器可以设置3个隔离单元,每个Redis服务包括至少一个进程,那么这3个Redis服务的进程是相互隔离的,进程间的安全性较高。
本发明实施例提供了一种数据持久化处理方法,用于图1所示的Redis服务器,如图2所示,该方法可以包括:
步骤101、目标隔离单元向主操作系统发送租借请求信息,该租借请求信息包括目标隔离单元执行数据持久化操作所需的租借内存的容量和租借时长。
目标隔离单元为主操作系统上运行的多个隔离单元中的任一隔离单元。
步骤102、当共享内存的容量大于或等于租借内存的容量时,主操作系统从共享内存中划分出与租借内存相同容量的内存作为租借内存。
步骤103、主操作系统向目标隔离单元发送第一租借响应信息,该第一租借响应信息用于指示租借内存被分配给目标隔离单元。
步骤104、目标隔离单元基于主操作系统分配的租借内存执行数据持久化操作。
综上所述,本发明实施例提供的数据持久化处理方法,目标隔离单元能够向主操作系统发送租借请求信息,当共享内存的容量大于或等于租借内存的容量时,主操作系统从共享内存中划分出与租借内存相同容量的内存作为租借内存,并向目标隔离单元发送第一租借响应信息,该第一租借响应信息用于指示租借内存被分配给目标隔离单元,之后,目标隔离单元能够基于主操作系统分配的租借内存执行数据持久化操作,由于不同Redis服务的进程被隔离单元隔离,所以增强了进程间的隔离性,进而提高了进程间的安全性。
本发明实施例提供了一种数据持久化处理方法,用于图1所示的Redis服务器,如图3所示,该方法可以包括:
步骤201、目标隔离单元向主操作系统发送租借请求信息。
该租借请求信息包括目标隔离单元执行数据持久化操作所需的租借内存的容量和租借时长,目标隔离单元为主操作系统上运行的多个隔离单元中的任一隔离单元。
当目标隔离单元需要执行数据持久化操作时,目标隔离单元向主操作系统发送租借请求信息,以请求主操作系统将共享内存分配给该目标隔离单元。主操作系统接收到目标隔离单元发送的租借请求信息时,先判断共享内存的容量是否大于或等于目标隔离单元所需的租借内存的容量,当共享内存的容量大于或等于租借内存的容量时,执行步骤202,主操作系统将共享内存分配给目标隔离单元;当共享内存的容量小于目标隔离单元所需的租借内存的容量时,执行步骤211,主操作系统通知目标隔离单元:租借内存的分配操作执行失败。
假设Redis服务器需要运行3个相互隔离的Redis服务:S1、S2和S3,那么Redis服务器可以设置3个隔离单元:G1、G2和G3,如图4所示,G1运行S1,G2运行S2,G3运行S3。每个Redis服务包括2个进程。示例的,目标隔离单元为G1,G1需要执行数据持久化操作,且所需的租借内存的容量为50M(兆),租借内存的租借时长为5分钟,那么G1向主操作系统发送租借请求信息,该租借请求信息包括租借内存的容量:50M,以及租借时长:5分钟。
步骤202、当共享内存的容量大于或等于租借内存的容量时,主操作系统从共享内存中划分出与租借内存相同容量的内存作为租借内存。执行步骤203。
当共享内存的容量大于或等于租借内存的容量时,主操作系统确定共享内存满足目标隔离单元的使用需求,主操作系统从共享内存中划分出与租借内存相同容量的内存作为租借内存。
以图4为例,G1向主操作系统发送租借请求信息,该租借请求信息包括租借内存的容量:50M,以及租借时长:5分钟,假设共享内存的容量为100M,那么主操作系统可以从共享内存中划分出50M的内存作为G1执行数据持久化操作所需的租借内存。
步骤203、主操作系统向目标隔离单元发送第一租借响应信息。执行步骤204。
该第一租借响应信息用于指示租借内存被分配给目标隔离单元。主操作系统向目标隔离单元发送第一租借响应信息,通知目标隔离单元可以开始占用该租借内存,其余隔离单元无法占用该租借内存。
以图4为例,主操作系统从共享内存中划分出50M的内存作为G1执行数据持久化操作所需的租借内存,之后,主操作系统向G1发送第一租借响应信息,该第一租借响应信息用于指示50M的租借内存被分配给G1,此时,G1开始占用主操作系统为其分配的租借内存,G2和G3无法占用该租借内存。
步骤204、目标隔离单元基于主操作系统分配的租借内存执行数据持久化操作。
目标隔离单元接收到主操作系统发送的第一租借响应信息后,基于主操作系统分配的租借内存执行数据持久化操作,数据持久化操作可以基于相关技术中的快照方式来执行,示例的,数据持久化操作的执行过程可以为:目标隔离单元控制Redis服务中的进程对原内存页进行复制,然后基于客户端的修改请求指令对复制的内存页中的数据进行修改,并将原内存页中的数据保存到磁盘中。主操作系统为目标隔离单元分配的租借内存用于存放复制的内存页。关于快照方式的说明可以参考相关技术,在此不再赘述。
步骤205、在租借时长内,目标隔离单元向主操作系统发送归还响应信息。执行步骤209。
该归还响应信息用于指示目标隔离单元已完成数据持久化操作。在本发明实施例中,当目标隔离单元完成数据持久化操作所用的时长小于租借时长时,目标隔离单元可以在完成数据持久化操作之后就向主操作系统发送归还响应信息,主动归还主操作系统为其分配的租借内存,以便于其余隔离单元能够占用该租借内存,进而执行数据持久化操作,实现了节省内存资源及降低成本的目的,主操作系统的内存利用率可以达到n/(n+1),其中,n为主操作系统上运行的隔离单元的数量。同时,由于主操作系统为目标隔离单元分配了执行数据持久化操作所需的租借内存,所以能够避免在数据持久化期间因内存不够用而对客户端的工作造成影响,在本发明实施例中,客户端可以根据实际用户需求向Redis服务器发送修改请求指令,以指示Redis服务器对内存页中的数据进行修改。
示例的,图4中的G1执行数据持久化操作所需的租借内存的租借时长为5分钟,假设G1基于主操作系统分配的租借内存执行数据持久化操作一共用了3分钟,那么G1在完成数据持久化操作后就可以向主操作系统发送归还响应信息,主动归还主操作系统为其分配的50M的租借内存。
步骤206、当主操作系统检测到目标隔离单元占用租借内存的时长达到租借时长时,主操作系统向目标隔离单元发送归还指示信息。
该归还指示信息用于指示目标隔离单元停止占用租借内存。在实际应用中,目标隔离单元完成数据持久化操作所用的时长可能小于租借时长,也可能大于或等于租借时长。
当目标隔离单元完成数据持久化操作所用的时长小于租借时长时,目标隔离单元可以执行步骤205,即在完成数据持久化操作之后就向主操作系统发送归还响应信息。当目标隔离单元在完成数据持久化操作之后不向主操作系统发送归还响应信息时,在这种情况下,为了使其余隔离单元可以占用租借内存以执行数据持久化操作,进而实现内存共享的目的,主操作系统可以在检测到目标隔离单元占用租借内存的时长达到租借时长时,向目标隔离单元发送归还指示信息,强制收回为目标隔离单元分配的租借内存。
而当目标隔离单元完成数据持久化操作所用的时长大于或等于租借时长时,目标隔离单元无法在租借时长内向主操作系统发送归还响应信息,在这种情况下,为了使其余隔离单元可以占用租借内存以执行数据持久化操作,进而实现内存共享的目的,同样的,主操作系统可以在检测到目标隔离单元占用租借内存的时长达到租借时长时,向目标隔离单元发送归还指示信息,强制收回为目标隔离单元分配的租借内存。
示例的,图4中的G1执行数据持久化操作所需的租借内存的租借时长为5分钟,当主操作系统检测到G1占用租借内存的时长达到5分钟时,主操作系统可以向G1发送归还指示信息,强制收回主操作系统为G1分配的50M的租借内存。
需要说明的是,在执行完步骤206之后,可以先执行步骤208再执行步骤209,也可以先执行步骤209再执行步骤208,也可以同时执行步骤208和步骤209,即步骤208和步骤209无先后顺序。
步骤207、当主操作系统检测到目标隔离单元占用租借内存的时长达到租借时长,且经过预设时长后未接收到目标隔离单元发送的归还响应信息时,主操作系统向目标隔离单元发送归还指示信息。
该归还指示信息用于指示目标隔离单元停止占用租借内存。示例的,预设时长可以为1~2个租借时长。假设租期时长为5分钟,那么预设时长可以为5~10分钟。
如果主操作系统检测到目标隔离单元占用租借内存的时长达到租借时长但仍未接收到目标隔离单元发送的归还响应信息,可能是,目标隔离单元在租借时长内已完成数据持久化操作但未向主操作系统发送归还响应信息,在该种情况下,可以执行步骤206;也可能是,目标隔离单元占用租借内存的时长已达到租借时长但仍未完成数据持久化操作,在该种情况下,为了保证目标隔离单元成功完成数据持久化操作,主操作系统可以为目标隔离单元默认延长预设时长,比如延长1~2个租借时长,然后在预设时长后,如果主操作系统仍未接收到目标隔离单元发送的归还响应信息,为了使其余隔离单元可以占用租借内存以执行数据持久化操作,实现内存共享的目的,主操作系统可以在检测到目标隔离单元占用租借内存的时长达到租借时长时,且经过预设时长后未接收到目标隔离单元发送的归还响应信息时,向目标隔离单元发送归还指示信息,强制收回为目标隔离单元分配的租借内存。
示例的,图4中的G1执行数据持久化操作所需的租借内存的租借时长为5分钟,预设时长为10分钟,当主操作系统检测到G1占用租借内存的时长达到5分钟,且经过10分钟后未接收到G1发送的归还响应信息时,主操作系统可以向G1发送归还指示信息,强制收回主操作系统为G1分配的50M的租借内存。
在执行完步骤207之后,可以先执行步骤208再执行步骤209,也可以先执行步骤209再执行步骤208,也可以同时执行步骤208和步骤209,即步骤208和步骤209无先后顺序。
步骤208、目标隔离单元基于归还指示信息停止占用租借内存。
参见步骤206和步骤207,当目标隔离单元接收到主操作系统发送的归还指示信息时,目标隔离单元停止占用租借内存,以便于其余隔离单元可以占用租借内存以执行数据持久化操作。
步骤209、主操作系统确定目标隔离单元不再占用租借内存。执行步骤210。
参见步骤205至步骤207,在租借时长内,当主操作系统接收到目标隔离单元发送的归还响应信息时,或者,当主操作系统向目标隔离单元发送归还指示信息时,主操作系统确定目标隔离单元不再占用租借内存。
步骤210、当目标隔离单元不再占用租借内存时,主操作系统清除租借内存中的中间数据。
中间数据为目标隔离单元执行数据持久化操作所产生的数据。在本发明实施例中,当目标隔离单元不再占用租借内存时,假设另一隔离单元请求占用租借内存,为了避免目标隔离单元基于租借内存执行数据持久化操作产生的数据发生泄漏现象,主操作系统可以清除租借内存中的中间数据,这样一来,进一步提高了数据的安全性。
步骤211、当共享内存的容量小于租借内存的容量时,主操作系统向目标隔离单元发送第二租借响应信息。
该第二租借响应信息用于指示租借内存的分配操作执行失败。主操作系统接收到目标隔离单元发送的租借请求信息时,当共享内存的容量小于目标隔离单元所需的租借内存的容量时,主操作系统向目标隔离单元发送第二租借响应信息,以通知目标隔离单元:租借内存的分配操作执行失败。目标隔离单元便放弃本次的数据持久化操作,之后,目标隔离单元可以经过预设请求时长后再次请求主操作系统为其分配租借内存。
在本申请中,隔离单元可以为虚拟机,或者为容器,或者为其他隔离机制的单元,关于虚拟机和容器的说明可以参考相关技术,在此不再赘述。
示例的,如图5所示,主操作系统01上运行有多个虚拟机02,图5示例性示出了3个虚拟机02。每个虚拟机上运行有客户机操作系统和Redis服务,Redis服务包括至少一个进程,那么上述步骤201可以包括:目标虚拟机通过目标客户机操作系统向主操作系统发送租借请求信息。其中,目标虚拟机为主操作系统上运行的多个虚拟机中的任一虚拟机。目标Redis服务为目标虚拟机上运行的Redis服务。目标客户机操作系统为目标虚拟机上运行的客户机操作系统。
进一步的,在目标虚拟机通过目标客户机操作系统向主操作系统发送租借请求信息之前,该方法还包括:目标Redis服务向目标客户机操作系统发送租借请求信息。
上述步骤203可以包括:主操作系统向目标客户机操作系统发送第一租借响应信息。在主操作系统向目标客户机操作系统发送第一租借响应信息之后,该方法还包括:目标客户机操作系统向目标Redis服务发送第一租借响应信息。
上述步骤204可以包括:目标虚拟机通过目标客户机操作系统控制目标Redis服务,基于租借内存执行数据持久化操作。
进一步的,在租借时长内,当目标Redis服务完成数据持久化操作时,目标Redis服务可以向目标客户机操作系统发送归还响应信息,目标客户机操作系统再向主操作系统发送该归还响应信息,该过程可以参考步骤205。
进一步的,当主操作系统检测到目标虚拟机占用租借内存的时长达到租借时长时,主操作系统可以向目标客户机操作系统发送归还指示信息,以强行收回主操作系统为目标虚拟机分配的租借内存,目标客户机操作系统再向目标Redis服务发送该归还指示信息,目标Redis服务基于该归还指示信息停止占用租借内存,该过程可以参考步骤206和步骤208。
进一步的,当主操作系统检测到目标虚拟机占用租借内存的时长达到租借时长,且经过预设时长后未接收到目标客户机操作系统发送的归还响应信息时,主操作系统可以向目标客户机操作系统发送归还指示信息,目标客户机操作系统再向目标Redis服务发送该归还指示信息,目标Redis服务基于该归还指示信息停止占用租借内存,该过程可以参考步骤207和步骤208。
上述步骤211可以包括:当共享内存的容量小于租借内存的容量时,主操作系统向目标客户机操作系统发送第二租借响应信息。在主操作系统向目标客户机操作系统发送第二租借响应信息之后,该方法还包括:目标客户机操作系统向目标Redis服务发送第二租借响应信息,目标Redis服务便放弃本次的数据持久化操作,然后可以经过预设请求时长后再次通过目标客户机操作系统请求主操作系统为其分配租借内存。
在本发明实施例中,主操作系统能够为隔离单元分配租借内存,满足业务需求,能够避免在数据持久化期间因内存不够用而对客户端的工作造成影响。由于不同Redis服务的进程被隔离单元隔离,所以增强了进程间的隔离性,提高了进程间的安全性;隔离单元能够在完成数据持久化操作之后主动归还主操作系统为其分配的租借内存,主操作系统还能够在隔离单元占用租借内存较长时间时强制收回分配的租借内存,使得其余隔离单元可以占用租借内存以执行数据持久化操作,实现了内存共享,节省内存资源及降低成本的目的,提高了内存利用率;主操作系统还能够在隔离单元不再占用租借内存时清除租借内存中的中间数据,进一步提高了数据的安全性。该方法适用于有临时高内存需求且有Redis服务隔离需求的各种场景。
需要说明的是,本发明实施例提供的数据持久化处理方法步骤的先后顺序可以进行适当调整,步骤也可以根据情况进行相应增减,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本申请的保护范围之内,因此不再赘述。
综上所述,本发明实施例提供的数据持久化处理方法,目标隔离单元能够向主操作系统发送租借请求信息,当共享内存的容量大于或等于租借内存的容量时,主操作系统从共享内存中划分出与租借内存相同容量的内存作为租借内存,并向目标隔离单元发送第一租借响应信息,该第一租借响应信息用于指示租借内存被分配给目标隔离单元,之后,目标隔离单元能够基于主操作系统分配的租借内存执行数据持久化操作,由于不同Redis服务的进程被隔离单元隔离,所以增强了进程间的隔离性,进而提高了进程间的安全性,且成本较低。
本发明实施例提供了一种数据持久化处理装置,用于图1所示Redis服务器的主操作系统,如图6所示,该数据持久化处理装置600包括:
接收模块610,用于执行上述实施例中的步骤101或步骤201。
处理模块620,用于执行上述实施例中的步骤102或步骤202。
发送模块630,用于执行上述实施例中的步骤103或步骤203。
综上所述,本发明实施例提供的数据持久化处理装置,主操作系统能够接收目标隔离单元发送的租借请求信息,当共享内存的容量大于或等于租借内存的容量时,主操作系统从共享内存中划分出与租借内存相同容量的内存作为租借内存,并向目标隔离单元发送第一租借响应信息,该第一租借响应信息用于指示租借内存被分配给目标隔离单元,最终使得目标隔离单元能够基于主操作系统分配的租借内存执行数据持久化操作,由于不同Redis服务的进程被隔离单元隔离,所以增强了进程间的隔离性,进而提高了进程间的安全性。
进一步的,如图7所示,该数据持久化处理装置600还可以包括:
清除模块640,用于执行上述实施例中的步骤210。
进一步的,如图7所示,该数据持久化处理装置600还可以包括:
第一确定模块650,用于执行上述实施例中的步骤205和步骤209。
可选的,发送模块630,还用于执行上述实施例中的步骤206。进一步的,如图7所示,该数据持久化处理装置600还可以包括:第二确定模块660,用于执行上述实施例中的步骤209。
可选的,发送模块630,还用于执行上述实施例中的步骤207。进一步的,如图7所示,该数据持久化处理装置600还可以包括:第三确定模块670,用于执行上述实施例中的步骤209。
可选的,发送模块630,还用于执行上述实施例中的步骤211。
图7中其他标记含义可以参考图6。
综上所述,本发明实施例提供的数据持久化处理装置,主操作系统能够接收目标隔离单元发送的租借请求信息,当共享内存的容量大于或等于租借内存的容量时,主操作系统从共享内存中划分出与租借内存相同容量的内存作为租借内存,并向目标隔离单元发送第一租借响应信息,该第一租借响应信息用于指示租借内存被分配给目标隔离单元,最终使得目标隔离单元能够基于主操作系统分配的租借内存执行数据持久化操作,由于不同Redis服务的进程被隔离单元隔离,所以增强了进程间的隔离性,进而提高了进程间的安全性。
本发明实施例提供了一种数据持久化处理装置,用于目标隔离单元,目标隔离单元为多个隔离单元中的任一隔离单元,该多个隔离单元运行在图1所示Redis服务器的主操作系统上,如图8所示,该数据持久化处理装置700包括:
发送模块710,用于执行上述实施例中的步骤101或步骤201。
接收模块720,用于执行上述实施例中的步骤103或步骤203。
执行模块730,用于执行上述实施例中的步骤104或步骤204。
综上所述,本发明实施例提供的数据持久化处理装置,目标隔离单元能够向主操作系统发送租借请求信息,当共享内存的容量大于或等于租借内存的容量时,主操作系统从共享内存中划分出与租借内存相同容量的内存作为租借内存,并向目标隔离单元发送第一租借响应信息,该第一租借响应信息用于指示租借内存被分配给目标隔离单元,之后,目标隔离单元能够基于主操作系统分配的租借内存执行数据持久化操作,由于不同Redis服务的进程被隔离单元隔离,所以增强了进程间的隔离性,进而提高了进程间的安全性。
可选的,发送模块710,还用于执行上述实施例中的步骤205。
可选的,接收模块720,还用于执行上述实施例中的步骤206。进一步的,如图9所示,该数据持久化处理装置700还可以包括:
第一处理模块740,用于执行上述实施例中的步骤208。
可选的,接收模块720,还用于执行上述实施例中的步骤207。进一步的,如图9所示,该数据持久化处理装置700还可以包括:
第二处理模块750,用于执行上述实施例中的步骤208。
可选的,接收模块720,还用于执行上述实施例中的步骤211。
可选的,目标隔离单元为虚拟机,目标隔离单元上运行有目标客户机操作系统和目标Redis服务,相应的,发送模块710,用于:
通过目标客户机操作系统向主操作系统发送租借请求信息,该租借请求信息是目标Redis服务发送至目标客户机操作系统的。
接收模块720,用于:
通过目标客户机操作系统接收主操作系统发送的第一租借响应信息。
执行模块730,用于:
通过目标客户机操作系统控制目标Redis服务,基于租借内存执行数据持久化操作。
图9中其他标记含义可以参考图8。
综上所述,本发明实施例提供的数据持久化处理装置,目标隔离单元能够向主操作系统发送租借请求信息,当共享内存的容量大于或等于租借内存的容量时,主操作系统从共享内存中划分出与租借内存相同容量的内存作为租借内存,并向目标隔离单元发送第一租借响应信息,该第一租借响应信息用于指示租借内存被分配给目标隔离单元,之后,目标隔离单元能够基于主操作系统分配的租借内存执行数据持久化操作,由于不同Redis服务的进程被隔离单元隔离,所以增强了进程间的隔离性,进而提高了进程间的安全性。
本发明实施例提供了另一种数据持久化处理装置,包括主操作系统,如图10所示,该数据持久化处理装置800可以包括:处理器801(如CPU)、存储器802、网络接口803和总线804。其中,总线804用于连接处理器801、存储器802和网络接口803。存储器802可能包含随机存取存储器(Random Access Memory,RAM),也可能包含非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器802中存储有程序8021,该程序8021用于实现各种应用功能,处理器801用于执行存储器802中存储的程序8021来配合实现图2或图3所示的数据持久化处理方法。
本发明实施例还提供了一种数据持久化处理装置,包括目标隔离单元,目标隔离单元为多个隔离单元中的任一隔离单元,该多个隔离单元运行在图1所示Redis服务器的主操作系统上,参考图10,该数据持久化处理装置可以包括:处理器(如CPU)、存储器、网络接口和总线。其中,总线用于连接处理器、存储器和网络接口。存储器可能包含随机存取存储器,也可能包含非不稳定的存储器,例如至少一个磁盘存储器。存储器中存储有程序,该程序用于实现各种应用功能,处理器用于执行存储器中存储的程序来配合实现图2或图3所示的数据持久化处理方法。
实际应用中,上述两个数据持久化处理装置可以集成在同一Redis服务器中。
本发明实施例提供了一种数据持久化处理系统,包括主操作系统和目标隔离单元。主操作系统和目标隔离单元位于同一数据持久化处理装置中,该数据持久化处理装置包括图6或图7所示的数据持久化处理装置,以及图8或图9所示的数据持久化处理装置。
或者,该数据持久化处理装置包括图10所示的数据持久化处理装置。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现,所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机的可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质,或者半导体介质(例如固态硬盘)等。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (30)
1.一种数据持久化处理方法,其特征在于,用于远程字典服务Redis服务器的主操作系统,所述主操作系统设置一共享内存,所述主操作系统上运行有多个隔离单元,每个所述隔离单元运行有一个Redis服务,所述Redis服务包括至少一个进程,所述方法包括:
接收目标隔离单元发送的租借请求信息,所述租借请求信息包括所述目标隔离单元执行数据持久化操作所需的租借内存的容量和租借时长,所述目标隔离单元为所述多个隔离单元中的任一隔离单元;
当所述共享内存的容量大于或等于所述租借内存的容量时,从所述共享内存中划分出与所述租借内存相同容量的内存作为所述租借内存;
向所述目标隔离单元发送第一租借响应信息,所述第一租借响应信息用于指示所述租借内存被分配给所述目标隔离单元。
2.根据权利要求1所述的方法,其特征在于,在所述向所述目标隔离单元发送第一租借响应信息之后,所述方法还包括:
当所述目标隔离单元不再占用所述租借内存时,清除所述租借内存中的中间数据,所述中间数据为所述目标隔离单元执行所述数据持久化操作所产生的数据。
3.根据权利要求2所述的方法,其特征在于,在所述向所述目标隔离单元发送第一租借响应信息之后,所述方法还包括:
在所述租借时长内,当接收到所述目标隔离单元发送的归还响应信息时,确定所述目标隔离单元不再占用所述租借内存,所述归还响应信息用于指示所述目标隔离单元已完成所述数据持久化操作。
4.根据权利要求2所述的方法,其特征在于,在所述向所述目标隔离单元发送第一租借响应信息之后,所述方法还包括:
当检测到所述目标隔离单元占用所述租借内存的时长达到所述租借时长时,向所述目标隔离单元发送归还指示信息,所述归还指示信息用于指示所述目标隔离单元停止占用所述租借内存;
确定所述目标隔离单元不再占用所述租借内存。
5.根据权利要求3所述的方法,其特征在于,在所述向所述目标隔离单元发送第一租借响应信息之后,所述方法还包括:
当检测到所述目标隔离单元占用所述租借内存的时长达到所述租借时长,且经过预设时长后未接收到所述目标隔离单元发送的归还响应信息时,向所述目标隔离单元发送归还指示信息,所述归还指示信息用于指示所述目标隔离单元停止占用所述租借内存;
确定所述目标隔离单元不再占用所述租借内存。
6.根据权利要求1所述的方法,其特征在于,在所述接收目标隔离单元发送的租借请求信息之后,所述方法还包括:
当所述共享内存的容量小于所述租借内存的容量时,向所述目标隔离单元发送第二租借响应信息,所述第二租借响应信息用于指示所述租借内存的分配操作执行失败。
7.根据权利要求1至6任一所述的方法,其特征在于,
所述隔离单元为虚拟机。
8.一种数据持久化处理方法,其特征在于,用于目标隔离单元,所述目标隔离单元为多个隔离单元中的任一隔离单元,所述多个隔离单元运行在远程字典服务Redis服务器的主操作系统上,所述主操作系统设置有一共享内存,每个所述隔离单元运行有一个Redis服务,所述Redis服务包括至少一个进程,所述方法包括:
向所述主操作系统发送租借请求信息,所述租借请求信息包括所述目标隔离单元执行数据持久化操作所需的租借内存的容量和租借时长;
接收所述主操作系统发送的第一租借响应信息,所述第一租借响应信息用于指示所述租借内存被分配给所述目标隔离单元,所述第一租借响应信息是所述主操作系统在所述共享内存的容量大于或等于所述租借内存的容量,从所述共享内存中划分出与所述租借内存相同容量的内存作为所述租借内存时生成的;
基于所述主操作系统分配的所述租借内存执行所述数据持久化操作。
9.根据权利要求8所述的方法,其特征在于,在所述基于所述主操作系统分配的所述租借内存执行所述数据持久化操作之后,所述方法还包括:
在所述租借时长内,向所述主操作系统发送归还响应信息,所述归还响应信息用于指示所述目标隔离单元已完成所述数据持久化操作。
10.根据权利要求8所述的方法,其特征在于,在所述基于所述主操作系统分配的所述租借内存执行所述数据持久化操作之后,所述方法还包括:
接收所述主操作系统发送的归还指示信息,所述归还指示信息用于指示所述目标隔离单元停止占用所述租借内存,所述归还指示信息是所述主操作系统在检测到所述目标隔离单元占用所述租借内存的时长达到所述租借时长时生成的;
基于所述归还指示信息停止占用所述租借内存。
11.根据权利要求9所述的方法,其特征在于,在所述基于所述主操作系统分配的所述租借内存执行所述数据持久化操作之后,所述方法还包括:
接收所述主操作系统发送的归还指示信息,所述归还指示信息用于指示所述目标隔离单元停止占用所述租借内存,所述归还指示信息是所述主操作系统在检测到所述目标隔离单元占用所述租借内存的时长达到所述租借时长,且经过预设时长后未接收到所述目标隔离单元发送的归还响应信息时生成的;
基于所述归还指示信息停止占用所述租借内存。
12.根据权利要求8所述的方法,其特征在于,在所述向所述主操作系统发送租借请求信息之后,所述方法还包括:
接收所述主操作系统发送的第二租借响应信息,所述第二租借响应信息用于指示所述租借内存的分配操作执行失败,所述第二租借响应信息是所述主操作系统在所述共享内存的容量小于所述租借内存的容量时生成的。
13.根据权利要求8至12任一所述的方法,其特征在于,所述目标隔离单元为虚拟机,所述目标隔离单元上运行有目标客户机操作系统和目标Redis服务,
所述向所述主操作系统发送租借请求信息,包括:
通过所述目标客户机操作系统向所述主操作系统发送所述租借请求信息,所述租借请求信息是所述目标Redis服务发送至所述目标客户机操作系统的;
所述接收所述主操作系统发送的第一租借响应信息,包括:
通过所述目标客户机操作系统接收所述主操作系统发送的第一租借响应信息;
所述基于所述主操作系统分配的所述租借内存执行所述数据持久化操作,包括:
通过所述目标客户机操作系统控制所述目标Redis服务,基于所述租借内存执行所述数据持久化操作。
14.一种数据持久化处理方法,其特征在于,用于远程字典服务Redis服务器,所述Redis服务器上运行有主操作系统,所述主操作系统设置一共享内存,所述主操作系统上运行有多个隔离单元,每个所述隔离单元运行有一个Redis服务,所述Redis服务包括至少一个进程,所述方法包括:
目标隔离单元向所述主操作系统发送租借请求信息,所述租借请求信息包括所述目标隔离单元执行数据持久化操作所需的租借内存的容量和租借时长,所述目标隔离单元为所述多个隔离单元中的任一隔离单元;
当所述共享内存的容量大于或等于所述租借内存的容量时,所述主操作系统从所述共享内存中划分出与所述租借内存相同容量的内存作为所述租借内存;
所述主操作系统向所述目标隔离单元发送第一租借响应信息,所述第一租借响应信息用于指示所述租借内存被分配给所述目标隔离单元;
所述目标隔离单元基于所述主操作系统分配的所述租借内存执行所述数据持久化操作。
15.一种数据持久化处理装置,其特征在于,用于远程字典服务Redis服务器的主操作系统,所述主操作系统设置一共享内存,所述主操作系统上运行有多个隔离单元,每个所述隔离单元运行有一个Redis服务,所述Redis服务包括至少一个进程,所述装置包括:
接收模块,用于接收目标隔离单元发送的租借请求信息,所述租借请求信息包括所述目标隔离单元执行数据持久化操作所需的租借内存的容量和租借时长,所述目标隔离单元为所述多个隔离单元中的任一隔离单元;
处理模块,用于在所述共享内存的容量大于或等于所述租借内存的容量时,从所述共享内存中划分出与所述租借内存相同容量的内存作为所述租借内存;
发送模块,用于向所述目标隔离单元发送第一租借响应信息,所述第一租借响应信息用于指示所述租借内存被分配给所述目标隔离单元。
16.根据权利要求15所述的装置,其特征在于,所述装置还包括:
清除模块,用于在所述目标隔离单元不再占用所述租借内存时,清除所述租借内存中的中间数据,所述中间数据为所述目标隔离单元执行所述数据持久化操作所产生的数据。
17.根据权利要求16所述的装置,其特征在于,所述装置还包括:
第一确定模块,用于在所述租借时长内,当接收到所述目标隔离单元发送的归还响应信息时,确定所述目标隔离单元不再占用所述租借内存,所述归还响应信息用于指示所述目标隔离单元已完成所述数据持久化操作。
18.根据权利要求16所述的装置,其特征在于,
所述发送模块,还用于在检测到所述目标隔离单元占用所述租借内存的时长达到所述租借时长时,向所述目标隔离单元发送归还指示信息,所述归还指示信息用于指示所述目标隔离单元停止占用所述租借内存;
所述装置还包括:
第二确定模块,用于确定所述目标隔离单元不再占用所述租借内存。
19.根据权利要求17所述的装置,其特征在于,
所述发送模块,还用于在检测到所述目标隔离单元占用所述租借内存的时长达到所述租借时长,且经过预设时长后未接收到所述目标隔离单元发送的归还响应信息时,向所述目标隔离单元发送归还指示信息,所述归还指示信息用于指示所述目标隔离单元停止占用所述租借内存;
所述装置还包括:
第三确定模块,用于确定所述目标隔离单元不再占用所述租借内存。
20.根据权利要求15所述的装置,其特征在于,
所述发送模块,还用于在所述共享内存的容量小于所述租借内存的容量时,向所述目标隔离单元发送第二租借响应信息,所述第二租借响应信息用于指示所述租借内存的分配操作执行失败。
21.一种数据持久化处理装置,其特征在于,用于目标隔离单元,所述目标隔离单元为多个隔离单元中的任一隔离单元,所述多个隔离单元运行在远程字典服务Redis服务器的主操作系统上,所述主操作系统设置有一共享内存,每个所述隔离单元运行有一个Redis服务,所述Redis服务包括至少一个进程,所述装置包括:
发送模块,用于向所述主操作系统发送租借请求信息,所述租借请求信息包括所述目标隔离单元执行数据持久化操作所需的租借内存的容量和租借时长;
接收模块,用于接收所述主操作系统发送的第一租借响应信息,所述第一租借响应信息用于指示所述租借内存被分配给所述目标隔离单元,所述第一租借响应信息是所述主操作系统在所述共享内存的容量大于或等于所述租借内存的容量,从所述共享内存中划分出与所述租借内存相同容量的内存作为所述租借内存时生成的;
执行模块,用于基于所述主操作系统分配的所述租借内存执行所述数据持久化操作。
22.根据权利要求21所述的装置,其特征在于,
所述发送模块,还用于在所述租借时长内,向所述主操作系统发送归还响应信息,所述归还响应信息用于指示所述目标隔离单元已完成所述数据持久化操作。
23.根据权利要求21所述的装置,其特征在于,
所述接收模块,还用于接收所述主操作系统发送的归还指示信息,所述归还指示信息用于指示所述目标隔离单元停止占用所述租借内存,所述归还指示信息是所述主操作系统在检测到所述目标隔离单元占用所述租借内存的时长达到所述租借时长时生成的;
所述装置还包括:
第一处理模块,用于基于所述归还指示信息停止占用所述租借内存。
24.根据权利要求22所述的装置,其特征在于,
所述接收模块,还用于接收所述主操作系统发送的归还指示信息,所述归还指示信息用于指示所述目标隔离单元停止占用所述租借内存,所述归还指示信息是所述主操作系统在检测到所述目标隔离单元占用所述租借内存的时长达到所述租借时长,且经过预设时长后未接收到所述目标隔离单元发送的归还响应信息时生成的;
所述装置还包括:
第二处理模块,用于基于所述归还指示信息停止占用所述租借内存。
25.根据权利要求21所述的装置,其特征在于,
所述接收模块,还用于接收所述主操作系统发送的第二租借响应信息,所述第二租借响应信息用于指示所述租借内存的分配操作执行失败,所述第二租借响应信息是所述主操作系统在所述共享内存的容量小于所述租借内存的容量时生成的。
26.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当所述计算机可读存储介质在计算机上运行时,使得计算机执行权利要求1至7任一所述的数据持久化处理方法。
27.一种包含指令的计算机程序产品,其特征在于,当所述计算机程序产品在计算机上运行时,使得计算机执行权利要求1至7任一所述的数据持久化处理方法。
28.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当所述计算机可读存储介质在计算机上运行时,使得计算机执行权利要求8至13任一所述的数据持久化处理方法。
29.一种包含指令的计算机程序产品,其特征在于,当所述计算机程序产品在计算机上运行时,使得计算机执行权利要求8至13任一所述的数据持久化处理方法。
30.一种数据持久化处理系统,其特征在于,所述系统包括:主操作系统和目标隔离单元,所述主操作系统和所述目标隔离单元位于同一数据持久化处理装置中;
所述数据持久化处理装置包括权利要求15至20任一所述的数据持久化处理装置,以及权利要求21至25任一所述的数据持久化处理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711393149.0A CN110019475B (zh) | 2017-12-21 | 2017-12-21 | 数据持久化处理方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711393149.0A CN110019475B (zh) | 2017-12-21 | 2017-12-21 | 数据持久化处理方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110019475A true CN110019475A (zh) | 2019-07-16 |
CN110019475B CN110019475B (zh) | 2021-07-20 |
Family
ID=67187040
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711393149.0A Active CN110019475B (zh) | 2017-12-21 | 2017-12-21 | 数据持久化处理方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110019475B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110750579A (zh) * | 2019-10-21 | 2020-02-04 | 浪潮云信息技术有限公司 | 一种云数据库Redis的高效内存分布方法及系统 |
CN111736996A (zh) * | 2020-06-17 | 2020-10-02 | 上海交通大学 | 一种面向分布式非易失内存系统的进程持久化方法及装置 |
CN113434515A (zh) * | 2021-07-23 | 2021-09-24 | 深圳智多豚物联技术有限公司 | 基于持久化redis存储服务的分布式高速存储系统 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103136055A (zh) * | 2011-11-25 | 2013-06-05 | 国际商业机器公司 | 用于在数据库服务中控制对计算资源的使用的方法和装置 |
CN104915151A (zh) * | 2015-06-02 | 2015-09-16 | 杭州电子科技大学 | 多虚拟机系统中一种主动共享的内存超量分配方法 |
CN105094980A (zh) * | 2014-05-23 | 2015-11-25 | 北京云巢动脉科技有限公司 | 一种虚拟机内存的动态调整系统 |
CN105094997A (zh) * | 2015-09-10 | 2015-11-25 | 重庆邮电大学 | 一种云计算主机节点间物理内存共享方法和系统 |
CN106844007A (zh) * | 2016-12-29 | 2017-06-13 | 中国科学院计算技术研究所 | 一种基于空间复用的虚拟化方法与系统 |
CN106933648A (zh) * | 2015-12-31 | 2017-07-07 | 中国电信股份有限公司 | 用于多租户容器资源管理的方法和系统 |
US20170235751A1 (en) * | 2016-02-12 | 2017-08-17 | Nutanix, Inc. | Virtualized file server user views |
US20170277903A1 (en) * | 2016-03-22 | 2017-09-28 | Qualcomm Incorporated | Data Protection Using Virtual Resource Views |
CN107426152A (zh) * | 2017-04-07 | 2017-12-01 | 西安电子科技大学 | 云平台虚实互联环境下多任务安全隔离系统及方法 |
-
2017
- 2017-12-21 CN CN201711393149.0A patent/CN110019475B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103136055A (zh) * | 2011-11-25 | 2013-06-05 | 国际商业机器公司 | 用于在数据库服务中控制对计算资源的使用的方法和装置 |
CN105094980A (zh) * | 2014-05-23 | 2015-11-25 | 北京云巢动脉科技有限公司 | 一种虚拟机内存的动态调整系统 |
CN104915151A (zh) * | 2015-06-02 | 2015-09-16 | 杭州电子科技大学 | 多虚拟机系统中一种主动共享的内存超量分配方法 |
CN105094997A (zh) * | 2015-09-10 | 2015-11-25 | 重庆邮电大学 | 一种云计算主机节点间物理内存共享方法和系统 |
CN106933648A (zh) * | 2015-12-31 | 2017-07-07 | 中国电信股份有限公司 | 用于多租户容器资源管理的方法和系统 |
US20170235751A1 (en) * | 2016-02-12 | 2017-08-17 | Nutanix, Inc. | Virtualized file server user views |
US20170277903A1 (en) * | 2016-03-22 | 2017-09-28 | Qualcomm Incorporated | Data Protection Using Virtual Resource Views |
CN106844007A (zh) * | 2016-12-29 | 2017-06-13 | 中国科学院计算技术研究所 | 一种基于空间复用的虚拟化方法与系统 |
CN107426152A (zh) * | 2017-04-07 | 2017-12-01 | 西安电子科技大学 | 云平台虚实互联环境下多任务安全隔离系统及方法 |
Non-Patent Citations (2)
Title |
---|
PARESH WANKHEDE等: "《Secure and multi-tenant Hadoop cluster - an experience》", 《IEEE》 * |
王胜: "《多租户云中内存共享型隐蔽信道的检测防御机制研究》", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110750579A (zh) * | 2019-10-21 | 2020-02-04 | 浪潮云信息技术有限公司 | 一种云数据库Redis的高效内存分布方法及系统 |
CN111736996A (zh) * | 2020-06-17 | 2020-10-02 | 上海交通大学 | 一种面向分布式非易失内存系统的进程持久化方法及装置 |
CN113434515A (zh) * | 2021-07-23 | 2021-09-24 | 深圳智多豚物联技术有限公司 | 基于持久化redis存储服务的分布式高速存储系统 |
CN113434515B (zh) * | 2021-07-23 | 2022-10-14 | 深圳智多豚物联技术有限公司 | 基于持久化redis存储服务的分布式高速存储系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110019475B (zh) | 2021-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103744719B (zh) | 锁管理方法及系统、锁管理系统的配置方法及装置 | |
CN106375404B (zh) | 数据存储控制方法、数据存储方法、数据获取方法及装置 | |
CN104094230B (zh) | 用于支持虚拟化环境中的虚拟机的动态迁移的系统和方法 | |
CN108984266B (zh) | 一种虚拟机的管理方法、装置及系统 | |
CN100385403C (zh) | 在逻辑分区之间转移网络业务的方法及系统 | |
CN106031116B (zh) | 一种ns与vnf的关联方法、装置及系统 | |
CN103618621B (zh) | 一种软件定义网络sdn的自动配置方法、设备及系统 | |
AU2015410318C1 (en) | Data write method, apparatus, and system | |
CN104239227B (zh) | 一种虚拟化存储管理装置、本地虚拟存储管理装置及方法 | |
CN103634379B (zh) | 一种分布式存储空间的管理方法和分布式存储系统 | |
CN104601680B (zh) | 一种资源管理方法及装置 | |
CN110019475A (zh) | 数据持久化处理方法、装置及系统 | |
CN103677858A (zh) | 一种云环境中虚拟机软件管理的方法、系统及设备 | |
CN113163277A (zh) | 光网络单元带宽管理方法、装置、电子设备及存储介质 | |
CN104038444B (zh) | 一种资源分配的方法、设备及系统 | |
CN106101171B (zh) | 服务器连接方法及装置 | |
CN104205780B (zh) | 一种存储数据的方法和装置 | |
CN108011846A (zh) | 网络功能虚拟化架构中管理业务的方法及装置 | |
CN109376011A (zh) | 虚拟化系统中管理资源的方法和装置 | |
CN104793981B (zh) | 一种虚拟机集群的在线快照管理方法及装置 | |
CN108989476A (zh) | 一种地址分配方法以及装置 | |
EP3629160B1 (en) | Method and device for managing vnf instantiation | |
CN104461705B (zh) | 一种业务访问的方法及存储控制器、集群存储系统 | |
CN108540408B (zh) | 一种基于Openstack的分布式虚拟交换机的管理方法及系统 | |
CN108667750B (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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200422 Address after: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Applicant after: HUAWEI TECHNOLOGIES Co.,Ltd. Address before: 301, A building, room 3, building 301, foreshore Road, No. 310052, Binjiang District, Zhejiang, Hangzhou Applicant before: Huawei Technologies Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |