SYNOPSIS
SyncTest -slice topo naming clauses
SyncTest -delete topo hash
SyncTest -stats topo hash
DESCRIPTION
Sync is a CCNx facility that allows CCN components to define collections of named data in Repositories, and automatically keeps their contents in synchrony with identically defined collections residing in neighboring Repositories. Sync is currently embedded in the Repository, but will be available separately in the future.
Sync is started automatically when Repo starts if the Repo configuration option, CCNS_ENABLE, is set to 1 (the default). See ccnr(1) for more information about Repo configuration options.
Associated with each Repository, there is a Sync Agent that is responsible for keeping collections in the local Repo up to date, and for responding to inquiries from remote Sync Agents for information about contents of collections in the local Repo. To do this, it builds a sync tree for each collection defined in the local node. Eacb sync tree represents the content and organization of a particular collection, and is updated whenever content with a matching name is added to the Repository. The definition of a sync tree is contained in a slice that is specified by an application in the local node.
Once a collection is defined, the Sync Agent automatically keeps it synchronized with collections in neighboring nodes (ccnd scope = 2) that are identically defined. The protocol for creating a new slice and the internal protocol used by Sync Agents for keeping collections in sync are described in CCNx Synchronization Protocols.
Sync currently has the following limitations:
-
Sync only works with the local C-based Repo; it is not yet available for separate use.
-
Sync only works with neighbors (ccnd scoping = 2).
-
The order in which names and content are synchronized is arbitrary.
-
All versions are included (not just the last).
-
Content deletions are not well supported.
-
Applications must agree exactly on the definition of collections.
-
ccnd must have compatible routing.
SyncTest (csrc/sync/SyncTest.c) is a tool for testing Sync that can also be used to define and delete slices in the current Repo, and to provide testing info. It can also serve as a model for how to create a slice (see sendSlice in SyncTest.c).
OPTIONS
- -slice topo naming clauses
-
Create a slice:
-
topo is the topological prefix used by Sync Agents for exchanging information about the collection.
-
naming is the common prefix for all names in the collection.
-
clauses is an optional filter that limits names in the collection. If omitted, all content names under naming are included.
-
- -delete topo hash
-
Delete a slice (but not the content):
-
topo is the topological prefix used by Sync Agents for exchanging information about the collection.
-
hash is the hash over the ccnb encoding of the configuration slice for the root.
-
- -stats topo hash
-
Produces a single-line text report that is useful for debugging and measurement.
-
topo is the topological prefix used by Sync Agents for exchanging information about the collection.
-
hash is the hash over the ccnb encoding of the configuration slice for the root.
-
EXIT STATUS
- 0
-
Success
- 1
-
Failure
AUTHOR
Russel Atkinson <atkinson@parc.com>