Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 15 16 17 18 19 [20] 21 22 23 24 .. 54   вперед  Ctrl
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54794

Melkomyagkii_newbi
ЗЫ а как быстро происходит коммит в системах без лога? Расскажите
пожалуйста, правда интересно.

Как происходит коммит в системах с логом: сброс на диск грязных страниц + запись маркера
коммита.
Как происходит коммит в системах без лога: сброс на диск грязных страниц + запись флага
коммита.

Найдите три отличия.

Posted via ActualForum NNTP Server 1.5

15 окт 13, 20:37    [14975560]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
ivan78
Member

Откуда:
Сообщений: 85
Dimitry Sibiryakov
Melkomyagkii_newbi
ЗЫ а как быстро происходит коммит в системах без лога? Расскажите
пожалуйста, правда интересно.

Как происходит коммит в системах с логом: сброс на диск грязных страниц + запись маркера
коммита.
Как происходит коммит в системах без лога: сброс на диск грязных страниц + запись флага
коммита.

Найдите три отличия.

Теперь понятно откуда такое дремучее предубеждение против лога.

А на самом деле, в системах с логом: на диск сбрасывается незаписанный хвост потока redo log-а. При этом, объем информации в логе как правило значительно меньше размера измененных страниц. К тому-же запись страниц - это случайная запись, а запись лога - последовательная. На современных жестких дисках скорость последовательной записи сравнима с таковой на SDD, и даже иногда ее превосходит.
15 окт 13, 20:45    [14975594]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
Эталон Этанолович
Member

Откуда: Институт благородных девиц. Палата №6
Сообщений: 332
Dimitry Sibiryakov
Как происходит коммит в системах с логом: сброс на диск грязных страниц + запись маркера
коммита.
Ужас, какая дремучесть...
15 окт 13, 20:49    [14975610]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54794

ivan78
А на самом деле, в системах с логом: на диск сбрасывается незаписанный хвост
потока redo log-а.

А на самом деле в системах без лога: на диск сбрасывается остаток страниц, до которых не
успел добраться cache writer. К тому же этому процессу не мешает dbwr, который разрежает
последовательную запись одних блоков последовательным чтением совсем других.

Posted via ActualForum NNTP Server 1.5

15 окт 13, 20:51    [14975619]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
Melkomyagkii_newbi
Member

Откуда: из прошлого
Сообщений: 2112
ivan78
Dimitry Sibiryakov
пропущено...

Как происходит коммит в системах с логом: сброс на диск грязных страниц + запись маркера
коммита.
Как происходит коммит в системах без лога: сброс на диск грязных страниц + запись флага
коммита.

Найдите три отличия.

Теперь понятно откуда такое дремучее предубеждение против лога.

А на самом деле, в системах с логом: на диск сбрасывается незаписанный хвост потока redo log-а. При этом, объем информации в логе как правило значительно меньше размера измененных страниц. К тому-же запись страниц - это случайная запись, а запись лога - последовательная. На современных жестких дисках скорость последовательной записи сравнима с таковой на SDD, и даже иногда ее превосходит.


+1

Комит произошел = сбросились на диск логи РЕдо. Данные из транзакции могут вообще не попасть на диск. ПРофит!(быстрый коммит)
Ну так как без лога быстрый коммит проходить?
15 окт 13, 20:57    [14975645]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54794

Melkomyagkii_newbi
Комит произошел = сбросились на диск логи РЕдо. Данные из
транзакции могут вообще не попасть на диск. ПРофит!(быстрый коммит)
Ну так как без лога быстрый коммит проходить?

Коммит произошёл = сбросились на диск данные из транзакции. Данные РЕда вообще никогда не
попадут на диск. ПРофит! (быстрый коммит)

А теперь вопрос на засыпку: сколько грязных блоков порождает среднестатистическая транзакция?

Posted via ActualForum NNTP Server 1.5

15 окт 13, 21:03    [14975674]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
ivan78
Member

Откуда:
Сообщений: 85
Dimitry Sibiryakov
Melkomyagkii_newbi
Комит произошел = сбросились на диск логи РЕдо. Данные из
транзакции могут вообще не попасть на диск. ПРофит!(быстрый коммит)
Ну так как без лога быстрый коммит проходить?

Коммит произошёл = сбросились на диск данные из транзакции. Данные РЕда вообще никогда не
попадут на диск. ПРофит! (быстрый коммит)

А теперь вопрос на засыпку: сколько грязных блоков порождает среднестатистическая транзакция?

Возьмем к примеру вырожденный случай - счетчик посещения домашней странички... )))
15 окт 13, 21:16    [14975718]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54794

ivan78
Возьмем к примеру вырожденный случай - счетчик посещения домашней
странички... )))

И получаем одну страницу данных ровно. Будем спорить куда быстрее сбросится одна страница?

Posted via ActualForum NNTP Server 1.5

15 окт 13, 21:23    [14975747]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
ivan78
Member

Откуда:
Сообщений: 85
Dimitry Sibiryakov
ivan78
Возьмем к примеру вырожденный случай - счетчик посещения домашней
странички... )))

И получаем одну страницу данных ровно. Будем спорить куда быстрее сбросится одна страница?

Получаем одну страницу на транзакцию.
А в нормальной БД получаем 0 страниц + redo log.
О чем тут вообще спорить. )
15 окт 13, 21:28    [14975780]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54794

ivan78
Получаем одну страницу на транзакцию + 0 redo log + 0 undo log.
А в нормальной БД получаем 0 страниц + 1 redo log + 1 undo log.
О чем тут вообще спорить. )

Действительно не о чем.

Posted via ActualForum NNTP Server 1.5

15 окт 13, 21:35    [14975815]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
ivan78
Member

Откуда:
Сообщений: 85
Dimitry Sibiryakov
ivan78
Получаем одну страницу на транзакцию + 0 redo log + 0 undo log.
А в нормальной БД получаем 0 страниц + 1 redo log + 1 undo log.
О чем тут вообще спорить. )

Действительно не о чем.

Это в какой БД так?
15 окт 13, 21:43    [14975846]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
Yo.!
Guest
iv_an_ru
Melkomyagkii_newbi
ЗЫ а как быстро происходит коммит в системах без лога? Расскажите пожалуйста, правда интересно.
Достаточно посмотреть на списки результатов TPC-C, чтобы возникло подозрение...

кто же эти обрубки пустит на TPC ? что бы участвовать в тестах TPC нужно доказать, что субд можно использовать в реальных условиях, в том числе доказать способность восстановить каждую закомиченную транзакцию в условиях утери части датафайлов.
15 окт 13, 21:46    [14975860]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
Alexander Ryndin
Member

Откуда:
Сообщений: 4919
Блог
Dimitry Sibiryakov
ivan78
Получаем одну страницу на транзакцию + 0 redo log + 0 undo log.
А в нормальной БД получаем 0 страниц + 1 redo log + 1 undo log.
О чем тут вообще спорить. )

Действительно не о чем.
Undo - это тоже табличное пространство. Он тоже останется в буфере. В redo будет записан вектор изменения, т.е. redo+undo.
Но это вырожденный случай. Гораздо более показателен случай, когда пользователь изменили 200 блоков данных в разных концах диска.
В Oracle мы все равно запишем 1 redo запись (если это одна транзакция) и эта запись будет, скорее всего, даже меньше блока и не будет дергать и перепозиционировать диск.

А вот что будет делать FB? Наверняка есть какой-то механизм... И не будет ли он приводить к фрагментации данных на диске?
15 окт 13, 21:48    [14975867]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
Эталон Этанолович
Member

Откуда: Институт благородных девиц. Палата №6
Сообщений: 332
Alexander Ryndin
В Oracle мы все равно запишем 1 redo запись (если это одна транзакция)
В Oracle redo-записи перпендикулярны транзакциям. При изменении 200 блоков их будет намного больше одной
15 окт 13, 21:56    [14975920]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
Yo.!
Guest
Dimitry Sibiryakov
ivan78
Это такое теоретическое предположение в вакууме, что лог вдруг не сможет
накатиться на базу, или у кого-то такие случаи действительно были?

Сбербанк.
Yo.!
там не прошел chekpoint, т.е. часть данных не записалось в датафайлы


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

с накатом логом проблема тоже была, но это уже другая история, где не сработал параллельный накат лога, но в однопоточном режиме все накатилось без проблем
15 окт 13, 21:56    [14975921]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
Yo.!
Guest
Alexander Ryndin
А вот что будет делать FB? Наверняка есть какой-то механизм... И не будет ли он приводить к фрагментации данных на диске?

будет бегать по всему диску. к дефрагментации там приводит бредовый дизайн хранения версий строк прямо в датафайлах, т.е. читая блок из датафайла вы прочтете кроме актуальных данных мусор оставшийся от паралельных транзакций.
15 окт 13, 22:01    [14975944]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
ivan78
Member

Откуда:
Сообщений: 85
Alexander Ryndin
Но это вырожденный случай. Гораздо более показателен случай, когда пользователь изменили 200 блоков данных в разных концах диска.

Я-то хотел от этого вырожденного примера перейти к следующему - когда у нас счетчики для целой тысячи домашних страниц и у каждой по 10 хитов в секунду. Чтобы сравнить сколько будет ввода/вывода в случае с логом и без лога.
Но похоже это бесполезно. Даже простой первый пример упрямо не хочет осиливаться.
15 окт 13, 22:02    [14975953]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
Melkomyagkii_newbi
Member

Откуда: из прошлого
Сообщений: 2112
Dimitry Sibiryakov
ivan78
Возьмем к примеру вырожденный случай - счетчик посещения домашней
странички... )))

И получаем одну страницу данных ровно. Будем спорить куда быстрее сбросится одна страница?


Даже ТРИ(!) смайлика не доведут до "человека без лога" намек о сарказме)

ЗЫ ниче так выраженьице "человек без лога" - буду теперь дразнить так особо сообразительных;)
15 окт 13, 22:03    [14975961]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54794

Yo.!
что бы участвовать в тестах TPC нужно доказать

И давно куча бабла выкаченная организаторам перестала там быть единственным условием?..

Posted via ActualForum NNTP Server 1.5

15 окт 13, 22:11    [14976008]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
Капитан очевидность на проводе
Guest
Dimitry Sibiryakov
ivan78
А на самом деле, в системах с логом: на диск сбрасывается незаписанный хвост
потока redo log-а.

А на самом деле в системах без лога: на диск сбрасывается остаток страниц, до которых не
успел добраться cache writer. К тому же этому процессу не мешает dbwr, который разрежает
последовательную запись одних блоков последовательным чтением совсем других.


Что в случае Interbase означает постоянную запись "вразброс", если тот самый свипер понаделал "дырок", зачистив предыдущие версии. А "вразброс" туго обрабатывает даже SSD.

С чем вас и поздравляем, в сравнении с Oracle, который сугубо последовательно пишет в лог, а в датафайл может не писать часами, а если приспичит - то он включит тоже разновидность последовательной записи, скидывая на диск блок за блоком.

Кто-то еще сомневается, что Firebird - это детский велосипед с изначально отломанными педалями?
15 окт 13, 22:12    [14976015]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
Yo.!
Guest
Dimitry Sibiryakov
И давно куча бабла выкаченная организаторам перестала там быть единственным условием?..

с рождения
15 окт 13, 22:12    [14976017]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
Капитан очевидность на проводе
Guest
Yo.!
Dimitry Sibiryakov
пропущено...

Сбербанк.
пропущено...


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

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


Ответ не верный - у них не чекпоинт не прошел, а просто начал тормозить подозрительно - слишком много грязных блоков, а дисковая система в это время увлеченно занималась дефрагментацией.

У админа в результате дрогнула рука (и помутилась голова) и он убил базу данных.

А накат логов в параллельном режиме - это просто незалеченный баг Оракела, бывает, ничего не поделаешь (на самом деле накат этот в параллель даром никому не впился, даже на их объемах).

Мораль была проста - делать логи побольше, чекпоинты пореже, дефрагментацию отключить, нервы у админов - лечить (мозги тоже, промывать в скипидарных ваннах, помимо других мест).
15 окт 13, 22:18    [14976041]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
iv_an_ru
Member

Откуда: Новосибирск
Сообщений: 20368
Dimitry Sibiryakov
Yo.!
что бы участвовать в тестах TPC нужно доказать

И давно куча бабла выкаченная организаторам перестала там быть единственным условием?..
Вообще-то там скромные 5 килобаксов, которые совершенно не жалко заплатить за тщательный аудит твоей "системы на выставке" и, возможно, за интересное общение с тамошними экспертами. Кроме того, если бесплатные альтернативы, в которых те же запросы на тех же данных гоняются "под честное слово", а желающим проверить результаты даётся возможность склонировать демо-систему и поиграться самому.

Но если некоторым танцорам мешают условия бенчмарки, то начинаются разговоры про "дорого" и т.п.
15 окт 13, 22:32    [14976074]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
iv_an_ru
Member

Откуда: Новосибирск
Сообщений: 20368
Dimitry Sibiryakov
Как происходит коммит в системах с логом: сброс на диск грязных страниц + запись маркера
коммита.
Мачасть учите, пожалуйста.
15 окт 13, 22:43    [14976142]     Ответить | Цитировать Сообщить модератору
 Re: Зачем выбирать другие СУБД, если существует MS SQLServer?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54794

iv_an_ru
Вообще-то там скромные 5 килобаксов, которые совершенно не жалко заплатить
за тщательный аудит твоей "системы на выставке"

Но гораздо полезнее - команде разработчиков.

Posted via ActualForum NNTP Server 1.5

15 окт 13, 22:44    [14976144]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 15 16 17 18 19 [20] 21 22 23 24 .. 54   вперед  Ctrl
Все форумы / Сравнение СУБД Ответить