Opportunistic block transmission with time constraints

US11121928B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11121928-B2
Application numberUS-202016814604-A
CountryUS
Kind codeB2
Filing dateMar 10, 2020
Priority dateMar 23, 2005
Publication dateSep 14, 2021
Grant dateSep 14, 2021

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.

A technique for determining a data window size allows a set of predicted blocks to be transmitted along with requested blocks. A stream enabled application executing in a virtual execution environment may use the blocks when needed.

First claim

Opening claim text (preview).

The invention claimed is: 1. A method comprising: receiving, from a virtual execution environment, a first request for a resource of a stream-enabled application executing in the virtual execution environment; translating the first request for the resource of the stream-enabled application into one or more block IDs of one or more blocks that includes the resource; determining, using the one or more block IDs, which blocks of the one or more blocks that includes the resource are present in a cache; in response to determining which blocks of the one or more blocks that includes the resource are present in the cache: locking the blocks that are present in the cache; transmitting a second request for the blocks that are not present in the cache to a streaming server; receiving the blocks that are not present in the cache from the streaming server; determining one or more predictively streamed blocks that are likely to be requested following the first request for the resource; transmitting the one or more blocks that includes the resource to the virtual execution environment; transmitting the one or more predictively streamed blocks to the virtual execution environment; storing the one or more predictively streamed blocks in the cache; unlocking the blocks that include the resource that were present in the cache. 2. The method of claim 1 , wherein storing the one or more predictively streamed blocks in the cache comprises replacing one or more blocks in the cache that are not needed for executing the stream-enabled application. 3. The method of claim 1 , further comprising aggregating the one or more predictively streamed blocks prior to transmitting the one or more predictively streamed blocks to the virtual execution environment. 4. The method of claim 1 , wherein the one or more predictively streamed blocks are transmitted in an amount of time that is less than or equal to an interactivity threshold. 5. The method of claim 4 , wherein the interactivity threshold is an amount of time that a user is willing to wait for the virtual execution environment to access the resource. 6. The method of claim 4 , wherein the interactivity threshold is adapted to limit an amount of time for transmitting blocks to preserve a quality of execution of the stream-enabled application. 7. The method of claim 1 , further comprising: receiving, from the virtual execution environment, a request for a second resource of the stream-enabled application; determining whether the one or more predictively streamed blocks in the cache at least partially satisfy the request for the second resource; in response to determining that the one or more predictively streamed blocks in the cache at least partially satisfy the request for the second resource, partially satisfying the request for the second resource using the one or more predictively streamed blocks in the cache; requesting, from the streaming server, one or more additional blocks to completely satisfy the request for the second resource; transmitting the one or more additional blocks to the virtual execution environment. 8. The method of claim 1 , wherein the determining the one or more predictively streamed blocks that are likely to be requested is based on an occurrence of an error condition in executing the stream-enabled application. 9. The method of claim 1 , wherein the one or more predictively streamed blocks are transmitted as part of an output buffer, the one or more predictively streamed blocks being organized in the output buffer according to a probability of each of the one or more predictively streamed blocks being requested. 10. The method of claim 9 , wherein the probability of each of the one or more predictively streamed blocks being requested is based on probability data in a logical block probability table. 11. A system comprising: a virtual execution environment; a cache; a block granularity caching engine; wherein, in operation, the block granularity caching engine: receives, from the virtual execution environment, a first request for a resource of a stream-enabled application executing in the virtual execution environment; translates the first request for the resource of the stream-enabled application into one or more block IDs of one or more blocks that includes the resource; determines, using the one or more block IDs, which blocks of the one or more blocks that includes the resource are present in the cache; in response to determining which blocks of the one or more blocks that includes the resource are present in the cache: locks the blocks that are present in the cache; transmits a second request for the blocks that are not present in the cache to a streaming server; receives the blocks that are not present in the cache from the streaming server; determines one or more predictively streamed blocks that are likely to be requested following the first request for the resource; transmits the one or more blocks that includes the resource to the virtual execution environment; transmits the one or more predictively streamed blocks to the virtual execution environment; stores the one or more predictively streamed blocks in the cache; unlocks the blocks that include the resource that were present in the cache. 12. The system of claim 11 , wherein storing the one or more predictively streamed blocks in the cache comprises replacing one or more blocks in the cache that are not needed for executing the stream-enabled application. 13. The system of claim 11 , wherein, in operation, the block granularity caching engine aggregates the one or more predictively streamed blocks prior to transmitting the one or more predictively streamed blocks to the virtual execution environment. 14. The system of claim 11 , wherein the one or more predictively streamed blocks are transmitted in an amount of time that is less than or equal to an interactivity threshold. 15. The system of claim 14 , wherein the interactivity threshold is an amount of time that a user is willing to wait for the virtual execution environment to access the resource. 16. The system of claim 14 , wherein the interactivity threshold is adapted to limit an amount of time for transmitting blocks to preserve a quality of execution of the stream-enabled application. 17. The system of claim 11 , wherein, in operation, the block granularity caching engine: receives, from the virtual execution environment, a request for a second resource of the stream-enabled application; determines whether the one or more predictively streamed blocks in the cache at least partially satisfy the request for the second resource; in response to determining that the one or more predictively streamed blocks in the cache at least partially satisfy the request for the second resource, partially satisfies the request for the second resource using the one or more predictively streamed blocks in the cache; requests, from the streaming server, one or more additional blocks to completely satisfy the request for the second resource; transmits the one or more additional blocks to the virtual execution environment. 18. The system of claim 11 , wherein the determining the one or more predictively streamed blocks that are likely to be requested is based on an occurrence of an error condition in executing the stream-enabled application. 19. The system of claim 11 , wherein the one or more predictively streamed blocks are transmitted as part of an output buffer, the one or more predictively streamed blocks being organized in the out

Assignees

Inventors

Classifications

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 US11121928B2 cover?
A technique for determining a data window size allows a set of predicted blocks to be transmitted along with requested blocks. A stream enabled application executing in a virtual execution environment may use the blocks when needed.
Who is the assignee on this patent?
Numecent Holdings Inc
What technology area does this patent fall under?
Primary CPC classification G06F12/0862. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Sep 14 2021 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 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).