CN108021339A - 一种磁盘读写的方法、设备以及计算机可读存储介质 - Google Patents
一种磁盘读写的方法、设备以及计算机可读存储介质 Download PDFInfo
- Publication number
- CN108021339A CN108021339A CN201711069977.9A CN201711069977A CN108021339A CN 108021339 A CN108021339 A CN 108021339A CN 201711069977 A CN201711069977 A CN 201711069977A CN 108021339 A CN108021339 A CN 108021339A
- Authority
- CN
- China
- Prior art keywords
- resource
- visited
- write
- read
- file
- 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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0623—Securing storage systems in relation to content
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0637—Permissions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk device
-
- 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/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例涉及计算机技术领域,公开了一种磁盘读写的方法、设备以及计算机可读存储介质。本发明中提供的磁盘读写的方法,包括:通过进程确定资源访问请求对应的待访问资源所在的存储位置,其中,每一个待访问资源所在的存储位置设置有对应的读写锁;通过该进程对该待访问资源所在的存储位置对应的读写锁进行读写锁操作,获取相应权限,完成磁盘读写。本发明实施方式,使得在高并发连接或磁盘IO操作下,提高磁盘IO的读写速度,以及提高服务器的性能。
Description
技术领域
本发明实施例涉及计算机技术领域,特别涉及一种磁盘读写的方法、设备以及计算机可 读存储介质。
背景技术
随着网络的不断发展,因特网(Internet)上Web应用一直处于***型增长阶段,目前以 Web形式发布的信息海量,种类繁多,用户以Web方式访问信息的频率髙,访问数据量大。 超文本传输协议(Hyper Text Transfer Protocol,简称“HTTP”)请求具有猝发特点,经常以 猝发、自相似流的形式访问Web服务器,高峰时的HTTP请求率高,因而大型Web站点经常 处于服务器超载的现象。正由于Web应用所具有的规模和访问特性,必然要求Web服务器具 有良好的性能,用于满足客户所需的服务质量。由于动态网页需要服务器存储大量数据,硬 盘的好坏直接影响到网页提取数据的快慢,而影响磁盘性能的因素很多,例如,磁盘读写(也 称“磁盘IO”)的速度、磁盘缓存命中率的关系等。
通常服务器进行磁盘读写操作的过程是,首先访问函数库(如Lib库、C库),在函数库中调用已经封装好的函数进行磁盘读写操作,***调用进入内核态,在内存缓存中写入资 源,写入的资源通过驱动传递至磁盘介质,磁盘介质再进行资源写入操作,整个控制流和数 据流如图1中所示。发明人发现现有技术中至少存在如下问题:Web服务器在处理高并发连 接时通常采用共享内存的方式存储资源,共享内存就是允许两个不相关的进程访问同一个逻 辑内存,虽然共享内存实现了数据一致性存储,但是这种方式,在资源大量缓存和高频率的 磁盘IO操作下,共享内存的方式会因为资源临界区保护影响磁盘IO读写速率,导致Web服 务器吞吐量骤降,从而导致Web服务器性能大幅下滑。Web服务器除了使用共享内存的方式, 通常还会采用多进程各自存储的方式存储资源,这种方式虽然解决了因资源临界区保护影响 磁盘IO读写速率,导致Web服务器吞吐量骤降的问题,但是,由于多个进程各自存储,将 导致资源的重复存储,重复更新,增加CPU的消耗和磁盘IO消耗,从而影响服务器处理能 力。
发明内容
本发明实施方式的目的在于提供一种磁盘读写的方法、设备以及计算机可读存储介质, 使得在高并发连接或磁盘IO操作下,提高磁盘IO的读写速度,以及提高服务器的性能。
为解决上述技术问题,本发明的实施方式提供了一种磁盘读写的方法,包括以下步骤: 通过进程确定资源访问请求对应的待访问资源所在的存储位置,其中,每一个待访问资源所 在的存储位置设置有对应的读写锁;通过该进程对该待访问资源所在的存储位置对应的读写 锁进行读写锁操作,获取相应权限,完成磁盘读写。
本发明的实施方式还提供了一种计算机可读存储介质,存储有计算机程序,其特征在于, 该计算机程序被处理器执行时实现上述的磁盘读写的方法。
本发明的实施方式还提供了一种设备,包括:至少一个处理器;以及,与至少一个处理 器通信连接的存储器;其中,该存储器存储有可被至少一个处理器执行的指令,该指令被至 少一个处理器执行,以使至少一个处理器能够执行上述的磁盘读写的方法。
本发明实施方式相对于现有技术而言,通过进程确定资源访问请求对应的待访问资源所 在的存储位置,其中,每一个待访问资源所在的存储位置设置有对应的读写锁,通过该进程 对该待访问资源所在的存储位置对应的读写锁进行读写锁操作,完成磁盘读写。由于每一个 待访问资源所在的存储位置设置有对应的读写锁,增加了读写锁的数量,通过使用读写锁, 可以保证对待访问资源进行修改或读取时,数据不会失真,从而确保了对每一个待访问资源 所在存储位置的数据操作的安全性。
通过多个读写锁,使得多个进程可以在同一时刻对该读写锁对应的待访问资源所在存储 位置进行读锁操作,还可以使得多个进程同时对不同的待访问资源所在存储位置进行写锁操 作,而无需进入进程等待,从而增加了磁盘IO的读写速度。且通过设置多个读写锁,使得多 个不同进程在对不同的待访问资源进行读写锁操作时,可以增加每一个进程获取到对应读写 锁的概率,从而减少了进程等待的概率,缩短了进程进行磁盘IO操作的时间,从而增加了进 程对磁盘IO读写的速度,提升了流量的吞吐率。
相同请求的待访问资源存储在同一个位置,多个进程共享同一个资源存储位置,而不是 多个进程各自占用一个存储位置存储资源,减少了资源的重复存储和重复更新,减少CPU的 消耗和磁盘IO消耗,提高了服务器处理能力。
另外,通过进程确定资源访问请求对应的待访问资源所在的存储位置之前,还包括:根 据散列函数计算结果的取值范围,以及树状文件夹结构中预设的文件夹命名规则和预设的树 状文件夹结构的层数,创建树状文件夹结构。在磁盘中创建树状文件夹结构,使得进程在进 行磁盘IO操作时实现数据的共享,且由于树状文件夹结构包括多个文件夹,不同的请求对应 的资源文件保存在不同的文件夹下,可以减少多个进程访问到同一个文件夹的可能,减少进 程访问资源文件的等待时间,进而提高了进程对磁盘读写的速度。
另外,待访问资源所在的存储位置为树状文件夹结构中叶子节点对应的文件夹。待访问 资源所在的存储位置为树状文件夹结构中叶子节点对应的文件夹,叶子节点对应的文件夹下 存储有资源文件,由于叶子节点对应的文件夹设置有读写锁,使得通过一个读写锁即可保证 该文件夹下资源文件的操作安全,同时,将读写锁设置在树状文件夹结构中叶子节点对应的 文件夹,使得可以根据资源访问的需要,灵活设置叶子节点对应的文件夹的数量,确保读写 锁的数量的合理性。
另外,通过该进程确定资源访问请求对应的待访问资源所在的存储位置,具体包括:通 过该进程采用该散列函数对该资源访问请求进行散列计算,确定该资源访问请求的散列结果; 通过该进程确定该资源访问请求的散列结果对应的该树状文件夹结构中的叶子节点对应的文 件夹。对资源访问请求进行散列计算,计算的散列结果唯一,因此,可以通过该散列结果, 快速的找到该资源访问请求对应的待访问资源所在的存储位置。
另外,通过进程对待访问资源所在的存储位置对应的读写锁进行操作,获取相应权限, 完成磁盘读写,具体包括:通过进程对叶子节点对应的文件夹的读写锁进行读锁操作,并获 取叶子节点对应的文件夹的读访问权限;通过该进程判断该叶子节点对应的文件夹下是否存 在待访问资源对应的文件;若是,则通过该进程读取该待访问资源对应的文件后释放叶子节 点处的文件夹的读访问权限;若否,则通过该进程直接释放该叶子节点对应的文件夹的读访 问权限,从存储有该待访问资源的设备获取待访问资源,对该叶子节点对应的文件夹的读写 锁进行写锁操作,获取该叶子节点对应的文件夹的写操作权限,在该叶子节点对应的文件夹 创建与待访问资源对应的资源文件,并将该待访问资源写入创建的资源文件,释放该叶子节 点对应的文件夹的写操作权限。通过规定叶子节点对应的文件的读锁操作和写锁操作的顺序, 保证了对待访问资源的存储位置进行读写操作的顺序,使得在进行写锁操作时,先读取待访 问资源文件的操作,在没有存储待访问资源文件的情况下再去获取待访问资源,并进行写锁 操作,减少了对待访问资源文件进行写操作的时间,从而提高了磁盘的读写速度,同时,多 个进程可以同时获取读锁操作,将读锁操作放置在前,可以提高进程进行磁盘IO操作的速度。
另外,待访问资源所在的存储位置位于内存中,内存与磁盘通信连接;内存包括:锁内 存和资源内存,其中,锁内存用于存储读写锁,资源内存用于存储所有待访问资源。待访问 资源所在的存储位置位于内存中,由于内存读写速度大大快于磁盘读写的速度,因此,将待 访问资源存储在内存中,提高了进程读取资源的速度,同时,内存分为了锁内存和资源内存, 通过锁内存中的读写锁管理资源内存中存储的资源,保证了对资源内存的操作的安全性。
另外,通过进程确定资源访问请求对应的待访问资源所在的存储位置,具体包括:通过 该进程采用该散列函数对该资源访问请求进行散列计算,确定该资源访问请求的散列结果; 通过该进程确定资源访问请求的散列结果对应的该树状文件夹结构中的路径,根据路径上每 一级节点所对应的文件夹的名称,确定待访问资源在资源内存中的存储位置。通过散列计算, 可以快速计算出该资源访问请求对应的树状文件夹结构中的路径,同时,可以快速确定出待 访问资源存储的位置,由于每一个待访问资源存储的位置设置有对应的读写锁,因此,也可 以快速确定出与待访问资源存储的位置对应的读写锁,从而加快了对待访问资源的进行的读 写操作。
另外,通过该进程对该待访问资源所在的存储位置对应的读写锁进行读写锁操作,获取 相应权限,完成磁盘读写,具体包括:通过进程对确定的待访问资源所在的存储位置的读写 锁进行读锁操作,并且获取确定的待访问资源所在的存储位置的读访问权限;判断确定的待 访问资源所在的存储位置下是否存在待访问资源对应的文件;若是,则通过进程读取待访问 资源对应的文件后释放该存储位置的读访问权限;若否,则通过该进程直接释放待访问资源 所在的存储位置的读访问权限,从存储有待访问资源的设备获取待访问资源,对待访问资源 所在的存储位置的读写锁进行写锁操作,获取待访问资源所在的存储位置的写操作权限,在 待访问资源所在的存储位置创建与待访问资源对应的资源文件,并将待访问资源写入创建的 资源文件,释放待访问资源所在的存储位置的写操作权限;将内存存储的资源文件同步至对 应的叶子节点对应的文件夹,完成磁盘读写。通过规定对待访问资源所在的存储位置的进行 读锁操作和写锁操作的顺序,保证了对待访问资源的存储位置进行读写操作的顺序,进一步 保证了进行读写的安全性,同时,多个进程可以同时获取读锁操作,因此,将读锁操作放置 在前,可以提高进程对资源内存进行读写的速度,在资源内存完成读写之后将内存存储的资 源文件同步至对应的叶子节点对应的文件夹下的对应资源文件,由内存统一将资源文件同步 至磁盘中的创建的树状文件夹结构中叶子节点对应的文件夹下的对应资源文件,减少了磁盘 读写的次数,且磁盘中创建了树状文件夹结构,进一步加快了磁盘的读写速度,从而减少了 CPU的消耗,提高了服务器的性能。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不 构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别 申明,附图中的图不构成比例限制。
图1是根据现有技术中磁盘进行读写的控制流和数据流的示意图;
图2是根据本发明第一实施方式中的一种磁盘读写的方法的具体流程示意图;
图3是根据本发明第一实施方式中的一种磁盘读写的方法中进程确定待访问资源所在的 存储位置的流程示意图;
图4是根据本发明第一实施方式中的一种磁盘读写的方法中进程对待访问资源所在的存 储位置对应的读写锁进行读写锁操作的具体流程示意图;
图5是根据本发明第一实施方式中的一种磁盘读写的方法中磁盘读写的具体流程的示意 图;
图6是根据本发明第二实施方式中的一种磁盘读写的方法的具体流程示意图;
图7是根据本发明第二实施方式中的一种磁盘读写的方法中进程确定待访问资源所在的 存储位置的具体流程示意图;
图8是根据本发明第二实施方式中的一种磁盘读写的方法中进程对该待访问资源所在的 存储位置对应的读写锁进行读写锁操作的具体流程示意图;
图9是根据本发明第四实施方式中一种设备的具体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实 施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中, 为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于 以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。
本发明的第一实施方式涉及一种磁盘读写的方法。可以应用于服务器,例如,Web代理 服务器等。本实施方式中将以Web代理服务器为例进行详细的说明。具体的流程如图2所示:
步骤201:通过进程确定资源访问请求对应的待访问资源所在的存储位置,其中,每一 个待访问资源所在的存储位置设置有对应的读写锁。
具体的说,互联网上的每一个文件都有唯一的统一资源定位符(UniformResource Locator,简称“URL”),URL是对可以从互联网上得到的资源的位置和访问方法的一种简 洁的表示,是互联网上标准资源的地址。URL是由三部分组成的,传输协议、域名或IP地址、 端口号和资源具体地址,而传输协议可以是HTTP协议,文件传输协议(FileTransfer Protocol, 简称“FTP”)协议等。通过资源访问请求中的URL即可获知待访问资源所在的存储位置。 但是,在进程确定待访问资源之前,需要在磁盘中创建资源存储的树状文件夹。
一个可能的实施方式中,通过进程确定资源访问请求对应的待访问资源所在的存储位置 之前,还包括:根据散列函数计算结果的取值范围,以及树状文件夹结构中预设的文件夹命 名规则和预设的树状文件夹结构的层数,创建树状文件夹结构。
具体的说,常见的散列函数有安全散列算法(Secure Hash Algorithm,简称“SHA”), 如SHA-1、SHA-0等;消息摘要算法第五版(Message Digest Algorithm 5,简称“MD5”)。 本实施方式中,散列函数选取MD5为例进行说明。由于散列函数计算得到的结果较为分散化 且不同输入得到的结果不同,能使资源较均匀的散落在各个叶子节点中,进而保证了待访问 资源均匀的存储在不同的位置,在多进程操作时增大获取读写锁的概率。
根据散列函数,对每一个待访问资源各自对应资源访问请求进行散列计算,可以是对资 源访问请求的URL进行散列计算;也可以对资源访问请求的URL和其他资源属性(如请求 参数的名称name、请求参数的值value)组成的字符串进行散列计算。
本实施方式中,MD5的计算结果可以是采用16进制表示的数据串,该数据串的长度为 16位或32位。树状文件夹结构中预设的树状文件夹结构层数,可根据实际需要设定,例如, 在高流量或者对吞吐率有高要求的环境下,设置的树状文件夹结构层数为2层。应用中,可 以根据实际操作的便利预设文件夹命名规则,例如,第一层级的文件夹可以以散列结果的最 后一位的值进行命名,第二层级的文件夹可以以散列结果的最后2至3位的值进行命名,若 以该方法创建树状文件夹结构,假设采用16进制,则叶子节点的数目为c1 1 6A1 2 6=3840个。
需要说明的是,在磁盘中创建树状文件夹结构,仅需预先创建一次即可,当然,若是创 建的树状文件夹结构已不能包含所有的待访问资源,则需要重新创建树状文件夹结构。
待访问资源所在的存储位置可以位于磁盘中,也可以位于内存中,本实施方式以待访问 资源在磁盘中为例进行说明。
一个可能的实施方式中,待访问资源所在的存储位置为树状文件夹结构中叶子节点对应 的文件夹,其中,树状文件夹结构为采用树状结构描述的文件夹的结构。
具体的说,待访问资源所在的存储位置设置有对应的读写锁,即在树状文件夹结构中每 一个叶子节点对应的文件夹都设置有一个读写锁。一次只有一个进程/线程可以占有写操作权 限,但是可以有多个进程/线程同时占有读访问权限。读锁操作即是获取了读模式的读写锁, 使读写锁处于读模式,写锁操作是获取了写模式的读写锁,使读写锁处于写模式。
值得一提的是,资源访问请求中应当携带可以确定出待访问资源在树状文件夹结构中所 处叶子节点的位置、文件句柄、读写标识的参数。例如,资源访问请求中的URL可以用于确 定待访问资源在树状文件夹结构中所处叶子节点的位置。其中文件句柄对于打开的文件是唯 一的识别依据。资源访问请求中还可以设置其他的参数。
一个可能的实施方式中,通过进程确定资源访问请求对应的待访问资源所在的存储位置, 具体流程如图3所示,包括以下子步骤:
子步骤2011:通过该进程采用该散列函数对该资源访问请求进行散列计算,确定该资源 访问请求的散列结果。
具体的说,本步骤中确定该资源访问请求的散列结果就是对资源访问请求中的URL进行 散列计算,其中,散列函数为MD5,本步骤中的散列函数需要与得到树状文件夹结构步骤中 的散列函数一致。
子步骤2012:通过该进程确定该资源访问请求的散列结果对应的该树状文件夹结构中的 叶子节点对应的文件夹。
具体的说,对散列结果进行解析,即可确定出该资源访问请求对应的该树状文件夹结构 中的叶子节点对应的文件夹。其中,解析过程可以是按照树状文件夹结构中预设的命名规则 和预设的层数,对得到的散列结果进行划分,确定出该资源访问请求对应的文件夹在该树状 文件夹结构中的叶子节点对应的文件夹。例如,接收到的访问请求中的URL为“http://www.test.com/sample.html”,对该URL进行MD5计算,得到散列结果:“e2264bfcf8b35fbf6a705617b410f99b”,假设树状文件夹结构为2层,树状文件夹结构中的命名 规则为:第一级文件夹的名称以每一个散列结果最后一位命名,第二级文件夹的名称以每一 个散列结果最后2至3位命名,因此,确定出该URL对应第一级文件夹名称为“b”,第二级 文件夹(即叶子节点对应的文件夹)名称为“99”的存储位置。
步骤202:通过该进程对该待访问资源所在的存储位置对应的读写锁进行读写锁操作, 获取相应权限,完成磁盘读写。
具体的说,每一个叶子节点对应的文件夹下存储多个资源文件,因此,每一个叶子节点 对应的读写锁作用于自身文件夹下的所有资源文件。
一个可能的实施方式中,通过进程对该待访问资源所在的存储位置对应的读写锁进行读 写锁操作,获取相应权限,完成磁盘读写的具体过程如图4所示,包括以下子步骤:
子步骤2021:通过进程对该叶子节点对应的文件夹进行读锁操作,并获取该叶子节点对 应的文件夹的读访问权限。
具体的说,进程根据资源访问请求确定读写标识,获取到该叶子节点对应的文件夹的读 写锁,对该读写锁进行读锁操作,获取该叶子节点对应的文件夹的读访问权限,也就是说, 在获取到该叶子节点对应文件夹的读访问权限后,该进程可以读取该文件下所有的资源文件。 例如,获取到的资源访问请求中的读写标识为“R”,则对确定的叶子节点对应的文件夹的 读写锁进行读锁操作。
子步骤2022:通过该进程判断该叶子节点对应的文件夹下是否存在该待访问资源对应的 资源文件,若是,则执行步骤2023,否则执行步骤2024。
具体的说,通过该进程在该叶子节点对应的文件夹下查找是否存在待访问资源对应的资 源文件,资源文件的名称可以为该资源访问请求的散列结果,例如,资源访问请求的URL为 “http://www.test.com/sample.html”,根据URL确定的叶子节点对应的文件夹的路径为“b/99”, 该文件夹下的查找是否存在名称为“e2264bfcf8b35fbf6a705617b410f99b”资源文件。
子步骤2023:通过该进程读取该待访问资源对应的文件后释放该叶子节点处的文件夹的 读访问权限。
具体的说,在读取完资源文件之后,需要释放获取到的该叶子节点对应的文件夹的读访 问权限,以防阻塞其他进程/线程。
子步骤2024:通过该进程直接释放该叶子节点对应的文件夹的读访问权限,从存储有该 待访问资源的设备获取该待访问资源,对该叶子节点对应的文件夹进行写锁操作,获取该叶 子节点对应的文件夹的写操作权限,在该叶子节点对应的文件夹创建与待访问资源对应的资 源文件,并将待访问资源写入创建的资源文件,释放叶子节点对应的文件夹的写操作权限。
该过程将通过具体的例子进行详细的说明。
例如,资源访问请求为HTTP请求,HTTP请求中携带的待访问资源的URL为“http://www.test.com/sample.html”,待访问资源所在文件夹对应的叶子节点的路径为“b/99”, 进程对该文件夹对应的读写锁进行读锁操作,获取该文件夹的读访问权限,在该文件夹下查 找名称为“e2264bfcf8b35fbf6a705617b410f99b”的资源文件,没有查找到,则直接释放该文 件夹的读访问权限,从存储该待访问资源的设备获取该待访问资源(如,向该URL对应的服 务器发起请求,获取对应的访问资源1),对该叶子节点对应的文件夹进行写锁操作,获取 该叶子节点对应的文件夹的写操作权限,在该叶子节点对应的文件夹创建一个新的资源文件 A,并将访问资源1写入资源文件A,释放叶子节点对应的文件夹的写操作权限。
图5为本实施方式中磁盘读写流程的示意图。
相对于现有技术而言,本实施方式提供的磁盘读写方法,通过在磁盘中预先创建树状文 件夹结构存储资源文件,并对各个待访问资源所在的存储位置设置对应的读写锁,由于每一 个待访问资源所在的存储位置设置有对应的读写锁,增加了读写锁的数量,通过使用读写锁, 可以保证对待访问资源进行修改或读取时,数据不会失真,从而确保了对每一个待访问资源 所在存储位置的数据操作的安全性。
通过多个读写锁,使得多个进程可以在同一时刻对该读写锁对应的待访问资源所在存储位置 进行读锁操作,还可以使得多个进程同时对不同的待访问资源所在存储位置进行写锁操作, 而无需进入进程等待,从而增加了磁盘IO的读写速度,且通过设置多个读写锁,使得多个不 同进程在对不同的待访问资源进行读写锁操作时,可以增加了每一个进程获取到对应读写锁 的概率,从而减少了进程等待的概率,缩短了进程进行磁盘IO操作的时间,从而增加了进程 对磁盘IO读写的速度,提升了流量的吞吐率。
相同请求的带访问资源存储在同一个位置,多个进程共享同一个资源存储位置,而不是多个 进程各自占用一个存储位置存储资源,减少了资源的重复存储和重复更新,减少CPU的消耗 和磁盘IO消耗,提高了服务器处理能力。在磁盘中预先创建树状文件夹结构,使得进程在进 行磁盘IO操作时实现数据的共享,且由于树状文件夹结构包括多个文件夹,不同的请求对应 的资源文件保存在不同的文件夹下,可以减少多个进程访问到同一个文件夹的可能,减少进 程访问资源文件的等待时间,进而提高了进程对磁盘读写的速度,对叶子节点对应的文件夹 设置对应的读写锁,保证了读写锁的数量不会增大CPU的消耗。在创建树状文件夹结构时根 据预设访问请求的散列结果创建,散列函数计算得到的结果较为分散,且不同的请求在经过 散列计算后得到的结果不同,使得资源可以比较均匀的散落在各个叶子节点中,进而保证了 待访问资源均匀的存储在不同的位置,在多进程操作时增大获取读写锁的几率,减小冲突发 生的概率且对资源访问请求的散列结果进行解析时可以快速定位到待访问资源所在的存储位 置,进一步加快了磁盘读写速度。
本发明的第二实施方式涉及一种磁盘读写的方法。第二实施方式与第一实施方式大致相 同,主要区别之处在于:在本发明第二实施方式中,待访问资源所在的存储位置在内存中, 其对应的读写锁在内存中。具体的方法流程如图6所示,包括:
步骤701:通过进程确定资源访问请求对应的待访问资源所在的存储位置,其中,每一 个待访问资源所在的存储位置设置有对应的读写锁。
本实施方式中,在确定资源访问请求对应的待访问资源所在的存储位置之前,需要在磁 盘中创建树状文件夹结构,其中,创建树状文件夹结构的具体步骤与第一实施方式中创建树 状文件夹的步骤大致相同,本实施方式中,将不再赘述。
一个可能的实施方式中,待访问资源所在的存储位置位于内存中,内存与磁盘通信连接; 内存包括:锁内存和资源内存,其中,锁内存用于存储读写锁,资源内存用于存储所有待访 问资源。
具体的说,CPU通过指令将磁盘中的待访问资源通过通信连接缓存至资源内存中,在锁 内存中存储对应的读写锁。其中,锁内存中存储的读写锁与资源内存中存储的文件存在对应 关系,即属于同一个叶子节点对应文件夹的资源文件对应同一个读写锁,例如,资源文件A 和资源文件B属于树状文件夹结构中的叶子节点1对应的文件夹,则资源内存中的资源文件 A和资源文件B对应于锁内存中的读写锁1。
一个可能的实施方式中,通过进程确定资源访问请求对应的待访问资源所在的存储位置, 具体流程如图7所示,包括以下子步骤:
子步骤7011:通过该进程采用散列函数对该资源访问请求进行散列计算,确定该资源访 问请求的散列结果。
具体的说,本步骤中采用的散列函数与本实施方式中创建树状文件夹结构时采用的散列 函数相同,例如,创建树状文件夹结构时采用的MD5,则本步骤中的散列函数也采用MD5。
子步骤7012:通过该进程确定该资源访问请求的散列结果对应的该树状文件夹结构中的 路径,根据该路径上每一级节点所对应的文件夹的名称,确定该待访问资源在资源内存中的 存储位置。
具体的说,对该资源访问请求的散列结果进行解析,解析过程可以是按照树状文件夹结 构中预设的命名规则和预设的层数,对得到的散列结果进行解析。解析结果即为该资源访问 请求对应的文件夹在该树状文件夹结构中的路径,根据确定出的路径上每一级节点所对应的 文件夹的名称,确定在资源内存中对应的资源文件存储位置;当然,通过确定出的路径上每 一级节点所对应的文件夹的名称,同时能确定出在锁内存中对应的读写锁。例如,假设资源 文件A在树状文件夹结构中的路径为“b/99”,存储在a~b字节的资源内存中,与资源文件 A对应的读写锁B,存储在c~d字节的锁内存中;假设树状文件夹结构为2层,该树状文件 夹结构中的命名规则为:第一级的名称以每一个散列结果最后一位命名,第二级的名称以每 一个散列结果最后2至3位命名;在资源访问请求对应于资源文件A的情况下,资源文件A 的URL的散列结果为“e2264bfcf8b35fbf6a705617b410f99b”,对资源访问请求的散列结果进 行解析,解析结果为“b/99”,根据该路径“b/99”,确定第一级节点所对应的文件夹的名称 为“b”,第二级节点所对应的文件夹的名称为“99”,则确定出待访问资源在资源内存中的 存储位置为a~b字节,同时,确定出对应该待访问资源对应的读写锁位于锁内存的c~d字节 位置。
步骤702:通过该进程对该待访问资源所在的存储位置对应的读写锁进行读写锁操作, 获取相应权限,完成磁盘读写。
该步骤的具体流程如图8所示,包括以下子步骤:
子步骤7021:通过该进程对该待访问资源所在的存储位置进行读锁操作,并获取该待访 问资源所在的存储位置的读访问权限。
本子步骤与第一实施方式中的子步骤2021大致相同,此处不再赘述。
子步骤7022:判断确定的待访问资源所在的存储位置下是否存在该待访问资源对应的资 源文件。若是,则执行子步骤7023,否则,执行子步骤7024。
具体的说,可以将该资源文件的预设访问请求的散列结果作为资源文件在存储时的文件 名称。当确定出待访问资源所在的存储位置后,查找该存储位置中是否存在待访问资源对应 的资源文件,其中,在查找时,可以根据对待访问资源的访问请求的散列结果,得到待访问 资源对应文件夹的名称,根据待访问资源对应的资源文件的名称,判断在该存储位置对应的 资源内存中是否存在该名称的资源文件。例如,资源访问请求的URL为“http://www.test.com/sample.html”,对该URL进行MD5计算,得到该URL的散列结果为“e2264bfcf8b35fbf6a705617b410f99b”,则确定出待访问资源对应的资源文件名称为“e2264bfcf8b35fbf6a705617b410f99b”,则在该存储位置进行搜索,根据搜索结果判断出是 否存在名称为“e2264bfcf8b35fbf6a705617b410f99b”的资源文件。
子步骤7023:通过该进程读取该待访问资源对应的文件后释放该存储位置的读访问权限。
具体的说,本子步骤与第一实施方式中的子步骤2023大致相同,此处不再赘述。在执行 完本子步骤7023之后,可以执行子步骤7025,也可以不执行步骤7025。本实施方式中,以 执行完本子步骤后,执行子步骤7025为例。
子步骤7024:通过该进程直接释放该待访问资源所在的存储位置的读访问权限,从存储 有该待访问资源的设备获取该待访问资源,对该待访问资源所在的存储位置进行写锁操作, 获取该待访问资源所在的存储位置的写操作权限,在该待访问资源所在的存储位置创建与待 访问资源对应的资源文件,并将该待访问资源写入创建的资源文件,释放该待访问资源所在 的存储位置的写操作权限。该步骤完成后,执行步骤7025。
本子步骤与第一实施方式中的子步骤2024大致相同,此处不再赘述。
子步骤7025:将内存存储的资源文件同步至对应的叶子节点对应的文件夹,完成磁盘读 写。
具体的说,在完成对待访问资源所在存储位置的写操作之后,将资源内存中的资源文件 同步至磁盘中对应的叶子节点对应的文件夹,同步可以是以预设周期进行资源内存中资源文 件的同步,也可以是实时进行同步。
本实施方式提供的磁盘读写的方法,通过在磁盘中创建树状文件夹结构存储待访问资源 文件,保证了资源文件在掉电时的安全性;将磁盘中的待访问资源文件复制到内存中,其中, 磁盘中的待访问资源文件对应资源内存存储的资源文件以及锁内存中存储的读写锁,通过读 写锁管理资源文件,保证了资源文件的安全性,且由于内存读写速度大大快于磁盘读写的速 度,因此,将待访问资源存储在内存中,提高了进程读取资源的速度,同时,在资源内存完 成读写之后将内存存储的资源文件同步至对应的叶子节点对应的文件夹,由操作***的内核 统一将资源文件同步至磁盘中的树状文件夹结构中叶子节点对应的文件夹下的对应资源文 件,减少了磁盘读写的次数,且磁盘中创建了树状文件夹结构,进一步加快了磁盘的读写速 度,从而减少了CPU的消耗,提高了服务器的性能。
上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些 步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对 算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的 核心设计都在该专利的保护范围内。
本发明的第三实施方式涉及一种计算机可读存储介质,存储有计算机程序,该计算机程 序被处理器执行时能够实现第一或第二实施方式中提到的磁盘读写的方法。
本领域技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指 令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可 以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分 步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、 随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码 的介质。
本发明第四实施方式涉及一种设备,如图9所示,包括:至少一个处理器901;以及,与至少一个处理器901通信连接的存储器902;其中,存储器902存储有可被至少一个处理器901执行的指令,指令被至少一个处理器901执行,以使至少一个处理器901能够执行第一实施方式或第二实施方式中的磁盘读写的方法。
其中,存储器902和处理器901采用总线方式连接,总线可以包括任意数量的互联的总 线和桥,总线将一个或多个处理器901和存储器902的各种电路链接在一起。总线还可以将 诸如***设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域 所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。 收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介 质上与各种其他装置通信的单元。经处理器处理的数据通过天线在无线介质上进行传输,进 一步,天线还接收数据并将数据传送给处理器。
处理器901负责管理总线和通常的处理,还可以提供各种功能,包括定时,***接口, 电压调节、电源管理以及其他控制功能。而存储器可以被用于存储处理器在执行操作时所使 用的数据。
本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实 际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
Claims (10)
1.一种磁盘读写的方法,其特征在于,包括:
通过进程确定资源访问请求对应的待访问资源所在的存储位置,其中,每一个所述待访问资源所在的存储位置设置有对应的读写锁;
通过所述进程对所述待访问资源所在的存储位置对应的读写锁进行操作,获取相应权限,完成磁盘读写。
2.根据权利要求1所述的磁盘读写的方法,其特征在于,所述通过进程确定资源访问请求对应的待访问资源所在的存储位置之前,还包括:
根据散列函数计算结果的取值范围,以及树状文件夹结构中预设的文件夹命名规则和预设的树状文件夹结构的层数,创建所述树状文件夹结构。
3.根据权利要求1或2所述的磁盘读写的方法,其特征在于,所述待访问资源所在的存储位置为树状文件夹结构中叶子节点对应的文件夹。
4.根据权利要求3所述的磁盘读写的方法,其特征在于,所述通过所述进程确定资源访问请求对应的待访问资源所在的存储位置,具体包括:
通过所述进程采用所述散列函数对所述资源访问请求进行散列计算,确定所述资源访问请求的散列结果;
通过所述进程确定所述资源访问请求的散列结果对应的所述树状文件夹结构中的叶子节点对应的文件夹。
5.根据权利要求4所述的磁盘读写的方法,其特征在于,所述通过所述进程对所述待访问资源所在的存储位置对应的读写锁进行操作,获取相应权限,完成磁盘读写,具体包括:
通过所述进程对所述叶子节点对应的文件夹的读写锁进行读锁操作,并获取所述叶子节点对应的文件夹的读访问权限;
通过所述进程判断所述叶子节点对应的文件夹下是否存在所述待访问资源对应的文件;
若是,则通过所述进程读取所述待访问资源对应的文件后释放所述叶子节点处的文件夹的读访问权限;
若否,则通过所述进程直接释放所述叶子节点对应的文件夹的读访问权限,从存储有所述待访问资源的设备获取所述待访问资源,对所述叶子节点对应的文件夹的读写锁进行写锁操作,获取所述叶子节点对应的文件夹的写操作权限,在所述叶子节点对应的文件夹创建与待访问资源对应的资源文件,并将所述待访问资源写入创建的资源文件,释放所述叶子节点对应的文件夹的写操作权限。
6.根据权利要求1或2所述的磁盘读写的方法,其特征在于,所述待访问资源所在的存储位置位于内存中,所述内存与所述磁盘通信连接;
所述内存包括:锁内存和资源内存,其中,所述锁内存用于存储读写锁,所述资源内存用于存储所有待访问资源。
7.根据权利要求6所述的磁盘读写的方法,其特征在于,所述通过进程确定资源访问请求对应的待访问资源所在的存储位置,具体包括:
通过所述进程采用所述散列函数对所述资源访问请求进行散列计算,确定所述资源访问请求的散列结果;
通过所述进程确定所述资源访问请求的散列结果对应的树状文件夹结构中的路径,根据所述路径上每一级节点所对应的文件夹的名称,确定所述待访问资源在资源内存中的存储位置。
8.根据权利要求7所述的磁盘读写的方法,其特征在于,所述通过所述进程对所述待访问资源所在的存储位置对应的读写锁进行操作,获取相应权限,完成磁盘读写,具体包括:
通过所述进程对所述待访问资源所在的存储位置的读写锁进行读锁操作,并获取所述待访问资源所在的存储位置的读访问权限;
判断所述确定的待访问资源所在的存储位置下是否存在所述待访问资源对应的资源文件;
若是,则通过所述进程读取所述待访问资源对应的文件后释放所述存储位置的读访问权限;
若否,则通过所述进程直接释放所述待访问资源所在的存储位置的读访问权限,从存储有所述待访问资源的设备获取所述待访问资源,对所述待访问资源所在的存储位置的读写锁进行写锁操作,获取所述待访问资源所在的存储位置的写操作权限,在所述待访问资源所在的存储位置创建与待访问资源对应的资源文件,并将所述待访问资源写入创建的资源文件,释放所述待访问资源所在的存储位置的写操作权限;
将所述内存存储的资源文件同步至对应的所述叶子节点对应的文件夹,完成磁盘读写。
9.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8任一项所述的磁盘读写的方法。
10.一种设备,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至8任一所述的磁盘读写的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711069977.9A CN108021339B (zh) | 2017-11-03 | 2017-11-03 | 一种磁盘读写的方法、设备以及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711069977.9A CN108021339B (zh) | 2017-11-03 | 2017-11-03 | 一种磁盘读写的方法、设备以及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108021339A true CN108021339A (zh) | 2018-05-11 |
CN108021339B CN108021339B (zh) | 2021-05-04 |
Family
ID=62079647
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711069977.9A Active CN108021339B (zh) | 2017-11-03 | 2017-11-03 | 一种磁盘读写的方法、设备以及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108021339B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109857341A (zh) * | 2019-01-15 | 2019-06-07 | 新华三技术有限公司成都分公司 | 写锁预取长度的确定方法及装置 |
CN109857566A (zh) * | 2019-01-25 | 2019-06-07 | 天翼爱动漫文化传媒有限公司 | 一种内存读写过程的资源锁定算法 |
CN110515909A (zh) * | 2019-08-29 | 2019-11-29 | 北京字节跳动网络技术有限公司 | 文件存储方法、装置、电子设备及计算机存储介质 |
WO2020029749A1 (zh) * | 2018-08-08 | 2020-02-13 | 华为技术有限公司 | 一种i/o请求派发方法及装置 |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1740978A (zh) * | 2004-08-23 | 2006-03-01 | 华为技术有限公司 | 实现共享内存数据库的方法及内存数据库*** |
CN103139224A (zh) * | 2011-11-22 | 2013-06-05 | 腾讯科技(深圳)有限公司 | 一种网络文件***及网络文件***的访问方法 |
CN103514053A (zh) * | 2013-09-22 | 2014-01-15 | 中国科学院信息工程研究所 | 一种基于共享内存的进程间通讯方法 |
CN103677971A (zh) * | 2012-09-21 | 2014-03-26 | 上海斐讯数据通信技术有限公司 | 多线程处理***及方法 |
CN105095261A (zh) * | 2014-05-08 | 2015-11-25 | 北京奇虎科技有限公司 | 数据***方法和装置 |
CN105574585A (zh) * | 2015-12-14 | 2016-05-11 | 四川长虹电器股份有限公司 | 基于多线程互斥的神经网络模型的样本训练方法 |
CN106021381A (zh) * | 2016-05-11 | 2016-10-12 | 北京搜狐新媒体信息技术有限公司 | 一种云存储服务***的数据访问/存储方法及装置 |
US20160342444A1 (en) * | 2015-05-19 | 2016-11-24 | Oracle International Corporation | Context switching with reader-writer locks |
CN106407019A (zh) * | 2016-11-23 | 2017-02-15 | 青岛海信移动通信技术股份有限公司 | 一种移动终端的数据库处理方法及其移动终端 |
CN106502767A (zh) * | 2015-09-08 | 2017-03-15 | 大唐移动通信设备有限公司 | 一种进程管理方法及其装置 |
CN106682082A (zh) * | 2016-11-23 | 2017-05-17 | 青岛海信移动通信技术股份有限公司 | 一种数据库的写方法和装置 |
CN106708439A (zh) * | 2016-12-23 | 2017-05-24 | 深圳市中博科创信息技术有限公司 | 一种分布式文件***中节点选择计算方法及*** |
US20170286107A1 (en) * | 2014-09-08 | 2017-10-05 | Arm Limited | Shared resources in a data processing apparatus for executing a plurality of threads |
CN107305477A (zh) * | 2016-04-25 | 2017-10-31 | 中国科学院微电子研究所 | 一种flashcache混合存储***的缓存读写操作方法及*** |
-
2017
- 2017-11-03 CN CN201711069977.9A patent/CN108021339B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1740978A (zh) * | 2004-08-23 | 2006-03-01 | 华为技术有限公司 | 实现共享内存数据库的方法及内存数据库*** |
CN103139224A (zh) * | 2011-11-22 | 2013-06-05 | 腾讯科技(深圳)有限公司 | 一种网络文件***及网络文件***的访问方法 |
CN103677971A (zh) * | 2012-09-21 | 2014-03-26 | 上海斐讯数据通信技术有限公司 | 多线程处理***及方法 |
CN103514053A (zh) * | 2013-09-22 | 2014-01-15 | 中国科学院信息工程研究所 | 一种基于共享内存的进程间通讯方法 |
CN105095261A (zh) * | 2014-05-08 | 2015-11-25 | 北京奇虎科技有限公司 | 数据***方法和装置 |
US20170286107A1 (en) * | 2014-09-08 | 2017-10-05 | Arm Limited | Shared resources in a data processing apparatus for executing a plurality of threads |
US20160342444A1 (en) * | 2015-05-19 | 2016-11-24 | Oracle International Corporation | Context switching with reader-writer locks |
CN106502767A (zh) * | 2015-09-08 | 2017-03-15 | 大唐移动通信设备有限公司 | 一种进程管理方法及其装置 |
CN105574585A (zh) * | 2015-12-14 | 2016-05-11 | 四川长虹电器股份有限公司 | 基于多线程互斥的神经网络模型的样本训练方法 |
CN107305477A (zh) * | 2016-04-25 | 2017-10-31 | 中国科学院微电子研究所 | 一种flashcache混合存储***的缓存读写操作方法及*** |
CN106021381A (zh) * | 2016-05-11 | 2016-10-12 | 北京搜狐新媒体信息技术有限公司 | 一种云存储服务***的数据访问/存储方法及装置 |
CN106407019A (zh) * | 2016-11-23 | 2017-02-15 | 青岛海信移动通信技术股份有限公司 | 一种移动终端的数据库处理方法及其移动终端 |
CN106682082A (zh) * | 2016-11-23 | 2017-05-17 | 青岛海信移动通信技术股份有限公司 | 一种数据库的写方法和装置 |
CN106708439A (zh) * | 2016-12-23 | 2017-05-24 | 深圳市中博科创信息技术有限公司 | 一种分布式文件***中节点选择计算方法及*** |
Non-Patent Citations (2)
Title |
---|
HUAIBIN WANG ET AL.: "Design and Research of Data Packets Transmission by Shared Memory Block Based on NDIS", 《IEEE XPLORE》 * |
韩希先 等: "DBCC-Join:一种新的高速缓存敏感的磁盘连接算法", 《计算机学报》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020029749A1 (zh) * | 2018-08-08 | 2020-02-13 | 华为技术有限公司 | 一种i/o请求派发方法及装置 |
CN109857341A (zh) * | 2019-01-15 | 2019-06-07 | 新华三技术有限公司成都分公司 | 写锁预取长度的确定方法及装置 |
CN109857341B (zh) * | 2019-01-15 | 2022-04-12 | 新华三技术有限公司成都分公司 | 写锁预取长度的确定方法及装置 |
CN109857566A (zh) * | 2019-01-25 | 2019-06-07 | 天翼爱动漫文化传媒有限公司 | 一种内存读写过程的资源锁定算法 |
CN109857566B (zh) * | 2019-01-25 | 2020-09-29 | 天翼爱动漫文化传媒有限公司 | 一种内存读写过程的资源锁定方法 |
CN110515909A (zh) * | 2019-08-29 | 2019-11-29 | 北京字节跳动网络技术有限公司 | 文件存储方法、装置、电子设备及计算机存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108021339B (zh) | 2021-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111198848B (zh) | 一种分布式文件访问方法、***、服务器和存储介质 | |
CN108021339A (zh) | 一种磁盘读写的方法、设备以及计算机可读存储介质 | |
US8676978B2 (en) | Efficient storage and retrieval of resources for rendering structured documents | |
Fu et al. | Fast and secure distributed read-only file system | |
US9286293B2 (en) | Populating and using caches in client-side caching | |
JP4613023B2 (ja) | プロトコル独立型クライアント側キャッシュ(protocol−independentclient−sidecaching)システムおよび方法 | |
WO2016101763A1 (zh) | 通过cdn下载资源的实现方法和装置、服务器、客户端 | |
CN108932332A (zh) | 静态资源的加载方法及装置 | |
CN104714965A (zh) | 静态资源去重方法、静态资源管理方法及装置 | |
US20230359628A1 (en) | Blockchain-based data processing method and apparatus, device, and storage medium | |
EP4216130A1 (en) | Transaction repeat checking method and apparatus, and device and medium | |
JP5817558B2 (ja) | 情報処理装置、分散処理システム、キャッシュ管理プログラムおよび分散処理方法 | |
CN107844542A (zh) | 一种分布式文件存储方法及装置 | |
EP3107010B1 (en) | Data integration pipeline | |
WO2010041028A1 (en) | Dictionary-based data compression and subsequent data transmission in a server / client architecture | |
CN117061615B (zh) | 缓存路径获取方法、装置、计算机设备及存储介质 | |
CN106959975B (zh) | 一种转码资源缓存处理方法、装置及设备 | |
CN113342275B (zh) | 区块链节点存取数据的方法、设备和计算机可读存储介质 | |
Naseem et al. | Extending HTML5 local storage to save more data; efficiently and in more structured way | |
US11586353B2 (en) | Optimized access to high-speed storage device | |
CN107085681B (zh) | 鲁棒的计算设备标识框架 | |
JP6607044B2 (ja) | サーバー装置、分散ファイルシステム、分散ファイルシステム制御方法、および、プログラム | |
CN115623081A (zh) | 数据下载方法、上传方法及分布式存储*** | |
US20140359062A1 (en) | Data transferring apparatus, data transferring system and non-transitory computer readable medium | |
Nayak et al. | Dr. hadoop: In search of a needle in a haystack |
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 |