CN102929727A - 一种同步接口上数据的处理方法和系统 - Google Patents
一种同步接口上数据的处理方法和系统 Download PDFInfo
- Publication number
- CN102929727A CN102929727A CN2012103961980A CN201210396198A CN102929727A CN 102929727 A CN102929727 A CN 102929727A CN 2012103961980 A CN2012103961980 A CN 2012103961980A CN 201210396198 A CN201210396198 A CN 201210396198A CN 102929727 A CN102929727 A CN 102929727A
- Authority
- CN
- China
- Prior art keywords
- request
- target cache
- cache unit
- unit
- buffer unit
- 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
Abstract
本发明提供一种同步接口上数据的处理方法和系统。所述方法,包括:在同步接口接收到数据处理的请求时,确定存储池的缓存单元中该请求所要使用的目标缓存单元;当所述目标缓存单元处于未被其他请求使用的状态时,采用所述目标缓存单元响应所述请求。
Description
技术领域
本发明涉及计算机应用领域,尤其涉及一种同步接口上数据的处理方法和系统。
背景技术
为了提高存储网络的可靠性,发展出了多个层次的高可用,其中集群高可用是为了解决节点的单点故障而发展起来的,但多个节点可能会同时访问一个存储设备。需要解决多个节点对单一存储的一致访问为题。在节点上配置缓存模块就是为了解决数据访问的一致性。
对一个存储或存储单元(如存储池)同一时刻只有一个主节点可以访问,其它节点对该存储的访问要转发到存储的主节点,由主节点发起I/O请求,然后将数据发送回给发起请求的节点。各节点的之间相互备份读写数据。
缓存模块需要包含存储池用于缓存数据,存储池以页为缓存单元,组织在哈希表中。对节点发送读请求后,节点首先将数据从存储读到缓存的页中,然后将页中数据拷贝的用户缓冲区。对节点的写请求,节点将数据写入缓存页中,并返回。缓存模块会有单独的刷写模块将数据从缓存页刷写到存储。
在有些系统中对存储的请求提供了异步读接口,对存储的读写请求完成后会调用之前注册的回调函数。但有些系统并没有提供合适的异步读写接口。
发明内容
本发明提供一种同步接口上数据的处理方法,要解决的技术问题是如何实现在同步接口上实现异步工作。
为解决上述技术问题,本发明提供了如下技术方案:
一种同步接口上数据的处理方法,包括:
在同步接口接收到数据处理的请求时,确定存储池的缓存单元中该请求所要使用的目标缓存单元;
当所述目标缓存单元处于未被其他请求使用的状态时,采用所述目标缓存单元响应所述请求。
优选的,所述方法还具有如下特点:所述确定存储池的缓存单元中该请求所要使用的目标缓存单元是在检测到所述请求所需使用的第一个缓存单元未被其他请求使用的状态时进行的。
优选的,所述方法还具有如下特点:所述目标缓存单元是否处于未被其他请求使用的状态是根据所述目标缓存单元上是否有锁定标记来确定的。
优选的,所述方法还具有如下特点:所述方法还包括:
如果N个未处理的请求所要使用的目标缓存单元能够组连续的缓存空间,则将所述N个未处理的请求作为一个请求来处理,其中N为大于等于2的整数。
一种同步接口上数据的处理系统,包括:
确定装置,用于在接收到数据处理的请求时,确定存储池的缓存单元中该请求所要使用的目标缓存单元;
响应装置,用于当所述目标缓存单元处于未被其他请求使用的状态时,采用所述目标缓存单元响应所述请求。
优选的,所述系统还具有如下特点:所述确定装置确定存储池的缓存单元中该请求所要使用的目标缓存单元是在检测到所述请求所需使用的第一个缓存单元未被其他请求使用的状态时进行的。
优选的,所述系统还具有如下特点:所述目标缓存单元是否处于未被其他请求使用的状态是根据所述目标缓存单元上是否有锁定标记来确定的。
优选的,所述系统还具有如下特点:所述响应装置,用于如果N个未处理的请求所要使用的目标缓存单元能够组连续的缓存空间,则将所述N个未处理的请求作为一个请求来处理,其中N为大于等于2的整数。
与同步接口实现同步操作不同,在实现异步操作时,当同步接口接收到请求后,确定所要使用的目标缓存单元,在目标缓存单元处于未被其他请求使用时再响应该请求,实现了异步通信。
附图说明
图1为本发明提供的同步接口上数据的处理方法实施例的流程示意图;
图2为本发明提供的同步接口上数据的处理方法应用实例的流程示意图;
图3为本发明提供的同步接口上数据的处理系统实施例的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明作进一步的详细描述。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
图1为本发明提供的同步接口上数据的处理方法实施例的流程示意图。图1所示方法实施例包括步骤101和102,其中:
步骤101、在同步接口接收到数据处理的请求时,确定存储池的缓存单元中该请求所要使用的目标缓存单元;
步骤102、当所述目标缓存单元处于未被其他请求使用的状态时,采用所述目标缓存单元响应所述请求。
与同步接口实现同步操作不同,在实现异步操作时,当同步接口接收到请求后,确定所要使用的目标缓存单元,在目标缓存单元处于未被其他请求使用时再响应该请求,实现了异步通信。
优选的,所述确定存储池的缓存单元中该请求所要使用的目标缓存单元是在检测到所述请求所需使用的第一个缓存单元未被其他请求使用的状态时进行的。
即使计算出该请求所对应的目标缓存单元,但是只要该请求所要使用的第一缓存单元不能调用,就不能进行执行后续流程。因此,为了将资源利用到快速处理能够响应的请求上,仅在第一缓存单元处于可用状态时,才进行后续处理。
其中,所述目标缓存单元是否处于未被其他请求使用的状态是根据所述目标缓存单元上是否有锁定标记来确定的。
具体来说,一个缓存单元如果被使用,该请求的线程会在缓存单元上增加一个锁定标记,当该线程对该缓存单元的使用结束后,会解除对该缓存单元的锁定,并唤醒其他要使用该缓存单元的其他线程。
进一步的,当待处理的请求有多个时,如果多个请求所要使用的缓存单元是相邻的,将相邻请求的缓存单元合并为一个请求来处理。
具体来说,如果第一请求所要使用的目标缓存单元和第二请求所要使用的目标缓存单元均处于未被其他请求使用的状态,且所述第一请求和第二请求所要使用的目标缓存单元能组成一段连续的缓存空间,则将所述第一请求和第二请求作为一个请求来处理。
举例来说,一个存储池中缓存单元按照从小到大的顺序依次编号,一个请求所要使用的目标缓存单元为编号1~3,另一个请求所要使用的目标缓存单元为编号4和5,两个请求所要使用的目标缓存单元构成一段连续的缓存空间,当所述两个请求所要使用的目标缓存单元均处于能够使用的状态时,则将所述两个请求作为一个请求处理,一次性进行编号1~5的缓存单元的数据处理,将原本需要对两个请求进行读操作,变成了仅需对一个请求进行读操作。
当然,同理,如果N个未处理的请求所要使用的目标缓存单元能够组连续的缓存空间,则将所述N个未处理的请求作为一个请求来处理,其中N为大于等于2的整数,从而达到减少读操作次数的效果。
下面对本发明方法实施例作进一步说明:
图2为本发明提供的同步接口上数据的处理方法应用实例的流程示意图。图2所示应用实例包括步骤1~7,其中:
步骤1、根据接收的请求中数据的起始位置计算第一个缓存单元;
例如,一个存储池有编号1~10个缓存单元,其中每个缓存单元的容量相同,根据请求中数据的起始位置,确定从存储池中编号为3的缓存单元开始读取。
步骤2、查找所述第一缓存单元是否能够响应该请求;
具体来说,如果该第一缓存单元正在被响应其他请求的数据读/写请求,则该第一缓存就不能响应该请求,因此,只能等待正在使用该第一缓存单元的线程结束对该缓存单元的锁定后,才可以使用。
其中,如果该第一缓存单元上有锁定标记,则表示该缓存单元处于不可用状态,即无法响应该请求,反之,如果该第一缓存单元没有锁定标记,则表示处于能够被调用的状态,能够响应该请求。
如果能响应该请求,则执行步骤3~6;否则,执行步骤2。
步骤3、根据请求的数据的长度以及缓存单元的容量,计算所需使用的缓存单元的个数。
仍以上文所举例子进行说明,根据所请求的数据量,可以确定要使用的缓存单元的个数,如使用3个缓存单元。
步骤4、根据第一缓存单元的位置以及所需使用的缓存单元的个数,确定本次请求所使用的目标缓存单元;
仍以上文所举例子进行说明,第一个缓存单元为编号为3的缓存单元,共需使用3个缓存单元,则响应该请求所要使用的缓存单元为编号3~5的缓存单元,即目标缓存单元。
步骤5、判断所述目标缓存单元是否能够响应本次请求;
举例来说,如果目标缓存单元(编号为3~5的缓存单元)都没有锁定标记,则表示能够响应本次请求,否则,表示不能响应本次请求。
如果能够响应本次请求,则执行步骤6;否则,执行步骤5。
步骤6、采用所述目标缓存单元进行数据处理。
需要说明的是,当有多个请求线程并发进行时,也只有一个线程来进行管理,多个请求将各自需要预处理的缓存单元放到同一个链表中,该线程读需要处理所有请求中所请求的缓存单元。
当请求线程处理完第一个缓存单元后,将下一个要要处理的缓存单元作为第一个缓存单元进行以上操作,直处理完所有请求。
图3为本发明提供的同步接口上数据的处理系统实施例的结构示意图。结合图1和2所示的方法,图3所示系统实施例包括:
确定装置301,用于在接收到数据处理的请求时,确定存储池的缓存单元中该请求所要使用的目标缓存单元;
响应装置302,用于当所述目标缓存单元处于未被其他请求使用的状态时,采用所述目标缓存单元响应所述请求。
其中,所述确定装置301确定存储池的缓存单元中该请求所要使用的目标缓存单元是在检测到所述请求所需使用的第一个缓存单元未被其他请求使用的状态时进行的。
其中,所述目标缓存单元是否处于未被其他请求使用的状态是根据所述目标缓存单元上是否有锁定标记来确定的。
其中,所述响应装置,用于如果N个未处理的请求所要使用的目标缓存单元能够组连续的缓存空间,则将所述N个未处理的请求作为一个请求来处理,其中N为大于等于2的整数。
与同步接口实现同步操作不同,在实现异步操作时,当同步接口接收到请求后,确定所要使用的目标缓存单元,在目标缓存单元处于未被其他请求使用时再响应该请求,实现了异步通信。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求所述的保护范围为准。
Claims (8)
1.一种同步接口上数据的处理方法,其特征在于,包括:
在同步接口接收到数据处理的请求时,确定存储池的缓存单元中该请求所要使用的目标缓存单元;
当所述目标缓存单元处于未被其他请求使用的状态时,采用所述目标缓存单元响应所述请求。
2.根据权利要求1所述的方法,其特征在于,所述确定存储池的缓存单元中该请求所要使用的目标缓存单元是在检测到所述请求所需使用的第一个缓存单元未被其他请求使用的状态时进行的。
3.根据权利要求1所述的方法,其特征在于,所述目标缓存单元是否处于未被其他请求使用的状态是根据所述目标缓存单元上是否有锁定标记来确定的。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
如果N个未处理的请求所要使用的目标缓存单元能够组连续的缓存空间,则将所述N个未处理的请求作为一个请求来处理,其中N为大于等于2的整数。
5.一种同步接口上数据的处理系统,其特征在于,包括:
确定装置,用于在接收到数据处理的请求时,确定存储池的缓存单元中该请求所要使用的目标缓存单元;
响应装置,用于当所述目标缓存单元处于未被其他请求使用的状态时,采用所述目标缓存单元响应所述请求。
6.根据权利要求5所述的系统,其特征在于,所述确定装置确定存储池的缓存单元中该请求所要使用的目标缓存单元是在检测到所述请求所需使用的第一个缓存单元未被其他请求使用的状态时进行的。
7.根据权利要求5所述的系统,其特征在于,所述目标缓存单元是否处于未被其他请求使用的状态是根据所述目标缓存单元上是否有锁定标记来确定的。
8.根据权利要求5所述的系统,其特征在于:
所述响应装置,用于如果N个未处理的请求所要使用的目标缓存单元能够组连续的缓存空间,则将所述N个未处理的请求作为一个请求来处理,其中N为大于等于2的整数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012103961980A CN102929727A (zh) | 2012-10-18 | 2012-10-18 | 一种同步接口上数据的处理方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012103961980A CN102929727A (zh) | 2012-10-18 | 2012-10-18 | 一种同步接口上数据的处理方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102929727A true CN102929727A (zh) | 2013-02-13 |
Family
ID=47644533
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012103961980A Pending CN102929727A (zh) | 2012-10-18 | 2012-10-18 | 一种同步接口上数据的处理方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102929727A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1178941A (zh) * | 1996-10-07 | 1998-04-15 | 国际商业机器公司 | 通过合并存储操作进行集中存储的处理机及方法 |
CN1758229A (zh) * | 2005-10-28 | 2006-04-12 | 中国人民解放军国防科学技术大学 | 异构多核微处理器局部空间共享存储方法 |
CN101702113A (zh) * | 2009-11-23 | 2010-05-05 | 成都市华为赛门铁克科技有限公司 | 写操作处理方法和装置 |
-
2012
- 2012-10-18 CN CN2012103961980A patent/CN102929727A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1178941A (zh) * | 1996-10-07 | 1998-04-15 | 国际商业机器公司 | 通过合并存储操作进行集中存储的处理机及方法 |
CN1758229A (zh) * | 2005-10-28 | 2006-04-12 | 中国人民解放军国防科学技术大学 | 异构多核微处理器局部空间共享存储方法 |
CN101702113A (zh) * | 2009-11-23 | 2010-05-05 | 成都市华为赛门铁克科技有限公司 | 写操作处理方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11086560B2 (en) | Data storage access method, device and apparatus for persistent memory | |
JP6796304B2 (ja) | 最終レベルキャッシュシステム及び対応する方法 | |
US10114749B2 (en) | Cache memory system and method for accessing cache line | |
US10552337B2 (en) | Memory management and device | |
CN103246616B (zh) | 一种长短周期访问频度的全局共享缓存替换方法 | |
CN107168657B (zh) | 一种基于分布式块存储的虚拟磁盘分层缓存设计方法 | |
CN109388590B (zh) | 提升多通道dma访问性能的动态缓存块管理方法和装置 | |
US20160085585A1 (en) | Memory System, Method for Processing Memory Access Request and Computer System | |
CN104536724B (zh) | 一种多核环境下哈希表并发访问性能优化方法 | |
CN102999522B (zh) | 一种数据存储方法和装置 | |
EP2645259A1 (en) | Method, device and system for caching data in multi-node system | |
CN102541984B (zh) | 一种分布式文件系统客户端的文件系统的实现方法 | |
US11269772B2 (en) | Persistent memory storage engine device based on log structure and control method thereof | |
JP6514329B2 (ja) | メモリアクセス方法、スイッチ、およびマルチプロセッサシステム | |
CN108845958B (zh) | 一种交织器映射和动态内存管理系统及方法 | |
WO2024036985A1 (zh) | 存储系统及其计算存储处理器、固体硬盘和数据读写方法 | |
CN111881068A (zh) | 多入口的全相联的高速缓冲存储器及数据管理方法 | |
KR20160033505A (ko) | 원격 메모리 제공 시스템 및 원격 메모리 제공을 위한 임시페이지 풀 운영 방법 | |
US9575881B2 (en) | Systems and methods for providing improved latency in a non-uniform memory architecture | |
CN106599301A (zh) | 多客户端并发数据读写加速方法及装置 | |
CN105468400A (zh) | 一种基于linux用户态调用定时器的方法及系统 | |
JP2009015509A (ja) | キャッシュメモリ装置 | |
US20160034392A1 (en) | Shared memory system | |
CN102917036A (zh) | 一种基于Memcached的分布式缓存数据同步实现方法 | |
JP6676052B2 (ja) | 不均一メモリアーキテクチャにおける改善されたレイテンシを可能にするためのシステムおよび方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20130213 |