Misha Verbitsky ([info]tiphareth) wrote,
@ 2002-11-27 20:00:00
Current mood: tired
Current music:THE MAKERS OF THE DEAD TRAVEL FAST

Распределенный LJ
Писал про это сто раз уже,
но в связи с последними событиями
("Смертью LJ" от руки распоясавшейся Abuse Team)
пожалуй продублирую.

Надо построить распределенную версию протокола LJ,
по аналогии с NNTP; это в принципе совсем не трудно.

1. В существующий код LJ встроить XML-протокол
для удобства загрузки-выгрузки сообщений и комментариев
(это отчасти реализовано в http://www.livejournal.com/export.bml ;
так что должно быть нетрудно - тем более что export.bml написал
вообще-то [info]avva).

2. Сделать много серверов. К каждому серверу
будут обращаться непосредственно всего несколько
человек; но во френд-ленту они будут заносить кого
угодно со всех остальных серверов. Записи
всех друзей пользователя дублируются локально
на его домашнем сервере, обновляются раз
в 10-20 минут. Дублирование происходит на
основе общения серверов между собой.

Именно так работает NNTP.

В протокол общения серверов нужно будет
встроить какую-то защиту на манер ssh,
если мы хотим иметь дело с подзамочными
сообщениями. Помимо этого, изменения кода
требуются минимальные - меньше, чем нужно,
чтобы клиент написать.

2.5 Головной сервер LJ (livejournal.com) вряд
ли будет менять свой протокол на распределенный;
нам нужно позволить пользователю продублировать
свой дневник там и автоматически загружать
туда его сообщения. Тогда для распределенного
пользователя ситуация будет не хуже, чем
для пользователя сервера LJ - свою френд-ленту
он будет хранить и читать локально у
себя, а пользователи головного сервера
будут читать дубли его сообщений на
головном сервере.

3. Конечно, подзамочные записи после этого
будут гораздо менее надежно сохраняться. Это
проблема. Ее можно решать, задавая разные уровни
доверия к разным удаленным серверам.

4. Скачивать в удаленную френд-ленту сообщения
под замочком из центрального сервера будет
труднее всего; для этого надо либо сделать
существенные изменения в код LJ, либо попросить,
чтобы добавляющий кого-то из распределенных
пользователей в друзья сообщал свой пароль
в какой-то из удаленных серверов; и дальше
качать его подзамочные записи не прямо,
а через этот удаленный сервер.

Такие дела
Миша.



(Post a new comment)


[info]ilusha
2002-11-27 11:58 (link)
вау.
хорошая идея.

(Reply to this)


[info]anoxape
2002-11-27 12:14 (link)
Почти ровно такие же мысли появляются у меня. И не только у меня. Даже есть вариант решения проблемы из пункта 3.
Про 4 — проще всего иметь каждому, кто хочет читать LJ, фальшивый транзитный аккаунт на нём же. И через него скачивать всё подзамочное.
Кстати, система очень похожа на Jabber — с соответствующими изменениями в сторону подписки.
Только вот кто это всё будет писать? Времени нету ни у кого, как всегда. :(
А codebase LiveJournal'а использовать не выйдет, думаю.

(Reply to this)


[info]magister_
2002-11-27 14:47 (link)
Мне кажется, это решение "не с той стороны". Победить можно не только дерясь, но и крепко обнимаясь. Нужно создать Russian Abuse Team из себя. Признаваемую LJ Administration, формально утвержденную.

(Reply to this) (Thread)


[info]tiphareth
2002-11-27 14:54 (link)

Основная проблема все равно не в том,
просто чисто технически один сервер не в состоянии
потянуть постоянно увеличивающийся траффик. Поэтому
оно рано или поздно обязательно накроется.

А Abuse team из русских будет гораздо хуже,
поскольку в модераторы хороший человек не пойдет,
а значит там будут сплошь либерал-фашиствующие.
И они всех несогласных немедленно сотрут.

Такие дела
Миша.

(Reply to this) (Parent) (Thread)


[info]magister_
2002-11-27 15:14 (link)
700 000 (кол-во пользователей) $5 = $ 3 500 000
Реально конечно гораздо меньше, но сервер усилить смогут.
Возможно, даже обязательно сделают это под угрозой создания населением распределенной системы серверов - эту угрозу нужно до них довести. А много серверов не обязательно - можно сделать один на хорошо доступном месте - на всю русскую часть этого хватит.

Если Abuse Team организовать так, чтобы это не давало понтов и привелегий, фашисты и либералы сами туда не пойдут.

(Reply to this) (Parent) (Thread)


[info]er2000
2002-11-30 10:51 (link)
Хе-хе, чтобы Власть не давала понтов и привелегий -- это надо же так организовать, да. :-)

Если сделать русский абузе тим, то это в момент превратит ЛЙ в русское же ФИДО. Читай, в скучный пионерский лагерь с какой-нидь там "элитой рунета" которая равнее, и их шестёрками. Все прочие, которые только и есть интересные люди, будут выдавлены.

(Reply to this) (Parent) (Thread)


[info]magister_
2002-11-30 14:44 (link)
У меня понятие "интересный человек" не ассоциируется со словами "хам" и "жулик" (в отношении целей использования сервиса).
Но задача любой Abuse Team - не приструнять хамов (это для Law & Order Team), а разделять сцепившихся в драке. В общем-то, для большого коллектива нужная функция.

(Reply to this) (Parent) (Thread)


[info]er2000
2002-12-01 00:16 (link)
Любой человек это хам и жулик, в соответствующих обстоятельствах.

В большом коллективе Фидо задача модератора -- помогать своим хамам против чужих, ага. Да и сам модератор обычно хам и жулик, т.к. абсолютная власть вполне себе соответствующее обстоятельство.

Поэтому я больше люблю юзнет и ЛЙ чем ---

Больше плезного трафика получается даже с учётом драк и скандалов. За счёт того, что нет обязательных пресмыканий перед власть имущими.

(Reply to this) (Parent)

чисто технически
[info]qub
2002-11-27 23:53 (link)
один сервер (не один ящик, а один узел, кластер) может потянуть почти все что угодно. и сейчас тянет.

железо очень дешево, поэтому достаточно прямолинейное решение -- сделать программную архитектуру, рассчитанную на "и тогда мы купим еще пять ящиков" -- работает очень хорошо. так живут все, включая, например, Гугль с его сумасшедшим ангаром на 10 тысяч писюковых коробок. и LJ уже давно кластеризован аналогично.
то есть, этой проблемы, проблемы нагрузки, по сути нет.

см. еще здесь, здесь и, однако, здесь.

(Reply to this) (Parent) (Thread)

Re: чисто технически
[info]tiphareth
2002-11-28 09:54 (link)

Привет!

>может потянуть почти все что
> угодно. и сейчас тянет.

Не уверен. Ко мне оно приходит со скоростью 1 килобайт/сек.;
при том, что я здесь сижу непосредственно на backbone (или по крайней
мере чрезвычайно близко).

>Гугль
> с его сумасшедшим ангаром на 10 тысяч
> писюковых коробок

Гугель очень хорошо написан. LJ написан очень плохо.
Проблема нагрузки физически имеет место - т.е.
оно вообще не грузится в 1/5 случаев, в остальных
случаях страшно медленно.

Многие задачи хорошо решаются кластеризацией и
распараллеливанием, но для большинства задач
увеличение процессоров в t раз увеличивает
производительность в log t.

Я не думаю, что LJ хорошо кластеризуется; сейчас
проблема решается за счет того, что архивы LJ
для сложных запросов сделаны более-менее недоступными
(т.е. нет никаких старых сообщений на френд-лентах),
а доступны только последняя неделя-две.
Когда объем текущих сообщений увеличится,
эта мера перестанет работать.

Большой траффик у LJ не за счет его эффективной
работы, а за счет чудовищно плохого дизайна - т.е.
стандартная страница содержит 3 килобайта информации
и 15 килобайт мусорного HTML.

Этот ресурс можно дожать, но проблемы с обращением
к MySQL это не решит.

Такие дела
Миша.

(Reply to this) (Parent)


[info]yanis
2002-11-27 16:08 (link)
привет! (емейл через ЖЖ не доходит). От тебя (от тебя ли?) пришел емейл про миррор моего дневника на :Ленине:. Я совершенно не возражаю и даже польщен. Единственное - френдз-онли записи миррорить не надо (так, надеюсь и есть, но я на всякий случай).

* * *

по поводу распределенного сервиса

все не- или плохо модерированные дистрибьютед сообщества, кроме peer-to-peer погибли. IRC (efNET, dalnet и остальные), USENET и многие другие.

В техническом отношении, после введения распределенной архитектуры поначалу наступит некоторое улучшение, но очень быстро процент шума в системе задавит осмысленный трафик и все скончается в страшных судорогах.

NNTP прекрасный протокол, но к анархии не приспособлен.

Мне кажется, что проще ввести дискриминацию против бесплатных юзеров (квотирование выделяемого им места и тп) и авторизацию френдов (по желанию либо пассивную).

Кстати не знаю в чем здесь дело, но у меня ЖЖ сейчас работает на порядок лучше чем год назад. Никогда не висит.

(Reply to this) (Thread)


[info]tiphareth
2002-11-27 16:22 (link)

Насчет архив - от меня. Спасибо!
По поводу остального:

Я не очень понимаю, откуда возьмется
шум в LJ. Я же не буду себе добавлять
никого, кроме тех, кто внятно пишет.

IRC с самого начала к внятности не приспособлен,
как и все его версии (чаты и т.п.). Модерация
здесь не при чем - модерированные чаты такие
же бездарные. Там никогда ничего и не было, кроме шума.

Usenet не погиб, там то же самое более-менее, что и всегда.
Моя любимая ньюсгруппа процветает, как и другая любимая
ньюсгруппа.


Другое дело, что в России например
найти себе нормальный NNTP feed нельзя.
Но это проблема чисто техническая:
под Виндозом нормальной читалки
для NNTP нет, так что оно никому
здесь и не нужно.

Такие дела
Миша.

(Reply to this) (Parent) (Thread)


[info]cmm
2002-11-27 16:53 (link)
под Виндозом нормальной читалки
для NNTP нет


slrn?

(Reply to this) (Parent)


(Post a new comment)


[ Home | Update Journal | Login/Logout | Browse Options | Site Map ]