CN1139030C - 排序数组元素以优化数组修改的计算机系统及方法 - Google Patents
排序数组元素以优化数组修改的计算机系统及方法 Download PDFInfo
- Publication number
- CN1139030C CN1139030C CNB981039278A CN98103927A CN1139030C CN 1139030 C CN1139030 C CN 1139030C CN B981039278 A CNB981039278 A CN B981039278A CN 98103927 A CN98103927 A CN 98103927A CN 1139030 C CN1139030 C CN 1139030C
- Authority
- CN
- China
- Prior art keywords
- array
- array element
- modification
- computer system
- data
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/22—Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
- G06F7/24—Sorting, i.e. extracting data from one or more carriers, rearranging the data in numerical or other ordered sequence, and rerecording the sorted data on the original carrier or on a different carrier or set of carriers sorting methods in general
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/04—Addressing variable-length words or parts of words
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99937—Sorting
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99942—Manipulating data structure, e.g. compression, compaction, compilation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System (AREA)
Abstract
对一个数组数据结构应用一个排序算法,以根据那些数组元素有可能被修改的预计频率排列这些元素。具有较高修改频率的数组元素被放在接近该数组尾部的地方,减少由于修改这些元素造成的其它通常必须被更新的的数组元素的数目,对于那些具有较低的修改可能性的数组元素,保留了需要更新更多数组元素的修改。对于一个给定的页,适于内存压缩的排序算法,以倒序方式排列页中的块,这是因为接近一页的开始的数据的修改的概率要高于接近一页的尾部的数据。
Description
本发明总的来说涉及计算机与数据处理系统中实现的数组数据结构,特别是涉及在诸如存储器压缩的应用中对数据结构的操作。
数组是一种常见的数据结构,在计算机或其它数据处理系统中用来存储数据。在数组数据结构中通常把多个数组元素放到一个列表中,通过一个唯一的索引访问每个数组元素。例如,许多计算机存储器系统都以数组来管理,各个存储器单元或一组存储器单元都可被作为数组元素,每一元素都有对之索引的唯一的一个存储器地址。
使用数组数据结构的最主要的优点是它能随机访问,比如能通过指向元素的指针或索引快速访问每一元素。但其缺点是很难有一种高效的方法对改变整个数组大小的修改进行处理。特别是人们希望能对任一数据结构进行紧致存放,只利用所必须的存储器空间。所以,一旦数组被修改,如删除或增加元素,或者是对支持可变大小的数组元素的数组进行修改,改变元素的大小,跟在被修改元素后的每一个元素通常也要修改或移动其在内存的位置。但是移动数组元素是一个费时的内存传输操作,从而降低存储器系统的效率。
另外,每一个数组元素可以用未使用过的存储单元来“填充”,因此可以在不影响数组中随后元素的起始元素地址的情况下,允许元素“变大”或“缩小”。但是这种技术会由于数组中存在尚未使用的存储器而极其浪费。而且这种技术既无法适应数组元素的删除与增加,也无法对溢出了可用填充的较大的数组元素进行修改。
数组一个重要的应用是存储器压缩,这种应用需要高存储密度及快速的存储器传送操作。在一些存储器压缩应用中,数据页被安排成块的数组,然后把块压缩成帧,以减少内存占用量,在对压缩的数据进行修改后,再次对它们进行压缩。不论帧中的数据何时被修改,帧必须重新压缩,这通常改变了帧大小及/或帧中存储的信息量。该页中跟在重新压缩的帧之后的每一帧也通常被更新,例如移动或重压缩,从而优化该页的压缩。当存储在靠近一页的开始的帧中的数据被修改时,通常该页中绝大部分或所有帧都被更新,这对该存储器系统中的总的性能有很显著的影响。
因此减小修改数组中的元素所引起的性能降低是一个实际的问题,特别是在存储器压缩或其它类似应用中。
本发明解决现有技术中在提供维护数组的方式方面有关的这些以及其它问题,该数组通常由一种排序算法对其元素进行排序,该算法至少部分依赖于那些元素有可能被修改的所预测的频率。具有较高修改频率的数组元素放在靠近数组尾部的地方,以便响应对这些元素的修改将通常需要更新的数组元素减至最小。对于那些具有较小修改可能性的数组元素,保留了需要更新较多数组元素的数组元素修改。这样,响应任一数组元素的修改需要更新的数组元素的平均数目,对于该数组在整体上减少了,从而减少了数组修改的整体性能影响。
根据本发明的一个方面,提供了一种在存储器空间中维护包括多个数组元素的数组的方法和计算机系统,该方法和系统(a)根据排序算法对数组元素排序,该算法根据修改概率在该存储器空间中排列数组元素,其中靠近该数组的第一端的数组元素的修改概率要比靠近该数组第二端的数组元素小;
(b)响应对一个选定的数组元素的修改,对数组中跟在该所选择的数组元素之后的至少一个随后的数组元素(如果有的话)进行更新。
根据本发明的另一个方面,提供了一种存储数据的方法和系统,该系统包括一个被分割成多个页面的存储器,每页包括以多个块存储的数据,并且每页中的块以倒序排列,系统以压缩格式将数据存储到存储器中,并且修改存储器中在选定页中选定块存储的数据,响应对一个选定块中的数据的修改,更新该选定块,以及更新该选定页中随后排列的至少一个随后的块(如果有的话)。
本发明还不限于此,它的一个特殊的有益的应用是在存储器压缩领域,这是因为邻近内存逻辑页开始位置的数据要比邻近该页末端位置的数据改变得频繁。对于一个给定页将数据块以倒序排列,无论一个数据块何时被修改,必须要被更新的块的平均数减至最小。
突出本发明特征的这些以及其它优点与特点在随后的权利要求中提出,并作为其中的一部分。但为了更好地理解本发明及其通过其应用所带来的优点及其特色,将参照附图及说明来描述本发明,其中描述了本发明的实施例。
图1为描述一个数组中对元素进行各种修改时的框图。
图2为一个计算机系统的框图,它与本发明的原则相一致。
图3是图2中计算机系统的内存映象框图。
图4是描述图2计算机系统的内存逻辑页的框图。
图5是描述图1中计算机系统的一个建立表的项与一个逻辑块数组之间的映射框图。
图6是显示对图5中逻辑块数组进行了一种示例的数据修改后所得的结果的框图。
本发明示意性实施例通常是通过对数组元素进行排序来操作的,这种排序是根据预测的数组元素被修改的有关频率进行的,它允许修改数组元素,这种修改影响到数组尾部的后续元素,从而减少了由于修改数组中的任一给定元素而影响到的数组元素的平均数。特别是最好经常维护在连续内存空间的数组元素,在元素之间很少或几乎没有未使用的空间。从而减小数组占用的存储量。应该可以理解,一个数组的连续存储空间在一定程度上可以是非连续的,即逻辑存储位置可以被映射到固定大小的分区上,比如在随后结合所示意的实施例所讨论的压缩数据分区所示出的。
对可以影响随后数组元素的数组元素修改操作一般包括删除数组元素及增加新的数组元素。而且,对于支持可变长数组元素的数组来说,另一种修改操作还包括改变数组元素的大小。
例如在图1中,一个数组5有元素A-F,它们存储在连续的存储空间中。如果比如从该数组中删除元素C,该数组的后续元素D-F必须向左移动或移位,或在内存中“向下移动”,从而能保持存储空间连续。如数组5′所示。比如如果增加元素C的大小,元素D-F必须向右移动或移位,或在内存中“向上移动”,从而保证元素C不会溢出到元素D中。如数组5″所示。同样的,如果在元素C后增加一个新元素G,元素D-F必须向右移动或移位,以便腾出空间给新元素。如数组5所示。
本发明的示意性实施例能根据修改的增加频率使用静态或动态排序算法安排数组元素。静态排序算法通常被硬编码进数组处理程序代码中,因此可以以与所选定的排序算法相一致的一种预定方式存储或修改数组元素。当使用一种静态算法时,数组元素的修改频率将通过一种已知的关系或实验测试决定。
另一方面,动态排序算法在数组操作过程中不仅要确定一种可行的排序算法,还要实现这种算法。比如,在数据库系统中,一个或多个数据库中记录的修改历史被实时监视,从而允许对影响记录的未来操作的各种记录或记录类型进行衡量,或者作为例行维护函数,有可能允许记录在内存中重排序。
在下面讨论的实施例中,数组元素表示为压缩数据块,这些数据块排列成表示为内存逻辑页的一个列表或数组形式。可以用于这一方面的一个可行的计算机系统在Hovis等人申请的美国专利申请(专利申请号为S/N 08/324,050,1994年10月17日提交)中公开,作为参考结合在本申请中。还可以选择使用其它的计算机与存储器系统,以及与其共同使用的其它存储器管理控制器与压缩引擎(compression engine)等。
在许多计算机系统(包括上述所提的系统)中已发现,靠近内存逻辑页开头的数据要比靠近逻辑页末尾的数据更可能被修改。比如,在一些使用4KB逻辑页的内存系统中已发现第1个KB,即最开头的2个512字节的逻辑块的修改频率大约是最后一个KB的修改频率的2倍。这有可能发生,因为比如内存分配操作不需要整页内存,或需要多页内存但在页中间结束,通常在一页的开头开始分配内存。
在下面讨论的实施例中,逻辑页安排成逻辑块数组,该数组在内存中使用内存压缩算法以压缩格式存储,压缩算法将逻辑块压缩成多个固定大小的帧,如512字节。无论块中的数据何时被修改,通常是由于从高速缓存的回写操作,包含该块的帧会被更新,如重新压缩。而且,如果在任一帧中块的大小的改变超过所允许的填充,具有被修改的块的帧之后至少有一帧通常是全部帧,也要被更新。在另一实施例中,帧可有可变的大小,由此随后的帧有可能不需要再压缩,但有可能只需要根据帧大小的修改而移动。
在下面讨论的实施例中,使用静态排序算法,它把逻辑页中数据的逻辑块以倒序排列。因此把最后的逻辑块放在数组开头,第一个逻辑块放在最后。所以,相对于具有较少修改频率的一页中的最后一个逻辑块中的数据,第一个逻辑块中有较高修改频率的数据修改要求较少或不需再压缩或移动随后的帧。通常这会导致每一数据操作后被修改帧的平均数为较低,而且提高了总体性能。
因此,数据逻辑块通常与所示实施例的数组元素很相似。但是可以理解元素尤其能表示具有任何固定的或可变的大小的任何类型的内存块或段。
还要理解,尽管随后的讨论是针对内存压缩应用中压缩数据的安排,本发明还不限于这个特定的应用。例如可以类似地用于其它计算机与数据处理应用中其它数据形式的数组操作。
现在回到附图中,在整个描述中相同的部件用相同的数字表示,图2示出了与本发明的原则相一致的计算机系统。代表许多数据处理系统的计算机系统10通常包括耦合到存储器系统30的一个或多个处理单元20。计算机系统10的其它部件,如用户输入设备、通讯设备、信息显示设备等都与本发明的理解无关,在此不单独说明了。
存储器系统30通常包括连接在处理单元20与系统存储器40之间的存储器控制器32。存储器控制器使用高速缓存目录33,确定当前什么数据被高速缓存在系统中。压缩引擎34依赖于帧表35,该引擎与存储器管理器32连结,处理系统存储器40中的数据压缩。
如图3所示,系统存储器40被分割成一组内存区,包含非压缩高速缓存42、压缩数据区44、非压缩数据区47与建立表48。可看到这些内存区可由相同的或不同的内存硬件部件实现。逻辑存储体以压缩格式在压缩数据区44中维护。系统中许多存储器操作都在高速缓存42中完成,并且42能维护区44中被选定页的非压缩的备份,以优化内存性能。典型较小的非压缩区47是可选的,以用于额外的存储目的。
图4中主存储器被组织成逻辑页,如逻辑页45,包含多个逻辑块,如逻辑块A-H。比如在该示意性实施例中,使用4KB逻辑页,每一页有8个512字节的逻辑块。这时逻辑页包含一个具有固定大小的多个帧的链,如图3中的帧46,然后以压缩格式存储。
压缩数据区中存储的每一逻辑页通过使用建立表48中的项而被访问,即建立表项49,它有n+1个指针,n是该页中逻辑块数。如图5中所示,项49包含9个指针,指针0-8。第一个指针,指针0包含40位,因此能提供1兆兆字节的地址空间。其余指针有32位,利用第1个指针的高位字节,从而它们指向存储器中同一4千兆字节的内存段。比如通过在512字节的边界上对齐帧,以及对指向帧的开始的块的指针的低10位进行屏蔽,可以获得逻辑块中间开始的帧的起始地址,其它大小指针可用来寻址其它地址空间以及页/块大小。
与本发明相一致,逻辑页45中的逻辑块A-H以倒序链接,第一个指针指向逻辑块H,随后的每一个指针指向每一个前继逻辑块的开始。最后一个指针,指针8指向逻辑决A的尾部。
所示的逻辑块压缩成固定大小的帧46a-46f。可理解,实际存储逻辑页的帧数目非常依赖于所使用的压缩算法对该页的数据的压缩程度。
存储器系统元素的操作与前面提到的Hovis等人的申请相似。典型地,大部分内存访问是对高速缓存的存储器进行的。无论何时对存储在高速缓存中的单元进行存储器访问,就访问建立表48,从区44获取压缩数据,然后解压并存储这些数据到高速缓存中。但如果该高速缓存已“满”;“老”数据必须首先从高速缓存中移出,以便有空间给最近访问的数据。老数据则由一个压缩引擎处理,以再压缩并存回到区44中。
使用部分重压缩算法能减少在将数据存储到区44之前对该数据再压缩所需要的处理量,因此只对存储该逻辑块(其在高速缓存中被更新)的帧以及链中随后的帧进行再压缩。可使用这类不同的压缩算法。另外,通过以在这里讨论方式对逻辑块进行排序,通常减少响应高速缓存回写操作进行重新压缩的帧的数量。
例如,在图5中的示意性实施例中,假设修改块A与块B的频率是修改块G和H的频率的两倍,相对于对块G与H的修改则需要再压缩6帧,即帧46a-46f而言,对块A和块B更频繁的修改只需要对3帧重压缩,即帧46d-46f。图6说明了更新逻辑块B中的数据所导致的逻辑页45重压缩的结果。重压缩后,由于较高的压缩率,可以看到逻辑块B占据较小的内存空间。更新后,只有三帧,即帧46d′-46f′被重压缩。
可以看到,各种应用程序以及实现本发明各种实施例的计算机程序可以在不同时间驻留在一个或多个程序存贮设备中,这些设备包括能够以一种挥发或非挥发方式存储诸如数据或程序代码的信息的设备或装置。相应地,程序存储设备可包括内存设备,如RAM,ROM,EPROM、处理器及高速缓冲内存、快速内存、定制集成电路等,以及固定的或可拆卸大容量存储介质,如固定的或可拆卸磁盘,CD-ROM、磁带等。另外可理解,各种应用、程序及计算机过程,总的称之为“程序产品”,可通过网络或调制解调器转输或下载到计算机系统上,代替了软盘或CD-ROM这样的存储介质,通常这要首先在计算机系统与服务器型计算机之间建立连接,然后传输程序产品到计算机系统上。因此,应当理解,程序存储设备还可以包括服务器类计算机上的任一种所述存储器与存储介质,如公告板(bulletin board)或文件传输服务(ftp)站点,它们下载或传输程序产品到其它计算机系统上,但实际上并不执行下载或传输的程序产品。
对所示意性实施例说明的各种修改并没有脱离本发明的精神与范围。因此本发明仅依从于所附的权利要求书。
Claims (12)
1.一种在存储器空间中维护包括多个数组元素的数组的方法,包括以下步骤:
(a)根据排序算法对数组元素排序,该算法根据修改概率在该存储器空间中排列数组元素,其中靠近该数组的第一端的数组元素的修改概率要比靠近该数组第二端的数组元素小;
(b)响应对一个选定的数组元素的修改,如果有的话,对数组中跟在该所选择的数组元素之后的至少一个随后数组元素进行更新。
2.根据权利要求1的方法,其特征在于更新步骤是响应删除、增加、或改变所选择的数组元素的规模而执行的。
3.根据权利要求1的方法,其特征在于更新步骤包括在存储空间中移动后续数组元素。
4.根据权利要求3的方法,其特征在于更新步骤包括维护连续存储空间中的数组元素。
5.根据权利要求1的方法,其特征在于该数组的第一端表示该数组的开始,以及排序步骤以倒序的方式排序数组元素。
6.根据权利要求5的方法,其特征在于该数组表示存储器的一个逻辑页,每一个数组元素表示该逻辑页中的一个存储器逻辑块;由此表示该逻辑页中较低序号的逻辑块的数组元素被安排邻近该数组的第二端。
7.根据权利要求6的方法,其特征在于数组元素以压缩格式存储在多个帧中,并且,响应对该选定数组元素中的数据的修改,修改步骤只重新压缩那些存储该选定数组元素的至少一部分或在该数组中的一个随后数组元素的帧。
8.一个计算机系统,包括:
(a)一个存储器,其被配置和安排存储包含多个数组元素的一个数组;
(b)连接该存储器的一个控制器,该控制器根据一个排序算法存储多个数组元素,该算法依据修改概率在该存储器中排列数组元素,其中靠近数组第一端的元素的修改概率要比靠近数组第二端的元素的概率低,并且响应一个选定的数组元素的修改,如果有的话,控制器更新跟在该数组中的所选定元素之后的至少一个随后数组元素。
9.根据权利要求8中的计算机系统,其特征在于控制器响应对所选择数组元素规模的删除、增加或修改,并且通过移动该存储器空间中的所述随后数组元素,更新所述的随后数组元素。
10.根据权利要求8的计算机系统,其特征在于:数组的第一端表示该数组的开始,并且该控制器以倒序方式排序该数组元素。
11.根据权利要求10的计算机系统,其特征在于:控制器以压缩格式在多个帧中存储数组元素,并且,响应对选定的数组元素数据的修改,控制器只重新压缩那些存储选定的数组元素的至少一部分或在该数组中的一个随后数组元素的帧。
12.一个传输一个程序产品到计算机系统的方法,该方法包括如下步骤:
(a)建立一个与该计算机系统的连接;以及
(b)把该程序产品传输到该计算机系统,该程序产品由计算机系统执行,运行一个在一个存储器空间维护包含多个数组元素的数组的步骤,该步骤具体为:
(1)根据一个排序算法排序数组元素,该算法依据修改概率排列存储空间中的数组元素,其中,靠近该数组第一端的数组元素的修改概率要低于靠近该数组第二端的元素的修改概率;以及
(2)响应对选定的数组元素的修改,如果有的话,更新跟在该数组中的该选择的数组元素之后的至少一个随后数组元素。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US797,760 | 1997-02-07 | ||
US797760 | 1997-02-07 | ||
US08/797,760 US5924092A (en) | 1997-02-07 | 1997-02-07 | Computer system and method which sort array elements to optimize array modifications |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB011257415A Division CN1214327C (zh) | 1997-02-07 | 2001-08-21 | 排序数组元素以优化数组修改的计算机系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1190212A CN1190212A (zh) | 1998-08-12 |
CN1139030C true CN1139030C (zh) | 2004-02-18 |
Family
ID=25171742
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB981039278A Expired - Fee Related CN1139030C (zh) | 1997-02-07 | 1998-01-06 | 排序数组元素以优化数组修改的计算机系统及方法 |
CNB011257415A Expired - Fee Related CN1214327C (zh) | 1997-02-07 | 2001-08-21 | 排序数组元素以优化数组修改的计算机系统及方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB011257415A Expired - Fee Related CN1214327C (zh) | 1997-02-07 | 2001-08-21 | 排序数组元素以优化数组修改的计算机系统及方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US5924092A (zh) |
JP (1) | JP3416502B2 (zh) |
KR (1) | KR100260868B1 (zh) |
CN (2) | CN1139030C (zh) |
TW (1) | TW379300B (zh) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3360598B2 (ja) * | 1998-02-18 | 2002-12-24 | ミノルタ株式会社 | 画像システム |
US7278094B1 (en) | 2000-05-03 | 2007-10-02 | R. R. Donnelley & Sons Co. | Variable text processing for an electronic press |
US7802077B1 (en) | 2000-06-30 | 2010-09-21 | Intel Corporation | Trace indexing via trace end addresses |
US7757065B1 (en) * | 2000-11-09 | 2010-07-13 | Intel Corporation | Instruction segment recording scheme |
US6763424B2 (en) * | 2001-01-19 | 2004-07-13 | Sandisk Corporation | Partial block data programming and reading operations in a non-volatile memory |
US6950903B2 (en) * | 2001-06-28 | 2005-09-27 | Intel Corporation | Power reduction for processor front-end by caching decoded instructions |
US7062761B2 (en) * | 2001-07-10 | 2006-06-13 | Micron Technology, Inc. | Dynamic arrays and overlays with bounds policies |
US7062607B2 (en) * | 2001-09-24 | 2006-06-13 | Intel Corporation | Filtering basic instruction segments in a processor front-end for power conservation |
US8190765B2 (en) * | 2002-06-25 | 2012-05-29 | Intel Corporation | Data reception management apparatus, systems, and methods |
US7996411B2 (en) * | 2003-03-28 | 2011-08-09 | International Business Machines Corporation | Method, apparatus, and system for translating selected characters in a record processing system |
CA2427216A1 (en) * | 2003-04-30 | 2004-10-30 | Ibm Canada Limited - Ibm Canada Limitee | Slow materialization sort of partially ordered inputs in a database system |
US20050086225A1 (en) * | 2003-10-15 | 2005-04-21 | Xiaoming Cheng | Apparatus and method for searching a directory of stored items |
WO2008136066A1 (ja) * | 2007-04-19 | 2008-11-13 | Turbo Data Laboratories, Inc. | メモリ間接参照をメモリ直接参照に変換する方法及び装置 |
KR100941423B1 (ko) * | 2008-02-21 | 2010-02-11 | 인하대학교 산학협력단 | 메모리의 페이지 할당 방법 및 이를 수행하기 위한프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체 |
US8078957B2 (en) * | 2008-05-02 | 2011-12-13 | Microsoft Corporation | Document synchronization over stateless protocols |
US8219526B2 (en) | 2009-06-05 | 2012-07-10 | Microsoft Corporation | Synchronizing file partitions utilizing a server storage model |
US20110202509A1 (en) * | 2010-02-16 | 2011-08-18 | Microsoft Corporation | Efficient extraction and compression of data |
KR101257691B1 (ko) | 2011-08-12 | 2013-04-24 | 아주대학교산학협력단 | 메모리 컨트롤러 및 이의 데이터 관리방법 |
US9792313B2 (en) | 2012-07-31 | 2017-10-17 | Empire Technology Development Llc | Parting data to improve system performance |
WO2014049636A1 (en) * | 2012-09-25 | 2014-04-03 | Hitachi, Ltd. | Storage apparatus and method of controlling the same |
CN114328373A (zh) * | 2020-09-29 | 2022-04-12 | 伊姆西Ip控股有限责任公司 | 管理文件系统的方法、电子设备和计算机程序产品 |
CN115657968B (zh) * | 2022-11-21 | 2023-04-07 | 苏州数算软云科技有限公司 | 边界表示模型的存储方法、装置、设备和介质 |
CN115827109A (zh) * | 2023-02-10 | 2023-03-21 | 苏州万店掌网络科技有限公司 | 一种脚本数组元素删除方法、装置、设备及存储介质 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3670307A (en) * | 1969-12-23 | 1972-06-13 | Ibm | Interstorage transfer mechanism |
US4467421A (en) * | 1979-10-18 | 1984-08-21 | Storage Technology Corporation | Virtual storage system and method |
JPS57169865A (en) * | 1981-04-14 | 1982-10-19 | Fuji Xerox Co Ltd | Picture information storage device |
SE8307228D0 (sv) * | 1983-12-30 | 1983-12-30 | Grundstenen 16808 Ab | Datakomprimering |
EP0406189B1 (en) * | 1989-06-28 | 1995-07-26 | International Business Machines Corporation | A method for efficient utilization of removable data recording media |
US5235695A (en) * | 1989-06-28 | 1993-08-10 | International Business Machines Corporation | Apparatus for efficient utilization of removable data recording media |
US5247638A (en) * | 1990-06-18 | 1993-09-21 | Storage Technology Corporation | Apparatus for compressing data in a dynamically mapped virtual data storage subsystem |
US5313604A (en) * | 1990-11-13 | 1994-05-17 | Hewlett-Packard Company | Method for locating compressed data in a computed memory back up device including steps of refining estimater location |
US5237460A (en) * | 1990-12-14 | 1993-08-17 | Ceram, Inc. | Storage of compressed data on random access storage devices |
US5490260A (en) * | 1990-12-14 | 1996-02-06 | Ceram, Inc. | Solid-state RAM data storage for virtual memory computer using fixed-sized swap pages with selective compressed/uncompressed data store according to each data size |
US5481701A (en) * | 1991-09-13 | 1996-01-02 | Salient Software, Inc. | Method and apparatus for performing direct read of compressed data file |
US5239298A (en) * | 1992-04-17 | 1993-08-24 | Bell Communications Research, Inc. | Data compression |
US5305295A (en) * | 1992-06-29 | 1994-04-19 | Apple Computer, Inc. | Efficient method and apparatus for access and storage of compressed data |
JPH0628108A (ja) * | 1992-07-09 | 1994-02-04 | Hitachi Ltd | データ記憶システム |
US5357614A (en) * | 1992-09-17 | 1994-10-18 | Rexon/Tecmar, Inc. | Data compression controller |
US5559978A (en) * | 1992-10-14 | 1996-09-24 | Helix Software Company, Inc. | Method for increasing the efficiency of a virtual memory system by selective compression of RAM memory contents |
US5812817A (en) * | 1994-10-17 | 1998-09-22 | International Business Machines Corporation | Compression architecture for system memory application |
-
1997
- 1997-02-07 US US08/797,760 patent/US5924092A/en not_active Expired - Fee Related
- 1997-09-10 KR KR1019970046488A patent/KR100260868B1/ko not_active IP Right Cessation
- 1997-11-03 TW TW086116269A patent/TW379300B/zh not_active IP Right Cessation
-
1998
- 1998-01-06 CN CNB981039278A patent/CN1139030C/zh not_active Expired - Fee Related
- 1998-02-03 JP JP02241498A patent/JP3416502B2/ja not_active Expired - Fee Related
-
2001
- 2001-08-21 CN CNB011257415A patent/CN1214327C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP3416502B2 (ja) | 2003-06-16 |
KR19980069939A (ko) | 1998-10-26 |
CN1339744A (zh) | 2002-03-13 |
TW379300B (en) | 2000-01-11 |
CN1190212A (zh) | 1998-08-12 |
JPH10269131A (ja) | 1998-10-09 |
KR100260868B1 (ko) | 2000-07-01 |
US5924092A (en) | 1999-07-13 |
CN1214327C (zh) | 2005-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1139030C (zh) | 排序数组元素以优化数组修改的计算机系统及方法 | |
US10558705B2 (en) | Low RAM space, high-throughput persistent key-value store using secondary memory | |
CN1079552C (zh) | 采用稀疏文件的实时数据迁移系统和方法 | |
US9880743B1 (en) | Tracking compressed fragments for efficient free space management | |
US7496586B1 (en) | Method and apparatus for compressing data in a file system | |
EP2641181B1 (en) | Scalable chunk store for data deduplication | |
EP0166148B1 (en) | Memory assignment method for computer based systems | |
CN1295591C (zh) | 用于管理存储单元中数据的方法和系统 | |
CA2723731C (en) | Managing storage of individually accessible data units | |
CN105027122A (zh) | 压缩和重复数据删除分层驱动 | |
CN102893265B (zh) | 管理可独立访问的数据单元的存储 | |
KR20170054299A (ko) | 메모리 관리 시의 중복 제거를 위해서 기준 세트로 기준 블록을 취합하는 기법 | |
CN105786408A (zh) | 闪存阵列中的逻辑扇区映射 | |
US7415653B1 (en) | Method and apparatus for vectored block-level checksum for file system data integrity | |
CN103098035A (zh) | 存储系统 | |
CA2542162A1 (en) | Preload library for transparent file transformation | |
US11308054B2 (en) | Efficient large column values storage in columnar databases | |
EP2425324A1 (en) | Description | |
WO2024061108A1 (en) | Distributed storage systems and methods thereof, device and storage medium | |
WO2024169851A1 (zh) | 一种数据压缩方法、系统、设备及计算机可读存储介质 | |
CN110377227B (zh) | 一种数据分块存储方法、装置及电子设备 | |
EP0166936A2 (en) | Compression of binary numbers for storage in a memory | |
CN1487420A (zh) | 分配伪时间属性给一个或多个逻辑卷的装置和方法 | |
CN1975728A (zh) | 使用最少的日志条目将数据库更改记入日志的设备和方法 | |
EP2690565B1 (en) | Method and system for compressing data records and for processing compressed data records |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C19 | Lapse of patent right due to non-payment of the annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |