powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Выбор бюджетной базы для замены Postgres.
25 сообщений из 162, страница 6 из 7
Выбор бюджетной базы для замены Postgres.
    #36096677
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvодновременно существование двух разных committed версий одной и той же записи.
имел в виду "параллельно существующих". потому что обычная цепочка версий это последовательно обновленная запись, версии которой учитываются только подряд. Т.е. сервер (ИБ-ФБ) всегда считывает пакет версий записи, и в соответствии с уровнем видимости для каждой транзакции склеивает версии в одну запись.

допустим, есть запись с буквой А в столбце F.
- update set F='Б', commit.
появилась версия с Б, которая ссылается на версию с А

- update set F = '5', commit
появилась версия с 5, которая ссылается на версию с Б

Если не касаться сборки мусора, то на диске хранится 3 версии одной записи со значениями А, Б и 5 в столбце. Read Committed при перечитывании будут видеть А, Б и 5 по мере обновления и commit.
Если в самом начале была транзакция Snapshot, то она будет видеть только версию с А, и ничего больше. И после обновления кем-то записи на Б уже обновить эту запись не сможет.
И версия с А будет удерживаться от сборки мусора до тех пор, пока активна эта транзакция snapshot.

Вот в общих чертах. Подробнее, с картинками, изложено тут
http://www.ibase.ru/devinfo/mga.htm
...
Рейтинг: 0 / 0
Выбор бюджетной базы для замены Postgres.
    #36096762
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Di_LIne пишет:

> А не прошедщие?

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

> Хотя, как сказали выше, хватит и двойной записи на диск, что бы закрыть
> этот аспект для дискусси.

В смысле ? Двойная запись -- это запись и страниц лога,
и страниц данных на диск ?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Выбор бюджетной базы для замены Postgres.
    #36096763
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv пишет:

> логи может ничем от жураналирования и не отличаются. Только
> журналирование у IB 2007 служит только для "защиты" базы от сбоев. Т.е.

Журналирование в любой СУБД служит для защиты базы от сбоев, ну и что ?

> В упрощенном виде журнал IB 2007 представляет собой следующее:
> 1. пишем страницы не в базу а в "лог"
> 2. лог имеет фиксированный размер, по заполнению создается новый лог
> 3. логи циклические
> 4. по checkpoint информация из лога переносится в базу.
> все.

Ну, в общем, ничего существенно отличающегося от других СУБД.

> Кажется что это похоже на логи СУБД с transaction/undo log, но здесь
> откатить или "накатить" лог нельзя, посмотреть лог нельзя, и т.п.

Как и везде.

> то есть, последний раз Вы что-то такое читали про ИБ-ФБ лет 8-9 назад.
> Потому что у IB нет открытых исходников, они у Firebird.

Это понятно. Но Firebird -- это бывший IB. Ладно.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Выбор бюджетной базы для замены Postgres.
    #36096787
Фотография Александр Гoлдун
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
> Кажется что это похоже на логи СУБД с transaction/undo log, но здесь
> откатить или "накатить" лог нельзя, посмотреть лог нельзя, и т.п.

Как и везде.

Как это везде? В каких еще базах с логом нельзя накатить лог или посмотреть его содержимое, транслировав в SQL?
...
Рейтинг: 0 / 0
Выбор бюджетной базы для замены Postgres.
    #36096845
Фотография Di_LIne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
Если второй догонит первый -- место в логе кончилось,
кранты, надо транзакцию откатывать.

Ну вот. Дальше-то что?
Кто, как и куда ее откатит?
Мы же наихудший вариант рассматривали для FB.
Теперь очередь других отдуваться.
...
Рейтинг: 0 / 0
Выбор бюджетной базы для замены Postgres.
    #36096846
Фотография Di_LIne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александр ГoлдунКак это везде? В каких еще базах с логом нельзя накатить лог или посмотреть его содержимое, транслировав в SQL?
А какой объем, в записях, можно накатить? 100% базу?
...
Рейтинг: 0 / 0
Выбор бюджетной базы для замены Postgres.
    #36096862
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfo пишет:

> А версионники как разрешают конфликт, когда два юзера пытаются изменять
> одну и туже запись.
> По времени, по приоритету?

На сколько я помню, чистые версионники никак эту проблему не разрешают.
Отсюда -- проблемы write skew, lost update. Хотя возомжно я
не прав, что-то я подзабыл уже это всё.

> Поскольку какая никакая версионность позволяет не блокировать читателя,
> а два писателя одновременно, не такое честоя явление, то все еще,
> возможно, преждевременно относить Оракл к блокировочникам - это может
> сбаить с толку: блокировочник в общепринятом значении обязан блокировать
> читателя, т.е. припишем Ораклу то чего нет.

А вот псевдоверсионники писателей разводят обычными блокировками.
Так что там всё в порядке с этим делом.

> > Что скрывается за понятием страница данных? У Оракла в явном виде такого
> > понятия вроде как нет. Есть блоки, которые хранятся на диске либо в

Ну блоки. Блок, страница -- одно и то же.

Термины разные просто.

> Ну это наверное в СУБД у которых данные вседа в оперативке. Оракл кстати

У всех субд часть данных в оперативке. Кэш называется.
Одно из самых мощных средств повышения производительности.
Кэш и индексы.

> закупли и такую. По моему IN TIME MEMORY. Но сам Оракл закомиченне
> вынужден сбрасывать в дата файлы.

Не обязан. как раз наличие лога (уточним -- write-ahead log)
и позволяет сами страницы/блоки данных не записывать на диск.
А записывать только по checkpoint-у.

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Выбор бюджетной базы для замены Postgres.
    #36096864
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александр Гoлдун пишет:

> Как это везде? В каких еще базах с логом нельзя накатить лог или
> посмотреть его содержимое, транслировав в SQL?

Давай лучше скажи, в каких это сделать можно. Я таких не знаю.
Только тут в топике про оракл сказали, до этого я не знал.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Выбор бюджетной базы для замены Postgres.
    #36096866
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Di_LIne пишет:

> Ну вот. Дальше-то что?
> Кто, как и куда ее откатит?

Сервер, СУБД откатит. ЗАвершить аварийно транзакцию,
она и откатится. место освободится, другие транзакции,
меньшего объёма, смогут работать. Ну или не смогут.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Выбор бюджетной базы для замены Postgres.
    #36096875
Фотография Александр Гoлдун
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
Александр Гoлдун пишет:

> Как это везде? В каких еще базах с логом нельзя накатить лог или
> посмотреть его содержимое, транслировав в SQL?

Давай лучше скажи, в каких это сделать можно. Я таких не знаю.
Только тут в топике про оракл сказали, до этого я не знал.

В Sybase ASA это однозначно можно. Собственно активно и регулярно этим пользуюсь. Я был свято уверен, что это во всех базах с логом можно было сделать. Иначе нафига вообще с логами заморачиваться?

В MSSQL, насколько помню, тоже можно было делать инкрементальный бэкап на базе логов. А восстановление как раз путем наката логов на последний полный бэкап.

В MySQL в некоторых типах таблиц такое есть.

И в PostgreSQL все это есть:
http://resurection.ru/doc/postgres/backup-online.html

Поэтому интересно, в каких СУБД с логом нельзя использовать лог таким естественным образом?
...
Рейтинг: 0 / 0
Выбор бюджетной базы для замены Postgres.
    #36096891
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александр Гoлдун пишет:
> В Sybase ASA это однозначно можно. Собственно активно и регулярно этим

погоди, мы про что ? про накат логов, или про просмотр содержимого
и "транслировав в SQL" ? Я -- про второе.
Первое, понятно, везде есть, иначе зачем лог нужен.

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Выбор бюджетной базы для замены Postgres.
    #36096897
Фотография Di_LIne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
Сервер, СУБД откатит. ЗАвершить аварийно транзакцию,
она и откатится. место освободится, другие транзакции,
меньшего объёма, смогут работать. Ну или не смогут.
- Не, ну в чё?!
Логика работы cервера: - Нииииёт меня ваши данные, мне работать надо!
Мне такая логика - нравися!
...
Рейтинг: 0 / 0
Выбор бюджетной базы для замены Postgres.
    #36096918
Фотография Александр Гoлдун
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
Александр Гoлдун пишет:
> В Sybase ASA это однозначно можно. Собственно активно и регулярно этим

погоди, мы про что ? про накат логов, или про просмотр содержимого
и "транслировав в SQL" ? Я -- про второе.

Я думал, и про то, и про другое. И что, получается оттранслировать лог в SQL можно только в оракле и Sybase ASA? Но если данные в логе есть, то почему нельзя их перевести в удобоваримый вид? Непонятно это. На самом деле такая возможность бывает нужна редко, но при этом очень метко. Несколько раз серьезно помогало.
...
Рейтинг: 0 / 0
Выбор бюджетной базы для замены Postgres.
    #36096919
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
короче, вы лучше не спорьте, а зафиксируйте у себя - что журналирование, которое введено в IB 2007/2009, является только журналированием, или WAL, как угодно, и выполняет функции "предварительного кэширования записи".
И никакого "вот раньше не было лога, было плохо, а теперь есть лог, и стало хорошо" нет.
И также нет разницы в смысле хранения версий в БД между базой с журналом и без.
И, журналирование в IB2007/2009 является опциональным, не по умолчанию, и используется редко.
Также не надо фантазий на тему "предыдущая реализация версионности без журналирования была плохая" - в версионности НИЧЕГО не поменялось, и никаких дополнительных фишек не добавилось.

В плане "защиты от сбоев" тут тоже ничего нового - журнал и база должны быть на разных физических дисках.
Если сбойнет диск с базой - кирдык базе (зависит от мест и объемов повреждений)
если сбойнет диск с журналами - база целая
если же сбой диска с журналами произойдет в момент checkpoint, после его начала и до конца переноса данных из журнала в базу - опять же базе кирдык.
...
Рейтинг: 0 / 0
Выбор бюджетной базы для замены Postgres.
    #36096933
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZiv
Лог -- это кольцо с двумя маркерами. Один -- последний
чекпоинт, до которого можно стирать, другой -- текущая последняя
страница лога, куда пишутся активные транзакции. Оба бегут
в одну сторону по кольцу.

это ж где такой зверь !? циклический лог транзакций, да еще и откатывающий транзакции
...
Рейтинг: 0 / 0
Выбор бюджетной базы для замены Postgres.
    #36097199
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
vadiminfo пишет:

> А версионники как разрешают конфликт, когда два юзера пытаются изменять
> одну и туже запись.
> По времени, по приоритету?

На сколько я помню, чистые версионники никак эту проблему не разрешают.
Отсюда -- проблемы write skew, lost update. Хотя возомжно я
не прав, что-то я подзабыл уже это всё.

> Поскольку какая никакая версионность позволяет не блокировать читателя,
> а два писателя одновременно, не такое честоя явление, то все еще,
> возможно, преждевременно относить Оракл к блокировочникам - это может
> сбаить с толку: блокировочник в общепринятом значении обязан блокировать
> читателя, т.е. припишем Ораклу то чего нет.

А вот псевдоверсионники писателей разводят обычными блокировками.
Так что там всё в порядке с этим делом.

Не понял. Чистые версионники типа предлагают реализовать оптимистическую блокировку?
Под этим понимается, что если запись изменена друшим юзером, то произойдент отказ сохранять изменение. Ну ить это тоже по сути разновидность блокировки?
Чистота версионника может пострадать? Или я опять не так понял.

MasterZiv
> > Что скрывается за понятием страница данных? У Оракла в явном виде такого
> > понятия вроде как нет. Есть блоки, которые хранятся на диске либо в

Ну блоки. Блок, страница -- одно и то же.

Термины разные просто.


В таком случае Ваша фраза

"В этих СУБД непосредственно на страницах данных храняться
только последняя закоммиченая версия записи, в одном экземпляре.
Старые версии записей, в разных вариантах, берутся из журнала
транзакций, сегмента отката, roll-backward log и т.д. и т.п. --
"
не совсем опять ясна. Так как сраницы (то бишь блоки хранятся в сегментах отката)


MasterZiv
> Ну это наверное в СУБД у которых данные вседа в оперативке. Оракл кстати

У всех субд часть данных в оперативке. Кэш называется.
Одно из самых мощных средств повышения производительности.
Кэш и индексы.

> закупли и такую. По моему IN TIME MEMORY. Но сам Оракл закомиченне
> вынужден сбрасывать в дата файлы.

Не обязан. как раз наличие лога (уточним -- write-ahead log)
и позволяет сами страницы/блоки данных не записывать на диск.
А записывать только по checkpoint-у.


Ну тут мы опять не поняли тада друг друга. Вы говорилт про ТОЛЬКО в памяти. А это уже не ТОЛЬКО в памяти. Ить Кэш в силу ряда причин заполняется по разным алгоритмам и сбрасывает на диск лишние блоки время от времени включая и старые версии. Т.е. Оракл обязан сбросить када места мало.
Тем более:
А какая разница где блок в памяти или на диске в плане версионноси? (Хотя старые версии блока должны быть в оперативке чтобы их читать. И находятся в кэше каое-то время).
Ить какие компориентированные моменты хранения. Это на первый взгляд не понятно как влияет на не "равноправие" блоков. Грязные блоки ( которые меняются в данный момент) не равноправны чистым - их копиям до изменения, наскока я пока понял так или иначе и в чистых версионниках. Или не правильно понял? Или в чистых версионноиках можно делать копии грязных?
...
Рейтинг: 0 / 0
Выбор бюджетной базы для замены Postgres.
    #36097202
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv> Ну и совсем непонятно мне как 10 записей попадают на 100 страниц.
> Пересчитаем "экономию" ?

Ну, сложилось так. Например, хочу каждую 10 запись по возрастающему
PK поменять.Как 10 записей попадёт на 100 страниц ??? Или у вы считаете, что каждая запись занимает 10 страниц ?
...
Рейтинг: 0 / 0
Выбор бюджетной базы для замены Postgres.
    #36097203
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivПонятно, что транзакции разные, и нагрузку на лог дают
разнюу. Но логи тоже не дураки придумали. Так что в среднем
в приложениях выгоднее писать на диск логи.Да, весьма доказательно, весьма.
...
Рейтинг: 0 / 0
Выбор бюджетной базы для замены Postgres.
    #36097216
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfo, а Вы кого про версионники-то спрашиваете? MasterZiv, как бы, тоже про них вопросы задавал. или вы решили эти вопросы между собой обсудить? :-)

to hvlad - может, поговорить с кем так же про DB/2? или про Оракл чего-нибудь загнуть? :-)
...
Рейтинг: 0 / 0
Выбор бюджетной базы для замены Postgres.
    #36097218
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 MasterZiv

Я раньше думал так про версионость и блокировочник:

Версионник имеет несколько копий записи (не важно где они хранятся).
В частности, генерится копия перед изменением. При этом грязную копию видит тот кто меняет (пишущий), а чистую любой читающий. Пишущий не блокирует читающего и грязное чтение исключено. В псевдоблокировочнике типа Оракла, пишущий так или иначе блокирут другого пищущего.
Блокировочники строго одну копию записи имеют. И либо пишущий блокирует читателя, либо грязное чтение разрешено.

Вопросы про чистые. В них блокировок нет ни в каком виде? Читающий читает чистое?
Но если двое пытаются изменить одну запись, то один из них получит сообщение об отказе?
Если так, то разве это не разновидность блокировки на запись?
Или что?

А уже потом моно буит думать про физ реализацию. Потому что за деревьми реализации пока трудно увидеть ЧТО собсно реализуется.
...
Рейтинг: 0 / 0
Выбор бюджетной базы для замены Postgres.
    #36097221
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvto hvlad - может, поговорить с кем так же про DB/2? или про Оракл чего-нибудь загнуть? :-)Проще не тратить время на чтение этого бреда форума, IMHO
...
Рейтинг: 0 / 0
Выбор бюджетной базы для замены Postgres.
    #36097229
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvvadiminfo, а Вы кого про версионники-то спрашиваете? MasterZiv, как бы, тоже про них вопросы задавал. или вы решили эти вопросы между собой обсудить? :-)

to hvlad - может, поговорить с кем так же про DB/2? или про Оракл чего-нибудь загнуть? :-)
Вооще то MasterZiv разделил версионники на истинные (чистые) и псевдо. Но пока концепцию чистых мне не удается вкурить. Пока тока понял почему Оракл псевдоверсионник
...
Рейтинг: 0 / 0
Выбор бюджетной базы для замены Postgres.
    #36097541
mikron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey Orlov
Поскольку нужен web, то есть ASA web edition, и платить ничего не надо будет...Сходи посмотри, почитай лицензию, может понравиться, а на твоем железе летать будет, если запросы нормальные...
Спасибо за хороший, дельный совет.
Попробывал:
-- немного разочарован стабильностью, т.к. сразу напоролся на баг, который убивает сервер-процесс сразу.
Но для бага есть ворк эраунд.
-- Производительностю пока доволен. Да и в остальном всё что желал получил.
Вобщем просто хотел сказать спасибо.
...
Рейтинг: 0 / 0
Выбор бюджетной базы для замены Postgres.
    #36097545
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfoВопросы про чистые. В них блокировок нет ни в каком виде? Читающий читает чистое?
Но если двое пытаются изменить одну запись, то один из них получит сообщение об отказе?
Если так, то разве это не разновидность блокировки на запись?
в какой-то мере разновидность. Сама запись (ее состояние) и является блокировкой на запись. Т.к. заголовок записи читается всегда, то дополнительных ресурсов (например, в некой таблице блокировок) это не требует. Второй писатель получит либо 100%-ый отлуп (если NOWAIT), либо вероятность отлупа (если WAIT). Читателей же это не затрагивает.
...
Рейтинг: 0 / 0
Выбор бюджетной базы для замены Postgres.
    #36098208
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrvadiminfoВопросы про чистые. В них блокировок нет ни в каком виде? Читающий читает чистое?
Но если двое пытаются изменить одну запись, то один из них получит сообщение об отказе?
Если так, то разве это не разновидность блокировки на запись?
в какой-то мере разновидность. Сама запись (ее состояние) и является блокировкой на запись. Т.к. заголовок записи читается всегда, то дополнительных ресурсов (например, в некой таблице блокировок) это не требует. Второй писатель получит либо 100%-ый отлуп (если NOWAIT), либо вероятность отлупа (если WAIT). Читателей же это не затрагивает.

В таком случае они в "какой-то мере " блокировочники и псевдоверионники? По крайней мере, если подходить с позиций MasterZiv?
...
Рейтинг: 0 / 0
25 сообщений из 162, страница 6 из 7
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Выбор бюджетной базы для замены Postgres.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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