powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Давайте обсудим проверку контрольных сум для файлов.
13 сообщений из 38, страница 2 из 2
Давайте обсудим проверку контрольных сум для файлов.
    #39710023
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Синий Слон,

исказите данные конкретного тапла, а не сломайте страницу.
Код: plaintext
1.
2.
3.
4.
postgres=# select * from foo;
 i |  v  
---+-----
 1 | foo
sed 's/foo/bar/g' -i 10/r/base/12941/16384
Есть checksum - есть ошибка. Нет checksum - вы прочитаете bar там где должно было быть foo и не заметите этого
...
Рейтинг: 0 / 0
Давайте обсудим проверку контрольных сум для файлов.
    #39710031
Синий Слон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MelkijСиний Слон,

исказите данные конкретного тапла, а не сломайте страницу.
Код: plaintext
1.
2.
3.
4.
postgres=# select * from foo;
 i |  v  
---+-----
 1 | foo
sed 's/foo/bar/g' -i 10/r/base/12941/16384
Есть checksum - есть ошибка. Нет checksum - вы прочитаете bar там где должно было быть foo и не заметите этого


я сейчас еще поэкспериментирую, но пока при правке у меня ошибка, даже без опции --data-checksums:
...
Рейтинг: 0 / 0
Давайте обсудим проверку контрольных сум для файлов.
    #39710033
Синий Слон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Melkij,

два раза перепроверил.


второй раз менял xxx на zxx.



Даже без включения --data-checksums сразу пишет ошибку в блоке. Версия 9.4
...
Рейтинг: 0 / 0
Давайте обсудим проверку контрольных сум для файлов.
    #39710037
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Синий Слон,

я могу повторить: исказите данные, а не сломайте страницу целиком.
Пытаться в текстовом редакторе что-то делать с бинарными данными и удивляться результату? Не понимаю.
...
Рейтинг: 0 / 0
Давайте обсудим проверку контрольных сум для файлов.
    #39710046
Синий Слон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MelkijСиний Слон,

я могу повторить: исказите данные, а не сломайте страницу целиком.
Пытаться в текстовом редакторе что-то делать с бинарными данными и удивляться результату? Не понимаю.


Спасибо, сейчас попробую.
...
Рейтинг: 0 / 0
Давайте обсудим проверку контрольных сум для файлов.
    #39710069
Синий Слон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MelkijСиний Слон,

я могу повторить: исказите данные, а не сломайте страницу целиком.
Пытаться в текстовом редакторе что-то делать с бинарными данными и удивляться результату? Не понимаю.


Вы совершенно правы!


Исправил aaa на bbb.

Слева с включенной опцией, справа без опции.
...
Рейтинг: 0 / 0
Давайте обсудим проверку контрольных сум для файлов.
    #39710071
Синий Слон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Melkij,

Большое спасибо!


Я так понимаю что данные могут "сломаться" из-за железа, например, при этом блок останется целый, а внутри будет все что угодно, в том числе и космические цифры и спецсимволы...
...
Рейтинг: 0 / 0
Давайте обсудим проверку контрольных сум для файлов.
    #39710082
Синий Слон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Остался только вопрос на счет нагрузки, дополнительно создаваемой опцией --data-checksums


Получается что при каждом чекпойнте будет расчитываться чексум для каждого измененного файла.
...
Рейтинг: 0 / 0
Давайте обсудим проверку контрольных сум для файлов.
    #39710146
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Синий СлонОстался только вопрос на счет нагрузки, дополнительно создаваемой опцией --data-checksums


Получается что при каждом чекпойнте будет расчитываться чексум для каждого измененного файла.


При каждой записи 8kb изменного блока (а не всего файла на гигабайт). А блок всегда целиком пишется.
Overhead там копеечный для современных процессоров.

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
Давайте обсудим проверку контрольных сум для файлов.
    #39710290
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Синий СлонА вы как думаете?
Я думаю, что его разработчики не могут быть настолько глупы чтобы использовать что-то другое. Но настораживает упоминание "пары байт в заголовке страницы" при том, что CRC32 занимает четыре байта и гораздо удобнее ложится в конец страницы.
...
Рейтинг: 0 / 0
Давайте обсудим проверку контрольных сум для файлов.
    #39710424
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakovнастораживает упоминание "пары байт в заголовке страницы" при том, что CRC32 занимает четыре байта и гораздо удобнее ложится в конец страницы.
Но наковыряли только два байта . И именно в заголовке .

Используется производный от FNV-1a алгоритм. Описание особенностей реализации можно почитать вот здесь в комментарии файла . Не могу никак прокомментировать выбор, поищите топик обсуждений вот к этому коммиту . Раньше crc32 был, как видно по коду.

Синий СлонПолучается что при каждом чекпойнте будет расчитываться чексум для каждого измененного файла.
Если я правильно код читаю - при попадании в shared_buffers и сбросе грязных страниц из shared_buffers.
Для каждой страницы в отдельности (8кб обычно), не файла - это точно.
...
Рейтинг: 0 / 0
Давайте обсудим проверку контрольных сум для файлов.
    #39710798
Синий Слон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Большое спасибо!!!
...
Рейтинг: 0 / 0
Давайте обсудим проверку контрольных сум для файлов.
    #39716386
Sergei.Agalakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
13 сообщений из 38, страница 2 из 2
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Давайте обсудим проверку контрольных сум для файлов.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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