Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Пожалуйста, поясните про кооперативную сборку мусора. / 25 сообщений из 107, страница 1 из 5
11.11.2016, 14:11
    #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
11.11.2016, 14:12
    #39345613
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пожалуйста, поясните про кооперативную сборку мусора.
нет
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
11.11.2016, 14:17
    #39345619
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пожалуйста, поясните про кооперативную сборку мусора.
rdb_dev,

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

собственно, а зачем понадобилось менять сборку мусора с background на cooperative?
...
Рейтинг: 0 / 0
11.11.2016, 15:39
    #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
11.11.2016, 15:42
    #39345742
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пожалуйста, поясните про кооперативную сборку мусора.
kdv,

он хотел combined заменить на cooperative. Только не понятно зачем. Чем ему фоновая сборка мешает я так и не понял. Очевидно, что он её со sweep путает.
...
Рейтинг: 0 / 0
11.11.2016, 15:43
    #39345746
rdb_dev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пожалуйста, поясните про кооперативную сборку мусора.
kdvсобственно, а зачем понадобилось менять сборку мусора с background на cooperative?Оно не понадобилось... Просто не сразу нашел информацию об отличии combined от cooperative.
За напоминание о no_garbage_collect отдельное спасибо!
...
Рейтинг: 0 / 0
11.11.2016, 15:44
    #39345748
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пожалуйста, поясните про кооперативную сборку мусора.
rdb_devмог бы просто процитировать
Зачем мне цитировать такую чушь? Sweep interval сравнивается с OIT-OAT, а не NT-OIT.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
11.11.2016, 15:49
    #39345756
kdv
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
11.11.2016, 16:50
    #39345805
rdb_dev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пожалуйста, поясните про кооперативную сборку мусора.
Симонов Денис...Очевидно, что он её со sweep путает.Ты прав! Пока я не нашел информацию о различиях combined и cooperative, я ошибочно полагал, что фоновая сборка мусора как-то связана со sweep.
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Пожалуйста, поясните про кооперативную сборку мусора. / 25 сообщений из 107, страница 1 из 5
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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