  The metric Ramsey problem asks for the largest subset $S$ of a metric space
that can be embedded into an ultrametric (more generally into a Hilbert space)
with a given distortion. Study of this problem was motivated as a non-linear
version of Dvoretzky theorem. Mendel and Naor 2007 devised the so called Ramsey
Partitions to address this problem, and showed the algorithmic applications of
their techniques to approximate distance oracles and ranking problems.
  In this paper we study the natural extension of the metric Ramsey problem to
graphs, and introduce the notion of Ramsey Spanning Trees. We ask for the
largest subset $S\subseteq V$ of a given graph $G=(V,E)$, such that there
exists a spanning tree of $G$ that has small stretch for $S$. Applied
iteratively, this provides a small collection of spanning trees, such that each
vertex has a tree providing low stretch paths to all other vertices. The union
of these trees serves as a special type of spanner, a tree-padding spanner. We
use this spanner to devise the first compact stateless routing scheme with
$O(1)$ routing decision time, and labels which are much shorter than in all
currently existing schemes.
  We first revisit the metric Ramsey problem, and provide a new deterministic
construction. We prove that for every $k$, any $n$-point metric space has a
subset $S$ of size at least $n^{1-1/k}$ which embeds into an ultrametric with
distortion $8k$. This results improves the best previous result of Mendel and
Naor that obtained distortion $128k$ and required randomization. In addition,
it provides the state-of-the-art deterministic construction of a distance
oracle. Building on this result, we prove that for every $k$, any $n$-vertex
graph $G=(V,E)$ has a subset $S$ of size at least $n^{1-1/k}$, and a spanning
tree of $G$, that has stretch $O(k \log \log n)$ between any point in $S$ and
any point in $V$.
