IP Library Granted Patent US 9,002,790
Granted Patent B2
US 9,002,790 · App. 13/232,450 · Granted Apr 7, 2015

Hosted storage locking

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,002,790
App. No.
13/232,450
Granted
Apr 7, 2015
Kind
B2
Abstract

A hosted storage system receives a request from a requester to access a hosted resource. The hosted resource includes a binary large object. The hosted storage system providing hosted storage to a plurality of clients that are coupled to the hosted storage system. A copy of the hosted resource is created. A copy message including the copy of the hosted resource is provided to the requester. The hosted resource is maintained in the hosted storage system while the requester modifies the copy of the hosted resource. A message is received from the requester. The messages include a modified copy of the hosted resource. It is determined that the hosted resource has not been modified since the copy of the hosted resource was created. The hosted resource is replaced with the modified copy of the hosted resource.

Claims (96)

1. A method performed by one or more processors, the method comprising:

receiving, at a hosted storage system, a request from a requester to access a hosted resource, the hosted resource including a binary large object, the hosted storage system providing hosted storage to a plurality of clients that are coupled to the hosted storage system, wherein the hosted storage system comprises:

a datastore configured to store hosted resources;

a metadata store configured to store a plurality of metadata fields related to hosted resources;

creating a copy of the hosted resource;

providing a copy message comprising the copy of the hosted resource to the requester;

providing a version indicator of the hosted resource to the requester, the version indicator comprising i) a value being associated with a version of the hosted resource and ii) for each of the plurality of metadata fields associated with the hosted resource, a corresponding value being associated with a version of the corresponding metadata field;

maintaining the hosted resource in the hosted storage system after the requester receives the copy of the hosted resource;

receiving a message from the requester, the message i) indicating a modification of a metadata field of the hosted resource and ii) comprising the provided version indicator;

determining that the indicated metadata field of the hosted resource has not been modified since the copy of the hosted resource was created by comparing the value corresponding to the indicated metadata field of the provided version indicator with a current value corresponding to the indicated metadata field of a current version indicator of the hosted resource;

modifying, in response to the determining and in the hosted storage system, the indicated metadata field of the hosted resource according to the message received from the requester; and

wherein the request from a requester, the copy message, and the message from the requester are Hypertext Transfer Protocol or Hypertext Transfer Protocol Secure messages.

2. The method of claim 1 , wherein:

modifying comprises incrementing the value corresponding to the indicated metadata field.

3. The method of claim 1 , wherein comparing value corresponding to the indicated metadata field of the provided version indicator with a current value corresponding to the indicated metadata field of a current version indicator of the hosted resource comprises comparing only the value corresponding to the indicated metadata field of the provided version indicator with a current value corresponding to the indicated metadata field of a current version indicator of the hosted resource.

4. The method of claim 1 , wherein the determining and the replacing are performed as part of a single operation.

5. The method of claim 1 , the method further comprising:

receiving, at the hosted storage system and before the replacing, a second request from a second requester to access a hosted resource;

creating a second copy of the hosted resource;

providing the second copy of the hosted resource to the second requester for modification;

receiving a second modified copy of the hosted resource, the second modified copy created by the second requester;

determining that the hosted resource has been modified since the second copy of the hosted resource was created; and

providing, to the second requester, a modification rejection message.

6. The method of claim 5 , the method further comprising:

modifying a portion of the hosted resource; and

wherein the modification rejection message indicates a modified portion of the hosted resource.

7. A method performed by one or more processors, the method comprising:

receiving, at a hosted storage system, a request from a requester to access a hosted resource, the hosted resource including a binary large object, the hosted storage system providing hosted storage to a plurality of clients that are coupled to the hosted storage system, wherein the hosted storage system comprises:

a datastore configured to store hosted resources;

a metadata store configured to store a plurality of metadata fields related to hosted resources;

creating a copy of the hosted resource;

providing a copy message comprising the copy of the hosted resource to the requester;

providing a version indicator of the hosted resource to the requester, the version indicator comprising i) a value being associated with a version of the hosted resource and ii) for each of the plurality of metadata fields associated with the hosted resource, a corresponding value being associated with a version of the corresponding metadata field;

maintaining the hosted resource in the hosted storage system after the requester receives the copy of the hosted resource;

receiving a message from the requester, the message i) indicating a modification of a metadata field of the hosted resource and ii) comprising the provided version indicator;

determining that the indicated metadata field of the hosted resource has not been modified since the copy of the hosted resource was created by comparing the value corresponding to the indicated metadata field of the provided version indicator with a current value corresponding to the indicated metadata field of a current version indicator of the hosted resource;

modifying, in response to the determining and in the hosted storage system, the indicated metadata field of the hosted resource according to the message received from the requester; and

wherein the request from a requester, the copy message, and the message from the requester are Hypertext Transfer Protocol or Hypertext Transfer Protocol Secure messages.

8. A computer system comprising:

a hosted storage system comprising:

a datastore configured to store hosted resources;

a metadata store configured to store a plurality of metadata fields related to hosted resources

wherein the hosted storage system is configured to:

provide hosted storage to a plurality of clients that are coupled to the hosted storage system;

receive a request from a requester to access a hosted resource, the hosted resource including a binary large object;

create a copy of the hosted resource;

provide a copy message comprising the copy of the hosted resource to the requester;

provide a version indicator of the hosted resource to the requester, the version indicator comprising i) a value being associated with a version of the hosted resource and ii) for each of the plurality of metadata fields associated with the hosted resource, a corresponding value being associated with a version of the corresponding metadata field;

maintain the hosted resource in the hosted storage system after the requester receives the copy of the hosted resource;

receive a message from the requester, the message i) indicating a modification of a metadata field of the hosted resource and ii) comprising the provided version indicator; and

determine that the indicated metadata field of the hosted resource has not been modified since the copy of the hosted resource was created by comparing the value corresponding to the indicated metadata field of the provided version indicator with a current value corresponding to the indicated metadata field of a current version indicator of the hosted resource; and

modify, in response to the determining and in the hosted storage system, the indicated metadata field of the hosted resource according to the message received from the requester; and

a requestor configured to:

provide to the hosted storage system the request;

receive from the hosted storage system the copy message;

modify the copy of the hosted resource; and

provide to the hosted storage system the message; and

wherein the request from a requester, the copy message, and the message from the requester to access a hosted resource are Hypertext Transfer Protocol or Hypertext Transfer Protocol Secure messages.

9. The system of claim 8 , wherein:

modifying comprises incrementing the value corresponding to the indicated metadata field.

10. The system of claim 9 , wherein comparing value corresponding to the indicated metadata field of the provided version indicator with a current value corresponding to the indicated metadata field of a current version indicator of the hosted resource comprises comparing only the value corresponding to the indicated metadata field of the provided version indicator with a current value corresponding to the indicated metadata field of a current version indicator of the hosted resource.

11. The system of claim 8 , wherein the determining and the replacing are performed as part of a single operation.

12. The system of claim 8 , wherein the hosted storage system is further configured to:

receive, at the hosted storage system and before the replacing, a second request from a second requester to access a hosted resource;

create a second copy of the hosted resource;

provide the second copy of the hosted resource to the second requester for modification;

receive a second modified copy of the hosted resource,

determine that the hosted resource has been modified since the second copy of the hosted resource was created; and

provide, to the second requester, a modification rejection message; and

the system further comprising the second requester configured to:

provide to the hosted storage system the second request;

receive from the hosted storage system the copy of the hosted resource;

modify the copy of the hosted resource; and

provide to the hosted storage system the second modified copy of the hosted resource; and

receive the modification rejection message.

13. The system of claim 12 , wherein the hosted storage system is further configured to:

modify a portion of the hosted resource; and

wherein the modification rejection message indicates a modified portion of the hosted resource.

14. A system comprising:

a hosted storage system comprising:

a datastore configured to store hosted resources;

a metadata store configured to store a plurality of metadata fields related to hosted resources

wherein the hosted storage system is configured to:

receive a request from a client system to access a hosted resource, the hosted storage system providing hosted storage to a plurality of clients that are coupled to the hosted storage system;

create a copy of the hosted resource;

provide a copy message comprising the copy of the hosted resource and a version indicator of the hosted resource to the client system, the version indicator comprising comprising i) a value being associated with a version of the hosted resource and ii) for each of the plurality of metadata fields associated with the hosted resource, a corresponding value being associated with a version of the corresponding metadata field;

maintain the hosted resource after the client system modifies the copy of the hosted resource;

receive a message from the client system, the message i) indicating a modification of a metadata field of the hosted resource and ii) comprising the provided version indicator;

determine that the indicated metadata field of the hosted resource has not been modified since the copy of the hosted resource was created by comparing the value corresponding to the indicated metadata field of the provided version indicator with a current value corresponding to the indicated metadata field of a current version indicator of the hosted resource;

modify, in response to the determining that the hosted resource has not been modified since the copy of the hosted resource was created, the indicated metadata field of the hosted resource according to the message received from the requester; and

increment, in response to the determining and in the hosted storage system, the indicated metadata field of the version indicator;

a client system configured to:

send the request to access the hosted resource to the hosted storage system;

receive the copy message comprising the copy of the hosted resource and the version indicator of the hosted resource;

modify the copy of the hosted resource to generate the modified copy of hosted resource; and

send the message comprising a modified copy of the hosted resource and the provided version indicator to the hosted storage system.

Assignments (2)
CHANGE OF NAME Recorded Oct 2, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044334/0466 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 15, 2012
From: AIKAS, ERKKI VILLE JUHANI; ERB, DAVID
To: GOOGLE INC.
Reel/Frame 028380/0930 →