Caching in a data processing system using the pigeon hole principle
First Claim
1. In a computer including a hierarchical file structure having a namespace including a pathname associated with each of a plurality of files, the pathname for each file including at least one prefix component and at least one lower-level component, an apparatus for resolving hierarchical file pathnames into representations of the files named by the paths, comprising:
- a memory storing a prefix cache for the hierarchical file structure which includes a representation of an upper-level portion of the namespace for the file structure, the upper-level portion of the namespace including the at least one prefix component of the pathname for each of the files;
means for translating the at least one prefix pathname component for the given file into the representation of the upper-level portion of the namespace for the given file by searching the prefix cache for the at least one prefix pathname component; and
means for completing resolution of the pathname for the given file when the translation succeeds by using the at least one lower-level pathname component for the given file as an input to an access pattern resolution primitive which outputs a representation of the given file.
2 Assignments
0 Petitions
Accused Products
Abstract
Methods and apparatus for resolving access patterns in a data processing system using the pigeon hole principle are disclosed herein. The data processing system has a directed graph G of access patterns including a vertices set V representing cache items. Each cache item v has an access pattern defined by a path of vertices (v1 → , . . . , →vn), v1 representing the start of the path and vn representing the end of the path at cache item v. The method includes defining a prefix cache for directed graph G which contains a map between an access pattern (v1 → , . . . , →vk) and vertex vk for a kth level L in graph G, storing the prefix cache in a memory and, for a given access pattern (v1 → , . . . , →vn), searching the prefix cache for a prefix (v1 → , . . . , →vk) of the given access pattern that reaches the kth level L. If the search is successful, the method includes outputting vertex vk by reference to the stored prefix cache and calling an access pattern resolution primitive which accepts access pattern (vk+1 → , . . . , →vn) as an input and generates vertex vn as an output. If the search is unsuccessful, the method includes setting the input to the resolution primitive to the given access pattern (v1 → , . . . , →vn) to generate vertex vn as the output. In either case, the given access pattern (v1 → , . . . , →vn) is fully resolved. Apparatus for performing this method is also disclosed. A particular use of the pigeon hole principle for caching in a data processing system involves the resolution of hierarchical file pathnames into in-core representations of the files named by the paths (i.e., namespace resolution) using prefix caching.
58 Citations
20 Claims
-
1. In a computer including a hierarchical file structure having a namespace including a pathname associated with each of a plurality of files, the pathname for each file including at least one prefix component and at least one lower-level component, an apparatus for resolving hierarchical file pathnames into representations of the files named by the paths, comprising:
-
a memory storing a prefix cache for the hierarchical file structure which includes a representation of an upper-level portion of the namespace for the file structure, the upper-level portion of the namespace including the at least one prefix component of the pathname for each of the files; means for translating the at least one prefix pathname component for the given file into the representation of the upper-level portion of the namespace for the given file by searching the prefix cache for the at least one prefix pathname component; and means for completing resolution of the pathname for the given file when the translation succeeds by using the at least one lower-level pathname component for the given file as an input to an access pattern resolution primitive which outputs a representation of the given file. - View Dependent Claims (2, 3, 4)
-
-
5. A method for resolving access patterns in a data processing system having a directed graph G of access patterns, directed graph G including a vertices set V representing a plurality of cache items, each cache item v having at least one access pattern defined by a path of vertices (v1 →
- , . . . , →
vn), vertex v1 being a start vertex representing the start of the path and vertex vn being an end vertex representing the end of the path, wherein end vertex vn is equal to the cache item v, the method comprising the steps of;defining a prefix cache for directed graph G, the prefix cache containing a map between an access pattern (v1 →
, . . . , →
vk) and vertex vk for a kth level L in graph G, wherein vertex vk is a vertex in the kth level L in graph G which is reached by the access pattern (v1 →
, . . . , →
vk) and L is an independent set of vertices in G which does not include any start vertices;storing the prefix cache in a memory; and for a given access pattern (v1 →
, . . . , →
vn), searching the stored prefix cache for a prefix (v1 →
, . . . , →
vk) of the given access pattern that reaches the kth level L and, if the search is successful, outputting vertex vk by reference to the stored prefix cache and calling an access pattern resolution primitive which accepts access pattern (vk >
, . . . →
vn) as an input and generates vertex vn as an output to fully resolve the given access pattern. - View Dependent Claims (6)
- , . . . , →
-
7. A method for namespace resolution of a given file in a data processing system having a hierarchical file structure, the file structure having a namespace including a pathname associated with each of a plurality of files, the pathname for each file including at least one prefix component and at least one lower-level component, the method comprising the steps of:
-
defining a prefix cache for the hierarchical file structure, the prefix cache including a representation of an upper-level portion of the namespace for the file structure, the upper-level portion of the namespace including the at least one prefix component of the pathname for each of the files; storing the prefix cache in a memory; translating the at least one prefix pathname component for the given file into the representation of the upper-level portion of the namespace for the given file by searching the prefix cache for the at least one prefix pathname component; and when the translation succeeds, completing resolution of the pathname for the given file by using the at least one lower-level pathname component for the given file as an input to an access pattern resolution primitive which outputs a representation of the given file named by the pathname. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
-
Specification