|
Правильно ли тут описаны внутренности работы процедуры checkpoint в PostgreSQL?
|
|||
---|---|---|---|
#18+
dbms_developerС точки зрения системы хранения страничек Б-Дерева, нет ничего кроме страничек, набитых Key=Val, где в Val эта ваша вся доменно-столбцовая хрень и нам на уровне системы хранения страничек Б-Дерева совершенно пофиг на это. Нет, студент, ты так слона не продашь диплом/диссер не защитишь. потому что в СУБД под значением подразумевается допустимое значение домена. И если ты будешь замечательно рассказывать о ключе-значении чуваку, знающему реляционную АЛГЕБРУ, то ты порвешь мозг ему, также как порвал мозг всем тут. Только проблема будет в том, что обладатель ученой степени - он, а защищаешься ты. И со своим "ну плутон это земля, что тут непонятного. И марс земля, и луна земля." и агрессивным навязыванием своего языка, вместо использования сложившегося термина "планета/планетоид" пойдешь дорабатывать свою работу ты. Я бы как рецензент отправил бы человека, приславшего такую статью, далеко. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2018, 17:22 |
|
Правильно ли тут описаны внутренности работы процедуры checkpoint в PostgreSQL?
|
|||
---|---|---|---|
#18+
Melkijdbms_developerНу а B+-Tree там есть, надо признать. Неа. Деревья (разные!) могут быть в содержимом страниц конкретных access method (AM) Может быть потом когда-нибудь допилят pluggable storage и опять же на уровне чуть выше страницы данных можно будет найти дерево. А heap - банальная вульгарная куча Это уже не важно. Чаще всего там какое-то B+-Tree. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2018, 18:36 |
|
Правильно ли тут описаны внутренности работы процедуры checkpoint в PostgreSQL?
|
|||
---|---|---|---|
#18+
Hawkmoondbms_developerС точки зрения системы хранения страничек Б-Дерева, нет ничего кроме страничек, набитых Key=Val, где в Val эта ваша вся доменно-столбцовая хрень и нам на уровне системы хранения страничек Б-Дерева совершенно пофиг на это. Нет, студент, ты так слона не продашь диплом/диссер не защитишь. потому что в СУБД под значением подразумевается допустимое значение домена. И если ты будешь замечательно рассказывать о ключе-значении чуваку, знающему реляционную АЛГЕБРУ, то ты порвешь мозг ему, также как порвал мозг всем тут. Только проблема будет в том, что обладатель ученой степени - он, а защищаешься ты. И со своим "ну плутон это земля, что тут непонятного. И марс земля, и луна земля." и агрессивным навязыванием своего языка, вместо использования сложившегося термина "планета/планетоид" пойдешь дорабатывать свою работу ты. Я бы как рецензент отправил бы человека, приславшего такую статью, далеко. Э-э-э, мы не говорим про СУБД и про реляционную алгебру. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2018, 18:36 |
|
Правильно ли тут описаны внутренности работы процедуры checkpoint в PostgreSQL?
|
|||
---|---|---|---|
#18+
dbms_developerЭто уже не важно. Так если не важно - то при чём тут postgresql? Берёте Transactional Information Systems Theory, Algorithms, and the Practice of Concurrency Control and Recovery авторства Gerhard Weikum и Gottfried Vossen и читаете. Про чекпойнты там тоже написано. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2018, 19:44 |
|
Правильно ли тут описаны внутренности работы процедуры checkpoint в PostgreSQL?
|
|||
---|---|---|---|
#18+
Melkijdbms_developerЭто уже не важно. Так если не важно - то при чём тут postgresql? Берёте Transactional Information Systems Theory, Algorithms, and the Practice of Concurrency Control and Recovery авторства Gerhard Weikum и Gottfried Vossen и читаете. Про чекпойнты там тоже написано. Мы обсуждаем систему checkpoint в постгресе. А реляционная алгебра и что точно хранится в страничках при этом - не очень важно. Ваш кэпушка. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2018, 19:46 |
|
Правильно ли тут описаны внутренности работы процедуры checkpoint в PostgreSQL?
|
|||
---|---|---|---|
#18+
dbms_developer, главная ошибка автора текста по ссылке состоит в том, что он пытается натянуть видимо хорошо ему знакомую терминологию из условного Redis на совершенно по-другому устроенный PostgreSQL. Как результат, понять логику рассуждений сложно, ибо она построена на совершенно абсурдных предположениях. Для начала надо понять, что для постгреса неприменима логика восстановления в памяти состояния из дисковой копии ("снапшота"), ибо первичным является собственно состояние на диске, а память используется как буфер, временно хранящий обрабатываемые данные, причём размер этого буфера обычно несопоставимо меньше объёма данных, хранящихся на диске (в файлах). ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2018, 22:19 |
|
Правильно ли тут описаны внутренности работы процедуры checkpoint в PostgreSQL?
|
|||
---|---|---|---|
#18+
Scott Tiger....для постгреса неприменима логика восстановления в памяти состояния из дисковой копии... RTFM pg_prewarm ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2018, 09:54 |
|
Правильно ли тут описаны внутренности работы процедуры checkpoint в PostgreSQL?
|
|||
---|---|---|---|
#18+
Scott Tigerdbms_developer, главная ошибка автора текста по ссылке состоит в том, что он пытается натянуть видимо хорошо ему знакомую терминологию из условного Redis на совершенно по-другому устроенный PostgreSQL... в postgresql всё уже давно есть - LRU caching ask Tom Lane (core dev): [..] But my opinion is that people who think they are smarter than an LRU caching algorithm are typically mistaken. If the table is all that heavily used, it will stay in memory just fine. If it's not sufficiently heavily used to stay in memory according to an LRU algorithm, maybe the memory space really should be spent on something else. [..] ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2018, 10:02 |
|
Правильно ли тут описаны внутренности работы процедуры checkpoint в PostgreSQL?
|
|||
---|---|---|---|
#18+
Alex URS, pg_prewarm и цитата Тома — они несколько о другом. Мы тут обсуждаем Нам рассказывают про механизмы попадающие под ‘D’ (Durability), и там важна другого рода производительность. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2018, 10:10 |
|
Правильно ли тут описаны внутренности работы процедуры checkpoint в PostgreSQL?
|
|||
---|---|---|---|
#18+
vyegorovAlex URS, pg_prewarm и цитата Тома — они несколько о другом. Мы тут обсуждаем Нам рассказывают про механизмы попадающие под ‘D’ (Durability), и там важна другого рода производительность. если брать в целом - согласен статью читал, но не понимаю одно: если нам впаривают, что Key = Value, то это не так. Реляция это связь, но не Key - Value. для реляционных баз данных верен информационный принцип: всё информационное наполнение базы данных представлено одним и только одним способом, а именно — явным заданием значений атрибутов в кортежах отношений; в частности, нет никаких указателей (адресов), связывающих одно значение с другим; ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2018, 10:34 |
|
Правильно ли тут описаны внутренности работы процедуры checkpoint в PostgreSQL?
|
|||
---|---|---|---|
#18+
Alex URSScott Tiger....для постгреса неприменима логика восстановления в памяти состояния из дисковой копии... RTFM pg_prewarm Разогрев кэша - это _совсем_ про другое. Попробую с другой стороны объяснить: в том же Redis диск является _опциональным_ местом хранения данных на случай перезапуска при условии, что данные вообще нужны (если использовать Redis как просто кэш, данные можно и не хранить). Все данные, с которыми он работает, хранятся в оперативной памяти процесса Redis и, если это настроено, периодически сбрасываются на диск (RDB snapshot) и/или поток изменений записывается в журнал (AOF logging). Чувствуете разницу? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2018, 11:29 |
|
Правильно ли тут описаны внутренности работы процедуры checkpoint в PostgreSQL?
|
|||
---|---|---|---|
#18+
Scott TigerAlex URSпропущено... RTFM pg_prewarm Разогрев кэша - это _совсем_ про другое. Попробую с другой стороны объяснить: в том же Redis диск является _опциональным_ местом хранения данных на случай перезапуска при условии, что данные вообще нужны (если использовать Redis как просто кэш, данные можно и не хранить). Все данные, с которыми он работает, хранятся в оперативной памяти процесса Redis и, если это настроено, периодически сбрасываются на диск (RDB snapshot) и/или поток изменений записывается в журнал (AOF logging). Чувствуете разницу? оно то так, но пару лет назад на сайте Red Hat Magazine была статья Tip from an RHCE: Memory storage on PostgreSQL – One way to make sure your PostgreSQL (temporary) table is in memory ., так вот там описывалось, как сделать табличное пространство в PostgreSQL смонтированным репозиторием, расположенным именно в области memory (жаль у меня сохранилась только ссылка - теперь она не рабочая, статью удалили отовсюду) так вот "лёгким движением руки" естественно не лёгким БД "превращалась" специально взял в кавычки в Redis ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2018, 12:23 |
|
Правильно ли тут описаны внутренности работы процедуры checkpoint в PostgreSQL?
|
|||
---|---|---|---|
#18+
Alex URS, если памяти не жалко, можно и так. Но это никак не поменяет архитектуру PostgreSQL, и Redis-ом она не станет, даже если PGDATA положить в рамдиск. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2018, 12:48 |
|
Правильно ли тут описаны внутренности работы процедуры checkpoint в PostgreSQL?
|
|||
---|---|---|---|
#18+
dbms_developerЭ-э-э, мы не говорим про СУБД и про реляционную алгебру. Веришь нет, мы на форуме про СУБД. и говорим тут часто на языке select ... from ... join ... И у тебя в нике dbms. Но конечно, ни про первое ни про второе ни про третье ты не говоришь. Еще раз повторяю: человек, который будет называть собак кошками на форуме кинологов, и при этом утверждать, что он прав, закончит дни в психушке. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2018, 13:27 |
|
Правильно ли тут описаны внутренности работы процедуры checkpoint в PostgreSQL?
|
|||
---|---|---|---|
#18+
Alex URSvyegorovAlex URS, pg_prewarm и цитата Тома — они несколько о другом. Мы тут обсуждаем Нам рассказывают про механизмы попадающие под ‘D’ (Durability), и там важна другого рода производительность. если брать в целом - согласен статью читал, но не понимаю одно: если нам впаривают, что Key = Value, то это не так. Реляция это связь, но не Key - Value. для реляционных баз данных верен информационный принцип: всё информационное наполнение базы данных представлено одним и только одним способом, а именно — явным заданием значений атрибутов в кортежах отношений; в частности, нет никаких указателей (адресов), связывающих одно значение с другим; Нет, этого вам не впаривают. Игнорируйте впустую возбудившихся. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2018, 14:10 |
|
Правильно ли тут описаны внутренности работы процедуры checkpoint в PostgreSQL?
|
|||
---|---|---|---|
#18+
Scott Tigerdbms_developer, главная ошибка автора текста по ссылке состоит в том, что он пытается натянуть видимо хорошо ему знакомую терминологию из условного Redis на совершенно по-другому устроенный PostgreSQL. Как результат, понять логику рассуждений сложно, ибо она построена на совершенно абсурдных предположениях. Для начала надо понять, что для постгреса неприменима логика восстановления в памяти состояния из дисковой копии ("снапшота"), ибо первичным является собственно состояние на диске, а память используется как буфер, временно хранящий обрабатываемые данные, причём размер этого буфера обычно несопоставимо меньше объёма данных, хранящихся на диске (в файлах). Это понятно, но это не принципиально для темы обсужления. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2018, 14:14 |
|
Правильно ли тут описаны внутренности работы процедуры checkpoint в PostgreSQL?
|
|||
---|---|---|---|
#18+
Ясно, что для СУБД типично то, что дисковое/ленточное/бумажное хранилище первично по отношению к памяти. В этом смысле СУБД не пытается накатить состояние памяти из "снепшота", чтобы работать, и ОЗУ рассматривается чисто как кеш. Но это совершенно не отличается от того, как если бы у нас существовала некая Key=Value, которая умеет вытеснять из памяти часть данных и по необходимости ходить за ними на диск. Я считаю, что в современном мире систем хранения эта граница давно уже размыта. Что считать "in-memory" хранилкой, что "дисковой" - уже строго деления давно нет. Все они держат что-то в памяти, что-то имеют право держать на диске. Если система держит на диске 95% своих данных, то "in-memory" или нет? А если через 1 минуту подгрузила всё в память и больше не выгружала - она стала "in memory" от этого? В общем это всё софистика с точки зрения темы топика. Мы можем реализовать тот же Redis на базе B+-Tree, а не на базе хеш-таблички и научить Redis при старте не зачитывать в память всё, а подгружать блоки B+-Tree при необходимости, а при желании скинуть что-то на диск, помимо записи журнала, иногда делать тот же самый checkpoint процесс со скидыванием грязных страничек. Так что тема разговора просто про способ синхронизировать с диском набор грязных блоков, реализованный в Постгресе в виде постгресного checkpoint процесса. Что там в этих блоках лежало - многоверсионные кортежи, реляционно связанные с чем-то там ещё или просто россыпь Key=Value - имеет нулевую важность. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2018, 14:37 |
|
Правильно ли тут описаны внутренности работы процедуры checkpoint в PostgreSQL?
|
|||
---|---|---|---|
#18+
dbms_developerЯсно, что для СУБД типично то, что дисковое/ленточное/бумажное хранилище первично по отношению к памяти. В этом смысле СУБД не пытается накатить состояние памяти из "снепшота", чтобы работать, и ОЗУ рассматривается чисто как кеш. Но это совершенно не отличается от того, как если бы у нас существовала некая Key=Value, которая умеет вытеснять из памяти часть данных и по необходимости ходить за ними на диск. Я считаю, что в современном мире систем хранения эта граница давно уже размыта. Что считать "in-memory" хранилкой, что "дисковой" - уже строго деления давно нет. Все они держат что-то в памяти, что-то имеют право держать на диске. Если система держит на диске 95% своих данных, то "in-memory" или нет? А если через 1 минуту подгрузила всё в память и больше не выгружала - она стала "in memory" от этого? В общем это всё софистика с точки зрения темы топика. Мы можем реализовать тот же Redis на базе B+-Tree, а не на базе хеш-таблички и научить Redis при старте не зачитывать в память всё, а подгружать блоки B+-Tree при необходимости, а при желании скинуть что-то на диск, помимо записи журнала, иногда делать тот же самый checkpoint процесс со скидыванием грязных страничек. Так что тема разговора просто про способ синхронизировать с диском набор грязных блоков, реализованный в Постгресе в виде постгресного checkpoint процесса. Что там в этих блоках лежало - многоверсионные кортежи, реляционно связанные с чем-то там ещё или просто россыпь Key=Value - имеет нулевую важность. смешались в кучу кони, люди (с) 1. по поводу нулевой важности - прочитайте про архитектуру Berkeley DB 2. система in-memory - это не совсем то, что вы пишите - это не место - это механизм, который подразумевает хранение в in-memory как минимум индексов к объекту вообще я не понимаю такую вещь - SQL на порядок надёжнее, чем NOSQL из за математического способа структуризации, которого в NOSQL нет - как можно от NOSQL "тянуть" checkpoint в SQL(RDBMS) - это не логично ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2018, 15:59 |
|
Правильно ли тут описаны внутренности работы процедуры checkpoint в PostgreSQL?
|
|||
---|---|---|---|
#18+
Alex URSdbms_developerЯсно, что для СУБД типично то, что дисковое/ленточное/бумажное хранилище первично по отношению к памяти. В этом смысле СУБД не пытается накатить состояние памяти из "снепшота", чтобы работать, и ОЗУ рассматривается чисто как кеш. Но это совершенно не отличается от того, как если бы у нас существовала некая Key=Value, которая умеет вытеснять из памяти часть данных и по необходимости ходить за ними на диск. Я считаю, что в современном мире систем хранения эта граница давно уже размыта. Что считать "in-memory" хранилкой, что "дисковой" - уже строго деления давно нет. Все они держат что-то в памяти, что-то имеют право держать на диске. Если система держит на диске 95% своих данных, то "in-memory" или нет? А если через 1 минуту подгрузила всё в память и больше не выгружала - она стала "in memory" от этого? В общем это всё софистика с точки зрения темы топика. Мы можем реализовать тот же Redis на базе B+-Tree, а не на базе хеш-таблички и научить Redis при старте не зачитывать в память всё, а подгружать блоки B+-Tree при необходимости, а при желании скинуть что-то на диск, помимо записи журнала, иногда делать тот же самый checkpoint процесс со скидыванием грязных страничек. Так что тема разговора просто про способ синхронизировать с диском набор грязных блоков, реализованный в Постгресе в виде постгресного checkpoint процесса. Что там в этих блоках лежало - многоверсионные кортежи, реляционно связанные с чем-то там ещё или просто россыпь Key=Value - имеет нулевую важность. смешались в кучу кони, люди (с) 1. по поводу нулевой важности - прочитайте про архитектуру Berkeley DB 2. система in-memory - это не совсем то, что вы пишите - это не место - это механизм, который подразумевает хранение в in-memory как минимум индексов к объекту вообще я не понимаю такую вещь - SQL на порядок надёжнее, чем NOSQL из за математического способа структуризации, которого в NOSQL нет - как можно от NOSQL "тянуть" checkpoint в SQL(RDBMS) - это не логично Не очень понял в чём вопрос. У вас есть B+-Tree в большом файлике. Вы нагрузили в память каких-то блоков этого B+-Tree, какими-то элементарными операциями меняете содержимое этих блоков, возможно порождаете новые. Задача: хотелось бы скинуть на диск изменённые блоки. Как-нибудь. Checkout process в Постгресе решает эту задачу своим способом. Этот способ и обсуждается. Чё там в этих блоках валяется - строки таблиц, Key=Value или ещё какая хрень - вообще пофигу. SQL тоже. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2018, 18:00 |
|
Правильно ли тут описаны внутренности работы процедуры checkpoint в PostgreSQL?
|
|||
---|---|---|---|
#18+
http://www.interdb.jp/pg/pgsql09.html - вот здесь в разделе 9.7 написано, как делается чекпоинт, и что куда пишется. Перевести на язык марсиан с Юпитера, которым написана статья https://telegra.ph/postgreSQL-checkpoint-logic-11-14 , я лично не возьмусь. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2018, 00:53 |
|
|
start [/forum/topic.php?fid=53&msg=39744031&tid=1995455]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
56ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
others: | 272ms |
total: | 435ms |
0 / 0 |