Parallel Processing Of Data
US-2024338235-A1 · Oct 10, 2024 · US
US9753698B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9753698-B2 |
| Application number | US-48227009-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jun 10, 2009 |
| Priority date | Jun 10, 2009 |
| Publication date | Sep 5, 2017 |
| Grant date | Sep 5, 2017 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A method and/or computer program that incorporates isolation principles of separate address spaces and enforces the principles with a compiler and supporting runtime through a language-based model is disclosed. This approach significantly lowers the required overhead and retains the beneficial qualities of the scalable, isolated model. The model is implemented in a programming language where memory-based state is partitioned into a plurality of domains where the variables inside of a domain are isolated from external components. Agents are introduced inside of the domain and act on behalf of clients outside of the domain. The agents communicate with their clients via message-passing to enforce the isolation of the domain state. The domain-based isolation addresses the partitioning of memory-based state without the introduction of separate processes. Domains can also be used in conjunction with a distributed model either within a single computing device or between computing devices.
Opening claim text (preview).
What is claimed is: 1. A method of isolating a shared memory-based state from concurrent clients of an application including an application component, the method comprising: partitioning a memory-based state into a plurality of domains, each domain including separate address spaces of a memory and including variables within boundaries of the domain, wherein the variables are isolated from outside of the boundaries of the domain, and wherein the variables within each domain are isolated from the other domains; introducing a plurality of agents inside the boundaries of the domains corresponding with a client of the application, wherein the agent acts on behalf of the client to access the variables within the domain, and the agent does not use the same application component or the same thread of execution as the client, wherein the agents include at least one read agent to read from variables within the domain, at least one write agent to read from or write to variables within the domain and at least one third agent to neither read from nor write to variables within the domain; executing any number of third agents concurrently with each other or with read agents or with one write agent; executing any number of read agents concurrently as long as no write agents are executing; executing only one write agent at a time such that the instance of the write agent as exclusive access to the domain while executing the write agent; wherein the domains and the agents are each both declarative and runtime constructs in a programming language based model; and enforcing isolation of the variables within the domain from the clients through communications between the agent and the corresponding client via message passing with a compiler and supporting runtime and through the agent interacting with other agents via message-passing over separately defined channels. 2. The method of claim 1 wherein method includes isolating the plurality of domains from each other. 3. The method of claim 1 wherein each agent can communicate with a plurality of clients. 4. The method of claim 1 wherein the current clients of an application include concurrent threads. 5. The method of claim 1 wherein each domain is both a declarative construct and a runtime construct interfacing with the compiler and the supporting runtime. 6. The method of claim 5 wherein the declarative construct is considered to be a domain, and the runtime construct is considered to be a domain instance. 7. The method of claim 6 wherein public members of the domain are domain constructors. 8. The method of claim 6 wherein the domain instances provide scoping and concurrency control. 9. The method of claim 6 and further including creating domain instances of a domain through an allocation expression. 10. The method of claim 1 including copying data from inside the domain to provide the message-passing between the agent and the client. 11. A system comprising: memory to store instructions; a processor to execute the instructions to: partition a memory-based state into a plurality of domains, each domain including separate address spaces of a memory and including variables within boundaries of the domain, the variables are isolated from outside of the boundaries of the domain, and the variables within each domain are isolated from the other domains; introduce a plurality of agents inside the boundaries of the domain corresponding with a client of an application including an application component, the agent acts on behalf of the client to access the variables within the domain via message-passing between the agent and the client and the agent does not use the same application component or the same thread of execution as the client, the agents include at least one read agent to read from variables within the domain, at least one write agent to read from or write to variables within the domain and at least one third agent to neither read from nor write to variables within the domain; execute any number of third agents concurrently with each other or with read agents or with one write agent; execute any number of read agents concurrently as long as no write agents are executing; execute only one write agent at a time such that the instance of the write agent as exclusive access to the domain while executing the write agent; the domains and the agents are each both declarative and runtime constructs in a programming language based model; and enforce isolation of the domain with a compiler and supporting runtime through the agent interacting with other agents via message-passing over separately defined channels. 12. The system of claim 11 wherein the programming language is an object oriented based language that allows or encourages to some degree object oriented programming techniques. 13. The system of claim 12 wherein the programming language is in a managed language. 14. The system of claim 13 wherein the programming language is in a special purpose language used with the managed language. 15. The system of claim 11 , wherein each domain in a declarative construct is considered to be a domain, and each domain in a runtime construct is considered to be a domain instance; and wherein each agent in a declarative construct is considered to be an agent, and each agent in a runtime construct is considered to be an agent instance. 16. A computer readable storage medium, which does not include transitory propagating signals, storing computer executable instructions for controlling a computing device to perform a method comprising: partitioning a memory-based state into a plurality of domains, each domain including separate address spaces of a memory and including variables within boundaries of each domain, wherein the variables are isolated from outside of the boundaries of the domain, and wherein the variables within each domain are isolated from the other domains; introducing a plurality of agents inside the boundaries of domains corresponding with a client of an application including an application component, wherein the agents act on behalf of the client to access the variables within the domain via message-passing between the agent and the corresponding client; and the agents do not use the same application component or the same thread of execution as the client, wherein the agents include at least one read agent to read from variables within the domain, at least one write agent to read from or write to variables within the domain and at least one third agent to neither read from nor write to variables within the domain; executing any number of third agents concurrently with each other or with read agents or with one write agent; executing any number of read agents concurrently as long as no write agents are executing; executing only one write agent at a time such that the instance of the write agent as exclusive access to the domain while executing the write agent; wherein the domains and the agents are each both declarative and runtime constructs in a programming language based model; and enforcing isolation of the variables within each domain from the clients through communications between the agent and the corresponding client via message passing with a compiler and supporting runtime and through the agent interacting with other agents via message-passing over separately defined channels.
Sharing · CPC title
Logical partitioning of resources; Management or configuration of virtualized resources (specific details on emulation or internal functioning of virtual machines G06F9/455) · CPC title
Creation or generation of source code · CPC title
Parallel programming languages (G06F8/313 takes precedence) · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.