dispatcher internal-draft

15
Colony-dispatcher’s internal

Upload: motonobu-ichimura

Post on 20-Jun-2015

167 views

Category:

Technology


4 download

TRANSCRIPT

Page 1: Dispatcher internal-draft

Colony-dispatcher’s internal

Page 2: Dispatcher internal-draft

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

Page 3: Dispatcher internal-draft

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

Page 4: Dispatcher internal-draft

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.

Page 5: Dispatcher internal-draft

How to merge responses from different Swift clusters

Page 6: Dispatcher internal-draft

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

Page 7: Dispatcher internal-draft

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

Page 8: Dispatcher internal-draft

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

Page 9: Dispatcher internal-draft

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

Page 10: Dispatcher internal-draft

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

Page 11: Dispatcher internal-draft

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

Page 12: Dispatcher internal-draft

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

Page 13: Dispatcher internal-draft

Authentication in Merge mode

dispatcher

Swift0’s keystone

Swift1’s keystone

Auth_Token: AAAAAAAAAA__@@__BBBBBBBBBB

Auth_Token: BBBBBBBBBB

Auth_Token: AAAAAAAAAA

Page 14: Dispatcher internal-draft

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

Page 15: Dispatcher internal-draft

Swift0a

dispatcher

Dispatcher Function: Relay to the nearest

Swift0b

Confirmed the network closeness to swift proxies