System and method for supporting out-of-order message processing in a distributed data grid
US-9083614-B2 · Jul 14, 2015 · US
US9898414B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9898414-B2 |
| Application number | US-201414530354-A |
| Country | US |
| Kind code | B2 |
| Filing date | Oct 31, 2014 |
| Priority date | Mar 28, 2014 |
| Publication date | Feb 20, 2018 |
| Grant date | Feb 20, 2018 |
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.
Nodes in a distributed node system are configured to support memory corruption detection when memory is shared between the nodes. Nodes in the distributed node system share data in units of memory referred to herein as “shared cache lines.” A node associates a version value with data in a shared cache line. The version value and data may be stored in a shared cache line in the node's main memory. When the node performs a memory operation, it can use the version value to determine whether memory corruption has occurred. For example, a pointer may be associated with a version value. When the pointer is used to access memory, the version value of the pointer may indicate the expected version value at the memory location. If the version values do not match, then memory corruption has occurred.
Opening claim text (preview).
What is claimed is: 1. A method, comprising: in a memory of a local node, generating a copied cache line that is a copy of a source cache line on a source node, wherein the said copied cache line comprises version bits and data bits, said version bits being set to a version value; generating a pointer that points to said copied cache line, said pointer having a pointer value that includes said version value; using said pointer to perform a memory operation on said copied cache line, wherein performing a memory operation includes: comparing the version value included in said pointer value to the version value to which the version bits of the copied cache line are set; and determining whether memory corruption has occurred based on the comparison. 2. The method of claim 1 , wherein generating a copied cache line includes: determining a version value of the source cache line; and setting the version bits to the version value of the source cache line. 3. The method of claim 2 , wherein the version value is generated by the source node in response to a memory allocation request. 4. The method of claim 1 , wherein comparing the version value includes: determining whether the copied cache line is invalid; and in response to determining that the copied cache line is invalid, copying the source cache line to the copied cache line. 5. The method of claim 4 , wherein the method further includes the steps of: the local node storing in a store buffer one or more updates to the copied cache line that have not been propagated to said source cache line; and further in response to determining that the copied cache line is invalid, propagating said one or more updates to said copied cache line. 6. The method of claim 1 , further comprising: executing a trap operation if memory corruption has occurred. 7. The method of claim 6 , wherein executing a trap operation includes: informing an application that memory corruption has occurred. 8. The method of claim 6 , wherein executing a trap operation includes: terminating the memory operation. 9. One or more non-transitory storage media storing instructions which, when executed by one or more processors, cause performance of: in a memory of a local node, generating a copied cache line that is a copy of a source cache line on a source node, wherein the said copied cache line comprises version bits and data bits, said version bits being set to a version value; generating a pointer that points to said copied cache line, said pointer having a pointer value that includes said version value; using said pointer to perform a memory operation on said copied cache line, wherein performing a memory operation includes: comparing the version value included in said pointer value to the version value to which the version bits of the copied cache line are set; determining whether said copied cache line has been corrupted based on the comparison. 10. The one or more non-transitory storage media of claim 9 , wherein generating a copied cache line includes: determining a version value of the source cache line; setting the version bits to the version value of the source cache line. 11. The one or more non-transitory storage media of claim 10 , wherein the version value is generated by the source node in response to a memory allocation request. 12. The one or more non-transitory storage media of claim 9 , wherein comparing the version value includes: determining whether the copied cache line is invalid; copying the source cache line to the copied cache line if the copied cache line is invalid. 13. The one or more non-transitory storage media of claim 12 , wherein the instructions further include instructions for: the local node storing in a store buffer one or more updates to the copied cache line that have not been propagated to said source cache line; and further in response to determining that the copied cache line is invalid, propagating said one or more updates to said copied cache line. 14. The one or more non-transitory storage media of claim 9 , further comprising: executing a trap operation if memory corruption has occurred. 15. The one or more non-transitory storage media of claim 14 , wherein executing a trap operation includes: informing an application that memory corruption has occurred. 16. The one or more non-transitory storage media of claim 14 , wherein executing a trap operation includes: terminating the memory operation. 17. A computer system, comprising: one or more computing nodes, wherein each computing node of the one or more computing nodes is configured to: in a memory of said each computing node, generate a copied cache line that is a copy of a source cache line on a source node belonging to said one or more computing nodes, wherein the said copied cache line comprises version bits and data bits, said version bits being set to a version value; generate a pointer that points to said copied cache line, said pointer having a pointer value that includes said version value; use said pointer to perform a memory operation on said copied cache line, wherein the memory operation includes: to compare the version value included in said pointer value to the version value to which the version bits of the copied cache line are set; and to determine whether said copied cache line has been corrupted based on the comparison. 18. The system of claim 17 , wherein to generate a copied cache line, each computing node of the one or more computing nodes is configured to: determine the version value of said source cache line; and set the version bits to the version value of the source cache line. 19. The system of claim 18 , wherein for each computing node of the one or more computing nodes, the version value is generated by a source node that is configured to generate the version value in response to a memory allocation request. 20. The system of claim 17 , wherein for each computing node of said one or more computing nodes, to compare the version value, each computing node is configured to: determine whether the copied cache line is invalid; and copy the source cache line to the copied cache line if the copied cache line is invalid. 21. The system of claim 17 , wherein for each computing node of said one or more computing nodes, each computing node is configured to: store in a store buffer one or more updates to the copied cache line that have not been propagated to said source cache line; and further in response to the determination that the copied cache line is invalid, propagate said one or more updates to said copied cache line. 22. The system of claim 17 , wherein for each computing of said one or more computing nodes, to execute a trap operation, each computing node is configured to execute a trap operation if memory corruption has occurred. 23. The system of claim 22 , wherein for each computing of node said one or more computing nodes, to execute a trap operation, each computing node is configured to inform an application that memory corruption has occurred. 24. The system of claim 22 , wherein to execute a trap operation, each computing node of said one or more computing is configured to terminate the memory operation.
by bit configuration check, e.g. of formats or tags · CPC title
in a multiprocessor or a multi-core unit (multiprocessors per se G06F15/80) · CPC title
in a memory management context, e.g. virtual memory or cache management (memory management G06F12/00; testing of static memory units G11C29/00) · CPC title
adopting a particular infrastructure · CPC title
Monitoring storage devices or systems · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.