Справился с планами по созданию сокращателя ссылок чуть быстрее, чем планировалось (точнее, за пару часов, а не пару дней). Точнее, это не сокращатель ссылок, а ходилка по ссылкам. Протоколирования как такового пока ещё нет, только ходилка и обновление данных о ссылке (общий счётчик посещений), но результаты мне понравились.
Запустил её на виртуалке в vagrant с 512Мб, получил такие результаты при спаме в 1000 потоков при помощи siege:
Lifting the server siege... done. Transactions: 48093 hits Availability: 99.35 % Elapsed time: 59.75 secs Data transferred: 95.58 MB Response time: 0.55 secs Transaction rate: 804.90 trans/sec Throughput: 1.60 MB/sec Concurrency: 444.74 Successful transactions: 48093 Failed transactions: 314 Longest transaction: 30.99 Shortest transaction: 0.00
Честно говоря, непонятно, почему там 99.35% availability, если успешно выполнено 48093/48093 запросов.
Код оставил на Гитхабе. Вроде, освоил всё на удивление просто. Жаль, невозможно сделать то, что нам надо по работе — "таблицу очков" (так называемый leaderboard).
Надо, правда, дописать само сокращение ссылок. И ещё — нужно экранировать спецсимволы. И ещё — сохранять каждое изменение в тарантуле. Наверное, на это потратится ещё пара часов.