Systems, devices, and methods for parallel processing of financial data sets
AssigneeDhandho Funds LLC
InventorMohnish PABRAI
Life of this patent
Estimating the term…
Abstract
A server is configured for parallel processing. The server receives a plurality of rule sets from a client, retrieves a plurality of financial data sets from a remote data source based on the rule sets, formats the financial data sets in parallel for input into a data structure, and populates the data structure with the financial data sets in parallel without locking the data structure. Subsequently, in response to the server receiving a plurality of event messages from the remote data source, the server processes the event messages and the rule sets, and accordingly modifies the data structure in parallel without locking the data structure, with the event messages relating to the financial data sets.
Claims20
A method comprising:
- presenting, by a server, over a local area network, a first graphical user interface in a first application running on a first operating system of a first client, wherein the server comprises a processor comprising a plurality of cores that process in parallel, wherein the first graphical user interface is programmed to receive a plurality of a financial data set identifiers and a plurality of rule sets, wherein the first graphical user interface comprises a control graphical element programmed to trigger a submission of the financial data set identifiers and the rule sets from the client to the server over the local area network, wherein the financial data set identifiers correspond to the rule sets in a one-to-one manner;
- in response to the submission based on an activation of the control graphical element, populating, by the server, a first data structure with the financial data set identifiers and a second data structure with the rule sets;
- querying, by the server, over a wide area network, based on the populating, a data source based on accessing, by the server, the rule sets in the second data structure;
- retrieving, by the server, over the wide area network, a plurality of financial data sets from the data source such that the cores receive the financial data sets in parallel in a one-to-one manner;
- formatting, by the server, based on the retrieving, the financial data sets via the cores in parallel in a one-to-one manner such that the financial data sets are formatted for input into the first data structure;
- populating, by the server, based on the formatting, the first data structure with the financial data sets based on the retrieving such that the financial data set identifiers correspond to the financial data sets in a one-to-one manner and such that the cores input the financial data sets in parallel into the first data structure in a one-to-one manner without locking the first data structure;
- defining, by the server, an index in the first data structure based on the populating the first data structure with the financial data sets, wherein the index is based on the financial data sets, wherein each of the financial data sets comprises a plurality of security identifiers, a plurality of security amounts, and a plurality of security prices, wherein the security identifiers correspond to the security amounts in a one-to-one manner, wherein the security identifiers correspond to the security prices in a one-to-one manner, wherein the financial data sets and the index are embodied via a linked list within the first data structure, wherein the index links to the financial data sets;
- and
- in response to receiving, by the server, over the wide area network, after the defining, a plurality of event messages from the data source, interpreting, by the server, the event messages, accessing, by the server, the rule sets in the second data structure, modifying, by the server, the financial data sets in the first data structure based on the rule sets in the second data structure and the event messages as interpreted such that the cores amend the financial data sets in parallel in the first data structure in a one-to-one manner without locking the first data structure and such that the index is updated accordingly, and granting, by the server, over the wide area network, a read access for the index to a second graphical user interface generated by a second application running on a second operating system of a second client, wherein the read access is during the modifying and after the modifying, wherein the financial data sets are related to the event messages via the security identifiers.
(canceled)
A system comprising:
- a server comprising a processor comprising a plurality of cores which process in parallel, wherein the server is configured to:
- present, over a local area network, a first graphical user interface in a first application running on a first operating system of a first client, wherein the first graphical user interface is programmed to receive a plurality of a financial data set identifiers and a plurality of rule sets, wherein the first graphical user interface comprises a control graphical element programmed to trigger a submission of the financial data set identifiers and the rule sets from the client to the server over the local area network, wherein the financial data set identifiers correspond to the rule sets in a one-to-one manner;
- in response to the submission based on an activation of the control graphical element, populate a first data structure with the financial data set identifiers and a second data structure with the rule sets;
- query, over a wide area network, based on the populating, a data source based on accessing, by the server, the rule sets in the second data structure;
- retrieve, over the wide area network, a plurality of financial data sets from the data source such that the cores receive the financial data sets in parallel in a one-to-one manner;
- format, based on the retrieving, the financial data sets via the cores in parallel in a one-to-one manner such that the financial data sets are formatted for input into the first data structure;
- populate, based on the formatting, the first data structure with the financial data sets based on the retrieving such that the financial data set identifiers correspond to the financial data sets in a one-to-one manner and such that the cores input the financial data sets in parallel into the first data structure in a one-to-one manner without locking the first data structure;
- define an index in the first data structure based on the populating the first data structure with the financial data sets, wherein the index is based on the financial data sets, wherein each of the financial data sets comprises a plurality of security identifiers, a plurality of security amounts, and a plurality of security prices, wherein the security identifiers correspond to the security amounts in a one-to-one manner, wherein the security identifiers correspond to the security prices in a one-to-one manner, wherein the financial data sets and the index are embodied via a linked list within the first data structure, wherein the index links to the financial data sets;
- and
- in response to receiving, by the server, over the wide area network, after the defining, a plurality of event messages from the data source, interpret the event messages, access the rule sets in the second data structure, modify the financial data sets in the first data structure based on the rule sets in the second data structure and the event messages as interpreted such that the cores amend the financial data sets in parallel in the first data structure in a one-to-one manner without locking the first data structure and such that the index is updated accordingly, and grant, over the wide area network, a read access for the index to a second graphical user interface generated by a second application running on a second operating system of a second client, wherein the read access is during the modifying and after the modifying, wherein the financial data sets are related to the event messages via the security identifiers.
Dependencies are inferred from the claim text.