Phoenix network coordinates

Phoenix is a decentralized network coordinate system based on the matrix factorization model.

Background

 * Network coordinate (NC) systems are an efficient mechanism for internet distance (round-trip latency) prediction with scalable measurements. For a network with N hosts, by performing O(N) measurements, all N*N distances can be predicted.
 * Use cases: Vuze BitTorrent, application layer multicast, PeerWise overlay, multi-player online gaming.
 * Triangle inequality violation (TIV) is widely exist on the Internet due to the current sub-optimal internet routing.

Model

 * Most of the prior NC systems use the Euclidean distance model, i.e. embed N hosts into a d-dimensional Euclidean space Rd. Due to the wide existence of TIVs on the internet, the prediction accuracy of such systems is limited. Phoenix uses a matrix factorization (MF) model, which does not have the constraint of TIV.
 * The linear dependence among the rows motivates the factorization of internet distance matrix, i.e. for a system with $$N$$ internet nodes, the $$N \times N$$ internet distance matrix D can be factorized into two smaller matrices. $$D \approx XY^T$$ where $$X$$ and $$Y$$ are $$N \times d$$ matrices (d << N). This matrix factorization is essentially a problem of linear dimensionality reduction and Phoenix tries to solve it in a distributed way.

Design choices in Phoenix

 * Different from the existing MF based NC systems such as IDES and DMF, Phoenix introduces a weight to each reference NC and trusts the NCs with higher weight values more than the others. The weight-based mechanism can substantially reduce the impact of the error propagation.
 * For node discovery, Phoenix uses a distributed scheme, so-called peer exchange (PEX), which is used in BitTorrent (protocol). The usage of PEX reduces the load of the tracker, while still ensuring the prediction accuracy under node churn.
 * Similar to DMF, for avoiding the potential drift of the NCs, Regularization (mathematics) is introduced in NC calculation.
 * NCShield is a decentralized, goosip-based trust and reputation system to secure Phoenix and other matrix factorization-based NC systems.