The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Выпуск СУБД SQLite 3.37, opennews (??), 28-Ноя-21, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


36. "Выпуск СУБД SQLite 3.37"  –1 +/
Сообщение от Аноним (34), 28-Ноя-21, 15:13 
Как вы представляете себе форум на текстовых сайтах?
Ответить | Правка | Наверх | Cообщить модератору

37. "Выпуск СУБД SQLite 3.37"  –1 +/
Сообщение от Аноним (34), 28-Ноя-21, 15:13 
*Файлах
Ответить | Правка | Наверх | Cообщить модератору

49. "Выпуск СУБД SQLite 3.37"  +/
Сообщение от пох. (?), 28-Ноя-21, 18:26 
> *Файлах

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

Что делать если корневой индекс повредили? Сушить ласты...

Ну и так далее.

А так даже и работало, с 2000 по 2009й, что-ли.


Ответить | Правка | Наверх | Cообщить модератору

55. "Выпуск СУБД SQLite 3.37"  +/
Сообщение от Онаним (?), 28-Ноя-21, 22:12 
Бггг, кто-то жёстко говнокодил.
Просто тему в один файл запихать было бы намного эффективнее.
И даже дописывать можно без особого изнасилования мозга.
Ответить | Правка | Наверх | Cообщить модератору

77. "Выпуск СУБД SQLite 3.37"  +/
Сообщение от Аноним (77), 29-Ноя-21, 09:17 
> Просто тему в один файл запихать было бы намного эффективнее.

теперь спам вообще нельзя удалить без переписывания всего файла в хз сколько мегабайт (а те кто в этот же момент пытаются добавить - еще подождут)?
Эффективность! Подай заявление на перевод в девляпсы.

(Видимо про дерево реплаев ты не, не слышал? У тебя все форумы были плоские, хер угадаешь кто и на что отвечал?)


Ответить | Правка | Наверх | Cообщить модератору

88. "Выпуск СУБД SQLite 3.37"  +/
Сообщение от Онаним (?), 29-Ноя-21, 13:56 
Ты просто не догнал.
Что значит "нельзя". Дописываешь в хвост <ID>=null, и всё, нет поста, при разборе файла он сотрётся. А внутри не сотрётся, для истории, в админке можно всё показать.
Дерево ответов? А что мешает в пост ID ответа-то писать? При загрузке файла всё это точно так же разберётся.
Ответить | Правка | Наверх | Cообщить модератору

105. "Выпуск СУБД SQLite 3.37"  +/
Сообщение от пох. (?), 29-Ноя-21, 19:57 
В хвост чего, у тебя ж вся тема в одном файле. Нет, ты не успел, это не последнее надо удалить, а уже пятнадцатое от конца (и ему еще и ответили).

> А что мешает в пост ID ответа-то писать?

то что ты никогда не видел нормального threaded view. К сожалению, я бессилен тебе в этом помочь - tin то ты может еще и соберешь, а где найти живые ньюсгруппы с активной перепиской и сотнями участников, чтобы посмотреть как это работает - понятия не имею. Наверное, в прошлом. Современные бюллетинборды пишут м-ки для м-ков. Там именно что темы на вес золота и заводить новые должны специальные люди (ну потому что на всяких торренстру для которых и предназначены нынешние поделки, это нормально)

Причем тин-то локальный, всю необходимую информацию кэширует и индексирует на стороне пользователя. (а первоначальное ее всасывание, кстати, было сильно небыстрым) Но у нас же веб, персистентность не в моде.  На каждый переход к следующему мессаджу - будешь сканить всю базу.

Ответить | Правка | Наверх | Cообщить модератору

107. "Выпуск СУБД SQLite 3.37"  +/
Сообщение от Онаним (?), 29-Ноя-21, 21:16 
Вся тема в одном файле не означает, что нельзя новые данные писать в хвост файла, не?

Пример:
{post_id: 1, text:"Пост 1",date:"2021-01-01 01:01:01",...}
{post_id: 2, text:"Пост 2",date:"2021-02-02 02:02:02",...}
{post_id: 1, deleted: true, date:"2021-03-03 03:03:03"}

Мысль, думаю, понятна.
В итоге переписывание файла целиком сводится к минимуму, только на сжатии.
Более того, можно писать всякие гзипованные варианты, только сериализацию взять соответствующую.
Ну хосспаде, повторюсь, постгря так и делает. А отдельно держит индекс чего-куда.

Ответить | Правка | Наверх | Cообщить модератору

117. "Выпуск СУБД SQLite 3.37"  +/
Сообщение от пох. (?), 29-Ноя-21, 21:42 
> Вся тема в одном файле не означает, что нельзя новые данные писать
> в хвост файла, не?
> Пример:
> {post_id: 1, text:"Пост 1",date:"2021-01-01 01:01:01",...}
> {post_id: 2, text:"Пост 2",date:"2021-02-02 02:02:02",...}
> {post_id: 1, deleted: true, date:"2021-03-03 03:03:03"}
> Мысль, думаю, понятна.

угу, теперь файл надо еще и целиком сканировать чтобы убедиться что первый пост не удален.
Ну да, ты еще изобрел к нему индексы. Просто прекрасно. Еще надо будет изобрести реиндексатор и контроль целостности (а то вдруг что-то пошло не так, индекс обновился, файл нет)
Продолжаем-продолжаем изобретать квадратное колесо?

> Ну хосспаде, повторюсь, постгря так и делает. А отдельно держит индекс чего-куда.

Да, именно поэтому она - г-но.
Сколько там все обещали-обещали запритить-запритить vacuum full ? Но десять лет что-то ну никак нишкладывалось. Теперь делают вид что ничего такого и не было, и вообще "чем вам мешает".


Ответить | Правка | Наверх | Cообщить модератору

118. "Выпуск СУБД SQLite 3.37"  +/
Сообщение от Онаним (?), 29-Ноя-21, 21:47 
Не надо файл целиком сканировать, у большинства форумов постов не наберётся столько в треде, чтобы его целиком не вгрузить один раз в память. А если наберётся - тогда да, просканировать здоровыми блоками. Чудес не бывает, и волшебная RDBMS тоже сканирует файлы :)
Ответить | Правка | Наверх | Cообщить модератору

120. "Выпуск СУБД SQLite 3.37"  +/
Сообщение от Онаним (?), 29-Ноя-21, 21:48 
Если контент здоровый - можно ещё со сканированием упростить: достаточно перед данными псто (возможно сжатыми) хранить их длину. Но это уже не про форумы.
Ответить | Правка | Наверх | Cообщить модератору

130. "Выпуск СУБД SQLite 3.37"  +/
Сообщение от пох. (?), 30-Ноя-21, 08:10 
> Не надо файл целиком сканировать, у большинства форумов постов не наберётся столько
> в треде, чтобы его целиком не вгрузить один раз в память.

а с чего ты взял, что один раз? Гугель зайдет на огонек - и вгрузит тебе по самые гланды со всего своего пула.  Оне последние лет десять по другому работать разучились.

Ответить | Правка | Наверх | Cообщить модератору

108. "Выпуск СУБД SQLite 3.37"  +/
Сообщение от Онаним (?), 29-Ноя-21, 21:17 
Threaded view генерится из любого набора данных элементарно, главное не вгружать по одному посту, а вгрузить весь тред (треды) целиком, и далее собрать дерево ID. Операция совершенно копеечная.
Ответить | Правка | К родителю #105 | Наверх | Cообщить модератору

109. "Выпуск СУБД SQLite 3.37"  +/
Сообщение от Онаним (?), 29-Ноя-21, 21:19 
И да, не надо блджад сканить всю базу.
Много постов, лень всё дерево загружать? Индексируй это, и загружай только индекс. А дальше уже решай, чего тебе из него надо. RDBMS так и работают, т.е. всё это уже сделано, и можно не костылить. Но понимать, как сделано - надо.
Ответить | Правка | К родителю #105 | Наверх | Cообщить модератору

116. "Выпуск СУБД SQLite 3.37"  +/
Сообщение от пох. (?), 29-Ноя-21, 21:37 
> И да, не надо блджад сканить всю базу.
> Много постов, лень всё дерево загружать? Индексируй это, и загружай только индекс.
> А дальше уже решай, чего тебе из него надо. RDBMS так
> и работают, т.е. всё это уже сделано, и можно не костылить.

именно. То есть ты наконец-то понял что изобрел велосипед с квадратными колесами?

Ответить | Правка | Наверх | Cообщить модератору

121. "Выпуск СУБД SQLite 3.37"  +/
Сообщение от Онаним (?), 29-Ноя-21, 21:49 
Да нет, я изначально пишу, что в RDBMS всё это уже сделано.
Но это не значит, что при _серьёзной_ надобности я не сварганю RDBMS замену.
Ответить | Правка | Наверх | Cообщить модератору

122. "Выпуск СУБД SQLite 3.37"  +/
Сообщение от Онаним (?), 29-Ноя-21, 21:50 
А вот тем, кто всецело на RDBMS полагается, и ничего окромя не умеет - ну, курить в сторонке.
Ответить | Правка | К родителю #116 | Наверх | Cообщить модератору

113. "Выпуск СУБД SQLite 3.37"  +/
Сообщение от Аноним (51), 29-Ноя-21, 21:26 
Немного оффт.
Живые группы есть на eternal-september.org
В разные периоды то более-менее живые, то скорее неживые.
Ответить | Правка | К родителю #105 | Наверх | Cообщить модератору

115. "Выпуск СУБД SQLite 3.37"  +/
Сообщение от пох. (?), 29-Ноя-21, 21:35 
На этом понять смысл и преимущества тредовой читалки не получится. Они хорошо видны от 1000 постов в сутки - когда в принципе и невозможно читать их все, и незачем.

Ответить | Правка | Наверх | Cообщить модератору

138. "Выпуск СУБД SQLite 3.37"  +/
Сообщение от Anonymouz (?), 30-Ноя-21, 13:08 
В nntp linux-kernel ещё есть. Который как-раз показывает всю ущербность tin'a - и его тормозные кэша, и прочие кривые фильтры с непонятным скорингом. А отсутствие limit pattern как в mutt'e - вообще делает его малополезным на чём-то с большим трафиком.
Не, ну fido7.* читать пойдётЪ, да.
Ответить | Правка | Наверх | Cообщить модератору

69. "Выпуск СУБД SQLite 3.37"  +/
Сообщение от ddd2 (?), 29-Ноя-21, 04:19 
https://forum.combats.com/

?

Ответить | Правка | К родителю #49 | Наверх | Cообщить модератору

78. "Выпуск СУБД SQLite 3.37"  +/
Сообщение от Аноним (77), 29-Ноя-21, 09:19 
от неосиляторов древовидной структуры. Это даже не 2000й, это 89й, ну да, ну да, фидо с ее глупыми "lastread" и 640k enough.

Ответить | Правка | Наверх | Cообщить модератору

56. "Выпуск СУБД SQLite 3.37"  +/
Сообщение от Онаним (?), 28-Ноя-21, 22:13 
Да легко, вообще делать нечего.
1 тема = 1 файл, сообщения append'ятся
Глобальные индексы тем и поиска таким же append-файлом.
Удаление сообщений через дописывание ID=null.
Периодически компактирование, которое ничем не хуже вакуума в постгре.
Ответить | Правка | К родителю #36 | Наверх | Cообщить модератору

79. "Выпуск СУБД SQLite 3.37"  +/
Сообщение от Аноним (80), 29-Ноя-21, 09:20 
> 1 тема = 1 файл, сообщения append'ятся

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

Ответить | Правка | Наверх | Cообщить модератору

89. "Выпуск СУБД SQLite 3.37"  +/
Сообщение от Онаним (?), 29-Ноя-21, 13:57 
"Ответом на какой ответ является этот ответ" - просто поле в данных поста, оно не требует специального обращения при хранении.
Ответить | Правка | Наверх | Cообщить модератору

104. "Выпуск СУБД SQLite 3.37"  +/
Сообщение от пох. (?), 29-Ноя-21, 19:51 
А теперь выведи мне всю цепочку сообщений, к которой относится это сообщение - вот до корневого.

(ну или задачка попроще, просто покажи с чего все началось, я там дальше сам посмотрю, может мне другую параллельную подветку надо было)

Оно еще как требует специального обращения, если к тебе ходят не полтора васяна.

Ответить | Правка | Наверх | Cообщить модератору

110. "Выпуск СУБД SQLite 3.37"  +/
Сообщение от Онаним (?), 29-Ноя-21, 21:20 
Элементарно. Thread id в сообщении есть всегда. Референс на предыдущий ответ тоже.
В данном случае весь Thread - в одном файле (ну или в нескольких разбитых для оптимизации, кому как удобнее). Вгрузили и вывели.
Ответить | Правка | Наверх | Cообщить модератору

119. "Выпуск СУБД SQLite 3.37"  +/
Сообщение от пох. (?), 29-Ноя-21, 21:47 
> Элементарно. Thread id в сообщении есть всегда. Референс на предыдущий ответ тоже.

хаха. А что такое "thread" ? На любое письмо может быть два реплая, каждый стартует новую ветку, одна вообще полуоффтопик, другая ушла на другую тему.  Вот тебе _нормальная_ тредовая модель.

А не треды создаются особами приближенными к Б-гу Императору, а внутри у них линейная каша.

> В данном случае весь Thread - в одном файле (ну или в

И смысла в этом нет никакого.

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

Ответить | Правка | Наверх | Cообщить модератору

123. "Выпуск СУБД SQLite 3.37"  +/
Сообщение от Онаним (?), 29-Ноя-21, 21:53 
Вгружается весь тред до корня. Или весь целиком, или индекс. Строится из линейной структуры ID<->ID деревце - не бог весть какая операция. Дальше выводится. Напоминаю, мы в рамках форума, пара сотен тысяч постов в треде "с корня" вряд ли наберётся.
Ответить | Правка | Наверх | Cообщить модератору

124. "Выпуск СУБД SQLite 3.37"  +/
Сообщение от Онаним (?), 29-Ноя-21, 21:55 
Больше того, для RDBMS такая задачка - тоже не из самых лёгких. Проще бывает вгрузить листы ID<->ID по source thread ID, и дальше их уже кодом в дерево обработать. Рекурсивные запросы много где ныне есть, но эффективность у них, @#$...

У меня примерно аналогичная задачка, только там не дерево, а суперпрефиксы по телефонии. +1 +1 123, +1 123 456, и вплоть до полных номеров. Их надо как раз таки тред-подобным образом агрегировать.

Ответить | Правка | К родителю #119 | Наверх | Cообщить модератору

127. "Выпуск СУБД SQLite 3.37"  +/
Сообщение от пох. (?), 30-Ноя-21, 08:03 
> телефонии. +1 +1 123, +1 123 456, и вплоть до полных
> номеров. Их надо как раз таки тред-подобным образом агрегировать.

агрегировать - не то же самое что иметь доступ к древовидной структуре. Сам по себе элемент +1 123 456 никому не нужен и никакая строка в таблице традиционной базы данных ему бы не соответствовала - просто нечего в ней хранить.

Дарю:

with recursive
                                thread(id,replyid,level) as (
                                select id,replyto,0
                                from messages where id=$msgid
                                UNION ALL
                                select
                                        messages.id,messages.replyto,level+1
                                from messages,thread where replyto=thread.id
                                ORDER BY 3 DESC
                                ) select * from thread,messages
                                        where messages.id=thread.id ;

обратить внимание, что в этой базе нет никаких персистентных thread id  - за ненадобностью. Тред может начинаться (и начнется) в любом месте, а не от корня (за десять лет тот корень забыт всеми и давно уже о другом болтают)

"корень" отличается лишь тем что у него нет replyto и выше него некуда прыгнуть.

Да, это sqlite. Причем, как и полагается, какой-то совершенно доисторической версии.
Лет пять назад еще вполне себе работало.

Ответить | Правка | Наверх | Cообщить модератору

139. "Выпуск СУБД SQLite 3.37"  +/
Сообщение от Онаним (?), 30-Ноя-21, 14:32 
Ды щаз, не нужен.
К этим элементам тарифы прибиты, и маршрутная информация.

Про запрос выше могу сказать только что по нагрузке будет легче целиком вгрузить :D

Ответить | Правка | Наверх | Cообщить модератору

111. "Выпуск СУБД SQLite 3.37"  +/
Сообщение от Онаним (?), 29-Ноя-21, 21:22 
И нет, никаких специальных телодвижений там до появления тредов на больше памяти, чем один одновременный клиент может выжрать, не требуется.
Ответить | Правка | К родителю #104 | Наверх | Cообщить модератору

112. "Выпуск СУБД SQLite 3.37"  +/
Сообщение от Онаним (?), 29-Ноя-21, 21:26 
Я просто очень даже в работе оперирую структурами, которые сильно превышают объём RAM вообще.
Там приходится и линейную дозапись блоков в файлы делать, и вгружать блоками.
И нет, RDBMS там в конкретной задаче я пробовал, это бессмысленно, много обработок и специфичные свёртки (prefix-based coalescing).
Ответить | Правка | К родителю #104 | Наверх | Cообщить модератору

114. "Выпуск СУБД SQLite 3.37"  +/
Сообщение от Онаним (?), 29-Ноя-21, 21:29 
SQLite кстате тоже есть )
Ответить | Правка | Наверх | Cообщить модератору

67. "Выпуск СУБД SQLite 3.37"  +/
Сообщение от муу (?), 29-Ноя-21, 01:47 
дык на таком сайте прям щас сидишь
Ответить | Правка | К родителю #36 | Наверх | Cообщить модератору

96. "Выпуск СУБД SQLite 3.37"  +/
Сообщение от fuggy (ok), 29-Ноя-21, 15:37 
Не слышал про DokuWiki? PhpBB форум может работать работать на текстовых файлах и много других созданных во времена web 2.0. Ничего плохого в этом нет.
Ответить | Правка | К родителю #36 | Наверх | Cообщить модератору

103. "Выпуск СУБД SQLite 3.37"  +1 +/
Сообщение от pofigist (?), 29-Ноя-21, 18:21 
Ничего хорошего - тоже. Оно конечно работает, но... мягко говоря не стабильно.

Но SQLite тут не поможет. Особенно шикарна связка SQLite+какой-нибуть язык с GIL, типа пихтна или риби... Spiceworks не даст соврать.

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру