Логика примерно такая:
1. Смотрим, есть ли у обратившегося к announcer пользователя passkey (ключ зарегенного пользователя). Если нет, то просто отдаем список пиров и закрываем соединение. Если есть, то продолжаем.
2.1. Если это была команда started или completed, либо вообще не было никакой команды (и при этом до того была открыта сессия командой started), то сохраняем данные параметров downloaded, uploaded и left (все беззнаковые типа long) в текущую сессию.
2.2. Если это была команда stopped, то получаем общую статистику (не сессии), к ней прибавляем данные текущей сессии, которые были переданы в downloaded, uploaded и left. Удаляем из таблицы/мемкэша/etc данные временной сессии.
Если нужно что-то более подробно объяснить, пиши в аську или жабу в профиле. Я сейчас как раз в свободное время (которого, к сожалению не хватает) пишу производительный торрент-трекер на яве (Play Framework). По сути, сам трекер и несложная обвязка cо статистикой и регистрацией уже готов, принцип работы был взят с XBTT — а именно пакетное обновление данных, дабы не убить БД при большом кол-ве запросов. Сейчас осталось самое муторное — нечто вроде CMS для скачивания/загрузки/поиска/etc торрентов…