powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Долгие транзакции - Короткие транзакции
25 сообщений из 62, страница 2 из 3
Долгие транзакции - Короткие транзакции
    #32963470
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUSВ итоге например, после изменения записи PB генерит примерно такой запрос:
У этого подхода также есть недостатки. Наиболее для меня неприятный - он плохо совместим с желанием чего-то нетривиального. Например, UpdateSQL в дельфе мне пришлось специально отучать от проверки на ROWCOUNT - поскольку как только я захотел менять больше чем одну таблицу, проверка стала возвращать "не то". Другой аспект - зависимости и траффик. Если тянуть на клиента все поля таблицы - получаем большой избыточный траффик. Если нужные - "прозеваем" изменение других полей, из-за чего может возникнуть рассогласование. Вариант наличия гигабайтных блобов тоже заслуживает внимания :)

В целом - я не вижу, что же именно в этом "правильного". Особенно если вспомнить о классическом недостатке - aka "я сделал кучу работы, а теперь ее потеряю".

ASCRUSподход более правильный, чем попытка какой либо блокировки записей при изменении их на клиенте, что изначально противоречит парадигмам разработки клиент-серверных приложений.
Можно поподробнее - формулировку парадигмы и место противоречия?

P.S. Имхо, клиент-серверная парадигма - частный случай общей ООП-парадигмы. Есть объекты (сервер и клиент), которые решают свои задачи и обмениваются сообщениями. Одно из таких сообщений - "дай для просмотра", другое - "дай для изменения". Никаких коллизий не вижу.
...
Рейтинг: 0 / 0
Долгие транзакции - Короткие транзакции
    #32963565
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 softwarer
поддерживаю.

Вообще очень-очень плохо когда средства разработки влияют навязывают определенный подход к разработке пользовательского интерфейса. В идеале было бы неплохо если б сервер бд поддерживал и грязное чтение, и версионность одновременно. (в разных случаях разные подходы выигрывают)
а в случае разработки клиентского приложения... я для себя так например давно определился - нет ничего лучше чем С++/Embedded SQL. Тем кто юзает MSSQL/Sybase этого просто не понять.
...
Рейтинг: 0 / 0
Долгие транзакции - Короткие транзакции
    #32963929
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gardenman2 softwarer
поддерживаю.

Вообще очень-очень плохо когда средства разработки влияют навязывают определенный подход к разработке пользовательского интерфейса. В идеале было бы неплохо если б сервер бд поддерживал и грязное чтение, и версионность одновременно. (в разных случаях разные подходы выигрывают)
а в случае разработки клиентского приложения... я для себя так например давно определился - нет ничего лучше чем С++/Embedded SQL. Тем кто юзает MSSQL/Sybase этого просто не понять.
Нет, после PowerBuilder/DataWindow Expression/Embedded SQL однозначно не понять :)
...
Рейтинг: 0 / 0
Долгие транзакции - Короткие транзакции
    #32963952
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 ASCRUS
Хорошая тема для флейма: С++ via PowerBuilder via Delphy
...
Рейтинг: 0 / 0
Долгие транзакции - Короткие транзакции
    #32963979
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gardenman2 ASCRUS
Хорошая тема для флейма: С++ via PowerBuilder via Delphy
PowerBuilder строго заточен только под БД: создание клиентских интерфейсов и 3-х звенок, больше он ничего не умеет. Так что флеймить особо не о чем, тема получится из разряда, что лучше "Все в одном или строго ориентированно". Я например PB использую для создания интерфейсных мордочек, Delphi предпочитаю пользоваться для создания компонент/серверов/движков (вот только что закончил тестирование самописного COM-сервера на базе FastReport с его обвязкой для использования в PowerBuilder и вполне остался доволен связкой PB[ООП] + Delphi[COM]).
...
Рейтинг: 0 / 0
Долгие транзакции - Короткие транзакции
    #32964028
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUS

Еще раз напомню что оптимистическую блокировка реализована далеко не только у Power Builder

softwarer

Чтобы не посылать туда-сюда все поля придуман timestamp
...
Рейтинг: 0 / 0
Долгие транзакции - Короткие транзакции
    #32964243
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 ASCRUS
Жаль что мы в разных городах, а то можно было бы посравнивать реализацию простеньких задач на PB и С++, по производительности и по удобству пользовательского интерфейса...
...
Рейтинг: 0 / 0
Долгие транзакции - Короткие транзакции
    #32964393
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gardenman2 ASCRUS
Жаль что мы в разных городах, а то можно было бы посравнивать реализацию простеньких задач на PB и С++, по производительности и по удобству пользовательского интерфейса...
Ну удобство интерфейса зависит только от DirectHand.sys, а не от того, на чем сделано :) А производительность в мордочках для клиентов для меня вообще не знакомое понятие - чего там производить то ? :) В цикле миллион окошек виндоус открыть что ли ? Ну а если брать производительность работы с данными на 3-ем звене, так DataWindow Engine писался еще в те времена, когда РСУБД умели только хранить данные и вся тяжесть работы по их обработки частенько ложилась именно на PB. Так что здесь у них движок оптимизирован по самое не хочу, хотя я предпочитаю грязную и тяжелую работу отдавать на откуп РСУБД, используя PB только для просмотра и изменения данных.

И даже если сравнивать трудозатраты на рисование интерфейса с нуля и с набором своих библиотек/классов/компонент, то окажется, что в последнем случае скорость создания прикладух на тех же Си, Delphi, Java и PowerBuilder фактически одинакова. Все поддерживают ООП, создание визуальных компонент, повторное наследование форм и т.д, простор автоматизации самого себя любимого крайне широк в них. Так что тут опять сравнивать нечего.
...
Рейтинг: 0 / 0
Долгие транзакции - Короткие транзакции
    #32964488
Yo!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Yo!
Гость
авторНу удобство интерфейса зависит только от DirectHand.sys, а не от того, на чем сделано :) А производительность в мордочках для клиентов для меня вообще не знакомое понятие - чего там производить то ? :) В цикле миллион окошек виндоус открыть что ли ?

ASCRUS, раз пошла такая пьянка, может вы и мне DirectHand.sys вправите, а то вот ну никак не могу найти машину на которой не тормозит java swing ;)
...
Рейтинг: 0 / 0
Долгие транзакции - Короткие транзакции
    #32964640
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo! авторНу удобство интерфейса зависит только от DirectHand.sys, а не от того, на чем сделано :) А производительность в мордочках для клиентов для меня вообще не знакомое понятие - чего там производить то ? :) В цикле миллион окошек виндоус открыть что ли ?

ASCRUS, раз пошла такая пьянка, может вы и мне DirectHand.sys вправите, а то вот ну никак не могу найти машину на которой не тормозит java swing ;)
Ну Вы же Ораклист, должны знать, что проблемы производительности мощных систем элементарно решаются путем наращивания аппаратных ресурсов ;)

Ну а если серьезно, то я считаю что DirectHands.sys нужно править тем, кто пытается на Java GUI рисовать без достаточного на то основания. Например, Sybase ASA начинает крутить небольшие БД уже с 2 метров выделенной памяти. А вот ее универсальная консоль управления с поддержкой плагинов Sybase Central (аналог MMC) красивая и удобная написана на Java и если на машине меньше 128 метров, то можно часто и долго любоваться работой сборщика мусора. Вот такой вот парадокс :) Я конечно понимаю, что кроссплатформенной СУБД нужны кроссплатформенные визуальные утилиты, однако мне почему то кажется, что разрабатывать и админить БД/СУБД народ предпочитает с Windows, вне зависимости от того, на чем сейчас СУБД крутиться. Для таких вещей конечно C++ был бы гораздо предпочительнее.
...
Рейтинг: 0 / 0
Долгие транзакции - Короткие транзакции
    #32964668
Yo!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Yo!
Гость
авторНу Вы же Ораклист, должны знать, что проблемы производительности мощных систем элементарно решаются путем наращивания аппаратных ресурсов ;)

это не про свинг :)
а central который я видел для 12-го ase был на awt, т.е. есть куда рости :)
...
Рейтинг: 0 / 0
Долгие транзакции - Короткие транзакции
    #32965220
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
- доктор, меня все игнорируют
- следующий
...
Рейтинг: 0 / 0
Долгие транзакции - Короткие транзакции
    #32965481
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
funikovyuri softwarer

Чтобы не посылать туда-сюда все поля придуман timestamp
Я согласен с тем, что это лучше нежели "реализованное в PowerBuilder-е".

У timestamp остается неприятная деталь - необходимость всюду совать техническое поле. Более существенно - не представляю, как я объяснял бы пользователю, что произошел конфликт и работу за последние полчаса он должен выкинуть в помойку, поскольку сохранить ее программа не даст.

Имхо - этот подход необходимо сочетать с reconsile. Но это уже несколько другой класс решений.
...
Рейтинг: 0 / 0
Долгие транзакции - Короткие транзакции
    #32965892
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey_SK

MasterZiv
Я полагаю, что это - именно то, что тебе ( и большинству других) АБСОЛЮТНО НЕ НУЖНО. Это вообще никому не нужно.

to MasterZiv
ваши предложения?

Не быть слишком умным и не придумывать всякую ерунду. В 90% реальных задач блокирование документа на время его "рассмотрения" пользователем не нужно. Некорректность сохранения пользователем документа (строки(-ок) таблиц) поверх ранее произведенного изменения в том виде, в котором он его прочитал и уведел (и, видимо, посчитал правильным) - весьма спорна.
Так что не фиг создавать себе кучу проблем на ровном месте.
А если это реально нужно - реализация внетранзакционных блокирово уровня приложения достаточно проста и прозрачна, чтобы ее обсуждать. Варианты какжется предлагались, если нет - в сети их описано достаточно много.
...
Рейтинг: 0 / 0
Долгие транзакции - Короткие транзакции
    #32965908
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivНекорректность сохранения пользователем документа (строки(-ок) таблиц) поверх ранее произведенного изменения в том виде, в котором он его прочитал и уведел (и, видимо, посчитал правильным) - весьма спорна.
Хм. Бухгалтер проставил документу признак "оплачен". В это же время продавец, кладовщик или еще кто-нибудь, пыхтя, заносит в поле "комментарий" жутко полезную информацию, типа "не забыть на завтра выписать пропуск".

Клиент, приехавший завтра на грузовике, с интересом узнает, что его счет не оплачен (и отгрузки не будет) из-за спорной некорректности того, что не нужно в 90% случаев. Видимо, он очень рад и проникается ощущением истинной мудрости гуру от программирования.

Занавес.
...
Рейтинг: 0 / 0
Долгие транзакции - Короткие транзакции
    #32965948
Фотография Old Nick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
логическая блокировка и таких проблем не будет.
действительно, не нужно делать проблему на пустом месте.
...
Рейтинг: 0 / 0
Долгие транзакции - Короткие транзакции
    #32965985
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Old Nickлогическая блокировка и таких проблем не будет.
Если блокировку все равно надо делать - физическая удобнее. Потому как во-первых удобнее использовать, а во-вторых не будет проблем с теми, кто не знает о существовании логической блокировки.

Вопрос, конечно, в реализации этой физической блокировки. Как уже сказал Вадим - если реализовано плохо, приходится придумывать собственный PMON.
...
Рейтинг: 0 / 0
Долгие транзакции - Короткие транзакции
    #32966218
Фотография Old Nick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
интересно, а в какой ситуации кто-то может не знать о логической блокировке?
...
Рейтинг: 0 / 0
Долгие транзакции - Короткие транзакции
    #32966229
Yo!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Yo!
Гость
>Если блокировку все равно надо делать - физическая удобнее. Потому как во-первых удобнее использовать, а во-вторых не будет проблем с теми, кто не знает о существовании логической блокировки.

но зато нет проблем с web/wap клиентами у которых на каждый чих новая сесия
...
Рейтинг: 0 / 0
Долгие транзакции - Короткие транзакции
    #32966514
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Old Nickинтересно, а в какой ситуации кто-то может не знать о логической блокировке?
О логической блокировке знают только те, кому о ней сказали. Соответственно, можно быть 100% уверенным, что о ней кто-то не знает. Соответственно, надежна она только если доступ к данным перекрыт и абстрагирован - например, appserver-ом. В этом случае проблемой остается только ситуация "нашему специалисту надо поправить в вашей базе..."

Yo!но зато нет проблем с web/wap клиентами у которых на каждый чих новая сесия
Средство героической борьбы с собственноручно созданными трудностями?

Безусловно, в таких условиях строчные блокировки неудачны. Правда, лично мне в таких условиях сразу захотелось бы сделать appserver или еще что-нибудь, что позволит избежать такого идиотизма, как ежесекундные реконнекты.
...
Рейтинг: 0 / 0
Долгие транзакции - Короткие транзакции
    #32966534
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer

реконектов не будет - будет возвращение соединения в пул
...
Рейтинг: 0 / 0
Долгие транзакции - Короткие транзакции
    #32966591
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
funikovyuriреконектов не будет - будет возвращение соединения в пул
Зависит от. Для этого необходим хотя бы минимальный промежуточный слой - возможно, присутствующий по умолчанию, но тем не менее. Но в целом - наличие пула соединений безусловно вынудит придумывать собственные блокировки - пока что, насколько я в курсе, сервера БД не имеют достаточной поддержки для этого режима.
...
Рейтинг: 0 / 0
Долгие транзакции - Короткие транзакции
    #32966653
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
в том-то и дело! СУБД имеют только один вариант реализации транзакций - он хорошо развит и применим во многих случаях.

НО транзакции - это просто требования к работе. И реализовывать их можно по-разному - к сожалению руками.
...
Рейтинг: 0 / 0
Долгие транзакции - Короткие транзакции
    #32966817
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
funikovyuri softwarer
в том-то и дело!.....
Я бы сказал несколько иначе. Механизм транзакций - как он реализован - покрывает все мыслимые потребности. По крайней мере, никто пока что не называл мне ситуции, где мне не хватило бы стандартных транзакционных возможностей.

Текущий недостаток БД - неумение держать маленький и эффективный контекст транзакции и переключаться между ними внутри сессии; если угодно - реализации пула на уровне сервера БД. Oracle делает такую попытку (MTS), но, насколько я понимаю, это не то чтобы принципиальный прорыв, поскольку сохраняемый контекст оказывается вовсе не "маленьким и эффективным". Поэтому пул - а значит и все задетые им механизмы - и выезжают из сервера туда, где им вряд ли лучшее место.
...
Рейтинг: 0 / 0
Долгие транзакции - Короткие транзакции
    #32966858
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer

Я согласен! Но, хотя я и не хочу сейчас говорить формально, текущая реализация транзакций в РСУБД оптимизирована для какой-то одной стратегии. Обычно это пессимистическое блокирование всех используемых ресурсов в зависимости от уровня изоляции. Такой сценарий наиболее востребован, хотя и не всегда. Вариант с долгими транзакциями - это один из таких случаев.
Второй - это отсоединенная обработка (то для чего вы предлагаете использовать контексты).

Можно все это по-разному называть, но, imho, в этой области еще много чего стоит сделать, как с теоретической, так и практической точек зрения.
...
Рейтинг: 0 / 0
25 сообщений из 62, страница 2 из 3
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Долгие транзакции - Короткие транзакции
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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