dispatcher internal-draft
TRANSCRIPT
Colony-dispatcher’s internal
Swift0
Swift1
dispatcher http://swift0/v1.0/AUTH_test
http://swift1/v1.0/AUTH_test
http://dispatcher/swift0/v1.0/AUTH_test
Dispatcher Function: Selective Relay
Swift0
Swift1
dispatcher http://swift0/v1.0/AUTH_test
http://swift1/v1.0/AUTH_test
http://dispatcher/swift1/v1.0/AUTH_test
Dispatcher Function: Selective Relay
Swift0
Swift1
dispatcher http://swift0/v1.0/AUTH_test
http://swift1/v1.0/AUTH_test
http://dispatcher/merged/v1.0/AUTH_test
Dispatcher Function: Selective Relay
Merge the results of two or more swift systems.
How to merge responses from different Swift clusters
Retrieve Account Metadata in Merge mode
X-Account-Byte-Used: 1800(600 + 1200) X-Account-Container-Count: 6 (3 +3) X-Account-Object-Count: 18 (6 + 12)
swift0 X-Account-Byte-Used: 600 X-Account-Container-Count: 3 X-Account-Object-Count: 6
swift1 X-Account-Byte-Used: 1200 X-Account-Container-Count: 3 X-Account-Object-Count: 12
HEAD /merged/v1.0/AUTH_test
Merged
sw1:Cont
0
sw1:Cont
1
sw1:Cont
2
sw0:Cont
0
sw0:Cont
1
sw0:Cont
2
Swift0 Cont
0 Cont
1 Cont
2
Swift1 Cont
0 Cont
1 Cont
2
List Containers in Merge mode
sw0:Cont0 sw0:Cont1 sw0:Cont2 sw1:Cont0 sw1:Cont1 sw1:Cont2
• Corresponds to the output format plain text, json, the XML
• Corresponds to the parameter "marker"
Prefix to indicate the name of the swift system is given a container.
GET /merged/v1.0/AUTH_test
Merged
sw1:Cont
0
sw1:Cont
1
sw1:Cont
2
sw0:Cont
0
sw0:Cont
1
sw0:Cont
2
Swift0 Cont
0 Cont
1 Cont
2
Swift1 Cont
0 Cont
1 Cont
2
List Objects in Merge mode
Receive a container with a prefix, which returns a list of objects in the container specified on the swift system indicated by the prefix
GET /merged/v1.0/AUTH_test/sw1:Cont2
Merged
sw1:Cont
0
sw1:Cont
1
sw1:Cont
2
sw0:Cont
0
sw0:Cont
1
sw0:Cont
2
Swift0 Cont
0 Cont
1 Cont
2
Swift1 Cont
0 Cont
1 Cont
2
Operate Container in Merge mode
Receive a container with a prefix, on the swift system indicated by prefix, to manipulate the container
PUT /merged/v1.0/AUTH_test/sw1:Cont2
DELETE /merged/v1.0/AUTH_test/sw1:Cont2
HEAD /merged/v1.0/AUTH_test/sw1:Cont2
POST /merged/v1.0/AUTH_test/sw1:Cont2
Merged
sw1:Cont
0
sw1:Cont
1
sw1:Cont
2
sw0:Cont
0
sw0:Cont
1
sw0:Cont
2
Swift0 Cont
0 Cont
1 Cont
2
Swift1 Cont
0 Cont
1 Cont
2
Operate Object in Merge mode
Receive a container with a prefix, to manipulate the objects in the container specified on the swift system indicated by the prefix.
Merged
sw1:Cont
0
sw1:Cont
1
sw1:Cont
2
sw0:Cont
0
sw0:Cont
1
sw0:Cont
2
Swift0 Cont
0 Cont
1 Cont
2
Swift1 Cont
0 Cont
1 Cont
2
GET /merged/v1.0/AUTH_test/sw1:Cont2/obj0
PUT /merged/v1.0/AUTH_test/sw1:Cont2/obj0
DELETE /merged/v1.0/AUTH_test/sw1:Cont2/obj0
HEAD /merged/v1.0/AUTH_test/sw1:Cont2/obj0
POST /merged/v1.0/AUTH_test/sw1:Cont2/obj0
obj
Copy Object in Merge mode
COPY
COPY /merged/v1.0/AUTH_test/sw0:Cont2/obj0 X-Copy-From: /sw0:Cont1/obj0 Content-Length: 0
Merged
sw1:Cont
0
sw1:Cont
1
sw1:Cont
2
sw0:Cont
0
sw0:Cont
1
sw0:Cont
2
Swift0 Cont
0 Cont
1 Cont
2
Swift1 Cont
0 Cont
1 Cont
2
Copy between containers of the same prefix is the same as "Copy Object" normal.
obj
dispatcher
Swift0 Cont
0 Cont
1 Cont
2
Swift1 Cont
0 Cont
1 Cont
2
Copy Object in Merge mode
GET
PUT
COPY /merged/v1.0/AUTH_test/sw1:Cont2/obj0 X-Copy-From: /sw0:Cont1/obj0 Content-Length: 0
In the copy of containers between different prefix, make a GET of objects inside dispatcher, perform the PUT to another system.
If the object that exceeds a 5G, the upload process is performed internally divided.
obj
obj
Authentication in Merge mode
dispatcher
Swift0’s keystone
Swift1’s keystone
Auth_Token: AAAAAAAAAA__@@__BBBBBBBBBB
Auth_Token: BBBBBBBBBB
Auth_Token: AAAAAAAAAA
Swift0
dispatcher
Dispatcher Function: Object Caching
CacheServer (squid)
Through the cache server when GET objects. From the second time, GET the object from the cache server.
obj
obj
Swift0a
dispatcher
Dispatcher Function: Relay to the nearest
Swift0b
Confirmed the network closeness to swift proxies