[#] Получение не полного списка сообщений
Andrew Lobanov(station13, 1) — All
2015-11-05 16:45:56


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

[#] Re: Получение не полного списка сообщений
vit01(mira, 1) — Andrew Lobanov
2015-11-05 17:24:41


AL> Очевидно, что на разных нодах может быть разный порядок сообщений в эхах или даже разное содержимое. В связи с чем, я пока придумал только держать отдельную базу сообщений для каждой из нод.
В Qt-клиенте для всех нод одна и та же база. Алгоритм работы примерно таков:
1. Фетчим одну и ту же эху с нескольких нод в одно и то же место
2. Если отправляем туда сообщение, то оно уходит на первую ноду из списка

Каждый из вариантов имеет свои плюсы. Я не стал городить раздельные базы, потому что юзер-НЕфрендли. А произвольную отправку не стал делать, потому что лень =)

[#] Re: Получение не полного списка сообщений
Andrew Lobanov(station13, 1) — vit01
2015-11-05 19:18:54


AL>> Очевидно, что на разных нодах может быть разный порядок сообщений в эхах или даже разное содержимое. В связи с чем, я пока придумал только держать отдельную базу сообщений для каждой из нод.
vit01> В Qt-клиенте для всех нод одна и та же база. Алгоритм работы примерно таков:
vit01> 1. Фетчим одну и ту же эху с нескольких нод в одно и то же место

Пока что я так же сделал, но вопрос был задан в свете эхотага. Когда клиент забирает не весь список, а только n последних сообщений в эхе.

vit01> 2. Если отправляем туда сообщение, то оно уходит на первую ноду из списка

У меня отправляется только то, что было написано для текущей выбранной ноды. И только поинтом с этой ноды. Мне кажется, что так в итоге может быть удобней именно конечному пользователю, так как он не так сильно зависит от сисопов и ему не надо просить прокинуть эху.

vit01> Я не стал городить раздельные базы, потому что юзер-НЕфрендли.

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

зы Вопрос пока что чисто теоретический.

[#] Re: Получение не полного списка сообщений
vit01(mira, 1) — Andrew Lobanov
2015-11-05 19:47:06


vit01>> 2. Если отправляем туда сообщение, то оно уходит на первую ноду из списка

AL>У меня отправляется только то, что было написано для текущей выбранной ноды. И только поинтом с этой ноды. Мне кажется, что так в итоге может быть удобней именно конечному пользователю, так как он не так сильно зависит от сисопов и ему не надо просить прокинуть эху.

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

vit01>> Я не стал городить раздельные базы, потому что юзер-НЕфрендли.

AL> Пока у меня одна база, так как нет смысла, но когда у нас будет возможность получить разный набор сообщений с разных нод, это может стать проблемой.

И где здесь проблема? Предположим, есть эха news.15. На станции 1 туда, к примеру, постят новости с Лора, а на станции 2 - с опеннета. Юзер фетчит их в одну базу. В итоге получает _одну_ ленту с новостями обоих сайтов. Так даже читать приятнее.

[#] Re: Получение не полного списка сообщений
Andrew Lobanov(station13, 1) — vit01
2015-11-05 19:58:56


AL>> Пока у меня одна база, так как нет смысла, но когда у нас будет возможность получить разный набор сообщений с разных нод, это может стать проблемой.
vit01> И где здесь проблема? Предположим, есть эха news.15. На станции 1 туда, к примеру, постят новости с Лора, а на станции 2 - с опеннета. Юзер фетчит их в одну базу. В итоге получает _одну_ ленту с новостями обоих сайтов. Так даже читать приятнее.

А когда в эту эху с ноды 1 приходят новости с опеннета, а со второй -- с хабры, и с обоих нод репостится ЛОР, то есть вероятность, что поинт будет получать не все сообщения. Причём весьма высокая. Просто потому, что тогда совсем разный порядок сообщений может оказаться. Я понимаю, что это будет не так удобно для пользователя, но зато позволит не изобретать извращённых алгоритмов для разруливания этой путаницы.

[#] Re: Получение не полного списка сообщений
Andrew Lobanov(station13, 1) — Andrew Lobanov
2015-11-05 20:00:29


AL>>> Пока у меня одна база, так как нет смысла, но когда у нас будет возможность получить разный набор сообщений с разных нод, это может стать проблемой.
vit01>> И где здесь проблема? Предположим, есть эха news.15. На станции 1 туда, к примеру, постят новости с Лора, а на станции 2 - с опеннета. Юзер фетчит их в одну базу. В итоге получает _одну_ ленту с новостями обоих сайтов. Так даже читать приятнее.
AL> А когда в эту эху с ноды 1 приходят новости с опеннета, а со второй -- с хабры, и с обоих нод репостится ЛОР, то есть вероятность, что поинт будет получать не все сообщения. Причём весьма высокая. Просто потому, что тогда совсем разный порядок сообщений может оказаться. Я понимаю, что это будет не так удобно для пользователя, но зато позволит не изобретать извращённых алгоритмов для разруливания этой путаницы.

Хотя всё равно не очень верный пример. Я к тому, что на второй ноде могут быть сообщения и те, что есть и на первой ноде. И они могут идти вперемешку с уникальными сообщениями. И если мы забираем не всю эху целиком, то возникают потери.

[#] Re: Получение не полного списка сообщений
vit01(mira, 1) — Andrew Lobanov
2015-11-06 04:39:39


> И если мы забираем не всю эху целиком, то возникают потери.
А, теперь понял, в чём здесь суть. Нет, потерь не будет. Я хотел это реализовать с помощью дополнительной кнопки "закачать эху полностью", которую сначала жмёшь в первый раз, а затем уже трафик экономишь.

Ну а так они и без одноимённых эх могут теряться, тут разницы нет большой.

[#] Re: Получение не полного списка сообщений
Andrew Lobanov(station13, 1) — vit01
2015-11-06 06:23:59


>> И если мы забираем не всю эху целиком, то возникают потери.
vit01> А, теперь понял, в чём здесь суть. Нет, потерь не будет. Я хотел это реализовать с помощью дополнительной кнопки "закачать эху полностью", которую сначала жмёшь в первый раз, а затем уже трафик экономишь.

Тут затея была не в том, чтобы экономить траффик, а в том, чтобы не перекатывать эхи. В таком виде "закачать эху полностью" выглядит сомнительно.

vit01> Ну а так они и без одноимённых эх могут теряться, тут разницы нет большой.

То то и оно, что в рамках одной эхи на одной ноде оно теряться не будет. И если создать разные базы для разных нод, то потерь не будет.

[#] Re: Получение не полного списка сообщений
vit01(mira, 1) — Andrew Lobanov
2015-11-06 08:19:05


> И если создать разные базы для разных нод, то потерь не будет.

Требую наглядного примера (запрос => результат => файл в общей базе)