|
|
|
Выбор бюджетной базы для замены Postgres.
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov SergSuper т.е. правильно было бы сказать что Оракл имеет функционал версионника, но реализован не по технологии, изначально разработанной для версионников Пока он плюётся своим "Snapshot too old", то я бы в лучшем случае говорил, что "Оракл имеет некоторую эмуляцию версионности". Вот когда он перестанет из логов выплёскивать вместе с мусором версии, в которых кто-нибудь заинтересован - станет версионником. "Snapshot too old" - это единственная проблема у "нечистых" версионников? есть различия в функционале? по идее мне всё равно как оно там реализовано если работает так как я хочу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2009, 22:35 |
|
||
|
Выбор бюджетной базы для замены Postgres.
|
|||
|---|---|---|---|
|
#18+
SergSuper по идее мне всё равно как оно там реализовано если работает так как я хочу Дык в том и дело, что эта ошибка - признак того, что оно не работает. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2009, 23:00 |
|
||
|
Выбор бюджетной базы для замены Postgres.
|
|||
|---|---|---|---|
|
#18+
SergSuper пишет: > т.е. это разные технологии реализации, не влияющие на функционал? В общем, да. Есть незначительные нюансы, типа того, что указал mikron в начале топика -- одни лезут за ЛЮБЫМИ версиями в страницы данных только чтобы понять, что версии устарели, другие -- нет, в одних есть проблема "Snapshot is too old", а в других -- нет. Но в общем, цель достигается одна и та же --- обеспечить уровень изоляции snapshot isolation (2). > т.е. правильно было бы сказать /что Оракл имеет функционал версионника, > но реализован не по технологии, изначально разработанной для версионников/ > с такой формулировкой и Вы и Yo согласны? Нет, я не согласен. С "технологии, изначально разработанной для версионников" не согласен. Просто это два разных подхода к реализации версионности. При этом кажется даже ORACLE-овский похдод был придуман раньше, чем "чистый версионный", но не уверен, надо знать историю IB и ORACLE хорошо, а я не знаю. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2009, 23:25 |
|
||
|
Выбор бюджетной базы для замены Postgres.
|
|||
|---|---|---|---|
|
#18+
mikron пишет: > >> разные версии записей реально присутствуют на страницах данных > получается по его-же определению т.к. > у оракла разные версии находятся на страница данных (в логе) > он - версионник :) Страницы данных и лог -- разные вещи. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2009, 23:27 |
|
||
|
Выбор бюджетной базы для замены Postgres.
|
|||
|---|---|---|---|
|
#18+
Apex пишет: > Чем snapshot too old по своей природе, отличается от какой-нибудь "no > free disk space" когда "настоящим" версионникаам уже писать эти версии > некуда? Вообще-то отличается. Если вообще нет места для новых данных, то система в принципе не может функционировать. Это -- неизбежный сбой. А что старая часть лога затёрлась новой -- это не сбой даже, это -- нормальное явление. Вот и получается, что одна СУБД работает до тех пор, пока может, а другая -- как бы то работает, то не работает. Но я скажу сразу, я не являюсь сторонником идеи, что одна реализация лучше другой (я вообще люблю блокировочники ). Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2009, 23:30 |
|
||
|
Выбор бюджетной базы для замены Postgres.
|
|||
|---|---|---|---|
|
#18+
Apex Чем snapshot too old по своей природе, отличается от какой-нибудь "no free disk space" когда "настоящим" версионникаам уже писать эти версии некуда? в том то и дело, что разница огромна - "no free disk space" вырубит ВЕСЬ сервер, версионник с UNDO откатит только одну транзакцию, причем на длинные транзакции можно выделить отдельный UNDO. имхо самый неудачный вариант это хранить в блоках таблиц - тут же получаем тормоза с вакумом, дополнительное и/о и невозможность это и/о оттюнить, ну и главное - отсутствие защиты от бесконечного распухания версий из-за одной длинной транзакции - короче примитив. Dimitry Sibiryakov Тем, что наступает гораздо быстрее. с UNDO_RETENTION=2^32 ?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2009, 23:38 |
|
||
|
Выбор бюджетной базы для замены Postgres.
|
|||
|---|---|---|---|
|
#18+
Может-ли кто-нить сказать, по какому принципу Субасе СА работает? (Версионник, блокировшик, а ла оракле?) Первая проблема с СА: после того как уронил сервер на долгой транзакции уже болше час востанавливат базу. Ето нормално? 8-| Пока не понял, как у него статистику собирать. Может кто выстрелит с бедра линком? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2009, 23:58 |
|
||
|
Выбор бюджетной базы для замены Postgres.
|
|||
|---|---|---|---|
|
#18+
2mikron Sybase SA блокировочник, но в последней версии вроде прикрутили версионный уровень изолированности Snapshot. скорее всего там так же как у майкрософта версионность нужно "включить" - после этого можно использовать snapshot. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2009, 00:22 |
|
||
|
Выбор бюджетной базы для замены Postgres.
|
|||
|---|---|---|---|
|
#18+
Yo.!"no free disk space" вырубит ВЕСЬ серверС какой стати ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2009, 00:43 |
|
||
|
Выбор бюджетной базы для замены Postgres.
|
|||
|---|---|---|---|
|
#18+
А отсутствие места на диске не вырубит оракл? И база не встанет, типа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2009, 01:13 |
|
||
|
Выбор бюджетной базы для замены Postgres.
|
|||
|---|---|---|---|
|
#18+
ОКТОГЕНА отсутствие места на диске не вырубит оракл? И база не встанет, типа. естественно не вырубит. UNDO log вещь циклическая - когда место заканчивается он начинает с конца писать поверх самых старых версий строк, соответственно вырубит с ошибкой snapshot too old те транзакции которым нужны были те самые старые версии, грубо говоря тех виновников которые заставляли "пухнуть" лог (если бы он не был бы цикличным). а в том же Firebird "виновника" вырубить некому, этот "виновник" не позволит вакуму вычищать старые версии строк из датафайла, заставляя их пухнуть бесконечно, а место под датафайлы говорят не резиновое.... 2hvlad есть что-то возразить ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2009, 01:51 |
|
||
|
Выбор бюджетной базы для замены Postgres.
|
|||
|---|---|---|---|
|
#18+
За циклическую перезапись логов в Винде Мелкомягких в свое время распустили на грелки... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2009, 04:27 |
|
||
|
Выбор бюджетной базы для замены Postgres.
|
|||
|---|---|---|---|
|
#18+
MasterZiv Помимо этого существуют т.н. "псевдоверсионники" (термин также произвольный). А на самом деле при ближайшем рассмотрении блокировочники? Или типа ни то ни се? В этих СУБД непосредственно на страницах данных храняться только последняя закоммиченая версия записи, в одном экземпляре. Старые версии записей, в разных вариантах, берутся из журнала транзакций, сегмента отката, roll-backward log и т.д. и т.п. -- у кого что есть. Это решение немного "хуже", поскольку у разных версий разные способы хранения, они не совсем равноправны. Ну и очевидно, что журнал транзакция удаляется постепенно, и очень старые версии записей становяться недоступными, это -- главный недостаток такого подхода. [/quot] Что скрывается за понятием страница данных? У Оракла в явном виде такого понятия вроде как нет. Есть блоки, которые хранятся на диске либо в датафайлах, либо в сегментах отката. При этом может быть несколько версий в момент изменения блоков. Изменяемый блок до коммита ну типа хранится тока в оперативной памяти, если не считать инфу о всех изменениях и его в частности в журналах повторного выполнения. Остальные сбрасываются в сегменты отката, но тоже када нужны в ОП. Типа они как бы ведомые? Или какие данные ведомые если сравнивать с равноправными в "чистых" типа моделях или механизмах или "технолгий" или еще чем-то? И что же это что-то: модель, механизм или что? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2009, 08:41 |
|
||
|
Выбор бюджетной базы для замены Postgres.
|
|||
|---|---|---|---|
|
#18+
Yo.!вырубит с ошибкой snapshot too old те транзакции А надо разработчиков вырубать, которые эти самые транзакции допускают ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2009, 08:51 |
|
||
|
Выбор бюджетной базы для замены Postgres.
|
|||
|---|---|---|---|
|
#18+
2mikron: конкретные вопросы по работе SA лучше задавать в профильной сайбезовой ветке форума. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2009, 10:09 |
|
||
|
Выбор бюджетной базы для замены Postgres.
|
|||
|---|---|---|---|
|
#18+
и непонятно а каокй статистике вы говорите. Если о распределении величин в талице, то она ведется автоматически. А если параметры работы сервера, то это можно проще всего сделать в централе. Надо только выбрать что из парамтеров, что хотите мониторить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2009, 10:12 |
|
||
|
Выбор бюджетной базы для замены Postgres.
|
|||
|---|---|---|---|
|
#18+
Yo.!а в том же Firebird "виновника" вырубить некому, этот "виновник" не позволит вакуму вычищать старые версии строк из датафайла, заставляя их пухнуть бесконечно, а место под датафайлы говорят не резиновое.... 2hvlad есть что-то возразить ?Есс-но. В Firebird, при нехватке места на диске, тр-ция (тр-ции), которые создают версии, получат ошибку и спокойно продолжат работу. С какой стати что-то должно останавливаться ? Особенно читатели... "Виновник" - долгоиграющая тр-ция. Если она получит такую ошибку, то вероятнее всего приложение её завершит. Если же она просто спит, то тут да, пока нет автоматического киллера в движке. Но админ в состоянии прибить её и разблокировать сборку мусора. Насчёт "не позволит вакуму вычищать старые версии строк из датафайла" - полный бред, ибо эта операция (сборка мусора) не увеличивает потребность в дисковом пространстве. Наоборот, она освободит занятое место и позволит работать дальше тем, кому оно нужно для создания новых версий. Ну и напоследок - Firebird (как и многие другие), выделяет место на диске с небольшим запасом и при нехватке места под этот "запас" сразу пишет сообщение в firebird.log. Так что админ может принять меры до того, как место реально закончится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2009, 11:06 |
|
||
|
Выбор бюджетной базы для замены Postgres.
|
|||
|---|---|---|---|
|
#18+
hvladЕсс-но. В Firebird, при нехватке места на диске, тр-ция (тр-ции), которые создают версии, получат ошибку и спокойно продолжат работу. С какой стати что-то должно останавливаться ? Особенно читатели... вот так и продолжат получая ошибку в отличие от оракла стопорнут все пишущие транзакции, т.к. даже модифицирующим некуда будет версии строк сложить. hvladНасчёт "не позволит вакуму вычищать старые версии строк из датафайла" - полный бред, ибо эта операция (сборка мусора) не увеличивает потребность в дисковом пространстве. Наоборот, она освободит занятое место и позволит работать дальше тем, кому оно нужно для создания новых версий. чукча писатель ;) Di_LIneЗа циклическую перезапись логов в Винде Мелкомягких в свое время распустили на грелки... какое интересное ассоциативное мышление у ребенка ! ведь действительно созвучно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2009, 11:40 |
|
||
|
Выбор бюджетной базы для замены Postgres.
|
|||
|---|---|---|---|
|
#18+
Yo.! пишет: > в том то и дело, что разница огромна - "no free disk space" вырубит ВЕСЬ > сервер, версионник с UNDO откатит только одну транзакцию, причем на > длинные транзакции можно выделить отдельный UNDO. UNDO надо видимо выделять не на длинные транзакции (они обычно вообще читающие, потому что snapshot isolation только на чтении даёт выгоду), а на все остальные транзакции, кроме длинных. Разве нет ? Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2009, 12:00 |
|
||
|
Выбор бюджетной базы для замены Postgres.
|
|||
|---|---|---|---|
|
#18+
Di_LIne пишет: > За циклическую перезапись логов в Винде Мелкомягких в свое время > распустили на грелки... Это -- общая практика в большинстве СУБД. И это -- логично. А чем вам это не нравится ? Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2009, 12:02 |
|
||
|
Выбор бюджетной базы для замены Postgres.
|
|||
|---|---|---|---|
|
#18+
vadiminfo пишет: > А на самом деле при ближайшем рассмотрении блокировочники? > Или типа ни то ни се? Блокировочники конечно. Потому что WRITER-ов они разводят путём применения блокировок. > Что скрывается за понятием страница данных? У Оракла в явном виде такого > понятия вроде как нет. Есть блоки, которые хранятся на диске либо в Ну тут я имел в виду всё, что не лог. > датафайлах, либо в сегментах отката. Значит, в сегментах отката. > При этом может быть несколько версий в момент изменения блоков. > Изменяемый блок до коммита ну типа хранится тока в оперативной памяти, > если не считать инфу о всех изменениях и его в частности в журналах > повторного выполнения. Я тебе скажу, он (блок данных) и после коммита может только в памяти остаться. > Остальные сбрасываются в сегменты отката, но тоже када нужны в ОП. > Типа они как бы ведомые? Или какие данные ведомые если сравнивать с > равноправными в "чистых" типа моделях или механизмах или "технолгий" или > еще чем-то? И что же это что-то: модель, механизм или что? Я не очень понял, что ты тут спрашиваешь. Ну да, как бы данные в логах всегда "главнее" данных в блоках данных. А прикол в том, что в версионниках не было изначально лога вообще. В IB по крайней мене. Но это, опять -таки, давало отрицательный эффект -- изменённые страницы данных надо было по commit физически сбрасывать на диск. Но положительный эффект -- что у БД нет recovery, так что сервер включил -- и он уже работает. Но время показало, что такой подход слабо оправдан, поэтому в IB логи реализовали. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2009, 12:10 |
|
||
|
Выбор бюджетной базы для замены Postgres.
|
|||
|---|---|---|---|
|
#18+
> Автор: MasterZiv > А прикол в том, что в версионниках не было изначально лога вообще. > В IB по крайней мене. Но это, опять -таки, давало отрицательный > эффект -- изменённые страницы данных надо было по commit физически > сбрасывать на диск. Но положительный эффект -- что у БД нет recovery, > так что сервер включил -- и он уже работает. > > Но время показало, что такой подход слабо оправдан, поэтому в IB логи > реализовали. А какая разница, что сбрасывать на диск, сами данные или лог для возможной recovery в любом случае диск затрагивается? Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2009, 12:20 |
|
||
|
Выбор бюджетной базы для замены Postgres.
|
|||
|---|---|---|---|
|
#18+
Игорь Горбонос А какая разница, что сбрасывать на диск, сами данные или лог для возможной recovery в любом случае диск затрагивается? последовательно в лог быстрее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2009, 13:05 |
|
||
|
Выбор бюджетной базы для замены Postgres.
|
|||
|---|---|---|---|
|
#18+
Игорь Горбонос пишет: > А какая разница, что сбрасывать на диск, сами данные или лог для > возможной recovery в любом случае диск затрагивается? Лог тупо короче. И компактнее. Лог содержить только данные о изменении данных и они все лежать где-то в конце лога обычно. Страница данных же может содержать как изменённые, так и неизменённые данные, а сбрасывать надо всю страницу целиком. Например, если есть таблица из 100 страниц, и UPDATE, который меняет 10 записей, но так, что на каждую из 100 страниц таблицы попадает по одной записи, то по COMMIT-у в СУБД без журналирования придётся сбросить все страницы таблицы, т.е. всю таблицу. Это очень плохо. Если записывать только изменения в лог, и сбрасывать только лог, то скорее всего это будет 1-2 страницы лога. Итого экономия порядка в 100 раз. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2009, 13:17 |
|
||
|
Выбор бюджетной базы для замены Postgres.
|
|||
|---|---|---|---|
|
#18+
MasterZiv Игорь Горбонос пишет: > А какая разница, что сбрасывать на диск, сами данные или лог для > возможной recovery в любом случае диск затрагивается? Лог тупо короче. И компактнее. Лог содержить только данные о изменении данных и они все лежать где-то в конце лога обычно. Страница данных же может содержать как изменённые, так и неизменённые данные, а сбрасывать надо всю страницу целиком. Например, если есть таблица из 100 страниц, и UPDATE, который меняет 10 записей, но так, что на каждую из 100 страниц таблицы попадает по одной записи, то по COMMIT-у в СУБД без журналирования придётся сбросить все страницы таблицы, т.е. всю таблицу. Это очень плохо. Если записывать только изменения в лог, и сбрасывать только лог, то скорее всего это будет 1-2 страницы лога. Итого экономия порядка в 100 раз. Помнится один из разработчиков FB сказал мне в ответ на тоже самое, что в реальных систмах разницы почти нет. Ну, типа никто ж специально не мерял, сколько там чего куда сбрасывается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2009, 13:23 |
|
||
|
|

start [/forum/topic.php?fid=35&msg=36094542&tid=1552916]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
45ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
65ms |
get tp. blocked users: |
1ms |
| others: | 15ms |
| total: | 164ms |

| 0 / 0 |
