CN1294387A - 对顺序存取存储介质上变长度数据的有效存取 - Google Patents

对顺序存取存储介质上变长度数据的有效存取 Download PDF

Info

Publication number
CN1294387A
CN1294387A CN00128623A CN00128623A CN1294387A CN 1294387 A CN1294387 A CN 1294387A CN 00128623 A CN00128623 A CN 00128623A CN 00128623 A CN00128623 A CN 00128623A CN 1294387 A CN1294387 A CN 1294387A
Authority
CN
China
Prior art keywords
data
play amount
medium
storage medium
segment
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
Application number
CN00128623A
Other languages
English (en)
Other versions
CN1210712C (zh
Inventor
L·F·卡布拉
A·S·克哈利得
S·R·斯特纳
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of CN1294387A publication Critical patent/CN1294387A/zh
Application granted granted Critical
Publication of CN1210712C publication Critical patent/CN1210712C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90348Query processing by searching ordered data, e.g. alpha-numerically ordered data

Abstract

一个系统、方法和程序产品提供了根据估计介质偏移量,使用迭代查找特定数据偏移量,在顺序存取存储介质上对于可变长度数据段的存取。以可变长度数据段记录的数据,按预设排列间隔排列。每个数据段包含一个预设标志字段,用来识别每个数据段的首部。记录在介质上的会话数据,用来防止与标志字段匹配的会话数据,按预设排列间隔排列。数据段长度的大约或缺省参数用于每一个估计,并根据从介质上数据段首部得到的实际数据,在每次叠代中刷新。

Description

对顺序存取存储介质上变长度数据的有效存取
一般地,本发明是关于顺序存取存储介质的,特别是关于在顺序存取存储介质上,存取可变长度数据段。
顺序存取存储介质,如磁带和WORM(一次写入、多次读取)光盘,典型地用于存储大量数据。相对于其它存储方法的选择,如磁盘、磁盘阵列或随机存取存储器(RAM),顺序存取存储介质提供了一种低成本存储的选择。但是,顺序存取存储介质的缺点是,对介质上特定位置的定位过程相对慢。对磁带来说,这种定位一般包括介质的机械前绕和/或后绕以便在磁带上定位于所需数据的适当位置。这样,对磁带上特定数据偏移量的定位,会导致顺序存取存储介质上,检索记录数据的整个进程产生大量的操作。
将大量的数据流写到顺序存取存储介质时,最好将数据流分成较小的数据段,因为有几个原因:第一,数据分段分配提高了错误恢复性。一个数据段含有一个首部和错误恢复参数,如校验和参数。如果一个很大的数据流包含一个数据段,在该数据段被确认前,整个数据流必须被读取。整个一个数据段的数据流还可能因为一个较小的错误而不可恢复。因此,如果数据流被分配成多个较小的数据段,单一数据段中的错误不会使整个数据流不可恢复。
第二,最好使用较小的数据段,是因为数据段可以作为界线,以适应系统缓存的数据自动清空。一般地,在数据被实际存储到顺序存取存储介质前,应用程序将一块会话数据“写”到系统缓存。一些系统使用数据段界线来定义数据,使系统自动将缓存的数据清空,并记录到介质上。
第三,最好使用较小的数据段,因为当“写”操作被初始化时,对应用程序来说,整个数据流的长度未知,这样就不能在数据段首部中存储数据段长度了。可选地,如果数据流被分成多个数据段,甚至当整个数据流的长度还未知时,应用程序也可以指定数据段的长度。
一项减少在顺序存取存储介质上定位的操作耗费的技术,是使用固定长度数据段。即记录在顺序存取存储介质上的数据,被分配成存储在介质上的固定长度数据段。每个数据段典型地含有一个固定长度首部,连接在每个数据段的开始部分,例如,数据段索引,用来指定数据段内的数据开始部分、段内的数据长度和填充符的量。如果记录在段内的数据比整个固定长度数据段短,段内剩余部分被填充(也就是,后续会话数据被记录在下一个数据段,而不是当前数据段的其余部分)。
应理解:介质偏移量代表沿介质方向的顺序偏移量,包括首部、数据、校验和、和填充符;而数据偏移量只代表数据的顺序偏移量,不包括首部、数据、校验和、和填充符。为了定位特定的数据偏移量Od,程序(例如,操作系统,应用程序,系统驱动,或嵌入程序)使用简单的确定算术方法,计算出对于包含特定数据偏移量Od的数据段的介质偏移量。固定长度数据段的一个缺点是,数据段倾向于固定在大的值上(例如64KB(千字节)),这样,需要大量填充符,通过在介质上引入必要的浪费空间,减小了存储效率。
为减少固定长度数据段引入的浪费空间,现有的一种途径使用可变长度数据段以减少固定长度数据段方法中过多的填充符。可变长度数据段意味着,数据段不必遵从预设固定长度,甚至在一些或多数数据段都具有相同长度时也是如此。但是,在固定长度数据段的方法中使用的简单确定位置的方法,在可变长度数据段中不起作用。因而,可变长度数据段方法包括,使每个读取头沿介质方向移动,将读取头按一个特定数据偏移量定位。沿介质上的每个首部的数据偏移量,和数据长度信息被顺序估算,直到到达包含特定数据偏移量Od的数据段。这一移动机制是费时的,特别是特定数据偏移量位于介质的尾部时更是如此。
根据本发明,上述的和其它问题,通过将可变长度数据段结合到顺序存取存储介质上解决,而不需要在顺序存取存储介质顺序移动读取头。
提供在顺序存取存储介质上,存取具有可变长度数据段数据的方法和程序产品。每个可变长度数据段包括一个具有预设标志字段的首部。
在顺序存取存储介质上存储数据时,数据段按预设排列间隔排列。数据段被记录在顺序存取存储介质上,使得与预设标志字段匹配的会话数据,不按预设排列间隔排列。
从特定数据偏移量检索会话数据时,一个或多个估计介质偏移量被迭代估计以便在顺序存取存储介质上定位特定数据偏移量,每次估计从介质的上次估计向前或向后移动。定位在估计介质偏移量的每个数据段被估算以便确定它是否包含特定数据偏移量。当特定数据偏移量被找到,读写头定位在相应数据段并且记录在相应数据段中的所需数据被检索到。
还提供在顺序存取存储介质上存取会话数据的系统。将会话数据存储到顺序存储介质上时,缓存接收并存储会话数据。分配模块在缓存中可变长度数据段分配会话数据。每个可变长度数据段,包括一个含有预设标志字段的首部。排列模块按预设排列间隔,将每个首部排列在顺序存取存储介质上。记录模块将每个可变长数据段记录到顺序存取存储介质上,从而使与预设标志字段匹配的会话数据,不按预设排列间隔排列。
在含有可变长度数据段的顺序存取存储介质上,从特定数据偏移量检索记录数据时,估算模块迭代估计一个或多个与数据段相联系的数据偏移量。读取头被设定,从顺序存取存储介质上,根据给出的介质偏移量读取数据。估算模块估算顺序存取存储介质上的估计介质偏移量,确定定位在每个估计介质偏移量的数据段,是否包含特定的数据偏移量。定位模块将读取头定位在顺序存取存储介质,包含特定数据偏移量的数据段上。输入模块从读取头输入,定位在特定数据偏移量数据段上的记录数据。
图1示出了本发明一项具体实施例可以实现在其上的适当计算环境的方框图;
图2A和图2B示出了本发明一项实施例中,含有可变长度数据段的顺序存取存储介质;
图3示出了本发明一项实施例中对于顺序存储介质存取以可变长度数据段记录的会话数据的操作的流程图;
图4示出了本发明一项实施例中在顺序存储介质上存储会话数据的操作的流程图;
图5A和图5B示出了本发明一项实施例中从顺序存储介质上按指定数据偏移量,检索数据的操作的流程图。
本发明一项实施例提供了在含有可变长度数据段的顺序存储介质上会话数据的存取。会话数据以可变长度数据段记录,按预设排列间隔排列。每个数据段含有一个预设标记域,用来识别数据段的首部。会话数据记录在介质上,防止与标记域匹配的会话数据,以预设排列间隔排列。在顺序存取存储介质上检索会话数据,是根据估计介质偏移量,迭代查找特定数据偏移量。
图1和随后的讨论用来对一个合适的计算环境提供一个简略和普遍的描述,本发明一项实施例运行其上。尽管不是必须的,本发明的实施例将用计算机可执行的指令,以普通文本描述,例如程序模块、对象、组件、数据结构等等,它们实现特定任务,或使用特定的抽象数据类型。而且那些本技术领域的专业人士会意识到,本发明可以在其它设置的计算机系统上实现,如手持设备、多处理器系统、基于微处理器的或可编程的消费电子产品、网络PC、微型计算机、巨型计算机及类似系统。本发明同样可以在分布式计算环境上实现,在那种系统中,任务由通讯网络连接的远程处理设备完成。在分布式计算环境中,程序模块可以同时驻留本地和远程的记忆存储设备。而且,程序模块可以嵌入固件,并且可以由存储控制器的微处理器执行。
参考图1,本发明一项实施例的操作环境是计算机系统100,包括计算机102,带有至少一个高速处理单元(CPU)104;连接一个存储系统106;一个输入设备或模块108;和一个输出设备或模块110。这些部件通过至少一个总线结构112相互连接。
上述CPU104的设计是为人所熟悉的,包括一个算术逻辑单元(ALU)114,用来实现计算;一组寄存器116,用来临时存储数据和指令;和一个控制单元118,用来控制计算机系统100的操作。CPU104可以是各种结构的处理器,包括x86,由Intel和其他公司如Cyrix和AMD设计;或PowerPC,由IBM和Motorola设计。
存储系统106通常包括高速主存储器120,其介质形式包括随机存储器(RAM)和只读存储器(ROM)半导体设备;长期存储器,包括第一存储器122和第二存储器124,每个的介质形式包括软盘、硬盘、磁带、CD-ROM、快闪存储器、光盘和其他设备,使用电、磁、光或其它记录介质存贮数据。主存储器120还包括通过显示设备显示图像的视频显示存储器。那些本技术领域的专业人士会意识到,存储系统106可以包括大量具有不同存储性能的可选元件。在优选实施例中,第二存储器124的形式是,包含可变长度数据段的顺序存取存储介质,根据本发明,按预设排列间隔排列的。在可选实施例中,根据本发明的系统可以由存储控制器或磁带驱动器实现,它们与计算机系统分离,从计算机系统、外围设备或网络接收数据流。
输入设备108和输出设备110同样是为人所熟悉的。输入设备108包括键盘、鼠标、物理转换器(例如麦克风)等等。输出设备110包括显示器、打印机、转换器(例如扬声器)等等。例如在本发明一项实施例中,磁带的读取头是输入设备,而磁带的记录头是输出设备。
正如那些本技术领域的专业人士所熟悉的,计算机系统100还包括一个操作系统和通常一个或多个应用程序。操作系统包括一组程序,控制计算机系统100的操作、资源的分配、为用户提供图形操作介面,并且还包括必要的应用程序,如电子邮件系统。应用程序是运行在操作系统软件之上的软件,使用由操作系统提供的计算机资源,完成用户需要的特定任务。在本发明的优选实施例中,电子邮件系统结合在操作系统中。电子邮件系统也可以结合在应用程序中。它们都驻留在上述存储系统106中。操作系统最好使用图形操作介面,应用程序的显示输出,被显示在输出设备110屏幕上的矩形区域内;操作系统是多任务的(以多线程执行计算任务),例如Microsoft公司的“WINDOWS95”、“WINDOWS98”、“WINDOWS NT”操作系统,IBM的OS/2WARP,Apple的MACINTOSH SYSTEM 8操作系统,X-window等。
与计算机编程领域专业人士的实践相一致,除非另外说明,本发明的如下描述参考了由计算机系统100、分离存储控制器或分离磁带驱动器(未示出),执行的动作和操作的符号表示。上述的动作和操作有时被称作是计算机可执行的。应该知道,动作和符号表示的操作包括:表示引起电信号表示产生的变换和简化的数据位的电信号的CPU104的处理,和在存储系统106的存储位置上数据位的保持,以便像其它运算信号一样,重新配置或改变计算机系统的操作。保持数据位的存储位置是具有根据数据位的,特定的电、磁、光性能的物理单元。
计算机系统100可以通过与一或多台远程计算机或外围设备逻辑连接,运行在网络环境中,在此情况下,网络介面或调制解调器可以被用作输入设备108和/或输出设备110。远程计算机可以是桌面计算机、服务器、路由器、网络PC(个人计算机)、同位体设备或其它普通网络节点,典型地包括与计算机系统100相联系的很多或所有上述元件。逻辑连接包括局域网(LAN)或广域网(WAN)。这样的网络环境在办公室、企业级计算机网、内联网和Internet中是普通的。
图2A示出了本发明一项实施例的逻辑图,描述具有可变长度数据段的顺序存取存储介质200。顺序存取存储介质200可以代表,任何顺序存储和检索数据的存储设备,而非随机存取方式的设备,包括无限盘式磁带、盒式磁带和WORM光盘。应理解数据段201、202和203具有不同的长度。在图2B中,预设排列间隔(例如图210所示)沿存储介质长度方向,逻辑地和一致地间隔。在优选实施例中,尽管其它的间隔也在本发明的范围之内,间隔210与需要与磁带上记录1千字节(1KB)数据的磁带长度相符合。在可选实施例中,预设排列间隔210被确定为任意的,但是典型地,间隔210根据传统排列单元确定,传统排列单元与系统中定义的,顺序存取存储控制器参数或操作系统参数相联系,用来优化性能。
图2B示出了本发明一项实施例中,数据段202更细节的表示。数据段202最好包括固定长度数据段首部206,数据区208,可选的填充区212,和可选的4位校验和区211。首部206(同时数据段202)按预设排列间隔204排列,预设排列间隔204也就是图2A中的一个预设排列间隔210。在优选实施例中,数据段首部包括一个标志(或类型)域、一个属性域、一个段编号域、一个数据偏移量域、一个数据长度域、一个填充长度域、前段数据段长度域和一个校验和域。在一个可选实施例中,前段数据段长度被去掉。
标志字段存储预设的和一致的标志,用于识别首部的开始,例如,标志与任意的会话数据相对。检索进程通过以预设排列间隔,查找标志来找到首部。但是,有一种可能,由于巧合,收到的任意会话数据与首部的标志匹配。如果这个匹配的会话数据也按预设排列间隔排列,检索进程会将会话数据误认为首部数据。因此,本发明实施例的存储进程保证,不使与预设标志字段匹配的会话数据,按预设排列间隔排列。
属性域包括描述数据段的参数,以提高性能。例如,属性域包括指示数据段是否包含填充域和校验和域的标志,或指示当前数据段是否是记录的会话数据的最后一个数据段。段编号域用来保持数据段的顺序。数据偏移量域提供当前数据段中,数据区第一个字节的预设数据偏移量。数据长度域提供当前数据段的数据区中数据的长度。填充长度域提供在数据段结束时包括的填充符长度。前段数据段长度域提供顺序中前段数据段的长度,以实现反向检索。校验和域存储数据段首部自身的校验和。
数据区208包括由计算机系统提供的,用于记录在顺序存储介质200上的会话数据部分。图2B中的数据区208在每个介质偏移量206处结束,介质偏移量206不按预设间隔排列。填充区212代表位于数据区208尾部和下一个预设排列间隔218之间的区域。如本方式所采用的,这一区域被填充(例如,会话数据不被存储在填充区212的可用空间),下一个数据段按下一个预设排列单元218排列。如图所示,下一个数据段的首部214按下一个预设排列间隔218排列。然而有一种可能性,数据区长度在预设排列间隔结束处,这样减少在数据段中填充符的需要(见例中的数据段201)。在包括数据段校验和域的实施例中,校验和域的长度包括在填充域的长度中。
理解下述问题是很重要的,在顺序存取介质中,使用了两个不同类的偏移量:(1)介质偏移量,代表沿介质记录的信息的顺序偏移量,包括首部、数据域、校验和和填充域。(2)数据偏移量,代表记录在介质上数据的顺序偏移量,不包括首部、校验和和填充域。由此,预设排列间隔是根据介质偏移量沿介质方向的空间。而且,在介质上读和写数据的存储设备,根据介质偏移量定位。相反,当用户需要存储在存储介质上的数据时,用户提供一个特定数据偏移量。本发明一项实施例适应了介质偏移量和数据偏移量的不同,在包含可变长度数据段的介质中,根据特定的数据偏移量找到介质偏移量。
图3示出了本发明一个实施例的流程图,描述存取会话数据的操作,会话数据以可变长度数据段记录在顺序存储介质上。“存取”通常是指存储数据、检索数据或兼指二者(如图3所说明的)。进程由操作300开始,会话数据被接收到缓存中。操作302将会话数据分配成可变长度数据段。操作304按预设排列间隔排列每个数据段。操作306在顺序存储介质上,根据排列记录每个数据段,并保证不使与预设标志字段匹配的会话数据,按预设排列间隔排列。如图4所示,本发明一项实施例将具有上述匹配的数据段,分成两个不同的数据段,使标志匹配的会话数据不按预设排列间隔排列。
在操作308中,特定数据偏移量从用户所需数据中得到,所需数据将从顺序存储介质中被读取。操作310估计介质偏移量,它试图估计介质上数据段首部的位置。操作312根据估计介质偏移量定位数据段,并估算数据段的首部。操作314确定特定数据偏移量是否包含在定位的数据段中。如果不在,一个新的介质偏移量根据前一个估计数据偏移量估计,进程继续操作312,迭代定位特定介质偏移量。如果特定的数据偏移量被定位,操作318从定位的数据段中检索数据。进程在操作320结束。
图4示出了在本发明实施例的流程图,描述在顺序存储介质上存储会话数据的操作。操作400初始化存储进程。在操作402中,会话数据的数据流通过服务器(或用户),从数据源用户(或产生者)接收到缓存。数据源用户可以是任何应用程序或系统服务,它们在估计或不估计总会话数据初始长度的情况下,发送数据存储到顺序存取存储介质上。服务器代表一个进程或服务,将一个或多个数据源的数据汇集到缓存,并在介质上产生记录。
“会话”是指将一组数据记录到顺序存储介质上的完整进程。数据源在每个会话中产生一个或多个“写”操作。写操作产生的会话数据汇集在一个或多个缓存中,直到缓存溢出。“溢出”操作使缓存数据从缓存“溢出”,并记录到介质上。溢出操作可能由数据源用户或服务器自身产生(例如:自动溢出)。典型地,超时条件或其它事件作为服务器自动溢出的触发器,溢出数据由数据段边界定义。
在操作404中,会话数据被分配成数据段。在本发明一项实施例中,分配开始根据传统的数据段长度(如64KB),为预设排列间隔(如1KB)的倍数。但是,分配到最后一个数据段的会话数据,可能不会填满整个传统数据段的长度。这样,顺序中的最后一个数据段需要填充符。
操作406选择顺序中第一个数据段为当前数据段来操作。操作408估算当前数据段的数据区,确定按预设排列间隔排列的会话数据是否与标志匹配。应理解数据段首部长度也应该在估算中考虑。例如,如果数据段为40字节,预设排列间隔为1024字节,那么第一次估算为当前数据段的数据区中是986字节,下一个估算为其后1024字节的间隔,直到数据段结束。
如果按预设排列间隔检测到的会话数据与标志匹配,操作410会将进程转到操作412。如果没有检测到匹配,进程继续到操作414。操作412通过在匹配位置终止当前数据段,有效地将当前数据段分成两个数据段。数据段中的其余数据被分成新的数据段,分配为顺序中的下一个数据段。这一进程保证,不存在按预设排列间隔排列并与标志匹配会话数据。操作413向数据段中插入填充符,保证数据段以预设排列间隔结束,并以预设排列间隔开始下一个数据段的首部。操作416以首部数据结构输入当前数据段的首部信息。操作418将当前数据段,包括首部、数据区、和可选的校验和以及任何所需的填充区,记录到顺序存取存储介质上。
如果还有附加的数据段需要处理,操作422将进程转到操作426,它检索下一个数据段,进程在其余数据段中重复步骤。如果没有附加的数据段需要处理,操作424终止存储进程。最后一个数据段不必像前面的数据段一样,具有相同的长度,只需是预设排列间隔的几倍。这样,最后一个数据段的会话数据被记录在介质上,数据段(如果有的话,包括校验和域)被填充,按预设排列间隔排列在数据段的尾部。
图5A和图5B示出了本发明实施例的流程图,描述在顺序存取存储介质上按特定数据偏移量检索数据的操作。操作500初始化检索进程。操作502从用户接收的特定数据偏移量Od和所需要的长度Ld。检索进程的一个目的是定位介质偏移量Oi,到包含数据的在数据偏移量Od的数据段。
检索进程依靠存储在磁带中数据的各种已知的和预测的参数。参数可以存储在介质上(也就是在线参数)并且/或者存储在系统内。参数“A”代表段中大约的或平均的数据区长度。在本发明的实施例中,参数A代表由存储设备或操作系统所写入的,或写入介质中的统计平均数据段长度。在本发明的可选实施例中,参数A代表初始的缺省数据区长度,是特别根据传统数据区长度而定的。参数“H”代表固定长度首部的长度,在优选实施例中为40字节。参数“O0”代表介质上第一个数据段的开始介质偏移量。参数“P”代表每个数据段中大约的或平均的填充区长度,并且可以以参数A相似的方式初始定义。P合理的初始值是零。在优选实施例中,参数A和P在每次迭代后刷新,以提高估计的精度。参数m代表预设的排列间隔,在本发明的实施例中是1KB。
O0与Od之间的数据段编号可以被估计为N=(Od/A),其中“/”操作代表整除(也就是Od/A得到商的整数部分)。操作504确定初始介质偏移量的估计值O1,其中O1=O0+N*(A+H+P),其中A+H+P代表估计的数据段长度,“*”操作代表乘。如果数据段校验和包含在数据段中,校验和域的长度也应包含在估计数据段长度中。在操作506中,Ok被设为等于O1,操作508通过设置Ok=Ok-(Ok mod m),排列Ok到m边界(也就是预设排列间隔),其中“=”代表普通赋值操作。“mod”操作确定Ok被m除的余数。操作508设置Ok到预设排列间隔,等于或超前一个估计介质偏移量Ok
在操作510中,在操作508中确定的从Ok开始的顺序介质数据的一个窗口,被从顺序存储介质中检索到缓存内。在本发明一项实施例中,窗口长度(“window_length”)为100KB长,虽然其它窗口长度用在可选实施例中。操作512在预设边界间隔内顺序扫描缓存,直到以介质偏移量Ok定位标志,或超出窗口。如果标志没有被发现,操作514将进程转到操作526,操作526从介质Ok+window_length检索一个新的数据窗口到缓存中。这一循环重复,直到标志定位在操作514中。意外进程的存在是为了处理,第一个估计到达介质最后一个数据段的情况,在此情况下,根据操作514,首部永远不会在循环中找到。意外进程产生一个需要处理的错误,或再计算一个具有较小介质偏移量的第一估计,并继续到操作508。
定位一个标志后(从而第i数据段的首部),操作516检索第i数据段的数据偏移量Oi和长度Li。操作518通过使用条件Oi<=Od<Oi+Li,判断第i数据段是否包含特定数据偏移量Od。如果操作518的条件为真(也就是第i数据段包括特定数据偏移量Oi),进程通过连接符(A)继续到图5B的操作528,在操作528中,所需数据定位在等于Ok’+H+(Od-Oi)的介质偏移量,并且返回给用户。进程继续通过连接符(D)来结束进程。
如果操作518的条件为假,那么操作520通过使用条件Od<Oi,确定所需数据偏移量Od是否定位在第i数据段前(也就是在介质上数据段的较低编号)。如果是,进程继续通过连接符(B)到操作530,操作530使用第i数据段首部的数据,各自刷新参数A和P。在本发明一项实施例中,从第i数据段首部中的已知数据长度和填充符长度,与参数A和P各自平均。然后平均值适当分配给A和P。在本发明的可选实施例中,可以用其它刷新技术刷新参数A和P。
使用刷新的A和P的值,操作532以Ok=Ok’-((Oi-Od)/(A+H+P))*(A+H+P)确定新的介质偏移量估计,其中“/”操作代表整除。然后进程继续通过连接符(E)到操作508,在新的估计附近查找适当的数据段。在本发明的可选实施例中,前段数据长度域包括在首部中,中间操作插入到操作532前,估算与数据偏移量的值相联系的,首部中前段数据长度的值,以确定特定数据偏移量Od是否包含在前段数据段中。
如果操作520中的条件为假,操作522通过使用条件Od>=Oi+Li,确定所需数据段偏移量是否定位在第i数据段后。如果是这样,进程继续通过连接符(C)到操作534,刷新参数A和P。通过使用A和P的刷新值,操作536以Ok=Ok’+Li-((Od-Oi-Li)/(A+H+P))*(A+H+P)确定一个新的介质偏移量估计,其中“/”操作代表整除。然后进程通过连接符(E)到操作508,在新的估计附近查找合适的数据段。如果操作522为假,进程继续到操作524来结束进程,特别是提交一个错误条件,其中特定数据偏移量Od定位失效。
本发明各种实施例的逻辑操作以如下方式执行:(1)作为计算系统中运行的计算机执行步骤序列;和/或(2)作为计算机系统中相互连接的机器模块。指令序列根据计算机系统应用本发明的性能来选择。于是,在此描述的组成本发明实施例的逻辑操作,可以选择地涉及到操作、步骤或模块。
上述特点、例子和数据提供了一个完整的生产描述,使用了本发明的组成部分。由于本发明的很多实施例,可以不必从本发明的思想和领域分离出来而实现,本发明存在于后面附加的权利要求书中。

Claims (19)

1.一种个可被计算系统读取,和编码用于执行在顺序存取存储介质上存取会话数据的计算机处理的计算机程序的计算机程序存储介质,该计算机程序包括指令:
分配会话数据给多个可变长度数据段,每个可变长度数据段包括含有一个预设的标志字段的一个首部;
将每个首部按与顺序存取存储介质相关的预设排列间隔排列;
在顺序存取存储介质上记录每个可变长度数据段,使得与预设标志字段匹配的会话数据不按预设排列间隔排列;
接收包含该会话数据的记录数据部分的特定数据偏移量;
叠代估计一个或多个与数据段相联系的估计介质偏移量;
在顺序存取存储介质上对每个估计介质偏移量定位,确定定位在每个估计介质偏移量的数据段,是否包含该特定数据偏移量;
在顺序存取存储介质上定位包含该特定数据偏移量的数据段;并且
检索定位在数据段中特定数据偏移量的记录数据部分。
2.权利要求书1中的计算机程序存储介质,其中估计指令,包括根据特定数据偏移量和估计数据段长度,估算估计介质偏移量的指令。
3.一种在顺序存取存储介质上存储会话数据的方法,该方法包括:
分配会话数据给多个可变长度数据段,每个可变长度数据段包括含有一个预设标志字段的一个首部;
在顺序存取存储介质上按预设排列间隔排列每个首部;并且
记录每个可变长度数据段到顺序存取存储介质上,使得与预设标志字段匹配的会话数据不按预设排列间隔排列。
4.权利要求书3的方法,其中记录操作包括:
估算按预设排列间隔排列的会话数据部分,确定是否其中一部分与预设标志字段匹配;
如果其中一部分与预设标志字段匹配,在匹配位置将可变长度数据段分成为第一数据段和第二数据段;
以按预设排列间隔排列的第一首部记录第一数据段;并且
以按预设排列间隔排列的第二首部记录第二数据段。
5.一个具有存储在计算机可读取介质上的用来执行权利要求书3的操作的程序指令的计算机可执行的程序产品。
6.一种在包括一组可变长度数据段的顺序存取存储介质上按特定数据偏移量,检索记录数据的方法,该方法包括:
叠代估计一个或多个与数据段相联系的估计介质偏移量;
估算顺序存取存储介质上的每个估计介质偏移量,确定定位在每个估计介质偏移量的数据段是否包含特定数据偏移量;
在顺序存取存储介质上,定位包含指定数据偏移量的数据段;并且
在数据段中以特定数据偏移量检索记录数据。
7.权利要求书6的方法,其中的估计操作包括,根据特定数据偏移量和估计数据段长度,估算估计介质偏移量。
8.权利要求书6的方法,其中的估计操作包括:
确定第一介质偏移量;
根据特定数据偏移量和第一数据偏移量,估计第二介质偏移量;
以第二介质偏移量定位当前数据段的首部;并且
如果特定数据偏移量包含在当前数据段中,在当前数据段的特定数据偏移量中检索记录数据。
9.权利要求书8的方法,其中估计第二介质偏移量的操作包括:
根据特定数据偏移量和预设数据偏移量和当前数据段长度,确定特定数据偏移量,定位在当前数据段之前还是之后。
10.权利要求书8的方法还包括:
根据特定数据偏移量和第二介质偏移量估计第三介质偏移量。
11.权利要求书8的方法还包括:
根据与第二介质偏移量相联系的数据段首部信息,刷新估计的数据段长度,提供一个刷新的估计数据段长度;并且
根据特定数据段偏移量、第二介质偏移量、和修改的数据段长度,估计第三介质偏移量。
12.一个具有存储在计算机可读取介质上的用来执行权利要求书6的操作的程序指令的计算机可执行的程序产品。
13.一个存储会话数据到顺序存取存储介质上的系统,该系统包括:
接收会话数据的一个缓存;
一个分配模块,分配缓存中的会话数据到多个可变长度数据段,每个可变长度数据段包括一个含有预设标志字段的首部;
一个排列模块,按预设排列间隔排列每个首部到顺序存取存储介质上;和
一个记录模块,记录每个可变长度数据段到顺序存取存储介质上,使与预设标志字段匹配的会话数据,不以预设排列间隔排列。
14.权利要求书13的系统,其中记录模块设置成,如果数据段包含以预设排列间隔排列,并与预设标志字段匹配的会话数据,则将可变长度数据段分成第一数据段和第二数据段。
15.在包含一组可变长度数据段的顺序存取存储介质上,按特定数据偏移量检索记录数据的一个系统,该方法包括:
一个估计模块,用来叠代估计一个或多个与数据段相联系的估计介质偏移量;
一个读取头,根据提供的介质偏移量,设置为从顺序存取存储介质上读取数据;
一个估算模块,估算顺序存取存储介质上的每个介质偏移量,确定按每个估计介质偏移量定位的数据段,是否包括特定数据偏移量;
一个定位模块,将读取头定位在顺序存取存储介质的包含特定数据偏移量的数据段上;和
一个输入模块,接收从读取头读取的,以特定数据偏移量定位在数据段中的记录数据。
16.权利要求书15的系统还包括:
记录在顺序存取存储介质上的在线信息,包括一个平均数据段长度,其中估算模块使用平均数据段长度估计。
17.权利要求书16的系统,其中的在线信息根据估算模块估算的,每个数据段的首部信息,通过每个迭代估计刷新。
18.一个通过计算系统和编码用来执行将会话数据存储在顺序存取存储介质上的计算机处理的计算机程序,在载波上实现的计算机数据信号,该计算机程序包括指令:
分配会话数据给多个可变长度数据段,每个可变长度数据段包含一个具有预设标志字段的首部;并且
在顺序存取存储介质上记录按预设排列间隔排列的每个可变长度数据段,使与预设标志字段匹配的会话数据,不按预设排列间隔排列。
19.一个通过计算系统和编码用来执行,在包含多个可变长度数据段的顺序存取存储介质上,按特定数据偏移量检索记录数据计算机数据信号的计算机程序,在载波上实现的计算机数据信号,该计算机程序包括指令:
迭代估计一个或多个与数据段相联系的估计介质偏移量;
估算顺序存取存储介质上的每个估计介质偏移量,确定定位在每个估计介质偏移量的数据段,是否包含特定数据偏移量;并且
检索数据段中定位在特定数据偏移量的记录数据。
CNB001286234A 1999-08-20 2000-08-18 在顺序存取存储介质上存取可变长度数据的方法和装置 Expired - Fee Related CN1210712C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/378,054 US6343341B1 (en) 1999-08-20 1999-08-20 Efficient access to variable-length data on a sequential access storage medium
US09/378,054 1999-08-20

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CNB2004100642156A Division CN100458746C (zh) 1999-08-20 2000-08-18 对顺序存取存储介质上变长度数据的有效存取

Publications (2)

Publication Number Publication Date
CN1294387A true CN1294387A (zh) 2001-05-09
CN1210712C CN1210712C (zh) 2005-07-13

Family

ID=23491546

Family Applications (2)

Application Number Title Priority Date Filing Date
CNB2004100642156A Expired - Fee Related CN100458746C (zh) 1999-08-20 2000-08-18 对顺序存取存储介质上变长度数据的有效存取
CNB001286234A Expired - Fee Related CN1210712C (zh) 1999-08-20 2000-08-18 在顺序存取存储介质上存取可变长度数据的方法和装置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CNB2004100642156A Expired - Fee Related CN100458746C (zh) 1999-08-20 2000-08-18 对顺序存取存储介质上变长度数据的有效存取

Country Status (2)

Country Link
US (1) US6343341B1 (zh)
CN (2) CN100458746C (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100337219C (zh) * 2004-12-10 2007-09-12 国际商业机器公司 在逻辑层、物理层和存储设备之间传输数据
CN100463057C (zh) * 2006-08-03 2009-02-18 建兴电子科技股份有限公司 具水平排列磁场产生装置与线圈装置的光学读写头致动器
CN101278345B (zh) * 2005-09-30 2010-09-29 松下电器产业株式会社 光学头装置
CN1937045B (zh) * 2005-09-23 2010-10-06 马维尔国际贸易有限公司 用于光学驱动器的自动写策略校准系统
CN101084541B (zh) * 2004-12-20 2011-02-02 皇家飞利浦电子股份有限公司 减小光记录载体读取器误差信号中径竖串扰的系统及方法
CN101467148B (zh) * 2006-04-11 2012-10-10 Emc公司 利用了数据段的相似度的高效数据存储
US9348797B2 (en) 2006-04-11 2016-05-24 Emc Corporation Efficient computation of sketches
CN106024022A (zh) * 2015-03-31 2016-10-12 国际商业机器公司 用于确定磁记录带的估算的位置信息的方法、设备和系统
CN107132993A (zh) * 2016-02-26 2017-09-05 高德软件有限公司 一种将数据写入内存的方法及装置
CN107203478A (zh) * 2017-06-21 2017-09-26 郑州云海信息技术有限公司 一种数据存储的方法及装置

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2244626A1 (en) * 1998-07-31 2000-01-31 Kom Inc. A hardware and software system
JP3613102B2 (ja) * 1999-12-14 2005-01-26 日本電気株式会社 フレーム構成方法、フレーム構成装置およびフレーム構成転送システム
US6898679B2 (en) 2001-09-28 2005-05-24 Intel Corporation Method and apparatus for reordering memory requests for page coherency
US6904492B2 (en) * 2001-12-19 2005-06-07 Hewlett-Packard Development Company, L.P. Write-once memory device including non-volatile memory for temporary storage
US7457954B2 (en) * 2003-06-18 2008-11-25 Denso Corporation Communications system and packet structure
US7689633B1 (en) * 2004-09-15 2010-03-30 Data Domain, Inc. Network file system-based data storage system
US7512044B2 (en) * 2005-02-15 2009-03-31 International Business Machines Corporation System and method for enabling efficient small writes to WORM storage
WO2007032649A1 (en) 2005-09-15 2007-03-22 Samsung Electronics Co., Ltd. Method and apparatus for transmitting and receiving status report comprising received status of packet data in a mobile communication system
JP5382383B2 (ja) * 2011-03-24 2014-01-08 日本電気株式会社 データベース処理装置、データベース処理方法、プログラム及びデータベースのデータ構造
US10275154B2 (en) 2014-11-05 2019-04-30 Oracle International Corporation Building memory layouts in software programs
US10353793B2 (en) 2014-11-05 2019-07-16 Oracle International Corporation Identifying improvements to memory usage of software programs
US9910591B2 (en) * 2014-11-05 2018-03-06 Oracle International Corporation Visualizations of memory layouts in software programs
CN109144889B (zh) * 2018-06-25 2022-11-25 中国科学院声学研究所 基于fpga的超声检测数据存储模块及fpga电路

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5265206A (en) * 1990-10-23 1993-11-23 International Business Machines Corporation System and method for implementing a messenger and object manager in an object oriented programming environment
AU683038B2 (en) * 1993-08-10 1997-10-30 Addison M. Fischer A method for operating computers and for processing information among computers
US5956729A (en) * 1996-09-06 1999-09-21 Motorola, Inc. Multimedia file, supporting multiple instances of media types, and method for forming same
US6078934A (en) * 1997-07-09 2000-06-20 International Business Machines Corporation Management of a document database for page retrieval
US6092089A (en) * 1997-07-09 2000-07-18 International Business Machines Corp. Augmenting comment field of postscript files to enable document management
US6012096A (en) * 1998-04-23 2000-01-04 Microsoft Corporation Method and system for peer-to-peer network latency measurement

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100337219C (zh) * 2004-12-10 2007-09-12 国际商业机器公司 在逻辑层、物理层和存储设备之间传输数据
CN101084541B (zh) * 2004-12-20 2011-02-02 皇家飞利浦电子股份有限公司 减小光记录载体读取器误差信号中径竖串扰的系统及方法
CN1937045B (zh) * 2005-09-23 2010-10-06 马维尔国际贸易有限公司 用于光学驱动器的自动写策略校准系统
CN101278345B (zh) * 2005-09-30 2010-09-29 松下电器产业株式会社 光学头装置
CN102999543A (zh) * 2006-04-11 2013-03-27 Emc公司 利用了数据段的相似度的高效数据存储
CN101467148B (zh) * 2006-04-11 2012-10-10 Emc公司 利用了数据段的相似度的高效数据存储
CN102999543B (zh) * 2006-04-11 2016-02-10 Emc公司 利用了数据段的相似度的高效数据存储
US9348797B2 (en) 2006-04-11 2016-05-24 Emc Corporation Efficient computation of sketches
CN100463057C (zh) * 2006-08-03 2009-02-18 建兴电子科技股份有限公司 具水平排列磁场产生装置与线圈装置的光学读写头致动器
CN106024022A (zh) * 2015-03-31 2016-10-12 国际商业机器公司 用于确定磁记录带的估算的位置信息的方法、设备和系统
CN106024022B (zh) * 2015-03-31 2019-01-15 国际商业机器公司 用于确定磁记录带的估算的位置信息的方法、设备和系统
CN107132993A (zh) * 2016-02-26 2017-09-05 高德软件有限公司 一种将数据写入内存的方法及装置
CN107132993B (zh) * 2016-02-26 2021-02-02 阿里巴巴(中国)有限公司 一种将数据写入内存的方法及装置
CN107203478A (zh) * 2017-06-21 2017-09-26 郑州云海信息技术有限公司 一种数据存储的方法及装置

Also Published As

Publication number Publication date
CN100458746C (zh) 2009-02-04
US6343341B1 (en) 2002-01-29
CN1210712C (zh) 2005-07-13
CN1571061A (zh) 2005-01-26

Similar Documents

Publication Publication Date Title
CN1210712C (zh) 在顺序存取存储介质上存取可变长度数据的方法和装置
US6513050B1 (en) Method of producing a checkpoint which describes a box file and a method of generating a difference file defining differences between an updated file and a base file
US9684462B2 (en) Method and apparatus utilizing non-uniform hash functions for placing records in non-uniform access memory
US20190294552A1 (en) Considering a frequency of access to groups of tracks and density of the groups to select groups of tracks to destage
US8429134B2 (en) Distributed database recovery
US6490666B1 (en) Buffering data in a hierarchical data storage environment
US8327061B2 (en) Reducing occupancy of digital storage devices
US6807607B1 (en) Cache memory management system and method
US8032732B2 (en) System and method for generating a cache-aware bloom filter
US20110153976A1 (en) Methods and apparatuses to allocate file storage via tree representations of a bitmap
US7725646B2 (en) Method of using a flash memory for a circular buffer
JP2010541107A (ja) ソリッドステートドライブオプティマイザ
US20090037495A1 (en) Method and system for state maintenance of a large object
US11204813B2 (en) System and method for multidimensional search with a resource pool in a computing environment
US6874062B1 (en) System and method for utilizing a hierarchical bitmap structure for locating a set of contiguous ordered search items having a common attribute
CN102349055A (zh) 对存储在存储器上的文件的访问时间最优化
US10387340B1 (en) Managing a nonvolatile medium based on read latencies
US7752206B2 (en) Method and data processing system for managing a mass storage system
EP1242875A1 (en) System and method for unrolling loops in a trace cache
US20200133870A1 (en) Method, device and computer program product for cache management
US10606501B2 (en) Management of paging in compressed storage
US7360043B1 (en) Method and apparatus for efficiently determining rank in an LRU list
EP3555774B1 (en) Efficient database management system utilizing silo and manifest
US7289998B2 (en) Method to update a data structure disposed in an embedded device
US20190324921A1 (en) Optimizing cache performance with probabilistic model

Legal Events

Date Code Title Description
BB1A Publication of application
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150430

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150430

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20050713

Termination date: 20190818