Parallel processing using memory mapping
AssigneeOracle International Corporation
InventorRajeev Kumar Misra
Life of this patent
Estimating the term…
Abstract
Techniques are disclosed for processing records using virtual memory mapping. An input file is virtually divided into a fragments based on memory mapping. Execution threads are started and assigned to each of the fragments. The execution threads process the fragments in parallel and each of the execution threads generates an output file. The output files generated by each of the execution threads are merged to create a final output file.
Claims15
A method comprising:
- receiving an input file;
- virtually dividing the input file into a plurality of fragments through memory mapping, wherein virtually dividing the input file into a plurality of fragments through memory mapping comprises:
- determining a start offset for each of the plurality of fragments;
- determining a length of each of the plurality of fragments;
- and
- virtually dividing the input file based on the determined start offset and the determined length for each of the plurality of fragments;
- starting an execution thread for each of the plurality of fragments;
- assigning the execution thread to each of the plurality of fragments, wherein one execution thread of a plurality of execution threads is configured to process one of the plurality of fragments;
- processing in parallel, by each of a plurality of execution threads, the plurality of fragments;
- outputting, by each of the execution threads, an output file corresponding to each of the processed plurality of fragments;
- and
- merging a plurality of output files output by each of the execution threads to create a final output file.
A non-transitory computer-readable storage medium storing a plurality of instructions executable by one or more processors, the plurality of instructions comprising:
- receiving an input file;
- virtually dividing the input file into a plurality of fragments through memory mapping, wherein virtually dividing the input file into a plurality of fragments through memory mapping comprises:
- determining a start offset for each of the plurality of fragments;
- determining a length of each of the plurality of fragments;
- and
- virtually dividing the input file based on the determined start offset and the determined length for each of the plurality of fragments,
- starting an execution thread for each of the plurality of fragments;
- assigning the execution thread to each of the plurality of fragments, wherein one execution thread of a plurality of execution threads is configured to process one of the plurality of fragments;
- processing in parallel, by each of a plurality of execution threads, the plurality of fragments;
- outputting, by each of the execution threads, an output file corresponding to each of the processed plurality of fragments;
- and
- merging a plurality of output files output by each of the execution threads to create a final output file.
A system comprising:
- one or more processors;
- and
- a memory coupled with and readable by the one or more processors, the memory configured to store a set of instructions which, when executed by the one or more processors, causes the one or more processors to:
- receive an input file;
- virtually divide the input file into a plurality of fragments through memory mapping, wherein virtually dividing the input file into a plurality of fragments through memory mapping comprises:
- determine a start offset for each of the plurality of fragments;
- determine a length of each of the plurality of fragments;
- and
- virtually divide the input file based on the determined start offset and the determined length for each of the plurality of fragments;
- start an execution thread for each of the plurality of fragments;
- assign the execution thread to each of the plurality of fragments, wherein one execution thread of a plurality of execution threads is configured to process one of the plurality of fragments;
- process in parallel, by each of a plurality of execution threads, the plurality of fragments;
- output, by each of the execution threads, an output file corresponding to each of the processed plurality of fragments;
- and
- merge a plurality of output files output by each of the execution threads to create a final output file.
Dependencies are inferred from the claim text.