powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Пожалуйста, поясните про кооперативную сборку мусора.
25 сообщений из 107, страница 1 из 5
Пожалуйста, поясните про кооперативную сборку мусора.
    #39345611
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В статье "Многоверсионность в двух словах" написано, что процесс сборки мусорных версий в процессе чтения записей называется "Кооперативная сборка мусора", а в статье "Кооперативная сборка мусора в InterBase и Firebird" написано (цитирую):
"кооперативная явная . Используется в Classic и во всех версиях до InterBase 6 SuperServer (также оставлена в Yaffil, как Classic так и SuperServer). Мусор убирается пользовательским процессом (или thread-ом) только в тех данных, которые читаются или обновляются."

и в ДОПОЛНЕНИИ (цитирую):
В Firebird 2.0 сборщик мусора переработан, и есть 3 стратегии сборки мусора, которые можно использовать при различных особенностях конкретной системы (биллинг, склад и т. п.) – cooperative (Classic), background (SuperServer), combined (SuperServer). Подробнее см. Release Notes от Firebird 2.0.

Правильно ли я понимаю, что если мне на FirebirdSQL SuperServer v2.5.7 необходимо включить кооперативную сборку мусора для всех баз, то в firebird.conf я прописываю GCPolicy=cooperative, а если необходимо включить кооперативную сборку мусора только для одной базы, то вполне достаточно поставить этой базе sweep interval = 0 и выполняя в такой базе агрегатный запрос типа SELECT Count(*) FROM... к конкретной таблице, я, тем самым, запускаю процесс кооперативной сборки мусорных версий для всех записей этой таблицы?
...
Рейтинг: 0 / 0
Пожалуйста, поясните про кооперативную сборку мусора.
    #39345613
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нет
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Пожалуйста, поясните про кооперативную сборку мусора.
    #39345619
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,

sweep interval не имеет ни какого отношения ни к кооперативной, ни к фоновой сборке мусора.
...
Рейтинг: 0 / 0
Пожалуйста, поясните про кооперативную сборку мусора.
    #39345642
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисrdb_dev, sweep interval не имеет ни какого отношения ни к кооперативной, ни к фоновой сборке мусора.Тогда,
1. К какой именно сборки мусора имеет отношение sweep interval?
2. Как отказаться от combined сборки мусора на SuperServer, оставив ТОЛЬКО кооперативную сборку мусора?

З.Ы. Здесь тоже почитал, но вопросы остались.
...
Рейтинг: 0 / 0
Пожалуйста, поясните про кооперативную сборку мусора.
    #39345650
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий, забавно, когда дают односложный ответ на подобные вопросы.
...
Рейтинг: 0 / 0
Пожалуйста, поясните про кооперативную сборку мусора.
    #39345654
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Rdb Dev!
You wrote on 11 ноября 2016 г. 14:41:59:

Rdb Dev> Мимопроходящий, забавно, когда дают односложный ответ на подобные вопросы.
если Денису интересно жевать для тебя букварь, что ж, пожелаем ему успехов.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Пожалуйста, поясните про кооперативную сборку мусора.
    #39345659
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий, иными словами, ты заходишь на форум только чтобы вставить свои бесполезные "пять копеек"? Чтож... Спасибо - не надо.
...
Рейтинг: 0 / 0
Пожалуйста, поясните про кооперативную сборку мусора.
    #39345660
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,

это как раз тот случай когда "смотрю в книгу - вижу фигу".

rdb_dev1. К какой именно сборки мусора имеет отношение sweep interval?

Читай ещё раз. sweep — это самостоятельный процесс. От GCPolicy он никак не зависит.

rdb_dev2. Как отказаться от combined сборки мусора на SuperServer, оставив ТОЛЬКО кооперативную сборку мусора?

Вот на это как раз влияет параметр GCPolicy.
Зачем? Чем тебе мешает фоновая сборка мусора? Ты понимаешь что это такое и чем она от sweep отличается?
...
Рейтинг: 0 / 0
Пожалуйста, поясните про кооперативную сборку мусора.
    #39345661
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Пожалуйста, поясните про кооперативную сборку мусора.
    #39345674
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий,

жевать я ему ничего не собираюсь. Задал пару наводящих вопросов, сейчас он ещё раз перечитает и поймёт свои ошибки, я надеюсь.
...
Рейтинг: 0 / 0
Пожалуйста, поясните про кооперативную сборку мусора.
    #39345676
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис, понятно, что через кол-во транзакций, указанное в sweep interval запускается процесс сборки мусора для всей БД, но не совсем понятно, что имеется в виду под комбинированным (combined) режимом сборки мусора. Если при фоновой сборки мусора чтение записей приводит только к тому, что прочитанные страницы БД с наличием мусорных версий лишь помечаются для сборки мусора фоновым потоком, то о какой кооперативной сборке идет речь и в каких случаях она будет использована? Только в случае GCPolicy=cooperative, а под комбинированным режимом понимается ТОЛЬКО фоновый процесс сборки мусора и мусорные версии не собираются тут же при чтении страниц БД с такими версиями?
...
Рейтинг: 0 / 0
Пожалуйста, поясните про кооперативную сборку мусора.
    #39345679
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devпонятно, что через кол-во транзакций, указанное в sweep interval запускается процесс
сборки мусора для всей БД

Может, тебе это и понятно, но это неправильно и не имеет ничего общего с действительностью.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Пожалуйста, поясните про кооперативную сборку мусора.
    #39345682
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий, понятно... Раз уж помощи от тебя ждать не приходится, то хоть бы не мешал дурацкими картинками. Не засоряй эфир!
...
Рейтинг: 0 / 0
Пожалуйста, поясните про кооперативную сборку мусора.
    #39345687
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devНе засоряй эфир!очень сложно засорить непрерывный поток бредогенератора
...
Рейтинг: 0 / 0
Пожалуйста, поясните про кооперативную сборку мусора.
    #39345691
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovМожет, тебе это и понятно, но это неправильно и не имеет ничего общего с действительностью.
Тебе нравится меня путать?

"Кооперативная сборка мусора в InterBase и Firebird"
Самый известный момент сборки мусора – это sweep, автоматический (sweep interval > 0) или ручной (gfix -sweep db.gdb).
Sweep, запущенный в автоматическом или ручном режиме, просматривает записи всех таблиц и убирает мусорные (то есть, не нужные ни одной транзакции на данный момент) версии записей.

...
sweep, автоматический или ручной. Сервер просматривает абсолютно все страницы данных (таблиц) для сборки мусора. Если после сборки мусора удается "подвинуть" вперед Oldest transactionLINIK, то это делается.
...
Рейтинг: 0 / 0
Пожалуйста, поясните про кооперативную сборку мусора.
    #39345701
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис, всё, нашел, что искал.
combined – сборщик мусора работает в кооперативном режиме, но если мусор собрать не удается, то о "замусоренных" страницах сигнализируется фоновому сборщику мусора.

Спасибо!
...
Рейтинг: 0 / 0
Пожалуйста, поясните про кооперативную сборку мусора.
    #39345721
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящийочень сложно засорить непрерывный поток бредогенератораТы называешь бредом процесс поиска ответа? По-моему, ты бредишь.
...
Рейтинг: 0 / 0
Пожалуйста, поясните про кооперативную сборку мусора.
    #39345726
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devТебе нравится меня путать?
Мне не нравится, что твой бред находится на публичном форуме и может повлиять на другие
неокрепшие умы.

Какое место из процитированного ты прочитал как "через кол-во транзакций, указанное в
sweep interval запускается процесс сборки мусора для всей БД"? Это тебе не слоновий
автовакуум.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Пожалуйста, поясните про кооперативную сборку мусора.
    #39345730
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,

- сборка мусора работает всегда. не работает она только если в коннекте включить no_garbage_collect, причем только для этого коннекта. Соответственно, сборку мусора "для базы" или на уровне сервера выключить невозможно.
- sweep interval - да, это автосрабатывание sweep, не более того.

собственно, а зачем понадобилось менять сборку мусора с background на cooperative?
...
Рейтинг: 0 / 0
Пожалуйста, поясните про кооперативную сборку мусора.
    #39345737
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov, ну взял бы да и поправил моё некорректное утверждение и вместо того, чтобы высказывать своё недовольство, мог бы просто процитировать "The default sweep interval for a new database is 20,000. The sweep interval is the difference between the oldest interesting transaction or OIT and the next transaction number."
Или ты считаешь, что "неокрепшие умы" будут задавать вопросы в каком-то ином - "приватном" форуме и "сыпать" исключительно корректными определениями?
...
Рейтинг: 0 / 0
Пожалуйста, поясните про кооперативную сборку мусора.
    #39345742
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv,

он хотел combined заменить на cooperative. Только не понятно зачем. Чем ему фоновая сборка мешает я так и не понял. Очевидно, что он её со sweep путает.
...
Рейтинг: 0 / 0
Пожалуйста, поясните про кооперативную сборку мусора.
    #39345746
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvсобственно, а зачем понадобилось менять сборку мусора с background на cooperative?Оно не понадобилось... Просто не сразу нашел информацию об отличии combined от cooperative.
За напоминание о no_garbage_collect отдельное спасибо!
...
Рейтинг: 0 / 0
Пожалуйста, поясните про кооперативную сборку мусора.
    #39345748
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devмог бы просто процитировать
Зачем мне цитировать такую чушь? Sweep interval сравнивается с OIT-OAT, а не NT-OIT.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Пожалуйста, поясните про кооперативную сборку мусора.
    #39345756
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,

я добавлю, что как то был топик, про "фазы луны".
http://www.sql.ru/forum/377919-1/firebird-i-fazy-luny
С тех пор у меня в нескольких презентациях про транзакции есть слайд, который объясняет разницу между cooperative и background.

Идея такая. Есть таблица с 10к (100к и т.д.) записей. Приложение по кнопке
стартует транзакцию
делает update 10к записей (всегда одних и тех же)
commit

время от старта до коммита замеряется и выводится. Кнопку нажимаем то часто, то редко (с интервалом от 0.5 до 10 секунд).
В "некоторых случаях" время от старта до коммита сильно плавает, в зависимости от частоты нажатия на кнопку. Так вот
(напомню, что мусор собирается при select или update)

- cooperative - время update будет всегда одним и тем же. Кооперативная явная сборка мусора собирает мусор "принудительно" именно для этого запроса.
- background - время update будет зависеть от паузы между нажатиями. Фоновая сборка мусора при select/update не собирает мусор, а сигнализирует сборщику. Если пауза большая, то сборщик успевает собрать мусор. Если пауза меньше, то сборщик не успевает, и select/update с каждым разом будут все медленнее и медленнее.
...
Рейтинг: 0 / 0
Пожалуйста, поясните про кооперативную сборку мусора.
    #39345805
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис...Очевидно, что он её со sweep путает.Ты прав! Пока я не нашел информацию о различиях combined и cooperative, я ошибочно полагал, что фоновая сборка мусора как-то связана со sweep.
...
Рейтинг: 0 / 0
25 сообщений из 107, страница 1 из 5
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Пожалуйста, поясните про кооперативную сборку мусора.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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