CN109542662B - 一种内存管理方法、装置、服务器及存储介质 - Google Patents

一种内存管理方法、装置、服务器及存储介质 Download PDF

Info

Publication number
CN109542662B
CN109542662B CN201811408958.9A CN201811408958A CN109542662B CN 109542662 B CN109542662 B CN 109542662B CN 201811408958 A CN201811408958 A CN 201811408958A CN 109542662 B CN109542662 B CN 109542662B
Authority
CN
China
Prior art keywords
tuple
size
buffer pool
memory
equal
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.)
Active
Application number
CN201811408958.9A
Other languages
English (en)
Other versions
CN109542662A (zh
Inventor
张志远
兰杰
王生玉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qingdao Provincial Public Security Department
Beijing Ruian Technology Co Ltd
Original Assignee
Qingdao Provincial Public Security Department
Beijing Ruian Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Qingdao Provincial Public Security Department, Beijing Ruian Technology Co Ltd filed Critical Qingdao Provincial Public Security Department
Priority to CN201811408958.9A priority Critical patent/CN109542662B/zh
Publication of CN109542662A publication Critical patent/CN109542662A/zh
Application granted granted Critical
Publication of CN109542662B publication Critical patent/CN109542662B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation 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/5016Allocation 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种内存管理方法、装置、服务器及存储介质。该方法包括:获取滑动窗口的元组,检测内存中缓冲池的剩余空间大小,如果所述剩余空间大小大于或等于所述元组的大小,将所述元组存储至所述缓冲池,如果所述剩余空间大小小于所述元组的大小,将所述元组存储至磁盘。上述技术方案,通过将滑动窗口的部分元组从内存迁移至磁盘,解决了现有技术中将大量数据存储至内存,造成内存不足而引起系统崩溃的问题,减小了主机对内存容量和性能的依赖。

Description

一种内存管理方法、装置、服务器及存储介质
技术领域
本发明实施例涉及内存管理技术领域,尤其涉及一种内存管理方法、装置、服务器及存储介质。
背景技术
基于事件的应用程序是一种数据流处理系统,其设计目的是对流数据进行统计分析,因此,系统通常每秒处理成百上千个的数据流元组。近几十年来,随着相关技术的成熟,流处理引擎在在工业和商业领域得到广泛应用,例如,通过传感器网络监测发电站,识别和预测金融报价机的趋势,分析电信电话记录。
数据流元组的数据由某些特定网络连续产生,然后发送到事件处理引擎进行处理,实际发送时,数据流元组变成单个流或多个流,系统需要应对较高的传入速率。因此,对于单主机处理引擎情况,必须在内存资源中维护大量数据,而内存不足的问题可能会增加高延迟,甚至阻塞或导致整个系统崩溃。
发明内容
本发明实施例提供一种内存管理方法、装置、服务器及存储介质,以解决单主机的内存限制问题。
第一方面,本发明实施例提供内存管理方法,包括:
获取滑动窗口的元组;
检测内存中缓冲池的剩余空间大小;
如果所述剩余空间大小大于或等于所述元组的大小,将所述元组存储至所述缓冲池;
如果所述剩余空间大小小于所述元组的大小,将所述元组存储至磁盘。
进一步的,所述如果所述剩余空间大小大于或等于所述元组的大小,将所述元组存储至所述缓冲池,包括:
如果所述内存中缓冲池首端的剩余空间大小大于或等于所述元组的大小,将所述元组存储至所述缓冲池的首端。
进一步的,所述如果所述剩余空间大小大于或等于所述元组的大小,将所述元组存储至所述缓冲池,还包括:
如果缓冲池首端的剩余空间大小小于所述元组的大小,且所述缓冲池中除首端之外的剩余空间大小大于或等于所述元组的大小,将所述元组存储至所述缓冲池中除首端之外的剩余空间。
进一步的,该方法还包括:
检测所述内存中缓冲池尾端的剩余空间大小;
如果所述内存中缓冲池尾端的剩余空间大小大于或等于所述内存中缓冲池中时间戳大于或等于时间戳阈值的元组的大小,将所述时间戳大于或等于时间戳阈值的元组从所述缓冲池的尾端移除。
进一步的,在将所述时间戳大于或等于时间戳阈值的元组从所述缓冲池的尾端移除之后,还包括:
如果所述缓冲池有剩余空间,将所述磁盘中时间戳小于时间戳阈值的元组移入所述缓冲池。
第二方面,本发明实施例还提供一种内存管理装置,该装置包括:
获取模块,用于获取滑动窗口的元组;
第一检测模块,用于检测内存中缓冲池的剩余空间大小;
第一存储模块,用于如果所述剩余空间大小大于或等于所述元组的大小,将所述元组存储至所述缓冲池;
第二存储模块,用于如果所述剩余空间大小小于所述元组的大小,将所述元组存储至磁盘。
进一步的,所述第一存储模块包括:
第一存储单元,用于如果所述内存中缓冲池首端的剩余空间大小大于或等于所述元组的大小,将所述元组存储至所述缓冲池的首端。
进一步的,所述第一存储模块还包括:
第二存储单元,用于如果缓冲池首端的剩余空间大小小于所述元组的大小,且所述缓冲池中除首端之外的剩余空间大小大于或等于所述元组的大小,将所述元组存储至所述缓冲池中除首端之外的剩余空间。
第三方面,本发明实施例还提供一种服务器,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面所述的内存管理方法。
第四方面,本发明实施例还提供一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面所述的内存管理方法。
本发明实施例提供一种内存管理方法、装置、服务器及存储介质,通过获取滑动窗口的元组,检测内存中缓冲池的剩余空间大小,如果所述剩余空间大小大于或等于所述元组的大小,将所述元组存储至所述缓冲池,如果所述剩余空间大小小于所述元组的大小,将所述元组存储至磁盘,通过将滑动窗口的部分元组从内存迁移至磁盘,解决了现有技术中将大量数据存储至内存,造成内存不足而引起系统崩溃的问题,减小了主机对内存容量和性能的依赖。
附图说明
图1为本发明实施例一提供的一种内存管理方法的流程图;
图2为本发明实施例二提供的一种内存管理方法的流程图;
图3为元组存储过程的示意图;
图4为本发明实施例三提供的一种内存管理装置的结构图;
图5为本发明实施例四提供的一种服务器的结构图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一提供的一种内存管理方法的流程图,本实施例可适用于单主机架构的应用场景,该方法可以由内存管理装置来执行,该装置集成在服务器中,具体的,该方法包括如下步骤:
S110、获取滑动窗口的元组。
元组是数据流的组成部分,每个元组包含一定量的数据,例如,每一个元素(d1,d2,…,dn),称为一个n元组或简称元组。数据流是一串连续不断的数据的集合,也可以理解为是多个元组的集合,元组的大小可以根据实际需要设置。滑动窗口是一种流量控制技术,用于帧或字节的传送,实际应用中,滑动窗口的大小可以根据元组的大小创建,以临时存放元组。
S120、检测内存中缓冲池的剩余空间大小。
缓冲池是内存的一部分,实际应用中可以根据需要创建大小和位置合适的缓冲池,需要注意的是,缓冲池的大小需要考虑内存的大小,比如内存可以存放10个数据,则创建的缓冲池最多可以存放十个数据。具体的,缓冲池用于存储滑动窗口首端和尾端的元组,其中,首端的元组是第一个进入滑动窗口的元组,尾端的元组是最后一个进入滑动窗口的元组,即对元组按照时间戳的先后顺序排序,首端的元组是时间戳最小的元组,尾端的元组是时间戳最大的元组。示例性的,假设滑动窗口可以存储10个元组,缓冲池可以存储2个元组,则滑动窗口中的第一个元组和第十个元组存储至缓冲池,如果缓冲池可以存储6个元组,则除了将滑动窗口中的第一个元组和第十个元组存储至缓冲池,还可以选择滑动窗口中的另外4个元组存储至缓冲池,这4个元组可以是在剩余元组中随机选择,也可以是按照时间戳的先后顺序选择。
具体的,当滑动窗口的元组出现并等待存储时,先检测缓冲池的剩余空间大小,这样设置的好处是:可以避免直接将元组存储至缓冲池,导致内存不足引起的系统崩溃问题,实施例中对具体的检测方式不作限定,例如可以在系统中设置相应的检测模块,由检测模块实时的检测缓冲池的剩余空间大小,通过比较剩余空间大小和待存储的元组的大小即可确定是否需要将该元组存储至缓冲池,保证了系统性能。
S130、如果所述剩余空间大小大于或等于所述元组的大小,将所述元组存储至所述缓冲池。
具体的,如果剩余空间大小大于或等于待存储的元组的大小,表明缓冲池可以存储该元组,同时不会因为内存不足而引起系统崩溃,因此,可以将该元组存储至缓冲池,其中,待存储的元组的大小可以在元组出现并等待存储时获取,即元组离开滑动窗口后由系统检测模块获取,也可以是元组存储在滑动窗口中时由系统检测模块提前获取。
S140、如果所述剩余空间大小小于所述元组的大小,将所述元组存储至磁盘。
具体的,如果剩余空间大小小于该元组的大小,则将该元组存储至磁盘,即将滑动窗口中的元组一部分存储至内存中,一部分存储至磁盘中,既满足了保留所有元组的需求,又减少了单主机对内存容量和性能的依赖,避免了大量元组进入系统时,造成内存不足引起的系统崩溃的问题。需要说明的是,虽然磁盘的容量几乎是无限的,但实际应用中,磁盘用于存储元组的空间大小是一定的,其中,空间大小的设置具体可以根据实际情况设置。
本发明实施例一提供一种内存管理方法,通过获取滑动窗口的元组,检测内存中缓冲池的剩余空间大小,如果所述剩余空间大小大于或等于所述元组的大小,将所述元组存储至所述缓冲池,如果所述剩余空间大小小于所述元组的大小,将所述元组存储至磁盘,通过将滑动窗口的部分元组从内存迁移至磁盘,解决了现有技术中将大量数据存储至单主机的内存,造成内存不足而引起系统崩溃的问题,减小了单主机对内存容量和性能的依赖。
实施例二
图2为本发明实施例二提供的一种内存管理方法的流程图,在上述实施例的基础上进行优化,具体的,该方法包括如下步骤:
S210、获取滑动窗口的元组。
S220、检测内存中缓冲池的剩余空间大小。
S230、如果所述剩余空间大小大于或等于所述元组的大小,将所述元组存储至所述缓冲池。
缓冲池是内存的一部分,实际存储时,除了考虑缓冲池的剩余空间大小,还需要考虑内存的剩余空间大小,为此,实施例将S230具体为:
S2301、如果所述内存中缓冲池首端的剩余空间大小大于或等于所述元组的大小,将所述元组存储至所述缓冲池的首端。
具体的,参考图3,图3为元组存储过程的示意图,缓冲池201的首端203虽然也是内存,但与缓冲池201是两个独立的部分,当缓冲池201中需要增加新的元组时,需要优先考虑首端203的大小,即先检测首端203的剩余空间大小,如果首端203的剩余空间大小大于或等于元组207的大小,则直接将元组207存储至首端203,无需再检测缓冲池201的剩余空间大小。
S2302、如果缓冲池首端的剩余空间大小小于所述元组的大小,且所述缓冲池中除首端之外的剩余空间大小大于或等于所述元组的大小,将所述元组存储至所述缓冲池中除首端之外的剩余空间。
具体的,如果首端203的剩余空间大小小于元组207的大小,此时需要进一步检测缓冲池201的剩余空间大小,如果缓冲池201的剩余空间大小大于或等于元组207的大小,则将元组207存储至缓冲池201。
S240、如果所述剩余空间大小小于所述元组的大小,将所述元组存储至磁盘。
S250、检测所述内存中缓冲池尾端的剩余空间大小。
参考图3,缓冲池201的尾端204其结构与首端203类似,是独立于缓冲池201的内存,主要用于移除缓冲池201中时间戳大于或等于时间戳阈值的元组,即过期元组,以便存储其他元组。具体的,检测尾端204的剩余空间大小与检测缓冲池201的剩余空间大小类似,此处不再赘述。
S260、如果所述内存中缓冲池尾端的剩余空间大小大于或等于所述内存中缓冲池中时间戳大于或等于时间戳阈值的元组的大小,将所述时间戳大于或等于时间戳阈值的元组从所述缓冲池的尾端移除。
具体的,为了及时的移除过期元组,可以在元组中设置时间字段,即时间戳,根据时间戳即可确定元组在缓冲池存储的时间,并将时间戳大于或等于时间戳阈值的元组从尾端移除,其中,时间戳阈值可以根据实际情况设置,例如可以设置为10秒,当缓冲池中的元组在缓冲池中存储的时间大于或等于10秒时需要被移除。
S270、如果所述缓冲池有剩余空间,将所述磁盘中时间戳小于时间戳阈值的元组移入所述缓冲池。
与缓冲池类似,磁盘中的元组随着时间的推移也需要不断的更新,即需要移除磁盘中时间戳小于时间戳阈值的元组。具体的。当磁盘中存在需要移除的元组时,需要将待移除的元组先移入缓冲池,然后通过缓冲池的尾端移除。在移入缓冲池之前,需要先检测缓冲池是否有剩余空间,如果有,则将时间戳小于时间戳阈值的元组移入缓冲池。
下面参考图3,对元组的存储过程进行简单描述:
整个过程可以简单的划分为存储过程和移除过程,其中存储过程为:当检测到滑动窗口中的元组207需要存储时,首先检测尾端203的剩余空间大小,如果该剩余空间大小大于或等于元组207的大小,直接将元组207存储至尾端203,则元组207的存储过程结束,否则,需要继续检测缓冲池201的剩余空间大小,如果该剩余空间的大小大于或等于元组207的大小,则将元组207存储至缓冲池201,否则,将元组207由磁盘206的指定空间205的尾部存储至指定空间205,其中指定空间205是磁盘206中创建的用于存储元组207的空间。
移除过程为:每个元组设置有时间戳,由于缓冲池201的存储空间有限,需要及时的将过期元组从尾端204移除,以便存储其他元组,具体的,在确定元组207是否为过期元组,可以将元组207的时间戳与设定的时间戳阈值进行比较,将时间戳大于或等于时间戳阈值的元组移除,另一方面,指定空间205中存储的元组也需要及时的移除与更新,如果指定空间205中有时间戳小于时间戳阈值的元组,则将该元组从此指定空间205的头部移入缓冲池201,再由尾端204移除,元组移除之后即可再存储新的元组,不断的更新。
本发明实施例二提供一种内存管理方法,在上述实施例的基础上进行优化,当有元组需要存储时,先检测缓冲池的首端是否有剩余空间,如果有,则直接将元组存储至首端,如果首端没有剩余空间,则继续检测缓冲池,如果缓冲池有剩余空间,则将元组存储至缓冲池,否则存储至磁盘,另一方面,通过缓冲池的尾端将缓冲池的过期元组移除,同时将磁盘中也需要移除的元组移入缓冲池,并通过尾端移除,既满足了对滑动窗口中所有元组的需求,又充分利用了内存和磁盘的性能,避免了大量元组进入系统,造成内存不足引起的系统崩溃问题。
实施例三
图4为本发明实施例三提供的一种内存管理装置的结构图,该装置可以执行上述实施例所述的内存管理方法,具体的,该装置包括:
获取模块310,用于获取滑动窗口的元组;
第一检测模块320,用于检测内存中缓冲池的剩余空间大小;
第一存储模块330,用于如果所述剩余空间大小大于或等于所述元组的大小,将所述元组存储至所述缓冲池;
第二存储模块340,用于如果所述剩余空间大小小于所述元组的大小,将所述元组存储至磁盘。
本发明实施例三提供一种内存管理装置,通过获取滑动窗口的元组,检测内存中缓冲池的剩余空间大小,如果所述剩余空间大小大于或等于所述元组的大小,将所述元组存储至所述缓冲池,如果所述剩余空间大小小于所述元组的大小,将所述元组存储至磁盘,通过将滑动窗口的部分元组从内存迁移至磁盘,解决了现有技术中将大量数据存储至单主机的内存,造成内存不足而引起系统崩溃的问题,减小了单主机对内存容量和性能的依赖。
在上述实施例的基础上,第一存储模块330包括:
第一存储单元,用于如果所述内存中缓冲池首端的剩余空间大小大于或等于所述元组的大小,将所述元组存储至所述缓冲池的首端。
在上述实施例的基础上,第一存储模块330还包括:
第二存储单元,用于如果缓冲池首端的剩余空间大小小于所述元组的大小,且所述缓冲池中除首端之外的剩余空间大小大于或等于所述元组的大小,将所述元组存储至所述缓冲池中除首端之外的剩余空间。
在上述实施例的基础上,该装置还包括:
第二检测模块,用于检测所述内存中缓冲池尾端的剩余空间大小;
移除模块,用于如果所述内存中缓冲池尾端的剩余空间大小大于或等于所述内存中缓冲池中时间戳大于或等于时间戳阈值的元组的大小,将所述时间戳大于或等于时间戳阈值的元组从所述缓冲池的尾端移除。
在上述实施例的基础上,该装置还包括:
移入模块,用于在将所述时间戳大于或等于时间戳阈值的元组从所述缓冲池的尾端移除之后,如果所述缓冲池有剩余空间,将所述磁盘中时间戳小于时间戳阈值的元组移入所述缓冲池。
本发明实施例提供的内存管理装置与上述实施例提供的内存管理方法属于同一发明构思,未在本实施例中详尽描述的技术细节可参见上述实施例,并且本实施例具备执行内存管理方法相同的有益效果。
实施例四
图5为本发明实施例四提供的一种服务器的结构图,具体的,参考图5,该服务器包括:
处理器410、存储器420、输入装置430和输出装置440,服务器中处理器410的数量可以是一个或多个,图5中以一个处理器410为例,服务器中的处理器410、存储器420、输入装置430和输出装置440可以通过总线或其他方式连接,图5中以通过总线连接为例。
存储器420作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的内存管理方法对应的程序指令/模块。处理器410通过运行存储在存储器420中的软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述实施例的内存管理方法。
存储器420主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器420可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器420可进一步包括相对于处理器410远程设置的存储器,这些远程存储器可以通过网络连接至服务器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置430可用于接收输入的数字或字符信息,以及产生与服务器的用户设置以及功能控制有关的键信号输入。输出装置440可包括显示屏等显示设备、扬声器以及蜂鸣器等音频设备。
本发明实施例提供的服务器与上述实施例提供的内存管理方法属于同一发明构思,未在本实施例中详尽描述的技术细节可参见上述实施例,并且本实施例具备执行内存管理方法相同的有益效果。
实施例五
本发明实施例五还提供一种存储介质,其上存储有计算机程序,该程序被控制器执行时可以实现如本发明任意实施例所述的内存管理方法。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的内存管理方法中的操作,还可以执行本发明任意实施例所提供的内存管理方法中的相关操作,且具备相应的功能和有益效果。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是机器人,个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的内存管理方法。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (6)

1.一种内存管理方法,其特征在于,包括:
获取滑动窗口的元组;
检测内存中缓冲池的剩余空间大小;
如果所述剩余空间大小大于或等于所述元组的大小,将所述元组存储至所述缓冲池;
如果所述剩余空间大小小于所述元组的大小,将所述元组存储至磁盘;
所述如果所述剩余空间大小大于或等于所述元组的大小,将所述元组存储至所述缓冲池,包括:
如果所述内存中缓冲池首端的剩余空间大小大于或等于所述元组的大小,将所述元组存储至所述缓冲池的首端;
所述滑动窗口的大小根据元组的大小创建;
所述元组按照时间戳的先后顺序排序,所述缓冲池用于存储滑动窗口首端的元组和尾端的元组,所述首端的元组是时间戳最小的元组,所述尾端的元组是时间戳最大的元组;
检测所述内存中缓冲池尾端的剩余空间大小;
如果所述内存中缓冲池尾端的剩余空间大小大于或等于所述内存中缓冲池中时间戳大于或等于时间戳阈值的元组的大小,将所述时间戳大于或等于时间戳阈值的元组从所述缓冲池的尾端移除;
在将所述时间戳大于或等于时间戳阈值的元组从所述缓冲池的尾端移除之后,还包括:
如果所述缓冲池有剩余空间,将所述磁盘中时间戳小于时间戳阈值的元组移入所述缓冲池。
2.根据权利要求1所述的方法,其特征在于,所述如果所述剩余空间大小大于或等于所述元组的大小,将所述元组存储至所述缓冲池,还包括:
如果缓冲池首端的剩余空间大小小于所述元组的大小,且所述缓冲池中除首端之外的剩余空间大小大于或等于所述元组的大小,将所述元组存储至所述缓冲池中除首端之外的剩余空间。
3.一种内存管理装置,其特征在于,包括:
获取模块,用于获取滑动窗口的元组;
第一检测模块,用于检测内存中缓冲池的剩余空间大小;
第一存储模块,用于如果所述剩余空间大小大于或等于所述元组的大小,将所述元组存储至所述缓冲池;
第二存储模块,用于如果所述剩余空间大小小于所述元组的大小,将所述元组存储至磁盘;
第一存储单元,用于如果所述内存中缓冲池首端的剩余空间大小大于或等于所述元组的大小,将所述元组存储至所述缓冲池的首端;
所述滑动窗口的大小根据元组的大小创建;
所述元组按照时间戳的先后顺序排序,所述缓冲池用于存储滑动窗口首端的元组和尾端的元组,所述首端的元组是时间戳最小的元组,所述尾端的元组是时间戳最大的元组;
第二检测模块,用于检测所述内存中缓冲池尾端的剩余空间大小;
移除模块,用于如果所述内存中缓冲池尾端的剩余空间大小大于或等于所述内存中缓冲池中时间戳大于或等于时间戳阈值的元组的大小,将所述时间戳大于或等于时间戳阈值的元组从所述缓冲池的尾端移除;
移入模块,用于在将所述时间戳大于或等于时间戳阈值的元组从所述缓冲池的尾端移除之后,如果所述缓冲池有剩余空间,将所述磁盘中时间戳小于时间戳阈值的元组移入所述缓冲池。
4.根据权利要求3所述的装置,其特征在于,所述第一存储模块还包括:
第二存储单元,用于如果缓冲池首端的剩余空间大小小于所述元组的大小,且所述缓冲池中除首端之外的剩余空间大小大于或等于所述元组的大小,将所述元组存储至所述缓冲池中除首端之外的剩余空间。
5.一种服务器,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-2中任一项所述的内存管理方法。
6.一种存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-2中任一项所述的内存管理方法。
CN201811408958.9A 2018-11-23 2018-11-23 一种内存管理方法、装置、服务器及存储介质 Active CN109542662B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811408958.9A CN109542662B (zh) 2018-11-23 2018-11-23 一种内存管理方法、装置、服务器及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811408958.9A CN109542662B (zh) 2018-11-23 2018-11-23 一种内存管理方法、装置、服务器及存储介质

Publications (2)

Publication Number Publication Date
CN109542662A CN109542662A (zh) 2019-03-29
CN109542662B true CN109542662B (zh) 2022-04-05

Family

ID=65849788

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811408958.9A Active CN109542662B (zh) 2018-11-23 2018-11-23 一种内存管理方法、装置、服务器及存储介质

Country Status (1)

Country Link
CN (1) CN109542662B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113377781A (zh) * 2021-07-12 2021-09-10 中国工商银行股份有限公司 一种数据存储方法、装置、计算机设备和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103309966A (zh) * 2013-06-04 2013-09-18 中国科学院信息工程研究所 基于时间滑动窗口的数据流点连接查询方法
CN104182514A (zh) * 2014-08-21 2014-12-03 杭州华为数字技术有限公司 一种置换方法及终端
CN105204822A (zh) * 2015-10-27 2015-12-30 浪潮(北京)电子信息产业有限公司 一种基于mic协处理器的多数据流处理方法
CN105511802A (zh) * 2015-11-24 2016-04-20 北京达沃时代科技有限公司 写缓存的方法和装置以及磁盘缓存区的同步方法和装置
CN108287793A (zh) * 2018-01-09 2018-07-17 网宿科技股份有限公司 响应消息的缓冲方法及服务器

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016035189A1 (ja) * 2014-09-04 2016-03-10 株式会社日立製作所 ストリームデータ処理方法、ストリームデータ処理装置及び記憶媒体

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103309966A (zh) * 2013-06-04 2013-09-18 中国科学院信息工程研究所 基于时间滑动窗口的数据流点连接查询方法
CN104182514A (zh) * 2014-08-21 2014-12-03 杭州华为数字技术有限公司 一种置换方法及终端
CN105204822A (zh) * 2015-10-27 2015-12-30 浪潮(北京)电子信息产业有限公司 一种基于mic协处理器的多数据流处理方法
CN105511802A (zh) * 2015-11-24 2016-04-20 北京达沃时代科技有限公司 写缓存的方法和装置以及磁盘缓存区的同步方法和装置
CN108287793A (zh) * 2018-01-09 2018-07-17 网宿科技股份有限公司 响应消息的缓冲方法及服务器

Also Published As

Publication number Publication date
CN109542662A (zh) 2019-03-29

Similar Documents

Publication Publication Date Title
CN107391770B (zh) 一种处理数据的方法、装置、设备以及存储介质
CN111311326A (zh) 用户行为实时多维度分析方法、装置及存储介质
CN110765195A (zh) 一种数据解析方法、装置、存储介质及电子设备
CN111061758B (zh) 数据存储方法、装置及存储介质
CN109981715B (zh) 一种会话管理的方法及装置
CN111522786A (zh) 日志处理系统及方法
CN112988679A (zh) 日志采集控制方法、装置、存储介质及服务器
CN109542662B (zh) 一种内存管理方法、装置、服务器及存储介质
WO2020083023A1 (zh) 一种事件流处理方法、电子设备和可读存储介质
CN112612832B (zh) 节点分析方法、装置、设备及存储介质
CN114185885A (zh) 一种基于列存数据库的流式数据处理方法及系统
CN111078418B (zh) 操作同步方法、装置、电子设备及计算机可读存储介质
US10528403B2 (en) Adaptive event aggregation
CN113810336A (zh) 一种数据报文加密判定方法、装置及计算机设备
WO2023273529A1 (zh) 业务日志监控方法、装置、存储介质及电子设备
CN110727666A (zh) 面向工业互联网平台的缓存组件、方法、设备及存储介质
WO2022253131A1 (zh) 数据解析方法、装置、计算机设备和存储介质
CN115409345A (zh) 业务指标计算方法、装置、计算机设备和存储介质
CN112565821B (zh) 数据处理方法、装置、安全网关及存储设备
EP3511830A1 (en) Method for monitoring devices in a network, computerized system and application program interface
CN110908798B (zh) 多进程协同式网络流量解析方法及装置
CN114024838A (zh) 日志处理方法、装置及电子设备
CN113918577A (zh) 数据表识别方法、装置、电子设备及存储介质
CN110955710A (zh) 一种数据交换作业中脏数据的处理方法及装置
CN115396319B (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