|
|
|
Сборка мусора в индексах
|
|||
|---|---|---|---|
|
#18+
<Tabloid mode on> Наличие в индексе нод, указывающих на запись, где такого значения нет даже в мусорных версиях - это нормально или баг? Причем, естественно, такие ноды не берёт ни сборка мусора ни свип, помогает только перестроение индекса. Доказательство, что это не мои глюки: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2014, 01:32:11 |
|
||
|
Сборка мусора в индексах
|
|||
|---|---|---|---|
|
#18+
Это не вполне нормально, но не смертельно. Считай это платой за отсутствие missing entries. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2014, 01:48:53 |
|
||
|
Сборка мусора в индексах
|
|||
|---|---|---|---|
|
#18+
hvladСчитай это платой за отсутствие missing entries. Даже не спросишь как я их породил? Это просто: update on place + no auto undo и одним EB индекс разрастается до любых размеров. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2014, 02:04:36 |
|
||
|
Сборка мусора в индексах
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakovодним EB Хотя нет, вру: с EB как раз этот трюк не пройдёт. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2014, 02:06:49 |
|
||
|
Сборка мусора в индексах
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovДаже не спросишь как я их породил?Думаешь, я не знаю как это сделать ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2014, 02:26:57 |
|
||
|
Сборка мусора в индексах
|
|||
|---|---|---|---|
|
#18+
hvladДумаешь, я не знаю как это сделать ? И не пофиксишь? Там ведь всего пару строк перекинуть... Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2014, 02:39:34 |
|
||
|
Сборка мусора в индексах
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovhvladДумаешь, я не знаю как это сделать ? И не пофиксишь? Там ведь всего пару строк перекинуть...Каких таких пару строк ? Понятия не имею, о чём ты. PS Где раскомментировать - я знаю PPS А ты прочитал все буквы в моём первом ответе ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2014, 03:37:36 |
|
||
|
Сборка мусора в индексах
|
|||
|---|---|---|---|
|
#18+
hvladPPS А ты прочитал _все_ буквы в моём первом ответе ? Буквы я прочитал все, но моей убогой фантазии не хватает чтобы выдумать как чистка индексов при дропе undo data может привести к missing entries. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2014, 13:22:54 |
|
||
|
Сборка мусора в индексах
|
|||
|---|---|---|---|
|
#18+
А при чём тут чистка индексов ? Чем дольше ты будешь говорить намёками, тем меньше я буду тебя понимать и тем раньше мне это надоест ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2014, 13:37:33 |
|
||
|
Сборка мусора в индексах
|
|||
|---|---|---|---|
|
#18+
hvladЧем дольше ты будешь говорить намёками, тем меньше я буду тебя понимать и тем раньше мне это надоест Дык, ты первый начал. Конкретно: когда VIO_verb_cleanup() некуда вливать данный сейфпоинт, undo data молча уничтожается, без вызова garbage_collect_idx(), что и приводит к лишним записям в индексе. А ты про что говорил здесь ? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2014, 13:44:53 |
|
||
|
Сборка мусора в индексах
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovКонкретно: когда VIO_verb_cleanup() некуда вливать данный сейфпоинт, undo data молча уничтожается, без вызова garbage_collect_idx(), что и приводит к лишним записям в индексе.Если нет сейвпойнта тр-ции, то и никакого undo data тоже не будет. Так что не всё так просто, как кажется. Но проблему (с этой стороны) я теперь вижу. Правда, не проверял. Dimitry SibiryakovА ты про что говорил здесь ?Про другое ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2014, 15:50:38 |
|
||
|
Сборка мусора в индексах
|
|||
|---|---|---|---|
|
#18+
hvladЕсли нет сейвпойнта тр-ции, то и никакого undo data тоже не будет. Будет. Без него второй и последующие update в этой транзакции не смогут нормально откатиться. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2014, 16:06:45 |
|
||
|
Сборка мусора в индексах
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovhvladЕсли нет сейвпойнта тр-ции, то и никакого undo data тоже не будет. Будет. Без него второй и последующие update в этой транзакции не смогут нормально откатиться.Мне сейчас не до глубоких ковыряний в этих местах, но по памяти - я с тобой не согласен. Покажи, как ты это видишь, тогда продолжим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2014, 16:43:04 |
|
||
|
Сборка мусора в индексах
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2014, 17:14:30 |
|
||
|
Сборка мусора в индексах
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovЭ-э-э... что именно "это" я вижу?Вот это Dimitry Sibiryakovвторой и последующие update в этой транзакции не смогут нормально откатиться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2014, 18:22:48 |
|
||
|
Сборка мусора в индексах
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2014, 18:36:12 |
|
||
|
Сборка мусора в индексах
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovЕсли второй update позднее обломается и будет вынужден откатиться, он не сможет восстановить f=2 без undo data. а зачем восстаналивать f=2, если сразу можно восстановить f=1? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2014, 18:41:54 |
|
||
|
Сборка мусора в индексах
|
|||
|---|---|---|---|
|
#18+
Симонов Дениса зачем восстаналивать f=2, если сразу можно восстановить f=1? И сделать вид, что первого update никогда не существовало?.. Будет забавно, когда после коммита его изменения не сохранятся. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2014, 18:48:09 |
|
||
|
Сборка мусора в индексах
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovЕсть запись с f=1. Первый update делает f=2, образуется новая версия. Второй update делает f=3, происходит update in place, теперь на диске две версии с f=1 и 3. Версии с f=2 нету.Т.е. второй апдейт уже завершён ? Dimitry SibiryakovЕсли второй update позднее обломается и будет вынужден откатитьсяВидимо, не завершён, т.е. меняется более одной записи. В этом случае все изменения накапливаются на его собственном savepoint'е, который и откатывается при обломе апдейта. И no_undo здесь по барабану, абсолютно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2014, 22:17:01 |
|
||
|
Сборка мусора в индексах
|
|||
|---|---|---|---|
|
#18+
hvladВ этом случае все изменения накапливаются на его собственном savepoint'е, который и откатывается при обломе апдейта. И no_undo здесь по барабану, абсолютно. Ну а я о чём тебе твержу?.. Это ты тут всем голову морочишь с заявлением "если нет сейвпойнта тр-ции, то и никакого undo data тоже не будет." Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2014, 22:32:39 |
|
||
|
Сборка мусора в индексах
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovНу а я о чём тебе твержу?..На 90% - ни о чём :) Dimitry SibiryakovЭто ты тут всем голову морочишьМогу не морочить, баба с возу... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2014, 23:35:59 |
|
||
|
Сборка мусора в индексах
|
|||
|---|---|---|---|
|
#18+
hvladМогу не морочить, баба с возу... ....нашим легче. Свой ответ "это бага, но безобидная, поэтому всем пофиг" ты уже дал. Этого вполне достаточно. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2014, 23:40:54 |
|
||
|
Сборка мусора в индексах
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovСвой ответ "это бага, но безобиднаяЭто был ответ на другой вопрос, как выяснилось. И я от него не отказываюсь. Dimitry Sibiryakovпоэтому всем пофигА это - твои фантазии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2014, 23:46:16 |
|
||
|
Сборка мусора в индексах
|
|||
|---|---|---|---|
|
#18+
hvladЭто был ответ на другой вопрос, как выяснилось. И я от него не отказываюсь. И правильно делаешь. Как я и написал в девеле, вокруг этого update_in_place() не нагородить достаточное количество костылей, чтобы всё работало нормально. Сдаётся мне, что проще будет его выкинуть целиком, чем приводить в порядок. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2014, 18:28:28 |
|
||
|
Сборка мусора в индексах
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, когда ты возьмёшь на себя труд что-то сделать (или переделать), и оно будет работать, и ничего не сломает, и переживёт пару версий - вот может быть тогда ты будешь иметь право на подобные заявления про "костыли" и "выкинуть целиком". В fb-devel я тебе ответил. Советую 5 раз подумать и сменить тон, прежде чем отвечать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2014, 23:13:04 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=38599518&tid=1563767]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
430ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
83ms |
get tp. blocked users: |
2ms |
| others: | 205ms |
| total: | 764ms |

| 0 / 0 |
