forum.wfido.ru  

Вернуться   forum.wfido.ru > Прочие эхи > RU.FTN.DEVELOP

Ответ
 
Опции темы Опции просмотра
  #1  
Старый 24.08.2023, 18:02
Nil A
Guest
 
Сообщений: n/a
По умолчанию BaseMsgNum в JAM

Nil A написал(а) к Alexey Fayans в Aug 23 16:40:48 по местному времени:

* Originally in ru.fidonet.today
* Crossposted in ru.ftn.develop
Нello, Alexey!

Thursday August 24 2023 07:47, from Alexey Fayans -> Nil A:

NA>> Притензия в том, что создаётся новый файл с базой, в котором
NA>> нумерация $BaseMsgNum начнётся заново, а это значит всякие
NA>> ништяки, типа SmapiNNTPd поломаются, потому что не смогут сразу
NA>> прыгнуть на нужный номер, потому что базовый номер съехал.
AF> Это проблемы кривого софта типа SmapiNNTPd, а не пуржилки.

Пример, надо тебе написать софт, который сразу может прыгать на 10ое сообщение из JAM базы. После пуржинья, предположим, это сообщение стало 5ым. Линеный поиск сообщения по всей базе не предлагать O(n).

AF> Упаковать JAM базу без сброса BaseMsgNum, наверное, возможно, но это
AF> крайне тупо.

Решение в том, что я хочу прыгнуть не на 10ое сообщение порядковое в базе, а именно 10ое. После пуржинья, например, BaseMsgNum выставился в 5, значит, чтобы добраться до 10го сообщения, мне надо прыгнуть сразу на 5ое порядковое. Это O(1) сложность.

Правда, тут ещё есть нюанс - удалённые сообщения (дырки) приходится оставлять. Само тело сообщения можно не хранить, но индекс нужен с дырками. Получается, что пуржить удалённые письма можно только сначала.

Кстати, примерно также работает Usenet. Он тебе говорит от кого сообщения у него в базе есть и до кокого, и сколько их всего, и разница может не быть равна сколько всего, потому что дырки.

AF> Вообще, BaseMsgNum - это рудимент, нормальный софт его не трогает.

В спеке он есть. Нормальный софт всегда высчитывает номер сообщения прибавляя BaseMsgNum. Если появились новопейсатели, которым хочется на каком-нибудь модном языке типа Go за два вечера там что-то набрасать, то для себя им, пусть они не трогают этот рудимент.

Best Regards, Nil
--- GoldED+/LNX 1.1.5
Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 14:20. Часовой пояс GMT +4.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод: zCarot