Connection balancing using attempt counts at distributed storage systems
US-9602424-B1 · Mar 21, 2017 · US
US9672494B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9672494-B2 |
| Application number | US-201414553050-A |
| Country | US |
| Kind code | B2 |
| Filing date | Nov 25, 2014 |
| Priority date | Nov 25, 2014 |
| Publication date | Jun 6, 2017 |
| Grant date | Jun 6, 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.
In an example embodiment, a request for an enqueue lock for a first piece of data is received from a client application. At an enqueue server separate from an application server instance, a light-weight enqueue session is then created, including generating a light-weight enqueue session identification for the light-weight enqueue session. An enqueue lock for the first piece of data is stored in the light-weight enqueue session. The light-weight enqueue session identification is then sent to the client application. In response to a detection that a session between the client application and the application server instance has been terminated, all enqueue locks in the light-weight enqueue session are deleted and the light-weight enqueue session is deleted.
Opening claim text (preview).
What is claimed is: 1. A method comprising: receiving, from a client application, a request for an enqueue lock for a first piece of data; creating, by an enqueue server separate from an application server instance, a light-weight enqueue session at the enqueue server for managing lifecycle of enqueue locks, the creating including generating a light-weight enqueue session identification for the light-weight enqueue session; storing, in the light-weight enqueue session, the enqueue lock for the first piece of data; sending the light-weight enqueue session identification to the client application; receiving, from the client application, a request for an enqueue lock for a second piece of data, the request for the enqueue lock for the second piece of data including the light-weight enqueue session identification; storing, in the light-weight enqueue session, the enqueue lock for the second piece of data; detecting that a session between the client application and the application server instance has been terminated; and deleting all enqueue locks in the light-weight enqueue session and deleting the light-weight enqueue session in response to the detection that the session between the client application and the application server instance has been terminated. 2. The method of claim 1 , wherein the receiving, from the client application, the request for the enqueue lock for the first piece of data comprises receiving the request for the enqueue lock for the first piece of data via the application server instance. 3. The method of claim 1 , wherein the receiving, from the client application, the request for the enqueue lock for the second piece of data comprises receiving the request for the enqueue lock for the second piece of data via the application server instance. 4. The method of claim 1 , wherein the sending the light-weight enqueue session identification to the client application comprises sending the light-weight enqueue session identification to the client application via the application server instance. 5. The method of claim 1 , wherein the detecting that the session between the client application and the application server instance has been terminated comprises receiving notification that a WebSocket connection between the client application and the application server instance has been terminated. 6. The method of claim 1 , wherein the detecting that the session between the client application and the application server instance has been terminated comprises determining that a time elapsed since a last request from the client application including the light-weight enqueue session identification was received exceeds a timeout value. 7. The method of claim 1 , wherein the detecting that the session between the client application and the application server instance has been terminated comprises receiving notification that a WebSocket connection between the client application and the application server instance has been terminated and also determining that a time elapsed since the WebSocket connection has been terminated and no new WebSocket connection including the light-weight enqueue session identification has been established. 8. The method of claim 1 , wherein the enqueue lock is owned by a database entry. 9. A system comprising: an application server instance; and an enqueue server; the application server instance comprising one or more processors and configured to: receive, from a client application, a request for an enqueue lock for a first piece of data; send the request for the enqueue lock for the first piece of data to the enqueue server; the enqueue server configured to: create a light-weight enqueue session for managing lifecycle of enqueue locks, the creating including generating a light-weight enqueue session identification for the light-weight enqueue session; store, in the light-weight enqueue session, the enqueue lock for the first piece of data; send the light-weight enqueue session identification to the application server instance; the application server instance further configured to: send the light-weight enqueue session identification to the client application; receive, from the client application, a request for an enqueue lock for a second piece of data, the request for the enqueue lock for the second piece of data including the light-weight enqueue session identification; send the request for the enqueue lock for the second piece of data to the enqueue server; the enqueue server further configured to: store, in the light-weight enqueue session, the enqueue lock for the second piece of data; detect that a session between the client application and the application server instance has been terminated; and delete all enqueue locks in the light-weight enqueue session and delete the light-weight enqueue session in response to the detection that the session between the client application and the application server instance has been terminated. 10. The system of claim 9 , wherein the application server instance is an index server in an in-memory database management system. 11. The system of claim 9 , wherein the detecting that the session between the client application and the application server instance has been terminated comprises receiving notification that a WebSocket connection between the client application and the application server instance has been terminated. 12. The system of claim 9 , wherein the detecting that the session between the client application and the application server instance has been terminated comprises determining that a time elapsed since a last request from the client application including the light-weight enqueue session identification was received exceeds a timeout value. 13. The system of claim 9 , wherein the detecting that the session between the client application and the application server instance has been terminated comprises receiving notification that a WebSocket connection between the client application and the application server instance has been terminated and also determining that a time elapsed since the WebSocket connection has been terminated and no new WebSocket connection including the light-weight enqueue session identification has been established. 14. The system of claim 13 , wherein the application server instance and the enqueue server operate on the same application server. 15. A non-transitory machine-readable storage medium comprising instructions, which when implemented by one or more machines, cause the one or more machines to perform operations comprising: receiving, from a client application, a request for an enqueue lock for a first piece of data; creating, by an enqueue server separate from an application server instance, a light-weight enqueue session at the enqueue server for managing lifecycle of enqueue locks, the creating including generating a light-weight enqueue session identification for the light-weight enqueue session; storing, in the light-weight enqueue session, the enqueue lock for the first piece of data; sending the light-weight enqueue session identification to the client application; receiving, from the client application, a request for an enqueue lock for a second piece of data, the request for the enqueue lock for the second piece of data including the light-weight enqueue session identification; storing, in the light-weight enqueue session, the enqueue lock for the second piece of data; detecting that a session between the client application and the application server instance has been terminated; and deleting all enqueue locks in the light-weight enqueue session and deleting t
Locking methods, e.g. distributed locking or locking implementation details · CPC title
Office automation; Time management · CPC title
Transaction processing · CPC title
Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding · CPC title
Session management (for real-time applications in data packet communications networks H04L65/1066) · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.