US5845316A - Scheduling random I/O for data storage tape - Google Patents
Scheduling random I/O for data storage tape Download PDFInfo
- Publication number
- US5845316A US5845316A US08/652,880 US65288096A US5845316A US 5845316 A US5845316 A US 5845316A US 65288096 A US65288096 A US 65288096A US 5845316 A US5845316 A US 5845316A
- Authority
- US
- United States
- Prior art keywords
- sub
- tape
- read
- data
- 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.)
- Expired - Lifetime
Links
Images
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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0682—Tape device
-
- 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
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/12—Formatting, e.g. arrangement of data block or words on the record carriers
- G11B20/1201—Formatting, e.g. arrangement of data block or words on the record carriers on tapes
- G11B20/1202—Formatting, e.g. arrangement of data block or words on the record carriers on tapes with longitudinal tracks only
Definitions
- the invention re-arranges a list of data blocks into a specific order, to reduce the time required to read the data blocks from a data tape.
- One type can store about 20 Giga-Bytes (GB) of data.
- GB Giga-Bytes
- One byte corresponds to eight bits
- one GB corresponds to one billion bytes.
- the high level command set in general, does not contain commands which directly attain an optimal ordering.
- a list of read requests for a serpentine data tape is rearranged into a different order, which requires less total time to execute.
- the rearranged order is attained through computation of travel times between pairs of read requests, and selection of an order having a reduced total of travel times.
- FIG. 1 illustrates arrangement of data into sections in a serpentine data tape. Each section contains about 704 segments of data, containing 32 Kilo-bytes of data each.
- FIG. 2 is a plot of times required to locate different segments on a serpentine data tape, starting from the beginning of the tape.
- FIG. 3 is an enlargement of part of FIG. 2.
- FIG. 4 is an enlargement of the region surrounding point PA in FIG. 2.
- FIGS. 5A, 5B, 5BB, 5C, 5CC, 5D, 5DD, 5E, 5EE, 5F, 5FF, 5G, and 5GG indicate several types of movements executed in moving a read ⁇ write head from a starting segment to a target segment in a serpentine data tape.
- FIG. 6 is a directed graph, illustrating one algorithm for scheduling read-requests in a serpentine data tape.
- FIG. 6A provides an example of the "Weave” algorithm described herein.
- FIGS. 7 and 8 illustrate steps undertaken in the "Loss” algorithm, described herein.
- FIGS. 9 and 10 illustrate results of simulations of the invention.
- FIGS. 11A-11D is a table of data illustrating results of simulations of the invention.
- FIG. 12 illustrates behavior of the invention.
- FIG. 13 illustrates one form of the invention.
- the data in a serpentine tape is divided into tracks, which have been found to be divided into sections, which are themselves divided into segments.
- the invention undertakes the following steps in scheduling accesses to the tape.
- a plot is derived, such as that shown in FIG. 2, which indicates the logical addresses of sections of data on the tape. This plot indicates the length of time required to reach each segment contained within the sections. Each time is measured from the beginning of the tape.
- the model allows computation of the time required to reach any segment, starting from any other segment (as opposed to starting from the beginning of the tape, as in FIG. 2).
- a list of data segments to be read is obtained from a human operator, or other source.
- step 4 Using the model of step 2, the invention arranges the data segments into a sequence. In general, reading the segments in the sequence takes less time than reading the segments in the order given in the list of step 3.
- a tape 3 contains sections of data arranged in tracks, labeled TRACK 0, TRACK 1, and so on.
- the tape 3 contains 64 parallel tracks, 0 through 63, as indicated.
- swipe refers to the fact that the path of the read/write head (not shown), with respect to the tape, is serpentine in nature, as indicated by arrows 6A-6D. That is, for example, if the head reads both TRACKs 0 and 1 completely and sequentially, the head moves from left-to-right along TRACK 0, and then, at the end of TRACK 0, at the right side of the Figure, switches to TRACK 1, as indicated by arrow 6A, and then moves in the opposite direction, from right-to-left, in reading TRACK 1.
- Each TRACK contains 14 sections. Each section contains approximately 704 segments. Each segment contains 32 Kilo-Bytes (KB). The entire tape contains about 625,000 segments: 20 GB total bytes per tape divided by 32 KB per segment corresponds to 20 ⁇ 10 9 /32 ⁇ 10 3 , which equals 625,000 segments.
- FIG. 2 illustrates information used by the invention.
- FIG. 2 is a plot of times required to reach various segments, when starting at the beginning of the tape.
- point PA indicates the time (about 150 seconds) required to reach segment 9761, when starting at the beginning of the tape.
- point PB indicates the time (about 27 seconds) required to reach segment 19,491, when starting at the beginning of the tape.
- FIG. 2 Two particular features of FIG. 2 are significant in the present context, and are indicated in FIG. 3.
- the features are the peaks 12 and dips 15, both of which will collectively be termed "key points" herein. It has been found that each section runs from a dip 15 to the succeeding peak 12, as indicated in the upper left side of the Figure. In addition, it has been found that a single segment runs from each peak to the succeeding dip, as also indicated at the upper left of the Figure. This latter segment is considered to be included within the section, not labeled, which follows the section shown, labeled 16.
- TRACK 0 is indicated at the left side, and contains 14 sections, beginning with two sections residing between dip Do and peak Pi, which are separated by a point PZ, whose location is indicated on the plot, but which is not actually detected by the methodology used to generate the plot. (That is, when locating points P1, P2, etc., by running from the beginning of the tape, point PZ does not appear. Other approaches are required to locate PZ, as by bisecting the region from D0 to P1. In fact, one definition of PZ relies on such bisection. Further, a point PZ exists in every track, midway between the start of the track and the first peak shown in FIG. 2. For example, a point PZ resides between D13 and P14, and also between D26 and P27.) The 14 sections end with the section residing between dip D12 and peak P13, consistent with FIG. 1.
- TRACK 1 contains 14 sections, beginning with the two sections (separated by a PZ) residing between dip D13 and peak P14, and ending with that residing between dip D25 and peak P26, again consistent with FIG. 1.
- the dotted line in FIG. 2 represents rewind times required to reach the beginning of the tape, starting with the respective segments.
- the invention obtains a plot of the type shown in FIG. 2 for each tape to be used. That is, every tape requires its own plot: the plots are not interchangeable between different tapes. A simplistic approach to obtaining the plot would be to
- FIG. 2 indicates that the average time to rewind the tape to its beginning (required in step 3) is about 70 seconds. To rewind the tape for each of 625,000 segments will require over 12,000 hours.
- Another approach is to locate the key points in FIG. 2, which bracket the sections, rather than to locate the segments within the sections.
- One justification for this approach is the observation that the time required to travel from the beginning of a section to a segment within the section is almost linearly proportional to the distance of the segment from the beginning of the section.
- the key points unlike individual segments, are not directly addressable using the high-level command language. Only segments are addressable.
- each section contains approximately 704 segments. This is an average number. It cannot be assumed that each section begins exactly at N ⁇ 704, wherein N is an integer. Attempting to locate a section based on such an assumption can result in serious errors. For example, if all sections contained 704 segments, except one, which contained 705 segments, then applying the assumption will, for example, locate the end of a segment at point PX in FIG. 3, rather than at PY. The time-difference between the two points is about 25 seconds.
- the invention implements a "dip-bracketing algorithm.”
- the operation of the algorithm will be explained with reference to FIG. 4, which represents empirical data obtained from a tape.
- the dip is flanked by two regions, A and B. These regions do not overlap in time, as line L indicates. Region A, or "left interval,” is higher (in time units) than region B, or "right interval.”
- the measured data will not necessarily produce the clean plot of FIG. 4.
- point P may exist.
- Such points are termed "outliers," and are ignored by the algorithm, as step 4, below, indicates.
- An outlier can result, for example, from a glitch which prevents the controller from reading a segment. The controller may then rewind the tape and try again, causing the total time for locating the segment to be significantly larger than normal.
- the algorithm performs the following steps:
- Searches for a segment such as S1, by issuing a command to locate a specific segment, such as 704, 2 ⁇ 704, 3 ⁇ 704, etc., depending upon the section being processed.
- the invention measures the time required to arrive at the segment. The measured time indicates whether the segment lies in the left- or right interval in FIG. 4. If an outlier is found, it is ignored and the search is repeated.
- step 2 Searches for a segment S2 having a locate time in the other interval, again, ignoring outliers. For example, if the search of step 1 found a point in the right interval, by issuing a locate command to locate segment 704, then, in step 2, a locate command for a lower-numbered segment is issued, such as 702 or 703. Again, the time required to reach the segment is measured.
- the dip D in FIG. 4 is located.
- the algorithm finds all dips D in FIG. 2.
- locating all dips can take a significant amount of time. For 896 key points on a tape (64 tracks ⁇ 14 key points per track), a search is required for each key point (because, as stated above, key points cannot be addressed directly). The search runs up the tape, to a location in the vicinity of N ⁇ 704 segments. If a minimum point is not found, the tape is rewound, and the search repeated, for a point such as N ⁇ 704+1. Each search is termed a probe.
- the locate times which define the left- and right intervals in FIG. 4 will, in general, depend on the particular tape and controller used, and must be measured empirically, by repeatedly issuing locate commands. However, once the left- and right intervals have been located for a given tape-and-controller combination, it has been found that these intervals apply with high accuracy to similar tapes run by the same controller.
- the invention reduces the search time by probing from a previous point, rather than from the beginning of the tape.
- the times are measured from dip D0.
- the times are measured from PZ.
- the times are measured from the second previous point. That is, for point P4, the times are measured from point P2; for P5, the times are measured from P3, and so on.
- the invention further reduces the search time by eliminating many of the "probe" steps. Motivation for this elimination is based on the discovery of the following three characteristics of the tape:
- the first dip following PZ in each track in FIG. 2 (eg, D1, D14, and D27) has been found to reside between segments number 1406 to 1412, inclusive, counted from the beginning of the track.
- the length of the last segment on a track can vary by over 100 segments.
- the invention uses these characteristics as follows.
- the invention locates the read/write head at segment 1409, which is mid-way between 1406 and 1412. If segment 1409 is found to lie in the left interval of FIG. 4, then the tape is re-wound and segment 1411 is located, which is considered mid-way between 1409 and 1412. If segment 1411 lies in the right interval, which happens in many cases, then the dip will be found at segment 1410.
- segment 1409 is found to lie in the right interval, then the tape is re-wound and segment 1407 is located, which is considered mid-way between 1409 and 1406. If segment 1407 lies in the left interval, which happens in many cases, then the dip will be found at segment 1408.
- Point PZ is defined as residing mid-way between the point located in the previous step and the beginning of the track.
- the invention first advances the read/write head from the second-previous dip (from the point to be found) to the 704th segment beyond the previous dip (again from the point to be found). For example, in step 1, P1 was found. To find P2, the head is advanced from PZ (the second-previous dip) to the 704th segment beyond P1 (the previous dip).
- the dip is taken as at the 704th segment. If not, the dip is taken as one segment earlier, at segment 703. This step eliminates 77 probes per track.
- a full bracketing search is undertaken, as described above in connection with FIG. 4.
- the invention probes at 587 segments beyond the last dip found in step 3, and then repeatedly searches higher or lower, in increments of 32 segments, depending on whether the locate time lies in the left or right interval, until the track end has been bracketed.
- the end of the track is usually bracketed after 2 probes, but sometimes 5 probes are required.
- the invention obtains data from which a plot can be drawn of the type shown in FIG. 2 for each tape.
- This plot provides a logical address for the beginning and end of each section.
- the tapes in question can contain about 625,000 segments.
- the number of possible pairs within this number of segments is about 625,000-squared, or about 4 ⁇ 10 11 , corresponding to about 400 billion pairs.
- each pair requires 8 bytes of data to represent the corresponding transit time
- the total amount of data becomes 32 ⁇ 10 11 , or about 3,200 Giga-Bytes.
- This amount of data would require about 160 tapes, of the type in question, merely to store the data for the access times for all pairs of segments.
- the time required to measure these 400 billion transit times can be quite large.
- the invention does not store transit times for all possible pairs. Instead, the invention stores mathematical functions, or a model, from which the transit times can be computed.
- the mathematical functions are derived from a small group of measured transit times, the small group being a subset of the total possible transit times. In a very simplified sense, the mathematical functions represent a "curve-fitting" to the small group of measured transit times.
- the mathematical model can be subdivided into seven sub-models. When a transit time is needed for a particular pair, the appropriate sub-model is selected, and used to compute transit time.
- the sub-model is selected based on three main factors:
- FIGS. 5A-5G are identical to FIGS. 5A-5G.
- the blocks in these Figures represent sections, which contain segments (not shown), as indicated in FIG. 1.
- the controller locates the read-write head at individual segments.
- the target segment lies within a section forward of the starting section, but within the same track, and either (a) within two sections of the section holding the starting segment or (b) within the same section as that holding the starting segment, but forward.
- the starting section is indicated by heavy outline.
- the possible target sections, or parts thereof, are indicated by cross-hatching.
- the partial cross-hatching of the starting section illustrates part (b) of Situation 1.
- the arrow in FIG. 5A indicate possible paths between the two segments.
- forward refers to the direction in which the data is written. Arrows 6A through 6D in FIG. 1 represent the forward direction. In even-numbered tracks, “forward” runs from left-to-right in the Figures, that is, from the physical beginning of the tape to the physical end of the tape. Accordingly, the two crosshatched segments in FIG. 5A are "forward" of segment S5, shown in heavy outline in track 2.
- section S1 is “reverse” of section S4.
- section S1 is not defined as having a “forward” or “reverse” direction with respect to section S5, which lies in another track.
- section S1 is compared with a section in a corresponding position to section S5, which would be section S4, in this example.
- “Corresponding” means the same numbered position. Thus, considering section S4, section S1 would be reverse of section S4.
- starting section and “target section” refer to the sections holding the starting segment and target segment, respectively.
- Direction refers to relative direction of the tape head, with respect to the tape. In even-numbered tracks (zero is considered an even number), the relative movement occurs as though the tape were stationary and the head moves left-to-right in FIG. 5B. Even-numbered tracks are considered mutually “co-directional,” because the relative movement for them is the same.
- odd-numbered tracks the relative movement of the head is right-to-left.
- odd-numbered tracks are also considered mutually co-directional.
- even-numbered tracks are "anti-directional" with respect to odd-numbered tracks, because the relative movement for even-numbered tracks is opposite that for odd-numbered tracks.
- FIGS. 5B and 5BB Situation 2 is illustrated in FIGS. 5B and 5BB, wherein the hatched sections represent target sections, and the sections in heavy outline are the starting sections.
- FIG. 5B shows the starting section located in an even-numbered track.
- FIG. 5BB shows the starting section located in an odd-numbered track.
- first two sections is defined as the first two sections in a track encountered when running in the forward direction. Thus, for an even-numbered track in FIG. 1, the first two sections are numbered 0 and 1. For an odd-numbered track, the first two sections are numbered 12 and 13.
- the target is in a co-directional track (as opposed to the same track, as discussed first), then it is either (a) in the same section number as the starting section, (b) one section forward of the starting section, or (c) any place in reverse of the starting section, but not in the first two sections. As above, "any place in reverse” can lie within the starting section.
- FIGS. 5C and 5CC shows the starting segment located in an even-numbered track.
- the latter shows the starting segment located in an odd-numbered track.
- Situation 4 The target is in reverse of the starting section, and in the first two sections, in the same or a co-directional track.
- Situation 4 is illustrated in FIGS. 5D and 5DD.
- the former shows the starting section located in an even-numbered track.
- the latter shows the starting section located in an odd-numbered track.
- Situation 5 The target is forward of the starting section, and two or more sections away, in an anti-directional track.
- Situation 5 is illustrated in FIGS. 5E and 5EE.
- the former shows the starting section located in an odd-numbered track.
- the latter shows the starting section located in an even-numbered track.
- the target lies in an anti-directional track, and target is either (a) in the same section number as the starting segment, (b) one section forward of the starting segment, or (c) reverse of the starting segment, but, in case (c), not in the first two sections.
- FIGS. 5F and 5FF Situation 6 is illustrated in FIGS. 5F and 5FF.
- the former shows the starting section located in an odd-numbered track.
- the latter shows the starting section located in an even-numbered track.
- the reader is reminded that "forward" is measured with reference to a section corresponding to the starting section, such as corresponding section S10 in FIG. 5F.
- Situation 7 The target is in reverse of the starting section, and in the first two sections, in anti-directional track.
- Situation 7 is illustrated in FIGS. 5G and 5GG.
- the former shows the starting section located in an odd-numbered track.
- the latter shows the starting section located in an even-numbered track.
- the model is used to predict transit time, for any selected pair of segments.
- the type of movement, between sections, is first classified, as lying at the physical end of the tape or, if not, then according to FIGS. 5A through 5G. Then, the corresponding sub-model is selected, and the transit time computed.
- the model provides a means to compute transit time between any selected pair of segments. (In general, the transit times are not symmetrical within pairs: time from segment A to segment B is not the same as from B to A.)
- a list of segments to be accessed is obtained. Then, based on criteria to be discussed later, one of the following algorithms is invoked, to obtain a sequence in which to access the segments on the list.
- READ algorithm Read the tape, from beginning to end. During the reading, continually check whether a segment currently being read resides on the list. If so, fetch the segment. It is pointed out that the segments contained on the list will, in general, be arranged in an arbitrary order, which will not produce a minimal total access time.
- FIFO First In, First Out
- OPT Optimal
- Schedule the accesses in a sequence based on a graph-theory solution to the asymmetric traveling salesman problem, who begins traveling in an arbitrary city.
- FIG. 6 illustrates a simplified example.
- the Figure illustrates a directed graph, containing four pairs of sections, labeled "X".
- X -- in is adjacent to X -- out, and represents the segment which is physically adjacent to X -- out, if X -- in is a single segment to be read. If a string of adjacent segments is to be read, then X -- in represents the first segment, and X -- out is adjacent the last segment.
- the "X's" correspond to cities in the travelling salesman problem, and the arrows indicate paths taken between cities.
- a time “T” is assocated with each arrow, as indicated at the top of the Figure.
- a single “T” is shown, to avoid clutter. In general, the travel times "T" will be different.
- the OPT algorithm is known in the art. In this algorithm, all possible routes of travel are examined, and the route having the shortest total time is selected.
- SORT algorithm order the segments in ascending sequence according to segment (not section) number.
- SLTF Shortest Locate Time First
- FIG. 6A illustrates this algorithm, with reference to a four-track tape, containing eight segments per track. Assume that the eight segments shown in hatching at the top of the Figure are to be addressed. The algorithm runs the head from left-to-right, and reads the segments in the even-numbered tracks, in the order encountered, as indicated by the symbols FIRST, SECOND, etc., in the central part of the Figure.
- the algorithm runs the head right-to-left, and reads the segments in the odd-numbered tracks, again, in the order encountered, as indicated by the symbols FIFTH, SIXTH, etc., in the lower part of the Figure.
- WEAVE algorithm This algorithm is based on the observation that all movements from a starting segment to a target segment, illustrated in FIGS. 5A through 5GG, do not all require the same amounts of time. The algorithm is given in the appendix, entitled “Weave Algorithm.”
- the algorithm is given the current head position, and a list of read requests.
- the algorithm searches the list, in pursuit of a request which can be fulfilled by a movement requiring the shortest time. When the request is found, it is then removed from the list, and the head assigned the position it would occupy after executing the request.
- the process is repeated: in each step, the reduced list (from which a read request has just been deleted) is examined, assuming a new head position.
- a read request is sought which can be accomplished by a movement requiring the shortest time.
- the read request is found, it is deleted from the list, the head moved to the new position, and so on.
- FIGS. 7 and 8 illustrate a simplified example of this process.
- a graph G contains four segments. The arrows represent transit times between the segments, and each points from a starting segment toward a target segment. Segment A represents the starting point, and corresponds to the current location of the read/write head. Since the read/write head can only leave segment A, that segment carries only outgoing arrows.
- In-loss which is the difference between the two smallest incoming transit times to a segment.
- Loss which is computed for a segment, and is the larger of the segment's in-loss or out-loss.
- the highest loss, for all segments, is found. In this iteration, the highest loss is valued at 49, and belongs to segment B.
- decision block 56 ascertains whether the highest loss corresponds to an in-loss or an out-loss. In this iteration, an out-loss is responsible. Since an out-loss is responsible, the smallest outgoing path from segment B (previously identified in block 53) is identified in block 59, as indicated by the arrow 60. This path will be used in the scheduling, as indicated by the RESULTs section, in the lower right part of the Figure.
- segment D produces the highest loss, which is an out-loss.
- the smallest outgoing path from segment D is selected, as indicated by arrow 75. This path will become part of the schedule.
- the graph is then further reduced, as in block 62, and the reduced graph G2 is shown at the lowed right side of the Figure.
- the "Results” section indicates the results after two iterations: path B-to-C and D-to-B. The process repeats, until all segments have been covered.
- D-to-B will be sequenced adjacent, and prior, to B-to-C.
- each number indicated a number of accesses (ie, number of segments to be read) on the tape. For example, if the set contained the numbers (100, 4, 1200, and 6), the numbers indicate four lists of segments, and the lists contain 100, 4, 1200, and 6 segments each. In this set, the random variable (ie, the number of accesses in each list) ranged from zero to 2048.
- the random variable ranged from 0 to 622,058, and identified segment numbers. (The earlier approximation of 625,000 segments per tape has been now changed to 622,058.)
- Each set corresponds to one of the elements in the other set. For example, considering the element "4" in the first set, indicating a list which contains four segments, the second set is then required to provide four random numbers, which identify the four segments.
- FIG. 9 illustrates results of the simulation, and shows the average time per access, for the different sequences, when the process began at a random starting segment.
- FIG. 10 illustrates similar data, but with a different starting point, namely, when the overall process began at the beginning of the tape.
- FIGS. 11A-11D provides selected data in tabular format.
- a second characteristic is that, for lists of accesses ranging from about 16 to just under 1024, the SCAN, WEAVE, SLTF, and LOSS algorithms have similar performance, with the LOSS algorithm providing shortest total access time.
- a third characteristic is that the OPT algorithm is always fastest (see FIGS. 11A-11D), but that, when the list of accesses exceeds about 12 in number, computing the order of read operations, using the algorithm, requires an impractical amount of time.
- a fourth characteristic is that the FIFO algorithm is never preferred, except for a list containing a single element.
- a fifth characteristic is that the SORT and READ algorithms are not preferred, until the list reaches about 1536 segments.
- a list of segments to be read from a tape will contain multiple segments which are contained within common sections, yet these segments will not lie adjacent to each other within the list. Consequently, if the segments are read in the order listed, a particular first section on the tape will be visited, then another section will be visited, and then, later, the first section will again be visited, when a later segment is encountered in the list, which is located in that first section. The first section was visited twice.
- the list of segments is first examined, in a pre-processing step, and all segments are grouped together by section. Then, later, during reading, when each section is visited by the read/write head, all segments located in that section are read, and then the read/write head departs the section, and does not return.
- the list of sections to be visited is given to the algorithms for scheduling, rather than a list of the individual segments.
- FIG. 12 Another measure of accuracy is given in FIG. 12. That Figure illustrates test results for 26 different sizes of lists of data requests (one request through 2048 requests). Each size of list (such as a 32-request list) was simulated four times, as indicated by the four "x's" in the 32-request column, with a different content of read requests in each simulation.
- a negative error percentage indicated that the predicted time was too low.
- a positive error percentage indicated that the predicted time was too high.
- the Figure indicates that for lists containing 512 read requests or fewer, the predicted total read time was within two percent of the actual total read time, with the exception of one outlier at the three-element list. This supports the proposition that the invention provides a predicted total read time which is within two percent of actual read time for at least ninety percent of the lists.
- the plot of FIG. 2 can be characterized as including transit times for successive segments.
- the transit times progressively increase, for successive segments, with the exception of the dips, shown in FIG. 3.
- transit time for a segment is smaller than the transit time for both (a) the immediately preceding segment and (b) the immediately succeding segment.
- FIG. 13 illustrates one form of the invention.
- a serpentine tape drive system 100 contains a controller 105.
- a list 110 of read requests, contained on a floppy diskette 112, or other input device, is processed by a scheduling means 114, in the form of algorithms, such as those listed above, which run on computer 115.
- the scheduling means produces schedules 120, which organize the read requests in a preferred order, which are given to the controller 105 to execute.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
Description
TABLE 1 ______________________________________ (Track 0) Point (FIG. 2) Left Interval (A) Right Interval (B) ______________________________________ P1 31-34 sec. 26-29 sec. P2-P12 41-47 sec. 36-38 sec. P13 16-22 sec. 11-14 sec. ______________________________________
TABLE 2 ______________________________________ Track Relation Direction from Between Starting Starting Segment Segment and to Target Distance Target ______________________________________ FIG. 5A Forward Two sections Same Track or fewer ******************** FIG. 5B: Two Cases: Forward More than Same two sections Forward More than Co-directional one section ******************** FIG. 5C: Two cases: Reverse Any number Same or of sections, co-directional but not to first two Forward zero or one Co-directional section ********************* FIG. 5D: Reverse To first two Same or sections co-directional ********************* FIG. 5E: Forward Two or more Anti- sections directional ********************** FIG. 5F: Two Cases: Forward No more than Any one section Reverse Any number of Any sections, except to first two ******************* FIG. 5G: Reverse To first two Anti-directional sections ********************************** ********************************** ______________________________________
______________________________________ partial.sub.-- schedule = empty while (some requested segment has not yet been scheduled) { for X = 0 to 13 { if (there exists forward track T such that request (T,X) is not empty) { append request (T,X) onto partial.sub.-- schedule, and set request(T,X) to empty. } for X = 0 to 13 { if (there exists reverse track T such that request(T,X) is not empty) { append request(T,X) onto partial.sub.-- schedule, and set request(T,X) to empty. } } } ______________________________________
Error Percentage=100×(predicted time-measured time)/(measured time)
APPENDIX __________________________________________________________________________ WEAVE Algorithm __________________________________________________________________________ #define INVERT.sub.-- END(trk) { \ if((trk) & 1) {/* will be looking on odd trk: 12<->13*/ \ if(sect.sub.-- x < 12 && (next.sub.-- sect == 12 || next.sub.-- sect == 13)) \ next.sub.-- sect = 25 - next.sub.-- sect; \ } \ else {/* will be looking on even trk: 0<->1 */ \ if (sect.sub.-- x > I && (next.sub.-- sect == 0 || next.sub.-- sect == 1)) \ next.sub.-- sect = 1 - next.sub.-- sect; \ } \ } \ #define FORWARD.sub.-- SECT(trk.sub.-- x, sect.sub.-- x, n)\ (((trk.sub.-- x) & 1) ? (sect.sub.-- x) - (n) : (sect.sub.-- x) + (n)) #define REVERSE.sub.-- SECT(trk.sub.-- x, sect.sub.-- x, n) FORWARD.sub.-- SECT(trk.sub.-- x, sect.sub.-- x, (-(n))) #define OK.sub.-- SECT(sect) ((sect) >= 0 && (sect) <= 13) #define MAYBE.sub.-- FOUND \ if (next.sub.-- trk >= 0 && next.sub.-- trk <= 63 && OK.sub.-- SECT(next.s ub.-- sect) && \ head next.sub.-- trk! next.sub.-- sect! |= -1) { \ *trk = next.sub.-- trk; \ *sect = next-sect; \ return; \ #define PARALLEL.sub.-- TRK ((trk.sub.-- x & 1) ? 1 : 0) #define NONPARALLEL.sub.-- TRK ((trk.sub.-- x & 1) ? 0 : 1) static void weave.sub.-- find.sub.-- data(const int head MAX.sub.-- TRK! MAX.sub.-- PT.sub.-- PER.sub.-- TRK!, int *trk, int *sect) { int trk.sub.-- x = *trk; int sect.sub.-- x = *sect; int next.sub.-- trk; int next.sub.-- sect; int delta; /* weaving order on sections: */ /* current section is S in trk T */ /* here f means forward and r means reverse wrt direction of T */ /* here "invert.sub.-- end" means if 13 do 12, similarly 12->13, 0->1, 1- 0*/ /*1: T, Sf1 */ next.sub.-- trk = trk.sub.-- x; next.sub.-- sect = FORWARD.sub.-- SECT(trk.sub.-- x, sect.sub.-- x, 1); MAYBE.sub.-- FOUND; /*2: T, Sf2 */ /*next.sub.-- trk = trk.sub.-- x;*/ next.sub.-- sect = FORWARD.sub.-- SECT(trk.sub.-- x, sect.sub.-- x, 2); MAYBE.sub.-- FOUND; /*3: || trk, Sf2 */ /*next.sub.-- sect = FORWARD.sub.-- SECT(trk.sub.-- x, sect.sub.-- x, 2);*/ if (OK.sub.-- SECT(next.sub.-- sect)) for (next.sub.-- trk = PARALLEL.sub.-- TRK; next.sub.-- trk < 64; next trk += 2) MAYBE.sub.-- FOUND; /* 4: ˜|| trk, Sr1 */ next.sub.-- sect = REVERSE.sub.-- SECT(trk.sub.-- x, sect.sub.-- x, 1); if (OK.sub.-- SECT(next.sub.-- sect)) for (next.sub.-- trk = NONPARALLEL.sub.-- TRK; next.sub.-- trk < 64; next.sub.-- trk += 2) MAYBE.sub.-- FOUND; /* 5: || trk Sf1*/ next.sub.-- sect = FORWARD.sub.-- SECT(trk.sub.-- x, sect.sub.-- x, 1); if (OK.sub.-- SECT(next.sub.-- sect)) for (next.sub.-- trk = PARALLEL.sub.-- TRK; next.sub.-- trk < 64; next trk += 2) MAYBE.sub.-- FOUND; /* 6: ˜|| trk, Sr2 */ next.sub.-- sect = REVERSE.sub.-- SECT(trk.sub.-- x, sect.sub.-- x, 2); if (OK.sub.-- SECT(next.sub.-- sect)) for (next.sub.-- trk = NONPARALLEL.sub.-- TRK; next.sub.-- trk < 64; next.sub.-- trk += 2) MAYBE.sub.-- FOUND; /* loop i==0,1,2 . . . */ for (delta = 0; delta < 14; delta++) { /* ˜|| trk, invert.sub.-- end(Sfi) */ next.sub.-- sect = FORWARD.sub.-- SECt(trk.sub.-- x, sect.sub.-- x, delta); INVERT.sub.-- END(trk.sub.-- x+1), if (OK.sub.-- SECT(next.sub.-- sect)) for (next.sub.-- trk = NONPARALLEL.sub.-- TRK; next.sub.-- trk < 64; next.sub.-- trk += 2) MAYBE.sub.-- FOUND; /* same trk, Sf(i+3) */ next.sub.-- trk = trk.sub.-- x; next.sub.-- sect FORWARD.sub.-- SECT(trk.sub.-- x, sect.sub.-- x, delta+3); MAYBE.sub.-- FOUND; /* || trk, Sf(i+3) */ /*next.sub.-- sect = FORWARD.sub.-- SECT(trk.sub.-- x, sect.sub.-- x, delta+3);*/ if (OK.sub.-- SECT(next.sub.-- sect)) for (next.sub.-- trk = PARALLEL.sub.-- TRK; next.sub.-- trk < 64; next.sub.-- trk += 2) MAYBE.sub.-- FOUND; /* same trk, invert.sub.-- end(Sri) */ next.sub.-- trk = trk.sub.-- x; next.sub.-- sect REVERSE.sub.-- SECT(trk.sub.-- x, sect.sub.-- x, delta); INVERT.sub.-- END(trk.sub.-- x); MAYBE.sub.-- FOUND; /* || trk, invert.sub.-- end(Sri)*/ /*next.sub.-- sect = REVERSE.sub.-- SECT(trk.sub.-- x, sect.sub.-- x, delta); *INVERT.sub.-- END(trk.sub.-- x); /* if (OK.sub.-- SECT(next.sub.-- sect)) for (next.sub.-- trk = PARALLEL.sub.-- TRK; next.sub.-- trk < 64; next.sub.-- trk += 2) MAYBE.sub.-- FOUND; /* ˜|| trk, Sr(i+3) */ next.sub.-- sect = REVERSE.sub.-- SECT(trk.sub.-- x, sect.sub.-- x, delta+3); if (OK.sub.-- SECT(next.sub.-- sect)) for (next.sub.-- trk = NONPARALLEL.sub.-- TRK; next.sub.-- trk < 64; next.sub.-- trk += 2) MAYBE.sub.-- FOUND; /* all done if(Teven: Sri < 0 and Sfi > 13) * (Todd: Sfi < 0 and Sri > 13) */ } printf ("bug: weave.sub.-- find.sub.-- data failed to find any data\n"); exit(1); } __________________________________________________________________________
Claims (10)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/652,880 US5845316A (en) | 1996-05-23 | 1996-05-23 | Scheduling random I/O for data storage tape |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/652,880 US5845316A (en) | 1996-05-23 | 1996-05-23 | Scheduling random I/O for data storage tape |
Publications (1)
Publication Number | Publication Date |
---|---|
US5845316A true US5845316A (en) | 1998-12-01 |
Family
ID=24618576
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US08/652,880 Expired - Lifetime US5845316A (en) | 1996-05-23 | 1996-05-23 | Scheduling random I/O for data storage tape |
Country Status (1)
Country | Link |
---|---|
US (1) | US5845316A (en) |
Cited By (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6026468A (en) * | 1997-08-18 | 2000-02-15 | Fujitsu Limited | Method of controlling magnetic tape unit |
US6282607B1 (en) * | 1997-09-18 | 2001-08-28 | Lucent Technologies, Inc. | Efficient scheduling of reading data from multiple storage mediums to satisfy multiple requests |
US6507883B1 (en) | 2000-10-23 | 2003-01-14 | International Business Machines Corporation | Recalling logical volumes to cache from physical media volumes for redundant storage in automated data storage libraries |
US20040162939A1 (en) * | 2002-10-02 | 2004-08-19 | Bartlett Paul Frederick | Retrieval of records from linear data storage media |
US20060212866A1 (en) * | 2005-01-27 | 2006-09-21 | Mckay Michael S | System and method for graphically displaying scheduling information |
US20110157741A1 (en) * | 2009-12-25 | 2011-06-30 | International Business Machines Corporation | Linear recording device for executing optimum writing upon receipt of series of commands including mixed read and write commands and a method for executing the same |
EP2372715A1 (en) * | 2008-12-25 | 2011-10-05 | International Business Machines Corporation | Device and method for reading out data from recording medium |
JP2012009105A (en) * | 2010-06-24 | 2012-01-12 | Panasonic Corp | Data tape control device |
JP2012128937A (en) * | 2010-12-16 | 2012-07-05 | Internatl Business Mach Corp <Ibm> | Method, system and computer program for determining access sequence of data stored on tape medium |
JP2013538399A (en) * | 2010-08-24 | 2013-10-10 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Method, system and program for reducing total seek time on tape media |
US20140268399A1 (en) * | 2013-03-14 | 2014-09-18 | International Business Machines Corporation | Reading order search method and program for recording groups on tape |
US9343111B2 (en) | 2012-08-09 | 2016-05-17 | International Business Machines Corporation | Reducing total seek time for determining an access sequence of data stored on a tape medium |
RU2714373C1 (en) * | 2018-12-13 | 2020-02-14 | Общество С Ограниченной Ответственностью "Яндекс" | Method and system for scheduling execution of input/output operations |
US10705761B2 (en) | 2018-09-14 | 2020-07-07 | Yandex Europe Ag | Method of and system for scheduling transmission of I/O operations |
US10908982B2 (en) | 2018-10-09 | 2021-02-02 | Yandex Europe Ag | Method and system for processing data |
US11003600B2 (en) | 2018-12-21 | 2021-05-11 | Yandex Europe Ag | Method and system for scheduling I/O operations for processing |
US11010090B2 (en) | 2018-12-29 | 2021-05-18 | Yandex Europe Ag | Method and distributed computer system for processing data |
US11048547B2 (en) | 2018-10-09 | 2021-06-29 | Yandex Europe Ag | Method and system for routing and executing transactions |
US11055160B2 (en) | 2018-09-14 | 2021-07-06 | Yandex Europe Ag | Method of determining potential anomaly of memory device |
US11061579B2 (en) | 2019-09-11 | 2021-07-13 | International Business Machines Corporation | Access ordering for tape cycle optimization |
US11061720B2 (en) | 2018-09-14 | 2021-07-13 | Yandex Europe Ag | Processing system and method of detecting congestion in processing system |
US11184745B2 (en) | 2019-02-06 | 2021-11-23 | Yandex Europe Ag | Actor system and method for transmitting a message from a first actor to a second actor |
US11288254B2 (en) | 2018-10-15 | 2022-03-29 | Yandex Europe Ag | Method of and system for processing request in distributed database |
US11494445B2 (en) | 2019-09-11 | 2022-11-08 | International Business Machines Corporation | Group-based tape storage access ordering |
WO2024056263A1 (en) * | 2022-09-15 | 2024-03-21 | International Business Machines Corporation | Read order determination on a tape |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3623006A (en) * | 1970-06-29 | 1971-11-23 | Burroughs Corp | Queueing device for the selection of requests for access to a storage medium |
US4888691A (en) * | 1988-03-09 | 1989-12-19 | Prime Computer, Inc. | Method for disk I/O transfer |
US5644786A (en) * | 1990-11-08 | 1997-07-01 | At&T Global Information Solutions Company | Method for scheduling the execution of disk I/O operations |
-
1996
- 1996-05-23 US US08/652,880 patent/US5845316A/en not_active Expired - Lifetime
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3623006A (en) * | 1970-06-29 | 1971-11-23 | Burroughs Corp | Queueing device for the selection of requests for access to a storage medium |
US4888691A (en) * | 1988-03-09 | 1989-12-19 | Prime Computer, Inc. | Method for disk I/O transfer |
US5644786A (en) * | 1990-11-08 | 1997-07-01 | At&T Global Information Solutions Company | Method for scheduling the execution of disk I/O operations |
Non-Patent Citations (2)
Title |
---|
"Understanding Computers: Memory and Storage", Time Life Books, Alexandria, Virginia, 1987:pp. 46-47. |
Understanding Computers: Memory and Storage , Time Life Books, Alexandria, Virginia, 1987:pp. 46 47. * |
Cited By (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6026468A (en) * | 1997-08-18 | 2000-02-15 | Fujitsu Limited | Method of controlling magnetic tape unit |
US6282607B1 (en) * | 1997-09-18 | 2001-08-28 | Lucent Technologies, Inc. | Efficient scheduling of reading data from multiple storage mediums to satisfy multiple requests |
US6507883B1 (en) | 2000-10-23 | 2003-01-14 | International Business Machines Corporation | Recalling logical volumes to cache from physical media volumes for redundant storage in automated data storage libraries |
US20040162939A1 (en) * | 2002-10-02 | 2004-08-19 | Bartlett Paul Frederick | Retrieval of records from linear data storage media |
US20060212866A1 (en) * | 2005-01-27 | 2006-09-21 | Mckay Michael S | System and method for graphically displaying scheduling information |
JP5480163B2 (en) * | 2008-12-25 | 2014-04-23 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Apparatus and method for reading data recorded on recording medium |
EP2372715A1 (en) * | 2008-12-25 | 2011-10-05 | International Business Machines Corporation | Device and method for reading out data from recording medium |
CN102265348A (en) * | 2008-12-25 | 2011-11-30 | 国际商业机器公司 | Device and method for reading out data from recording medium |
EP2372715A4 (en) * | 2008-12-25 | 2013-03-06 | Ibm | Device and method for reading out data from recording medium |
CN102265348B (en) * | 2008-12-25 | 2017-08-25 | 联想企业解决方案(新加坡)私人有限公司 | The read-out device and method of the data of recording medium recording |
US9036286B2 (en) | 2008-12-25 | 2015-05-19 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Reading data stored in recording medium |
US20110157741A1 (en) * | 2009-12-25 | 2011-06-30 | International Business Machines Corporation | Linear recording device for executing optimum writing upon receipt of series of commands including mixed read and write commands and a method for executing the same |
US9601141B2 (en) | 2009-12-25 | 2017-03-21 | International Business Machines Corporation | Linear recording device for executing optimum writing upon receipt of series of commands including mixed read and write commands and a method for executing the same |
US8966169B2 (en) * | 2009-12-25 | 2015-02-24 | International Business Machines Corporation | Linear recording device for executing optimum writing upon receipt of series of commands including mixed read and write commands and a method for executing the same |
JP2012009105A (en) * | 2010-06-24 | 2012-01-12 | Panasonic Corp | Data tape control device |
JP2013538399A (en) * | 2010-08-24 | 2013-10-10 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Method, system and program for reducing total seek time on tape media |
US9021175B2 (en) | 2010-08-24 | 2015-04-28 | International Business Machines Corporation | Method for reordering access to reduce total seek time on tape media |
JP2012128937A (en) * | 2010-12-16 | 2012-07-05 | Internatl Business Mach Corp <Ibm> | Method, system and computer program for determining access sequence of data stored on tape medium |
US9343111B2 (en) | 2012-08-09 | 2016-05-17 | International Business Machines Corporation | Reducing total seek time for determining an access sequence of data stored on a tape medium |
US9754628B2 (en) | 2012-08-09 | 2017-09-05 | International Business Machines Corporation | Reducing total seek time for determining an access sequence of data stored on a tape medium |
US20160117111A1 (en) * | 2013-03-14 | 2016-04-28 | International Business Machines Corporation | Reading order search method and program for recording |
US9263064B2 (en) * | 2013-03-14 | 2016-02-16 | International Business Machines Corporation | Reading order search method and program for recording groups on tape |
JP2014179140A (en) * | 2013-03-14 | 2014-09-25 | International Business Maschines Corporation | Method and program for searching reading order of a plurality of record groups on tape |
US9619147B2 (en) * | 2013-03-14 | 2017-04-11 | International Business Machines Corporation | Reading order search method and program for recording |
US20140268399A1 (en) * | 2013-03-14 | 2014-09-18 | International Business Machines Corporation | Reading order search method and program for recording groups on tape |
US11061720B2 (en) | 2018-09-14 | 2021-07-13 | Yandex Europe Ag | Processing system and method of detecting congestion in processing system |
US10705761B2 (en) | 2018-09-14 | 2020-07-07 | Yandex Europe Ag | Method of and system for scheduling transmission of I/O operations |
US11449376B2 (en) | 2018-09-14 | 2022-09-20 | Yandex Europe Ag | Method of determining potential anomaly of memory device |
US11055160B2 (en) | 2018-09-14 | 2021-07-06 | Yandex Europe Ag | Method of determining potential anomaly of memory device |
US10908982B2 (en) | 2018-10-09 | 2021-02-02 | Yandex Europe Ag | Method and system for processing data |
US11048547B2 (en) | 2018-10-09 | 2021-06-29 | Yandex Europe Ag | Method and system for routing and executing transactions |
US11288254B2 (en) | 2018-10-15 | 2022-03-29 | Yandex Europe Ag | Method of and system for processing request in distributed database |
RU2714373C1 (en) * | 2018-12-13 | 2020-02-14 | Общество С Ограниченной Ответственностью "Яндекс" | Method and system for scheduling execution of input/output operations |
US10996986B2 (en) | 2018-12-13 | 2021-05-04 | Yandex Europe Ag | Method and system for scheduling i/o operations for execution |
US11003600B2 (en) | 2018-12-21 | 2021-05-11 | Yandex Europe Ag | Method and system for scheduling I/O operations for processing |
US11010090B2 (en) | 2018-12-29 | 2021-05-18 | Yandex Europe Ag | Method and distributed computer system for processing data |
US11184745B2 (en) | 2019-02-06 | 2021-11-23 | Yandex Europe Ag | Actor system and method for transmitting a message from a first actor to a second actor |
US11061579B2 (en) | 2019-09-11 | 2021-07-13 | International Business Machines Corporation | Access ordering for tape cycle optimization |
US11494445B2 (en) | 2019-09-11 | 2022-11-08 | International Business Machines Corporation | Group-based tape storage access ordering |
WO2024056263A1 (en) * | 2022-09-15 | 2024-03-21 | International Business Machines Corporation | Read order determination on a tape |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5845316A (en) | Scheduling random I/O for data storage tape | |
EP0708942B1 (en) | Method and structure for evaluating and enhancing the performance of cache memory systems | |
CN104050092B (en) | A kind of data buffering system and method | |
KR100255081B1 (en) | Disk drive system and method for acessing a physical memory location therein | |
Peng et al. | Efficient learning and planning within the Dyna framework | |
US20030023809A1 (en) | Methods and arrangements for improved stripe-based processing | |
US9754628B2 (en) | Reducing total seek time for determining an access sequence of data stored on a tape medium | |
US6754036B2 (en) | Automated tuning of disc drive seek profile | |
US20090171885A1 (en) | Efficient bulk load | |
EP0680655A1 (en) | System for allocating tasks between two actuators servicing the same magnetic disk media in a single disk drive | |
CN1459744A (en) | Duplex DIJKSTRA search for planing multiple ways | |
JPH03150637A (en) | System for assigning register correspondingly to pipeline | |
Dionne et al. | Deadline-aware search using on-line measures of behavior | |
US20030158996A1 (en) | System and method for efficiently sorting DASD queued commands with unknown rotational latency | |
US6496877B1 (en) | Method and apparatus for scheduling data accesses for random access storage devices with shortest access chain scheduling algorithm | |
CN109726798A (en) | A kind of data processing method and device | |
US7970997B2 (en) | Program section layout method and layout program | |
Presby et al. | An algorithm for solving job sequencing problems | |
US6859859B2 (en) | Method and system for efficiently calculating and storing expected access time information for DASD | |
CN111323036B (en) | Method and system for intelligently optimizing path of stock yard, electronic equipment and storage medium | |
US10910002B1 (en) | Write efficiency management for tape cartridge writing | |
CN113124849B (en) | Indoor path planning method and device, electronic equipment and storage medium | |
DK143580B (en) | DEVICE FOR RECORDING AND READING INFORMATION ON A MOVABLE MAGNETIC RECORDING MEDIUM | |
CN114265691A (en) | Numa perception based k-tress decomposition community discovery method | |
Savitch et al. | Linear time simulation of multihead turing machines with head—To-head jumps |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: LUCENT TECHNOLOGIES INC., NEW JERSEY Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:HILLYER, BRUCE K.;SILBERSCHATZ, ABRAHAM;REEL/FRAME:008054/0898 Effective date: 19960521 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
AS | Assignment |
Owner name: THE CHASE MANHATTAN BANK, AS COLLATERAL AGENT, TEX Free format text: CONDITIONAL ASSIGNMENT OF AND SECURITY INTEREST IN PATENT RIGHTS;ASSIGNOR:LUCENT TECHNOLOGIES INC. (DE CORPORATION);REEL/FRAME:011722/0048 Effective date: 20010222 |
|
FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
FPAY | Fee payment |
Year of fee payment: 8 |
|
AS | Assignment |
Owner name: LUCENT TECHNOLOGIES INC., NEW JERSEY Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS;ASSIGNOR:JPMORGAN CHASE BANK, N.A. (FORMERLY KNOWN AS THE CHASE MANHATTAN BANK), AS ADMINISTRATIVE AGENT;REEL/FRAME:018590/0047 Effective date: 20061130 |
|
FPAY | Fee payment |
Year of fee payment: 12 |