File system queue
First Claim
Patent Images
1. A method ensuring processing of each file of a first collection of files in a shared file system by only one computer, of a plurality of computers, processing files from the first collection, the method comprising:
- in each computer of the plurality of computers,(i) determining whether at least one file is available in the first collection of files by retrieving a list of files of the first collection of files from one location in the shared file system that is accessible to all computers of the plurality of computers;
(ii) selecting a first file from the list of files, if it is determined that at least one file is available in the first collection of files;
(iii) continuing to determine whether at least one file is available, if it is determined that no files are available in the first collection of files;
(iv) responsive to selecting the first file, attempting to move the first file from the first collection of files for processing, wherein the move is an indivisible operation that succeeds for only one computer of two or more computers of the plurality of computers that concurrently attempt to move any given file;
(v) responsive to attempting to move the first file, determining whether the attempt to move the first file was successful;
(vi) processing content of the first file, only if the move operation was successful; and
(vii) returning to step (i), if the move operation was not successful.
18 Assignments
0 Petitions
Accused Products
Abstract
A method and system that enables operation of a file system-based queue that supports the efficient and fair distribution of messages among a plurality of processors.
7 Citations
21 Claims
-
1. A method ensuring processing of each file of a first collection of files in a shared file system by only one computer, of a plurality of computers, processing files from the first collection, the method comprising:
in each computer of the plurality of computers, (i) determining whether at least one file is available in the first collection of files by retrieving a list of files of the first collection of files from one location in the shared file system that is accessible to all computers of the plurality of computers; (ii) selecting a first file from the list of files, if it is determined that at least one file is available in the first collection of files; (iii) continuing to determine whether at least one file is available, if it is determined that no files are available in the first collection of files; (iv) responsive to selecting the first file, attempting to move the first file from the first collection of files for processing, wherein the move is an indivisible operation that succeeds for only one computer of two or more computers of the plurality of computers that concurrently attempt to move any given file; (v) responsive to attempting to move the first file, determining whether the attempt to move the first file was successful; (vi) processing content of the first file, only if the move operation was successful; and (vii) returning to step (i), if the move operation was not successful. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
8. A system that ensures processing of each file of a first collection of files in a shared file system by only one computer, of a plurality of computers, processing files from the first collection, the system comprising:
in each computer of the plurality of computers, at least one processor enabled to communicatively couple to the shared file system, the at least one processor operable to, at least; (i) determine whether at least one file is available in the first collection of files by retrieve a list of files of the first collection of files from one location in the shared file system that is accessible to all computers of the plurality of computers; (ii) select a first file from the list of files, if it is determined that at least one file is available in the first collection of files; (iii) continue to determine whether at least one file is available, if it is determined that no files are available in the first collection of files; (iv) responsive to selecting the first file, attempt to move the first file from the first collection of files for processing, wherein the move is an indivisible operation that succeeds for only one computer of two or more computers of the plurality of computers that concurrently attempt to move any given file; (v) responsive to the attempt to move the first file, determine whether the attempt to move the first file was successful; (vi) process content of the first file, only if the move operation was successful; and (vii) return to step (i), if the move operation was not successful. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
15. A non-transitory computer-readable medium having a plurality of code sections, each code section comprising instructions executable by at least one processor, the instructions causing the at least one processor to perform a method of processing each file of a first collection of files in a shared file system by only one computer, of a plurality of computers, processing files from the first collection, the method comprising:
-
(i) determining whether at least one file is available in the first collection of files by retrieving a list of files of the first collection of files from one location in the shared file system that is accessible to all computers of the plurality of computers; (ii) selecting a first file from the list of files, if it is determined that at least one file is available in the first collection of files; (iii) continuing to determine whether at least one file is available, if it is determined that no files are available in the first collection of files; (iv) responsive to selecting the first file, attempting to move the first file from the first collection of files for processing, wherein the move is an indivisible operation that succeeds for only one computer of two or more computers of the plurality of computers that concurrently attempt to move any given file; (v) responsive to attempting to move the first file, determining whether the attempt to move the first file was successful; (vi) processing content of the first file, only if the move operation was successful; and (vii) returning to step (i), if the move operation was not successful. - View Dependent Claims (16, 17, 18, 19, 20, 21)
-
Specification