Database Reference
In-Depth Information
Figure 8. Queries and propagations tables in 6P2P. Sample data illustrates instances of tables when a
query is propagated from a peer @P to a peer @P'
a cycle, i.e. @
P'
occurs in
q
1.
qryTrace
.
discoveryMayBeDone
(
q
1, @
P
) is
true
if the hypothesis of
Theorem 1 does not hold.
acceptedPropagation
(
q
1, @
P'
)$ is
true
if @
P'
accepts the propagation of
q
1
with the given parameters.
Algorithm 3
. (
query propagation
)
Input
: @
P
- a current peer; @
P
:
Peer
, @
P
:
Partners
, @
P
:
Queries
, @
P
:
Propagations
- tables in the peer's @
P
database.
Output
: New states of tables @
P
:
Queries
and @
P
:
Propagations
, if a partner peer
@
P'
accepts the propagation.
Method:
q
:= @
P
:
Queries
; //
a row describing the query thread to be propagated
if
q.
propagMode
= '
P2P
' {
q
1
:=
new
propagationParametersType
;
// used to prepare propagations to all partners
q
1.
propagId
:=
new
propagId
;
q
1.
qryThreadId
:=
q.qryThreadId
;
q
1.
qryId
:=
q.qryId
;
q
1.
qryTrace
:=
q.qryTrace
+ @
P
;
// the sequence of visited peers used to avoid cycles
q
1.
myPeer
:= @
P
; // the peer where the answer should be returned