Metric embeddings, algorithms and hardness of approximation