Cuckoo hashing with selectable hash
US-2017068669-A1 · Mar 9, 2017 · US
US10810048B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10810048-B2 |
| Application number | US-201615318639-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jun 8, 2016 |
| Priority date | Oct 13, 2015 |
| Publication date | Oct 20, 2020 |
| Grant date | Oct 20, 2020 |
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.
Systems and methods for dynamic allocation of compilation machines are disclosed. A method includes: initiating and storing a task to be compiled and marking the task in a waiting state to wait for compilation of a compilation machine; fetching a compile command, and analyzing a current compile state of the compilation machine and further determining based on the current compile state whether to set the task to be compiled to continue waiting for compilation or enter a compile stage, wherein if to continue waiting for compilation, then the task to be compiled may be further held in storage; otherwise if to enter the compile stage, then the task may be transmitted to the compilation machine for compilation. Thus, the tasks can be automatically assigned to the compilation machines to achieve efficient use of the compilation machines and reduce the otherwise potential error rate due to human intervention.
Opening claim text (preview).
What is claimed is: 1. A method for allocation of compilation machines, comprising: initiating and storing a task to be compiled and marking the task in a waiting state to wait for compilation on a compilation machine, wherein marking the task in a waiting state includes preconfiguring a first attribute value and a second attribute value of the task and setting the first attribute value and the second attribute value to be different values, and wherein when storing the task to be compiled, three data tables are also established and configured to record project information, compilation machines information, and compilation tasks information, respectively; acquiring a first threshold number of tasks of a same type the compilation machine is able to compile simultaneously as well as a second threshold number of maximum tasks the compilation machine is able to compile simultaneously, the first threshold number being smaller than or equal to the second threshold number; fetching a compile command, and determining whether a number of tasks the compilation machine is currently compiling is greater than or equal to the first threshold number; upon determining that the number of tasks the compilation machine is currently compiling is less than the first threshold number, the task to be compiled is to enter the compile stage and further transmitted to the compilation machine; and upon determining that the number of tasks the compilation machine is currently compiling is greater than or equal to the first threshold number, determining whether the number of tasks the compilation machine is currently compiling is greater than or equal to the second threshold number, and setting the task to be compiled to continue waiting for compilation upon determining that the number of tasks the compilation machine is currently compiling is greater than or equal to the second threshold number; upon determining that the number of tasks the compilation machine is currently compiling is less than the second threshold number, determining whether there are any tasks the compilation machine is currently compiling that is of a same type as the task to be compiled, and upon determining that there is none, setting the task to be compiled to enter the compile stage and further transmitting the task to be compiled to the compilation machine; upon determining that there are any tasks of the same type as the task to be compiled that is currently compiled on the compilation machine, determining whether a number of tasks of the same type as the task to be compiled is greater than or equal to the first threshold number, and setting the task to be compiled to enter the compile stage and further transmitting the task to be compiled to the compilation machine upon determining that the number of tasks of the same type as the task to be compiled is less than the first threshold number; otherwise, setting the task to be compiled to continue waiting for compilation; wherein, prior to setting the task to be compiled to enter the compile stage or continue waiting for compilation, the method further comprises: determining whether there is a vacant compilation machine; upon determining that there is no vacant compilation machine, randomly selecting a compilation machine and sending the task to be compiled to the selected compilation machine; upon determining that there is at least one vacant compilation machine, selecting one of the vacant compilation machine to compile the task to be compiled. 2. The method according to claim 1 , wherein the project information comprises a type of the task to be compiled; the compilation machines information comprises an IP address, name, type of tasks under compilation, and current remaining compilation space, of each compilation machine; and the compilation tasks information comprises information of compilation machines that is currently working and information of tasks they are currently compiling. 3. The method according to claim 1 , further comprising: upon determining that the number of tasks the compilation machine is currently compiling is greater than the second threshold number by an amount larger than or equal to two, further setting the task to be compiled from the current waiting state to a sleep stage; and until the number of tasks the compilation machine is currently compiling is greater than the second threshold number by one, returning the task to be compiled to the waiting state. 4. The method according to claim 3 , further comprising: upon determining that setting the task to be compiled from the current waiting state to a sleep stage, setting both the first and second attribute values to be 0. 5. The method according to claim 1 , wherein, sending the task to be compiled to a compilation machine with relatively fewer compilation tasks comprises sending the task to be compiled to a compilation machine with relatively fewer compilation tasks which are of the same type as the task to be compiled. 6. The method according to claim 1 , wherein, upon determining that there is at least one vacant compilation machine, selecting one of the vacant compilation machine to compile the task to be compiled comprises: upon determining that there is at least one vacant compilation machine, determining whether the number of the vacant compilation machine is greater than or equal to two; upon determining that the number of the vacant compilation machine is greater than or equal to two, randomly selecting one vacant compilation machine to compile the task to be compiled; and upon determining that there is only one vacant compilation machine, selecting the vacant compilation machine to compile the task to be compiled. 7. The method according to claim 1 , further comprising: after having selected the corresponding compilation machine for the task to be compiled, obtaining the IP address of the selected compilation machine, and transmitting the task to be compiled to the selected compilation machine with the IP address. 8. The method according to claim 1 , wherein marking the task in a waiting state includes setting the first attribute value to be 0 and the second attribute value to be 1, and the method further comprises: upon determining that the task to be compiled is to enter the compile stage and further transmitted to the compilation machine, setting the first attribute value to be 1 and the second attribute value to be 0 to indicate the proceeding to the compile stage. 9. A method for allocation of compilation machines, comprising: initiating and storing a task to be compiled and marking the task in a waiting state to wait for compilation on a compilation machine; wherein marking the task in a waiting state includes preconfiguring a first attribute value and a second attribute value of the task and setting the first attribute value and the second attribute value to be different values; acquiring a first threshold number of tasks of a same type the compilation machine is able to compile simultaneously as well as a second threshold number of maximum tasks the compilation machine is able to compile simultaneously, the first threshold number being smaller than or equal to the second threshold number; fetching a compile command, and determining whether a number of tasks the compilation machine is currently compiling is greater than or equal to the first threshold number, and upon determining that the number of tasks the compilation machine is currently compiling is less than the first threshold number, setting the task to be compiled to enter the compile stage and further transmitting the task to be compiled to the compilation machine; upon determining that the number of tasks the compilation machine is currently compiling is greater than or equ
considering data affinity · CPC title
Retargetable compilers · CPC title
considering the load · CPC title
Optimisation · CPC title
the resource being a machine, e.g. CPUs, Servers, Terminals · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.