NetQuery Infrastructure

NetQuery represents large networks, such as the Internet, within a single tuplespace. Such large tuplespaces are distributed across multiple administrative domains; this decomposition is highly scalable and facilitates incremental deployment by enabling network operators to independently deploy and provide NetQuery services. Every administrative domain operates one or more tuplespace servers, which process queries and store tuples and attribute/value pairs on behalf of the local domain. This design protects against denial of service and resource consumption: a malicious tuplespace server is limited to consuming a finite amount of storage in another tuplespace server.

Tuplespace architecture
A tuplespace is distributed across multiple administrative domains, and across multiple servers.

NetQuery servers transparently route queries to the storage location of the tuple. Every tuple ID embeds a home pointer, which names the tuplespace server that is responsible for keeping track of the tuple. Since the storage location of an attribute/value pair is determined by its originating domain, rather than the tuple that contains it, an attribute/value pair and its tuple can reside in different tuplespace servers. In such cases, the tuple contains a forwarding pointer to the location of the attribute/value pair, which the server uses to route accesses to the attribute/value pair to its storage location.

Query routing
Tuple format.
Tuplespace initialization
Tuplespace retrieval
Storing and retrieving. The attribute R2.is_rcc_consistent is stored in the tuplespace server operated by RCC; to process retrieve(R2.is_rcc_consistent), POP1 uses a forwarding pointer to find the location of the attribute.