Comp 243: Distributed Systems
Distributed Search Protocol
Project Demonstration Page
Protocol Codes and Expressions
- %
- Symbol as first character of resource indicates that
server should interpret the resource string as a search
request/expression.
- hostname1@hostname2@hostname3
- Notation for replicated servers (clones)
- %=keyword&hops
- Iterative, distributed search for "keyword". Hops is
number of iterations. (Hops == 0 returns local data and references only)
example: %=blue&2
result: will return local data, data from 2 rounds of
iteration and unused (3rd iteration) references.
- %+keyword@hostname:port&hops
%+keyword@hostname:port@hostname:port&hops
- Iterative, distibuted addition to (key-hosts) reference tables.
example: %+moon@baldhead.cs.unc.edu:80&3
result: will associate baldhead with "moon" locally and
submit local add (&0) directives through 3 iterations
- %-keyword@hostname:port&hops
%-keyword@hostname:port@hostname:port&hops
- Iterative, distibuted deletion from (key-hosts) reference tables.
example: %-hope@volta.cs.unc.edu:80&1
result: will remove association of volta with "hope" locally and
submit local delete (&0) directives through 1 iteration
- %?keyword
- Request for locally stored references (host associations) to "keyword"
example: %?sea
result: will return hostnames associated with "sea" in
local reference table
- %$keyword
- Request for locally stored "black box" data which contains "keyword"
example: %$blue
result: will return local data that contains "blue"
- %*
- Request for local (reference table) update file. Used
during synchronization among replicated (clone) machines.
example: %*
result: will return update file only.
- Local Search
- a.
http://tetra.cs.unc.edu:7000/%=sea&0
- b.
http://tetra.cs.unc.edu:7000/%=moon&0
- c.
http://tetra.cs.unc.edu:7000/%=wind&0
- Local Add and Delete
- a.
http://tetra.cs.unc.edu:7000/%+moon@discus.cs.unc.edu:7000&0
http://tetra.cs.unc.edu:7000/%+moon@land.cs.unc.edu:7000&0
http://tetra.cs.unc.edu:7000/%-moon@discus.cs.unc.edu:7000&0
- http://tetra.cs.unc.edu:7000/%=moon&0
- Type "SYNC" so change can be propagated!! reload
- b.
http://tetra.cs.unc.edu:7000/%-moon@land.cs.unc.edu:7000&0
- http://tetra.cs.unc.edu:7000/%=moon&0
- Type "SYNC" so change can be propagated!!
- Propagated Search from Different Servers
- a.
http://tetra.cs.unc.edu:7000/%=moon&2
- b.
http://neumann.cs.unc.edu:7000/%=moon&2
- c. Sequence of hops
http://tetra.cs.unc.edu:7000/%=blue&0
http://tetra.cs.unc.edu:7000/%=blue&1
http://tetra.cs.unc.edu:7000/%=blue&2
http://tetra.cs.unc.edu:7000/%=blue&3
http://tetra.cs.unc.edu:7000/%=blue&4
- Distributed Add and Delete
- pre: http://tetra.cs.unc.edu:7000/%=hope&2
- a.
http://tetra.cs.unc.edu:7000/%+hope@tetra.cs.unc.edu:7000&2
http://tetra.cs.unc.edu:7000/%+hope@neumann.cs.unc.edu:7000&2
http://tetra.cs.unc.edu:7000/%-hope@tetra.cs.unc.edu:7000&2
- Click, Type "SYNC"(on discus, land, hopper). Not on tetra for comparison.
http://discus.cs.unc.edu:7000/%?hope
http://land.cs.unc.edu:7000/%?hope
http://tetra.cs.unc.edu:7000/%?hope
- b.
http://tetra.cs.unc.edu:7000/%-hope@neumann.cs.unc.edu:7000&2
- Click, Type "SYNC"(on discus, land, hopper, tetra)
http://discus.cs.unc.edu:7000/%?hope
http://land.cs.unc.edu:7000/%?hope
http://tetra.cs.unc.edu:7000/%?hope
- Clone Testing
- a. Search: run twice (with and without volta)
- http://tetra.cs.unc.edu:7000/%=moon&1
- b. Add and Delete
http://tesla.cs.unc.edu:7000/%+moon@lumiere.cs.unc.edu:7000&0
http://tesla.cs.unc.edu:7000/%+moon@land.cs.unc.edu:7000&0
http://tesla.cs.unc.edu:7000/%-moon@lumiere.cs.unc.edu:7000&0
- Type "SYNC" so change can be propagated!! reload
- http://tesla.cs.unc.edu:7000/%=moon&0
- http://volta.cs.unc.edu:7000/%=moon&0
- http://angel.cs.unc.edu:7000/%=moon&0
- c. Reconstruct
http://tesla.cs.unc.edu:7000/%-moon@land.cs.unc.edu:7000&0
- Type "SYNC" so change can be propagated!!
- http://tesla.cs.unc.edu:7000/%=moon&0
- http://volta.cs.unc.edu:7000/%=moon&0
- http://angel.cs.unc.edu:7000/%=moon&0
- Fault Tolerance
- a.
http://tetra.cs.unc.edu:7000/%=moon&2
- KILL Lyrae, so no localdata from LYRAE, but all else same
- b.
http://tetra.cs.unc.edu:7000/%=moon&1
http://volta.cs.unc.edu:7000/%=moon&1
- KILL tetra, so first wont work, than try second.
- c.
http://tetra.cs.unc.edu:7000/%=moon&2
- KILL volta, so need to connect to angel.
- d.
http://tetra.cs.unc.edu:7000/%+sea@land.cs.unc.edu:7000&1
- Type "SYNC" on clones so change can be propagated!! reload
- http://tesla.cs.unc.edu:7000/%=sea&0
- http://volta.cs.unc.edu:7000/%=sea&0
- http://angel.cs.unc.edu:7000/%=sea&0
- e.
http://tetra.cs.unc.edu:7000/%+sea@discus.cs.unc.edu:7000&1
- Same as above, just connection is bad.
tests on neumann for Scott
http://neumann.cs.unc.edu:7000/%=blue&3
http://neumann.cs.unc.edu:7000/%+sea@neumann.cs.unc.edu:7000&0
http://neumann.cs.unc.edu:7000/%-moon@neumann.cs.unc.edu:7000&3
http://neumann.cs.unc.edu:7000/%?hope
http://neumann.cs.unc.edu:7000/%$sea
http://neumann.cs.unc.edu:7000/%*
tests on volta for Monica
http://volta.cs.unc.edu:7000/%=blue&3
http://volta.cs.unc.edu:7000/%+sea@volta.cs.unc.edu:7000&0
http://volta.cs.unc.edu:7000/%-moon@volta.cs.unc.edu:7000&3
http://volta.cs.unc.edu:7000/%?hope
http://volta.cs.unc.edu:7000/%$sea
http://volta.cs.unc.edu:7000/%*