powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Сборка мусора в индексах
25 сообщений из 27, страница 1 из 2
Сборка мусора в индексах
    #38598644
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
<Tabloid mode on>

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

Доказательство, что это не мои глюки:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
G_TEST (130)
     Primary pointer page: 213, Index root page: 214
     Total formats: 1, used formats: 1
     Average record length: 9.00, total records: 1
     Average version length: 0.00, total versions: 0, max versions: 0
     Average fragment length: 0.00, total fragments: 0, max fragments: 0
     Average unpacked length: 8.00, compression ratio: 0.89
     Pointer pages: 1, data page slots: 1
     Data pages: 1, average fill: 1%
     Primary pages: 1, full pages: 0, swept pages: 1

     Index G_IND (0)
         Root page: 215, depth: 1, leaf buckets: 1, nodes: 5
         Average node length: 3.80, total dup: 1, max dup: 1
         Average key length: 2.60, compression ratio: 0.69
         Average prefix length: 1.00, average data length: 0.80

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Сборка мусора в индексах
    #38598647
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это не вполне нормально, но не смертельно. Считай это платой за отсутствие missing entries.
...
Рейтинг: 0 / 0
Сборка мусора в индексах
    #38598650
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladСчитай это платой за отсутствие missing entries.
Даже не спросишь как я их породил? Это просто: update on place + no auto undo и одним EB
индекс разрастается до любых размеров.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Сборка мусора в индексах
    #38598651
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakovодним EB
Хотя нет, вру: с EB как раз этот трюк не пройдёт.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Сборка мусора в индексах
    #38598654
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovДаже не спросишь как я их породил?Думаешь, я не знаю как это сделать ?
...
Рейтинг: 0 / 0
Сборка мусора в индексах
    #38598657
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladДумаешь, я не знаю как это сделать ?
И не пофиксишь? Там ведь всего пару строк перекинуть...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Сборка мусора в индексах
    #38598664
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovhvladДумаешь, я не знаю как это сделать ?
И не пофиксишь? Там ведь всего пару строк перекинуть...Каких таких пару строк ? Понятия не имею, о чём ты.

PS Где раскомментировать - я знаю
PPS А ты прочитал все буквы в моём первом ответе ?
...
Рейтинг: 0 / 0
Сборка мусора в индексах
    #38599110
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladPPS А ты прочитал _все_ буквы в моём первом ответе ?
Буквы я прочитал все, но моей убогой фантазии не хватает чтобы выдумать как чистка
индексов при дропе undo data может привести к missing entries.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Сборка мусора в индексах
    #38599129
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А при чём тут чистка индексов ?

Чем дольше ты будешь говорить намёками, тем меньше я буду тебя понимать и тем раньше мне это надоест
...
Рейтинг: 0 / 0
Сборка мусора в индексах
    #38599138
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladЧем дольше ты будешь говорить намёками, тем меньше я буду тебя понимать и тем
раньше мне это надоест
Дык, ты первый начал.

Конкретно: когда VIO_verb_cleanup() некуда вливать данный сейфпоинт, undo data молча
уничтожается, без вызова garbage_collect_idx(), что и приводит к лишним записям в индексе.

А ты про что говорил
здесь ?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Сборка мусора в индексах
    #38599329
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovКонкретно: когда VIO_verb_cleanup() некуда вливать данный сейфпоинт, undo data молча
уничтожается, без вызова garbage_collect_idx(), что и приводит к лишним записям в индексе.Если нет сейвпойнта тр-ции, то и никакого undo data тоже не будет. Так что не всё так просто, как кажется.
Но проблему (с этой стороны) я теперь вижу. Правда, не проверял.

Dimitry SibiryakovА ты про что говорил
здесь ?Про другое
...
Рейтинг: 0 / 0
Сборка мусора в индексах
    #38599349
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladЕсли нет сейвпойнта тр-ции, то и никакого undo data тоже не будет.
Будет. Без него второй и последующие update в этой транзакции не смогут нормально откатиться.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Сборка мусора в индексах
    #38599397
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovhvladЕсли нет сейвпойнта тр-ции, то и никакого undo data тоже не будет.
Будет. Без него второй и последующие update в этой транзакции не смогут нормально откатиться.Мне сейчас не до глубоких ковыряний в этих местах, но по памяти - я с тобой не согласен.
Покажи, как ты это видишь, тогда продолжим.
...
Рейтинг: 0 / 0
Сборка мусора в индексах
    #38599444
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladМне сейчас не до глубоких ковыряний в этих местах, но по памяти - я с тобой не
согласен.
Покажи, как ты это видишь, тогда продолжим.
Э-э-э... что именно "это" я вижу? Появление undo data в транзакции с no auto undo? Это
просто: второй update видит, что изменяемая запись имеет org_rpb->rpb_transaction_nr ==
transaction->tra_number и вызывает update_in_place(), после чего идёт вызов
verb_post(tdbb, transaction, org_rpb, org_rpb->rpb_undo, false, false), который и
добавляет в vct_undo для текущего (того самого update) Savepoint-а новый
UndoItem(transaction, rpb->rpb_number, old_data, flags). Когда update благополучно
завершён, вызывается VIO_verb_cleanup(), который обрабатывает его Savepoint. Но поскольку
транзакционного Savepoint не существует и sav_next == NULL, то вливать его некуда и вся
ветка с вызовами verb_post() не работает, управление сразу отдаётся на цикл release() для
всех элементов vct_undo. garbage_collect_idx() для них не вызывается.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Сборка мусора в индексах
    #38599518
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovЭ-э-э... что именно "это" я вижу?Вот это
Dimitry Sibiryakovвторой и последующие update в этой транзакции не смогут нормально откатиться.
...
Рейтинг: 0 / 0
Сборка мусора в индексах
    #38599533
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladВот это
Есть запись с f=1. Первый update делает f=2, образуется новая версия. Второй update делает
f=3, происходит update in place, теперь на диске две версии с f=1 и 3. Версии с f=2 нету.
Если второй update позднее обломается и будет вынужден откатиться, он не сможет
восстановить f=2 без undo data.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Сборка мусора в индексах
    #38599537
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovЕсли второй update позднее обломается и будет вынужден откатиться, он не сможет восстановить f=2 без undo data.

а зачем восстаналивать f=2, если сразу можно восстановить f=1?
...
Рейтинг: 0 / 0
Сборка мусора в индексах
    #38599539
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Дениса зачем восстаналивать f=2, если сразу можно восстановить f=1?
И сделать вид, что первого update никогда не существовало?.. Будет забавно, когда после
коммита его изменения не сохранятся.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Сборка мусора в индексах
    #38599634
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovЕсть запись с f=1. Первый update делает f=2, образуется новая версия. Второй update делает
f=3, происходит update in place, теперь на диске две версии с f=1 и 3. Версии с f=2 нету.Т.е. второй апдейт уже завершён ?

Dimitry SibiryakovЕсли второй update позднее обломается и будет вынужден откатитьсяВидимо, не завершён, т.е. меняется более одной записи.
В этом случае все изменения накапливаются на его собственном savepoint'е, который и откатывается при обломе апдейта.
И no_undo здесь по барабану, абсолютно.
...
Рейтинг: 0 / 0
Сборка мусора в индексах
    #38599637
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladВ этом случае все изменения накапливаются на его собственном savepoint'е,
который и откатывается при обломе апдейта.
И no_undo здесь по барабану, абсолютно.
Ну а я о чём тебе твержу?..

Это ты тут всем голову морочишь с заявлением "если нет сейвпойнта тр-ции, то и никакого
undo data тоже не будет."
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Сборка мусора в индексах
    #38599653
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovНу а я о чём тебе твержу?..На 90% - ни о чём :)
Dimitry SibiryakovЭто ты тут всем голову морочишьМогу не морочить, баба с возу...
...
Рейтинг: 0 / 0
Сборка мусора в индексах
    #38599656
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladМогу не морочить, баба с возу...
....нашим легче. Свой ответ "это бага, но безобидная, поэтому всем пофиг" ты уже дал. Этого
вполне достаточно.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Сборка мусора в индексах
    #38599657
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovСвой ответ "это бага, но безобиднаяЭто был ответ на другой вопрос, как выяснилось. И я от него не отказываюсь.
Dimitry Sibiryakovпоэтому всем пофигА это - твои фантазии.
...
Рейтинг: 0 / 0
Сборка мусора в индексах
    #38599893
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladЭто был ответ на другой вопрос, как выяснилось. И я от него не отказываюсь.

И правильно делаешь. Как я и написал в девеле, вокруг этого update_in_place() не
нагородить достаточное количество костылей, чтобы всё работало нормально. Сдаётся мне, что
проще будет его выкинуть целиком, чем приводить в порядок.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Сборка мусора в индексах
    #38599996
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

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

В fb-devel я тебе ответил. Советую 5 раз подумать и сменить тон, прежде чем отвечать.
...
Рейтинг: 0 / 0
25 сообщений из 27, страница 1 из 2
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Сборка мусора в индексах
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]