CN1210712C - 在顺序存取存储介质上存取可变长度数据的方法和装置 - Google Patents

在顺序存取存储介质上存取可变长度数据的方法和装置 Download PDF

Info

Publication number
CN1210712C
CN1210712C CNB001286234A CN00128623A CN1210712C CN 1210712 C CN1210712 C CN 1210712C CN B001286234 A CNB001286234 A CN B001286234A CN 00128623 A CN00128623 A CN 00128623A CN 1210712 C CN1210712 C CN 1210712C
Authority
CN
China
Prior art keywords
data
data segment
segment
section
session
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
Application number
CNB001286234A
Other languages
English (en)
Other versions
CN1294387A (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

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

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

Description

在顺序存取存储介质上存取可变长度数据的方法和装置
技术领域
一般地,本发明是关于顺序存取存储介质的,特别是关于在顺序存取存储介质上,存取可变长度数据段。
背景技术
顺序存取存储介质,如磁带和WORM(一次写入、多次读取)光盘,典型地用于存储大量数据。相对于其它存储方法的选择,如磁盘、磁盘阵列或随机存取存储器(RAM),顺序存取存储介质提供了一种低成本存储的选择。但是,顺序存取存储介质的缺点是,对介质上特定位置的定位过程相对慢。对磁带来说,这种定位一般包括介质的机械前绕和/或后绕以便在磁带上定位于所需数据的适当位置。这样,对磁带上特定数据偏移量的定位,会导致顺序存取存储介质上,检索记录数据的整个进程产生大量的操作。
将大量的数据流写到顺序存取存储介质时,最好将数据流分成较小的数据段,因为有几个原因:第一,数据分段分配提高了错误恢复性。一个数据段含有一个首部和错误恢复参数,如校验和参数。如果一个很大的数据流包含一个数据段,在该数据段被确认前,整个数据流必须被读取。整个一个数据段的数据流还可能因为一个较小的错误而不可恢复。因此,如果数据流被分配成多个较小的数据段,单一数据段中的错误不会使整个数据流不可恢复。
第二,最好使用较小的数据段,是因为数据段可以作为界线,以适应系统缓存的数据自动清空。一般地,在数据被实际存储到顺序存取存储介质前,应用程序将一块会话数据“写”到系统缓存。一些系统使用数据段界线来定义数据,使系统自动将缓存的数据清空,并记录到介质上。这里,“会话”是指一组数据记录到顺序存取介质上的完整进程。
第三,最好使用较小的数据段,因为当“写”操作被初始化时,对应用程序来说,整个数据流的长度未知,这样就不能在数据段首部中存储数据段长度了。可选地,如果数据流被分成多个数据段,甚至当整个数据流的长度还未知时,应用程序也可以指定数据段的长度。
一项减少在顺序存取存储介质上定位的操作耗费的技术,是使用固定长度数据段。即记录在顺序存取存储介质上的数据,被分配成存储在介质上的固定长度数据段。每个数据段典型地含有一个固定长度首部,连接在每个数据段的开始部分,例如,数据段索引,用来指定数据段内的数据开始部分、段内的数据长度和填充符的量。如果记录在段内的数据比整个固定长度数据段短,段内剩余部分被填充(也就是,后续会话数据被记录在下一个数据段,而不是当前数据段的其余部分)。
应理解:介质偏移量代表沿介质方向的顺序偏移量,包括首部、数据、校验和、和填充符;而数据偏移量只代表数据的顺序偏移量,不包括首部、数据、校验和、和填充符。为了定位特定的数据偏移量Od,程序(例如,操作系统,应用程序,系统驱动,或嵌入程序)使用简单的确定算术方法,计算出对于包含特定数据偏移量Od的数据段的介质偏移量。固定长度数据段的一个缺点是,数据段倾向于固定在大的值上(例如64KB(千字节)),这样,需要大量填充符,通过在介质上引入必要的浪费空间,减小了存储效率。
为减少固定长度数据段引入的浪费空间,现有的一种途径使用可变长度数据段以减少固定长度数据段方法中过多的填充符。可变长度数据段意味着,数据段不必遵从预设固定长度,甚至在一些或多数数据段都具有相同长度时也是如此。但是,在固定长度数据段的方法中使用的简单确定位置的方法,在可变长度数据段中不起作用。因而,可变长度数据段方法包括,使每个读取头沿介质方向移动,将读取头按一个特定数据偏移量定位。沿介质上的每个首部的数据偏移量,和数据长度信息被顺序估算,直到到达包含特定数据偏移量Od的数据段。这一移动机制是费时的,特别是特定数据偏移量位于介质的尾部时更是如此。
发明内容
根据本发明,上述的和其它问题,通过将可变长度数据段结合到顺序存取存储介质上解决,而不需要在顺序存取存储介质顺序移动读取头。
本发明提供一种在顺序存取存储介质上存取会话数据的方法,包括:分配会话数据给多个可变长度数据段,每个可变长度数据段包括含有一个预设的标志字段的一个首部;将每个首部按与顺序存取存储介质相关的预设排列间隔排列;在顺序存取存储介质上记录每个可变长度数据段,不使与预设标志字段匹配的会话数据按预设排列间隔排列;接收包含该会话数据的记录数据部分的特定数据偏移量;迭代估计一个或多个与数据段相联系的估计介质偏移量;在顺序存取存储介质上对每个估计介质偏移量定位,确定定位在每个估计介质偏移量的数据段,是否包含该特定数据偏移量;在顺序存取存储介质上定位包含该特定数据偏移量的数据段;并且检索定位在数据段中特定数据偏移量的记录数据部分。
本发明提供一种在顺序存取存储介质上存储会话数据的方法,包括:a)接收会话数据的数据流到缓存;b)将所述会话数据的数据流分成可变长度数据段,每个可变长度数据段包括含有一个预设标志字段的一个首部;c)选择第一数据段为当前数据段;d)以预设排列间隔估算当前数据段;e)确定会话数据是否按间隔与找到的标志匹配,如果不匹配,则确定当前数据段的首部信息,而如果匹配,在匹配位置结束当前数据段,将数据段剩余部分分配为下一个数据段;加填充符,将数据段在排列间隔结束;确定当前数据段的首部信息;f)将当前数据段的首部信息输入到当前数据段的首部数据结构中;g)利用排列到下一个可用的预设排列间隔的数据段的首部将当前数据段记载到所述存储介质上;h)确定会话数据是否结束,如果结束,停止在所述存储介质上的存储;如果未结束,将下一个数据段作为当前数据段,重复步骤e)到步骤h),直到确定会话数据结束,停止在所述存储介质上的存储。
本发明提供一种将会话数据存储到顺序存取存储介质上的系统,包括:接收会话数据的数据流的缓存;将所述会话数据的数据流分成可变长度数据段的装置,每个可变长度数据段包括含有一个预设标志字段的一个首部;选择第一数据段为当前数据段的装置;以预设排列间隔估算当前数据段的装置;确定会话数据是否按间隔与找到的标志匹配,如果不匹配,则确定当前数据段的首部信息,而如果匹配,在匹配位置结束当前数据段,将数据段剩余部分分配为下一个数据段;加填充符,将数据段在排列间隔结束;确定当前数据段的首部信息的装置;将当前数据段的首部信息输入到当前数据段的首部数据结构中的装置;利用排列到下一个可用的预设排列间隔的数据段的首部将当前数据段记载到所述存储介质上的装置;确定会话数据是否结束,如果结束,停止在所述存储介质上的存储;如果未结束,将下一个数据段作为当前数据段,重复步骤e)到步骤h),直到确定会话数据结束,停止在所述存储介质上的存储的装置。
提供在顺序存取存储介质上,存取具有可变长度数据段数据的方法和程序产品。每个可变长度数据段包括一个具有预设标志字段的首部。
在顺序存取存储介质上存储数据时,数据段按预设排列间隔排列。数据段被记录在顺序存取存储介质上,不使得与预设标志字段匹配的会话数据按预设排列间隔排列。
从特定数据偏移量检索会话数据时,一个或多个估计介质偏移量被迭代估计以便在顺序存取存储介质上定位特定数据偏移量,每次估计从介质的上次估计向前或向后移动。定位在估计介质偏移量的每个数据段被估算以便确定它是否包含特定数据偏移量。当特定数据偏移量被找到,读写头定位在相应数据段并且记录在相应数据段中的所需数据被检索到。
还提供在顺序存取存储介质上存取会话数据的系统。将会话数据存储到顺序存储介质上时,缓存接收并存储会话数据。分配模块在缓存中可变长度数据段分配会话数据。每个可变长度数据段,包括一个含有预设标志字段的首部。排列模块按预设排列间隔,将每个首部排列在顺序存取存储介质上。记录模块将每个可变长数据段记录到顺序存取存储介质上,从而不使与预设标志字段匹配的会话数据按预设排列间隔排列。
在含有可变长度数据段的顺序存取存储介质上,从特定数据偏移量检索记录数据时,估算模块迭代估计一个或多个与数据段相联系的数据偏移量。读取头被设定,从顺序存取存储介质上,根据给出的介质偏移量读取数据。估算模块估算顺序存取存储介质上的估计介质偏移量,确定定位在每个估计介质偏移量的数据段,是否包含特定的数据偏移量。定位模块将读取头定位在顺序存取存储介质,包含特定数据偏移量的数据段上。输入模块从读取头输入,定位在特定数据偏移量数据段上的记录数据。
附图说明
图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/2 WARP,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 (6)

1.一种在顺序存取存储介质上存取会话数据的方法,所述方法包括:
分配会话数据给多个可变长度数据段,每个可变长度数据段包括含有一个预设的标志字段的一个首部;
将每个首部按与顺序存取存储介质相关的预设排列间隔排列;
在顺序存取存储介质上记录每个可变长度数据段,不使得与预设标志字段匹配的会话数据按预设排列间隔排列;
接收包含该会话数据的记录数据部分的特定数据偏移量;
迭代估计一个或多个与数据段相联系的估计介质偏移量;
在顺序存取存储介质上对每个估计介质偏移量定位,确定定位在每个估计介质偏移量的数据段,是否包含该特定数据偏移量;
在顺序存取存储介质上定位包含该特定数据偏移量的数据段;并且
检索定位在数据段中特定数据偏移量的记录数据部分。
2.权利要求书1中的方法,其中所述迭代估计步骤包括根据特定数据偏移量和已估计的数据段长度,估算已估计的介质偏移量。
3.一种在顺序存取存储介质上存储会话数据的方法,该方法包括:
a)接收会话数据的数据流到缓存;
b)将所述会话数据的数据流分成可变长度数据段,每个可变长度数据段包括含有一个预设标志字段的一个首部;
c)选择第一数据段为当前数据段;
d)以预设排列间隔估算当前数据段;
e)确定会话数据是否按间隔与找到的标志匹配,如果不匹配,则确定当前数据段的首部信息,而如果匹配,在匹配位置结束当前数据段,将数据段剩余部分分配为下一个数据段;加填充符,将数据段在排列间隔结束;确定当前数据段的首部信息;
f)将当前数据段的首部信息输入到当前数据段的首部数据结构中;
g)利用排列到下一个可用的预设排列间隔的数据段的首部将当前数据段记载到所述存储介质上;
h)确定会话数据是否结束,如果结束,停止在所述存储介质上的存储;如果未结束,将下一个数据段作为当前数据段,重复步骤e)到步骤h),直到确定会话数据结束,停止在所述存储介质上的存储。
4.权利要求书3的方法,其中所述方法还包括:
确定按预设排列间隔排列的会话数据部分是否与预设标志字段匹配;
如果其中一部分与预设标志字段匹配,在匹配位置将可变长度数据段分成为第一数据段和第二数据段;
以按预设排列间隔排列的第一首部记录第一数据段;并且
以按预设排列间隔排列的第二首部记录第二数据段。
5.一种将会话数据存储到顺序存取存储介质上的系统,该系统包括:
接收会话数据的数据流的缓存;
将所述会话数据的数据流分成可变长度数据段的装置,每个可变长度数据段包括含有一个预设标志字段的一个首部;
选择第一数据段为当前数据段的装置;
以预设排列间隔估算当前数据段的装置;
确定会话数据是否按间隔与找到的标志匹配,如果不匹配,则确定当前数据段的首部信息,而如果匹配,在匹配位置结束当前数据段,将数据段剩余部分分配为下一个数据段;加填充符,将数据段在排列间隔结束;确定当前数据段的首部信息的装置;
将当前数据段的首部信息输入到当前数据段的首部数据结构中的装置;
利用排列到下一个可用的预设排列间隔的数据段的首部将当前数据段记载到所述存储介质上的装置;
确定会话数据是否结束,如果结束,停止在所述存储介质上的存储;如果未结束,将下一个数据段作为当前数据段,重复步骤e)到步骤h),直到确定会话数据结束,停止在所述存储介质上的存储的装置。
6.权利要求书5的系统,其中所述的将所述会话数据的数据流分成可变长度数据段的装置设置成,如果数据段包含以预设排列间隔排列,并与预设标志字段匹配的会话数据,则将可变长度数据段分成第一数据段和第二数据段。
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 1999-08-20
US09/378,054 US6343341B1 (en) 1999-08-20 1999-08-20 Efficient access to variable-length data on a sequential access storage medium

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 CN1294387A (zh) 2001-05-09
CN1210712C true CN1210712C (zh) 2005-07-13

Family

ID=23491546

Family Applications (2)

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

Family Applications After (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) CN1210712C (zh)

Families Citing this family (23)

* 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
US7512135B2 (en) * 2004-12-10 2009-03-31 International Business Machines Corporation Method for transferring data among a logical layer, physical layer, and storage device
US8085629B2 (en) * 2004-12-20 2011-12-27 Koninklijke Philips Electronics N.V. Optical focus error offset to reduce radial to vertical crosstalk
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
TWI395210B (zh) * 2005-09-23 2013-05-01 Marvell World Trade Ltd 寫入策略校準系統以及包括該系統之光學媒體重播裝置
CN101278345B (zh) * 2005-09-30 2010-09-29 松下电器产业株式会社 光学头装置
US7562186B2 (en) * 2006-04-11 2009-07-14 Data Domain, Inc. Efficient data storage using resemblance of data segments
US7844652B2 (en) 2006-04-11 2010-11-30 Emc Corporation Efficient computation of sketches
CN100463057C (zh) * 2006-08-03 2009-02-18 建兴电子科技股份有限公司 具水平排列磁场产生装置与线圈装置的光学读写头致动器
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
US9910591B2 (en) * 2014-11-05 2018-03-06 Oracle International Corporation Visualizations of memory layouts in software programs
US10353793B2 (en) 2014-11-05 2019-07-16 Oracle International Corporation Identifying improvements to memory usage of software programs
US9183874B1 (en) * 2015-03-31 2015-11-10 International Business Machines Corporation Determining estimated position information of a magnetic recording tape using media thickness estimation
CN107132993B (zh) * 2016-02-26 2021-02-02 阿里巴巴(中国)有限公司 一种将数据写入内存的方法及装置
CN107203478B (zh) * 2017-06-21 2020-07-24 苏州浪潮智能科技有限公司 一种数据存储的方法及装置
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
US6092089A (en) * 1997-07-09 2000-07-18 International Business Machines Corp. Augmenting comment field of postscript files to enable document management
US6078934A (en) * 1997-07-09 2000-06-20 International Business Machines Corporation Management of a document database for page retrieval
US6012096A (en) * 1998-04-23 2000-01-04 Microsoft Corporation Method and system for peer-to-peer network latency measurement

Also Published As

Publication number Publication date
CN1571061A (zh) 2005-01-26
CN1294387A (zh) 2001-05-09
US6343341B1 (en) 2002-01-29
CN100458746C (zh) 2009-02-04

Similar Documents

Publication Publication Date Title
CN1210712C (zh) 在顺序存取存储介质上存取可变长度数据的方法和装置
US9684462B2 (en) Method and apparatus utilizing non-uniform hash functions for placing records in non-uniform access memory
US9052826B2 (en) Selecting storage locations for storing data based on storage location attributes and data usage statistics
US8429134B2 (en) Distributed database recovery
US6947956B2 (en) Method and apparatus for selective caching of transactions in a computer system
US7634496B1 (en) Techniques for managing state changes of a data storage system utilizing the object oriented paradigm
JP2010541107A (ja) ソリッドステートドライブオプティマイザ
US11204813B2 (en) System and method for multidimensional search with a resource pool in a computing environment
US10817383B2 (en) Method, apparatus and computer program product for managing data backup
US20090037495A1 (en) Method and system for state maintenance of a large object
US6874062B1 (en) System and method for utilizing a hierarchical bitmap structure for locating a set of contiguous ordered search items having a common attribute
US20150242315A1 (en) Methd and apparatus for content derived data placement in memory
US11210228B2 (en) Method, device and computer program product for cache management
US7320061B2 (en) Storage optimization for VARRAY columns
US7512135B2 (en) Method for transferring data among a logical layer, physical layer, and storage device
US8185701B2 (en) System and method for an adaptive list prefetch
US7752206B2 (en) Method and data processing system for managing a mass storage system
US10606501B2 (en) Management of paging in compressed storage
CN111104347B (zh) 堆内存块查找方法、装置、设备及存储介质
US10949359B2 (en) Optimizing cache performance with probabilistic model
KR20140041408A (ko) 저장 위치 속성 및 데이터 사용량 통계에 기초하여 데이터 저장을 위한 저장 위치 선택
US7289998B2 (en) Method to update a data structure disposed in an embedded device
US6434089B1 (en) Method for storing data to optical disks using interleaving and sequential modes
US10671533B2 (en) Fast cache demotions in storage controllers with metadata
CN117251388A (zh) 基于缓存的数据处理方法及装置、存储介质及电子设备

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

Granted publication date: 20050713

Termination date: 20190818

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