10kk записей на клиенте? А смысл? Если все в БД, то ее средствами (точнее средствами запроса) и сортировать.
Всего 10 000 000 Записей. У каждого по 10 000 друзей. Любой из 10 000 000 может хоть до посинения жать на кнопку топ формируя тем самым, запрос к БД. При всем уважении вы действительно думаете, что это нормальный подход ?
Я придерживаюсь такой логики: Если эти вычисления не нужны серверу, они должны делаться в клиенте, под не нужны я понимаю не будут использованы в дальнейшем. А отсортировать 10 000 записей в клиенте ? Чего вы так этого испугались он даже этого не заметит, он даже и 100 000 не заметит

При средней мощности компьютеров в 2 гигагерца, даже тупой брут 100 000-ного массива это смешная задача.