Scalable Information-Sharing Network Management
Scalable Information-Sharing Network Management
number of messages to keep the system updated when a node joins or leave the network, where
is the number of nodes in the network.
3.1 Setup
A Chord system is a network of no more than
. Each node
is assigned an ID in the range
. In other
words, the th entry points to
.
Because of consistent hashing, nodes can join and leave while neighboring nodes update
themselves to hand over data or swallow the unclaimed data. This allows for local, quiet joins
and leaves. Both of these benefits are advantageous to scaling in Chord. With a fast lookup and
the flexibility to add nodes, it is easy to add more to a Chord system and have it maintain its
performance.
The downside to Chord, as with all single DHTs, though, is that there will come a point
when there are just too many nodes to handle. Even if Chord is well-adapted to scalability, a
single Chord system was not designed to be able to handle all the data on the internet. Similarly,
it was not designed to hold every piece of information needed for network management. Thus, in
Chapter 5 we explore nested Chord systems and its efficiency at dealing with large scale data
that will be needed for an information-centric network management PSIRP system.
27
4 A More Detailed Look into PSIRP
PSIRP uses a publish-subscribe paradigm to create and find information while using an inter-
domain architecture for scaling purposes. In order for this to work, PSIRP employs a few
invariants [13]. In this chapter we will discuss these invariants and how PSIRP uses them to
achieve its model. In particular, we will focus on the rendezvous aspect of PSIRP and how it
navigates through scopes.
4.1 Invariants
PSIRP uses five invariants to build the model:
1. Information objects are identified with self-generated flat label identifiers called
Rendezvous Identifiers, or RIds.
2. Scopes are information objects with special properties. Specifically, scopes are used to
hierarchically categorize objects. They may contain both information objects and other
scopes (Figure 4). Each information object belongs to at least one scope. One scope does
not need to belong to another scope, but it can also belong to one or more scopes. The
scopes also are identified with flat label identifiers called Scope identifiers, or SIds. Both
RIds and SIds are statistically unique within the scopes they are in. In Figure 4, the
leftmost information object has the identifiers and
. Each system has its own root scope. While the root scope is not explicitly
identified, it is understood that there is such a scope that encapsulates all the top level
scopes inside the system. This is represented by each object's fully qualified identifier
28
having a leading slash in its names.
Figure 4. A possible layout of scopes and information objects. The leftmost item has the identifiers
/SId1/SId3/RId1 and /SId1/SId4/RId1. Similarly, the rightmost item has the identifier /SId2/RId3.
3. PSIRP uses a publish-subscribe service model. Scopes are published into the root scope
or sub-scopes. Subscribers may subscribe to any scope they desire. By subscribing to a
scope, users get notified when an object gets added in the scope. When a scope is
published, subscribers to that scope's parent scope are notified of the event. Unpublishing
a scope involves removing all references to that scope. A publisher advertises
information into scopes. This essentially places an information object into a scope. A
subscriber then subscribes to a scope or information and can subsequently unsubscribe.
Finally, when the publisher wants to publish some data, the publish action publishes the
data to the subscribers of that information.
4. Disseminating information in a scope is separated into three functions rendezvous,
topology management and formation, and forwarding. Rendezvous is the process of
locating the information desired by matching publisher information and subscriber
29
interests. The result is then passed on to the topology management and formation
function, which finds a topology to relay the information to the subscriber. Forwarding is
then used to physically send the information to the subscriber. The behavior of these
functions is determined by the last invariant, the dissemination strategy.
5. Each scope has a dissemination strategy. This defines how the scope transfers
information.
4.2 Rendezvous
As explained above, when the system needs to match publisher information and subscriber
interests, the rendezvous function is called. The Rendezvous function varies depending on the
dissemination strategy involved. For example, for dissemination within a scope, the rendezvous
function simply follows the hierarchical path of the information object's identifier to locate the
object and disseminates the object. However, when a scope is looking for something outside its
scope, the Rendezvous function may need to use its Rendezvous Point (RP). Each scope belongs
to one RP. In order to find some information, the scope asks the RP. The RP then locates the
scope containing the matching information needed.
The rendezvous function is important because it is the stage we focus on when analyzing
PSIRP. In order to match information to interests, this function essentially needs to search
through many scopes to find correct scope. To help the search process, the scopes are organized
into Canon DHTs for faster lookups. Because PSIRP uses its Canon DHTs like Chord DHTs
instead of taking advantage of Canon, we treat it as if PSIRP were using Chord.
30
5 Analysis on Chord
The method PSIRP uses to find a needle in a haystack is the Chord system and its way of finding
information. As described in Chapter 3, Chord provides quick lookup by drastically cutting down
the search space every time it hops to a different server on the system. Chord can also handle
some amount of scaling because the process of adding servers is localized, making it easy for the
system to grow. Because of such advantages, it is important to study the use of Chord specific to
PSIRP and the effects scaling has on it. Because PSIRP must handle an enormous amount of data,
we looked at nested Chord systems and compared their scalabilities to that of the normal Chord
system. In a nested Chord system, the outermost layer is the only layer that contains the needle.
The inner layers all contain entries that direct the system to a Chord ring (i.e., one single Chord
entity) in the next layer. Each layer consists of multiple Chord rings, and each server in the
previous layer points to only one Chord ring in the next layer. In this fashion, a nested, layered
Chord system is formed.
In the next sections, we analyze the runtimes for layered Chord systems and discuss the
results as well as conclusions we can draw from them.
5.1 A Simple Nested Chord System
We examined the effects of the number of servers in each layer of a Chord system on the number
of hops and overall runtime of the Chord system. To get a better understanding of how layered
Chord systems work, we chose the example of having a system where one entry represented one
person in the world. All the calculations were made in powers of two for simplification. Four
billion people in the world meant we needed to have a system that stored about
entries. We
also assumed each Chord ring to have a fixed size of
. All of the
entries were directly in the single ring and no entries were indirections to other Chord rings. As a
32
reminder, the number of hops in a Chord system is , where is the number of servers
in the system. Thus, the number of hops in this case was
.
Figure 6. The Chord system with every entry in one ring.
Second, we looked at the case where the Chord system contained two layers (Figure 7).
With two layers, the first layer (the innermost layer) was dedicated solely to indirection to the
second layer. Like the single layer case, the second layer needed to contain
servers in total.
As a result, the first layer had
entries.
However, unlike the single layer case, these servers were not all in the same ring because each
server in the first layer pointed to a different Chord ring. This led to
servers in the
top layer. Using these numbers, we found that the number of hops in each layer was
, or
. As expected, this is less than the number of hops in a single Chord ring system as
mentioned earlier because the number of servers in a ring decreased. Each layer also had a
lookup time of , which made each layer have the runtime of . With the added
second layer, the total number of hops and lookup time became . The
extra network hop also added into the runtime equation. The final runtime became
. The total number of servers was
.
33
Figure 7. The Chord system with two layers.
Last, we looked at the other extreme case where there was only one server per Chord ring
(Figure 8). This case required all the time to be spent hopping between servers in different Chord
rings and systems. The only thing that happened at each layer was the lookup into that layer's
single server for the next Chord ring to go to. The runtime for such a system was . The
total number of servers was
.
Figure 8. The Chord system with only 1 server per ring
34
We present our findings for the runtimes and number of servers in the three cases in
Table 2. The table suggests that if we only look at runtimes, the optimal Chord system may be
one where each Chord ring only has one server, which essentially strips the Chord system of its
advantage in speedy lookups. A point to note, also, is that while runtime improves as we get
more layers, the number of servers needed to support the whole system increases.
One Chord Ring Two Layers One Server Per Chord Ring
Runtime
# Total Servers
Table 2. Summary of runtime for the three cases described previously, where n = 8
5.2 Nested Chord Systems on a Bigger Scale
Because looking at the three above cases was limiting, we decided to examine further what was
going on by making calculations on a larger scale. Instead of having a system with only
entries, we looked at two different systems with
and
entries. Just like what we did previously, we changed the number of servers inside a Chord
ring while keeping other variables constant to find number of layers needed for the circumstance
and the runtime of it. We then plotted this data to visualize the trend happening as we decreased
the number of servers in a ring. To simplify runtime calculations, we ignored the constant time
needed to make a network hop and instead focused on the runtime inside the rings. For each of
the graphs below there will be two lines representing the two different systems. The green line
will show the change for the system with
entries.
Figure 9 shows the relationship between the number of servers in a Chord ring and the
number of layers. As expected, the more servers there are per Chord ring the fewer layers there
35
are in the Chord system. We can also see that at a certain point, the number of layers levels off
and stays constant no matter how much we change the number of servers in a ring.
Figure 9. The graph plotting the number of servers in a ring vs. the number of layers in a system. Note that
the x-axis is in log scale. In other words, the marks 10, 20, 30, etc., represent values of 2
10
, 2
20
, 2
30
, etc.
Figure 10 shows the change in runtime as the number of servers per ring increases.
Consistent with our findings from our previously simplified example, the runtime increases as
more servers get added to a ring. This is because the system needs to spend more time searching
for the correct server within a ring rather than performing lookups right away and jumping to the
next layer.
36
Figure 10. The graph plotting the number of servers in a ring vs. the runtime. Note that the x-axis is in log
scale. In other words, the marks 10, 20, 30, etc., represent values of 2
10
, 2
20
, 2
30
, etc.
Combining the graphs together, we get the plot in Figure 11. The 3D graph clearly shows
us the relationships between the three variables and we are able to conclude that optimal runtime
is achieved when the number of servers per ring is lowest and when the number of layers in the
system is highest.
37
Figure 11. The 3D plot shows the relationship between servers per ring vs. number of layers vs. runtime. Note
that the x-axis is in log scale. In other words, the marks 10, 20, 30, etc., represent values of 2
10
, 2
20
, 2
30
, etc.
5.3 Discussion of Results
Results in Chapters 5.2 and 5.3 both suggest that it would be best if PSIRP put all its data in a
nested Chord system where each ring only has one server. However, while on paper it seems this
approach gives the best runtime, in actuality the structure will not provide the best results. The
reason is because the more layers a system has, the less distributed its load is. In an ordinary,
single-layer Chord system, the load on servers is divided because servers may take different
paths to reach the same target (Figure 12). As seen in the figure, the path taken to the destination
server is different in all three cases. Although the eventual target is the same, depending on the
server querying the data, different servers will be asked to provide information about the location
38
of the final target. In this way, Chord successfully splits the load amongst the servers. This also
allows for better scalability because Chord will spread the load even with an increase in the
amount of activity due to scaling up. This is very useful in an information-centric network on
network management because if a problem occurs over the network, many servers from different
places will want to query the same information. There will be an influx of servers querying the
same destination, but because Chord forces different paths onto different entry points, the
network will not be overloaded along the same path. If we were to adopt a system with only one
server per ring, however, we will not be able to fully utilize Chord's method of dividing the load.
In addition, the large number of servers needed to handle all the layers will not scale well in the
future.
Figure 12. The three Chord systems above show the different possible paths to destination D depending on
where the start server S is located.
On the other hand, it would also be impractical for PSIRP to use one Chord system.
Given the large amount of data PSIRP must handle, one Chord ring will need to include a large
set of servers. As a result, lookup will become slower as the number of servers increases.
39
5.4 Conclusion of Chord in PSIRP
In the end, we conclude that success shown through calculations on paper does not translate to
success in the real world. Although Chord performance improves with decreasing numbers of
servers, we also need to remember that it provides