powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Чем плох блокировочник по сравнению с версионником?
25 сообщений из 370, страница 13 из 15
Чем плох блокировочник по сравнению с версионником?
    #38960250
sanyock2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в контексте данной темы интересно, как в тяжелых тиражируемых системах удается сделать поддержку СУБД с разной реализацией уровней изоляции, особенно блокировочников и версионников одновременно (т.е. какой-то один на выбор приобретателя системы)

там пишется разный код бизнес логики приложения для разных СУБД?
Подразумевается, что в СУБД логики по минимуму (без хранимых процедур, если так бывает, или хранимые процедуры только для тяжелых отчетов), почти вся логика в бизнес слое приложения
...
Рейтинг: 0 / 0
Чем плох блокировочник по сравнению с версионником?
    #38960257
PgSQLAnonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sanyock2в контексте данной темы интересно, как в тяжелых тиражируемых системах удается сделать поддержку СУБД с разной реализацией уровней изоляции, особенно блокировочников и версионников одновременно (т.е. какой-то один на выбор приобретателя системы)

там пишется разный код бизнес логики приложения для разных СУБД?
Подразумевается, что в СУБД логики по минимуму (без хранимых процедур, если так бывает, или хранимые процедуры только для тяжелых отчетов), почти вся логика в бизнес слое приложения
Как-как... обычно хреново, т.е. используется минимальное общее подмножество возможностей, а потом разработчики под эту систему долбаются с результатом. :(
...
Рейтинг: 0 / 0
Чем плох блокировочник по сравнению с версионником?
    #38960259
PgSQLAnonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
эттаPgSQLAnonymous,

тебе с порога было написано: вместо пересекающихся по конкурентам сущностей-- "агрегатов" Счет [Клиента|Брокера], должны быть индивидуальные Сущности "СчетКлиентаУБрокера". точка.

никаких агрегатных [по всем клиентам] сущностей. Пока можно агрегировать "счет брокера" в моменте. Как только уже нельзя -- долго агрегировать -- так начинаем чесать репу.

чесать репувыход 1 -- организовать очередь на агрегирующем ресурсе, с инкрементальным навариванием "ресурса" [read commited only]. Ограниченно годен -- при большом числе конкурентов и большой длине "слайса очереди" (т.е. средней протяженности от захвата ресурса до коммита, отдающего очередь) встанет колом.

выход 2 -- не иметь уникального агрегирующего ресурса "СчетБрокера", а иметь "размазанный, периодически сворачиваемый" "многострочный" агрегат , нужно следить за видимостями при свёртках (можно сворачивать и в снепшоте (repeatable-read-е), как показывал сибиряков, можно сворачивать в commited-е -- по всякому, в pg -- в т.ч. через cte -- у которого единый снепшот [WITH del AS (DELETE ... RETURNING...) ]. а вот с сериалайзебл будет велик шанс облома сериализации. патамушто гладиолус).

и т.п.


Ну это всё как-то слишком общо... Не видно, как достигается цель: не допустить ухода в минус счёта брокера.
...
Рейтинг: 0 / 0
Чем плох блокировочник по сравнению с версионником?
    #38960267
PgSQLAnonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sanyock2PgSQLAnonymousИ, кстати, знай добавляй RAM и "будет расти iops-ы". ;)
это как? можно поподробнее?
Вы бы контекста-то побольше оставляли: ;)

PgSQLAnonymousGgg_oldЛично я всегда предпочитал блокировочники, но у версионников как показало время есть преимущество в части масштабируемости информационных систем, которые не параллелятся по типу shared nothing. Например все тяжелые учетные системы, банковские системы. Дисковые стойки масштабируются очень хорошо и линейно, знай добавляй дисков и будет расти iops-ы, версионники хрянт инфу о блокировка на диске, а значит гораздо меньше зависят в отличие от блокировочников, хранящих блокировки в RAM. Т.е. производительность версионников привязана к гораздо более легко масштабируемому ресурсу, чем производительность блокировочников.

Вообще-то кеширование в основном скрывает эти различия, и как блокировки (которые тоже могут храниться на диске), так и версии (которые тоже можно хранить в RAM) обычно находятся именно в RAM. И, кстати, знай добавляй RAM и "будет расти iops-ы". ;)

Если не хватает RAM для блокировок, они обычно эскалируются (например, блокировки записей превращаются в блокировки страниц или таблиц), поэтому производительность может страдать. Добавление RAM может предотвратить это, только и всего (основное влияние на производительность происходит за счёт кэширования, конечно).
...
Рейтинг: 0 / 0
Чем плох блокировочник по сравнению с версионником?
    #38960268
sanyock2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и еще интересно, как думаете, теоретически возможно в DB2 появление включаемой версионности аналогично MSSQL?
или IBMвцы принципиально не хотят версионник
или это слишком сложно конкретно в случае DB2
или или ...
...
Рейтинг: 0 / 0
Чем плох блокировочник по сравнению с версионником?
    #38960270
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sanyock2в контексте данной темы интересно, как в тяжелых тиражируемых системах удается сделать поддержку СУБД с разной реализацией уровней изоляции, особенно блокировочников и версионников одновременно (т.е. какой-то один на выбор приобретателя системы)

там пишется разный код бизнес логики приложения для разных СУБД?
Подразумевается, что в СУБД логики по минимуму (без хранимых процедур, если так бывает, или хранимые процедуры только для тяжелых отчетов), почти вся логика в бизнес слое приложения
все эти системы монопольно используют СУБД, все конфликты разрешается через промежуточный слой к СУБД
но как только какая та другая система в обход этого промежуточного слоя идет в БД, так сразу все гавкается
и все это потому что у СУБД нет мозгов
...
Рейтинг: 0 / 0
Чем плох блокировочник по сравнению с версионником?
    #38960271
PgSQLAnonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovPgSQLAnonymousЕстественно, клиент.
Более того, каждый клиент в норме обязан быть готов это сделать.

Ага, это мне напомнило времена, когда тут ещё появлялись Фокспрошники: "нашей СУБД не
нужны транзакции, мы легко эмулируем их с помощью временных таблиц".

А какая-то СУБД гарантирует , что для любой транзакции не будет ни DEADLOCK-ов, ни UPDATE CONFLICT-ов, ни откатов по каким-то другим причинам?
Реальный мир не напоминает? ;)
...
Рейтинг: 0 / 0
Чем плох блокировочник по сравнению с версионником?
    #38960273
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PgSQLAnonymousDimitry Sibiryakovпропущено...

Ага, это мне напомнило времена, когда тут ещё появлялись Фокспрошники: "нашей СУБД не
нужны транзакции, мы легко эмулируем их с помощью временных таблиц".

А какая-то СУБД гарантирует , что для любой транзакции не будет ни DEADLOCK-ов, ни UPDATE CONFLICT-ов, ни откатов по каким-то другим причинам?
Реальный мир не напоминает? ;)
любая СУБД это может делать, если он знает свои обязанности и права
...
Рейтинг: 0 / 0
Чем плох блокировочник по сравнению с версионником?
    #38960274
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и при этом набор прав и обязанностей должен быть полной для разрешения любого типа конфликта
...
Рейтинг: 0 / 0
Чем плох блокировочник по сравнению с версионником?
    #38960277
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а то блин орловский мент одни правила применяет, а московский другие - вот жисть то блин
...
Рейтинг: 0 / 0
Чем плох блокировочник по сравнению с версионником?
    #38960282
sanyock2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PgSQLAnonymoussanyock2пропущено...
это как? можно поподробнее?
Вы бы контекста-то побольше оставляли: ;)


в смысле это было образно про то, что с помощью оперативки получится смасштабировать любое количество сессий большого динозавра? и под "iops" подразумевалось TPS вместо iops? чето я запутался, вообще конечно тяжелая ветка в целом для моего понимания, может быть из-за отсутствия опыта программирования высоконагруженных БД
...
Рейтинг: 0 / 0
Чем плох блокировочник по сравнению с версионником?
    #38960287
sanyock2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosвсе конфликты разрешается через промежуточный слой к СУБД
т.е. они по разному разрешаются в зависимости от используемой СУБД, для каждой свой конфликт манагер создается?
...
Рейтинг: 0 / 0
Чем плох блокировочник по сравнению с версионником?
    #38960290
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PgSQLAnonymousА какая-то СУБД гарантирует, что для любой транзакции не будет ни
DEADLOCK-ов, ни UPDATE CONFLICT-ов, ни откатов по каким-то другим причинам?
Да любая, у которой есть "настоящий serializable". Ты же сам говорил, что знаешь одну такую.

PS: Джим Старки пару лет назад говорил, что в одном из своих свежих поделий (то ли в
Nexus, то ли в Nuo) решил проблему конкуренции полной сериализацией транзакций. Типа, это
упростило и ускорило движок до невозможности, так что TPS взлетели до небес.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Чем плох блокировочник по сравнению с версионником?
    #38960292
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sanyock2ViPRosвсе конфликты разрешается через промежуточный слой к СУБД
т.е. они по разному разрешаются в зависимости от используемой СУБД, для каждой свой конфликт манагер создается?
они по разному разрешается в каждой системе написанной для этой СУБД, что и приводит к бардаку
все эти аппсерверы пытаются закрыть дыры СУБД по части разрешения конфликтов
а поставщики СУБД не занимаются этим вопросом по причине гонки за "производительностью", а то бы давно был стандартный менеджер разрешения любых!!! конфликтов за счет утяжеления описания данных, семантичнеский анализ поступающих запросов и т.д.
...
Рейтинг: 0 / 0
Чем плох блокировочник по сравнению с версионником?
    #38960293
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovPgSQLAnonymousА какая-то СУБД гарантирует, что для любой транзакции не будет ни
DEADLOCK-ов, ни UPDATE CONFLICT-ов, ни откатов по каким-то другим причинам?
Да любая, у которой есть "настоящий serializable". Ты же сам говорил, что знаешь одну такую.

PS: Джим Старки пару лет назад говорил, что в одном из своих свежих поделий (то ли в
Nexus, то ли в Nuo) решил проблему конкуренции полной сериализацией транзакций. Типа, это
упростило и ускорило движок до невозможности, так что TPS взлетели до небес.

пиздит
...
Рейтинг: 0 / 0
Чем плох блокировочник по сравнению с версионником?
    #38960294
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosпиздит
С чего бы?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Чем плох блокировочник по сравнению с версионником?
    #38960295
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovViPRosпиздит
С чего бы?

ускорения невозможно добиться
...
Рейтинг: 0 / 0
Чем плох блокировочник по сравнению с версионником?
    #38960296
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хотя если у него до этого было совсем говно, то почему бы и нет
...
Рейтинг: 0 / 0
Чем плох блокировочник по сравнению с версионником?
    #38960299
PgSQLAnonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovPgSQLAnonymousА какая-то СУБД гарантирует, что для любой транзакции не будет ни
DEADLOCK-ов, ни UPDATE CONFLICT-ов, ни откатов по каким-то другим причинам?
Да любая, у которой есть "настоящий serializable". Ты же сам говорил, что знаешь одну такую.

Нда. И с чего ты взял, что "настоящий serializable" --- это отсутствие вышеперечисленного?
Тем более, после того , как тебе здесь неоднократно указали, что это не так?

PgSQLAnonymousPS: Джим Старки пару лет назад говорил, что в одном из своих свежих поделий (то ли в
Nexus, то ли в Nuo) решил проблему конкуренции полной сериализацией транзакций. Типа, это упростило и ускорило движок до невозможности, так что TPS взлетели до небес.

Поживём-увидим. ;)
...
Рейтинг: 0 / 0
Чем плох блокировочник по сравнению с версионником?
    #38960300
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosускорения невозможно добиться
Ага, ещё добавь "у меня же не получилось".

Рецепт-то простой: NoSQL, in-memory, autocommit. Всё, телемаркет: миллиард транзакций в
секунду выдаётся на гора легко. Фигня, что эти "транзакции" - увеличение числа на единицу,
кому-нибудь и такое требуется. Например, гуглю посещения считать.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Чем плох блокировочник по сравнению с версионником?
    #38960303
PgSQLAnonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ViPRosони по разному разрешается в каждой системе написанной для этой СУБД, что и приводит к бардаку
все эти аппсерверы пытаются закрыть дыры СУБД по части разрешения конфликтов
а поставщики СУБД не занимаются этим вопросом по причине гонки за "производительностью", а то бы давно был стандартный менеджер разрешения любых!!! конфликтов за счет утяжеления описания данных, семантичнеский анализ поступающих запросов и т.д.
А алгоритмы-то есть какие-нибудь на эту тему? А то мечтать-то можно...
...
Рейтинг: 0 / 0
Чем плох блокировочник по сравнению с версионником?
    #38960307
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PgSQLAnonymousИ с чего ты взял, что "настоящий serializable" --- это отсутствие
вышеперечисленного?
По определению: нет параллельных транзакций - порядок записи не важен, нет не то что
взаимоблокировок на записях, вообще никаких других блокировок нет, уже изменённую запись
никто не пытается изменять заново.

PgSQLAnonymousТем более, после того, как тебе здесь неоднократно указали, что это
не так?

Здесь неоднократно показали, что та хрень, которая гордо называется "serializable" в PG и
Оракуле - никакого отношения к serializable не имеет. Ничего более.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Чем плох блокировочник по сравнению с версионником?
    #38960308
PgSQLAnonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sanyock2в смысле это было образно про то, что с помощью оперативки получится смасштабировать любое количество сессий большого динозавра?
Да, где-то как-то так. ;)

sanyock2и под "iops" подразумевалось TPS вместо iops? чето я запутался, вообще конечно тяжелая ветка в целом для моего понимания, может быть из-за отсутствия опыта программирования высоконагруженных БД
Если для выполнения запроса клиента СУБД нужно прочитать 100000 страниц,
и в одном случае на это уходит 2 сек, а в другом 1, то похоже на то,
что во втором случае IOPS вдвое больше (что может быть просто эффектом кэширования). ;)
...
Рейтинг: 0 / 0
Чем плох блокировочник по сравнению с версионником?
    #38960314
PgSQLAnonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovПо определению: нет параллельных транзакций - порядок записи не важен, нет не то что
взаимоблокировок на записях, вообще никаких других блокировок нет, уже изменённую запись
никто не пытается изменять заново.

Нет, ты замучал уже. Советую перечитывать эту тему, стандарт SQL,
документацию настоящих СУБД (мурзилку, наконец) пока до тебя не дойдёт,
что такое ACID, ISOLATION, serializability и SERIALIZABLE.

Dimitry SibiryakovЗдесь неоднократно показали, что та хрень, которая гордо называется "serializable" в PG и
Оракуле
Не надо Oracle и PostgreSQL мешать в одну кучу в этом вопросе.

Dimitry Sibiryakov - никакого отношения к serializable не имеет. Ничего более.

Да, да, чёрное — это белое. Война — это мир. Свобода — это рабство. Незнание — сила. Ложь — это правда.
...
Рейтинг: 0 / 0
Чем плох блокировочник по сравнению с версионником?
    #38960321
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PgSQLAnonymousСоветую перечитывать эту тему, стандарт SQL, документацию настоящих
СУБД (мурзилку, наконец) пока до тебя не дойдёт, что такое ACID, ISOLATION,
serializability и SERIALIZABLE.
А какое слово из "если бы транзакции выполнялись последовательно, одна за другой" не
понимаешь ты? Если транзакции на самом деле выполняются строго последовательно,
одна за другой - это и есть истинный TIL serializable. Потому что (сурпрайз!) транзакции
при нём действительно сериализованы.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
25 сообщений из 370, страница 13 из 15
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Чем плох блокировочник по сравнению с версионником?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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