Technologies for reducing latency variation of stored data object requests

US10659532B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10659532-B2
Application numberUS-201514866893-A
CountryUS
Kind codeB2
Filing dateSep 26, 2015
Priority dateSep 26, 2015
Publication dateMay 19, 2020
Grant dateMay 19, 2020

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Technologies for reducing latency variation of stored data object requests include a proxy computing node communicatively coupled to a plurality of storage nodes. The proxy computing node is configured to determine whether to chunk a data object corresponding to a data object request received by the proxy computing node. Accordingly, the proxy computing node is configured to obtain a retrieval latency of the storage node and determine whether to chunk the data object based on the retrieval latency. The proxy computing node is further configured to, subsequent to a determination to chunk the data object, determine a chunk size (i.e., a portion of the data object) to be retrieved from the storage node and a remaining size of the data object at the storage node after the portion of the data object corresponding to the chunk request is received. Other embodiments are described and claimed.

First claim

Opening claim text (preview).

The invention claimed is: 1. A proxy computing node for managing data object requests in a storage node cluster, the proxy computing node comprising: one or more processors; and one or more data storage devices having stored therein a plurality of instructions that, when executed by the one or more processors, cause the proxy computing node to: receive a data object request from a client computing node, wherein the data object request identifies a data object; identify, based on the data object request, a storage node of a plurality of storage nodes on which the data object is stored; obtain an exponentially weighted moving value indicative of a latency of the storage node, wherein the latency is indicative of a temporal latency for retrieving data from the storage node, and wherein the exponentially weighted moving value is indicative of a per-byte-latency of the storage node and the exponentially weighted moving value is indicative of a recent request latency of the storage node; determine whether to chunk the data object based on the exponentially weighted moving value of the storage node, wherein to determine whether to chunk the data object comprises to determine whether a first product of the per-byte latency and a total size of the data object is greater than a second product of the recent request latency and a predetermined chunk trigger value; determine, in response to a determination to chunk the data object, a chunk size of the data object to request from the storage node as a function of the exponentially weighted moving value; generate a chunk request to retrieve, from the storage node, the portion of the data object based on the chunk size; and transmit the chunk request to the storage node. 2. The proxy computing node of claim 1 , wherein the plurality of instructions further cause the proxy computing node to: determine, subsequent to having transmitted the chunk request to the storage node, whether the requested chunk was received from the storage node; and determine a request completion time based on a duration of time between having transmitted the chunk request and having received the requested chunk. 3. The proxy computing node of claim 2 , wherein the plurality of instructions further cause the proxy computing node to calculate an updated per-byte-latency for the data object request as a function of a weighted parameter, the request completion time, the total size of the data object, and a last calculated per-byte-latency of the storage node, wherein the weighted parameter defines a value between 0 and 1 that is configured to adjust an influence of previously calculated request latencies. 4. The proxy computing node of claim 2 , wherein to determine the request completion time comprises to (i) start, prior to transmission of the chunk request to the storage node, a timer of the proxy computing node, (ii) stop, in response to a determination that the requested chunk was received, the timer, and (iii) determine the request completion time based on a value of the timer. 5. The proxy computing node of claim 1 , wherein the plurality of instructions further cause the proxy computing node to: determine a remaining size of the data object at the storage node after the portion of the data object corresponding to the chunk request is received; generate a data object remainder request based on the remaining size; and place the data object remainder request at a tail of a request queue of the proxy computing node, wherein the request queue defines a queue of data object requests that correspond to the storage node from which the data object is to be retrieved. 6. The proxy computing node of claim 1 , wherein the plurality of instructions further cause the proxy computing node to: place the data object request at a tail of a request queue of the proxy computing node, wherein the request queue defines a queue of data object requests that correspond to the storage node from which the data object is to be retrieved; and determine whether the data object request is at a head of the request queue, wherein to obtain the exponentially weighted moving value of the storage node comprises to obtain the exponentially weighted moving value of the storage node subsequent to a determination that the data object request is at the head of the request queue. 7. One or more non-transitory, computer-readable storage media comprising a plurality of instructions stored thereon that in response to being executed cause the proxy computing node to: receive a data object request from a client computing node, wherein the data object request identifies a data object; identify, based on the data object request, a storage node of a plurality of storage nodes on which the data object is stored; obtain an exponentially weighted moving value indicative of a latency of the storage node, wherein the latency is indicative of a temporal latency for retrieving data from the storage node and wherein the exponentially weighted moving value is indicative of a per-byte-latency of the storage node and the exponentially weighted moving value is indicative of a recent request latency of the storage node; determine whether to chunk the data object based on the exponentially weighted moving value of the storage node, wherein to determine whether to chunk the data object comprises to determine whether a first product of the per-byte latency and a total size of the data object is greater than a second product of the recent request latency and a predetermined chunk trigger value; determine, in response to a determination to chunk the data object, a chunk size of the data object to request from the storage node as a function of the exponentially weighted moving value; generate a chunk request to retrieve, from the storage node, the portion of the data object based on the chunk size; and transmit the chunk request to the storage node. 8. The one or more non-transitory, computer-readable storage media of claim 7 , wherein the plurality of instructions further cause the proxy computing node to: determine, subsequent to having transmitted the chunk request to the storage node, whether the requested chunk was received from the storage node; and determine a request completion time based on a duration of time between having transmitted the chunk request and having received the requested chunk. 9. The one or more non-transitory, computer-readable storage media of claim 8 , wherein the plurality of instructions further cause the proxy computing node to calculate an updated per-byte-latency for the data object request as a function of a weighted parameter, the request completion time, the total size of the data object, and a last calculated per-byte-latency of the storage node, wherein the weighted parameter defines a value between 0 and 1 that is configured to adjust an influence of previously calculated request latencies. 10. The one or more non-transitory, computer-readable storage media of claim 8 , wherein to determine the request completion time comprises to (i) start, prior to transmission of the chunk request to the storage node, a timer of the proxy computing node, (ii) stop, in response to a determination that the requested chunk was received, the timer, and (iii) determine the request completion time based on a value of the timer. 11. The one or more non-transitory, computer-readable storage media of claim 7 , wherein the plurality of instructions further cause the proxy computing node to: determine a remaining size of the data object at the storage node after the portion of the data object corresponding to the chunk request is received; generate a data object remainder request based on the remaining size; and

Assignees

Inventors

Classifications

  • based on parameters of servers, e.g. available memory or workload (monitoring of computer activity G06F11/30) · CPC title

  • Network utilisation, e.g. volume of load or congestion level · CPC title

  • for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS] · CPC title

  • Electricity · mapped topic

  • Delays · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10659532B2 cover?
Technologies for reducing latency variation of stored data object requests include a proxy computing node communicatively coupled to a plurality of storage nodes. The proxy computing node is configured to determine whether to chunk a data object corresponding to a data object request received by the proxy computing node. Accordingly, the proxy computing node is configured to obtain a retrieval …
Who is the assignee on this patent?
Raghunath Arun, Mesnier Michael P, Intel Corp
What technology area does this patent fall under?
Primary CPC classification H04L67/1097. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue May 19 2020 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 7 related publications on this page (citations in our corpus or others sharing the same primary CPC).