Revision history [back]

Arun,

I am mentioning swift GET & PUT workflow i hope it will be helpful

Upload (PUT)

A client uses the RESTful API to make an HTTP request to PUT an object into an existing container. After receiving the PUT request, Swift determines where the data is going to go. To do this, the account name, container name, and object name are all used to determine the partition where this object should live. Then a lookup in the ring determines which storage nodes contain the partitions in question.

Then the data is sent to each storage node where it is placed in the appropriate partition. A quorum is required — at least two of the three writes must be successful before the client is notified that the upload was successful.

Downloads (GET)

A request comes in for an account/container/object. Using the same consistent hashing, the partition name is generated. A lookup in the ring reveals which storage nodes contain that partition. A request is made to one of the storage nodes to fetch the object and if that fails, requests are made to the other nodes.