metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2009-12-02 09:19 pm

Границы применимости решений

Вот тут и тут идут практически идентичные срачи на тему "Зачем юзать (дорогую, энтерпрайзную, сложную) технологию А, если можно воспользоваться (простой, дешевой, десктопно-наколенной) технологией Б?".

А я, честно говоря, совсем уже потерял нить рассуждений, и не могу толком ответить на этот вопрос. Т.е. для меня вещи типа "бухгалтерию на dbf файлах в 2009 году не делают" и "mysql не является базой подходящей для систем со сложными расчетами и высокой нагрузкой" являются как бы самоочевидными, поэтому поиском аргументов на эту тему я себя никогда не утруждал.

Ну вот всегда, когда сталкивался с решениями на основе dbf (клариона, фокспро, клиппера, access, итд) - всегда очевидно, что разработчики блядь говно тупые уроды ебаные троечники по которым агрогородки плачут отстали от современных технологий, неважно по какой причине, соотвественно, они не способны принимать участие в современных разработках, у них нет для этого мыслительных категорий.
То же самое mysql, который в старых версиях, насколько я помню, вообще толком никакой логики на стороне сервера не содержал и транзакции умел только с одним типом хранилища. Для меня самоочевидно, что транзакции - это благо. И самоочевидно, зачем нужны вещи типа Software Transactional Memory и зачем нужны проверки целостности на стороне БД. Но большому количеству разработчиков это просто непонятно - я уже писал когда-то про попавшуюся под руки базу, в которой FK не было вообще.

С другой стороны - у меня в проекте Firebird молотит данные сотнями записей в секунду на обычном железе, с одновременными массовыми перерасчетами, и ничего. Хотя как бэ и СУБД тоже из разряда тех, на которые тупые линуксоиды наезжают в стиле "это же говно, потому что я так считаю".

И вот получается, что границы применимости решений (в данном случае СУБД) становятся совершенно непонятными. Очевидно, что при желании все недостатки отдельной СУБД можно обойти в программном коде. В экстремальных случаях это получится полное повторение функционала, уже существующего в другой СУБД, и это не всегда плохо - некоторые вещи настолько сделаны чрезмерно сложно и методом постепенного добавления фич, что переписывание с нуля их только улучшит.
Но вот где граница - "берем Postgresql, программиста и линуксоида на обслуживание" vs "покупаем Oracle, покупаем DBA, покупаем страшный софт за бешеные бабки и считаем что мы круты" - непонятно. Исключая, конечно, момент откатов за софт, тогда второй случай безальтернативен.

[identity profile] metaclass.livejournal.com 2009-12-03 10:59 am (UTC)(link)
О, вас как гуру postgresq

[identity profile] metaclass.livejournal.com 2009-12-03 11:00 am (UTC)(link)
Тут как раз гуру postgresql для консультаций ищут :)

[identity profile] veter-r-r.livejournal.com 2009-12-03 11:15 am (UTC)(link)
Так дело ж не в адекватности. А в том, что тот же MySQL уже триста лет как поддерживает все то, в чем его обвиняют. Но те, кто ушел с него лет семь назад из-за отсутствия триггеров, к примеру, так и будут рассказывать, что это недосубд, развиваемая тремя пьяными любителями и даже триггеры она не умеет.
Просто потому что они не следят за продуктом, с которым не работают. Даже если он давно уже принадлежит корпорации Sun и поддерживает и триггеры и транзакции и черта в ступе.

Причем это не только с СУБД такая беда, но и с любым продуктом. Если что-то не понравилось давным давно, то чтобы поменять стереотип в голове на этот счет, много сил понадобится.

[identity profile] fas-tm.livejournal.com 2009-12-03 11:20 am (UTC)(link)
+1 Согласен. Хорошо что не вышло тупого холливара :)

[identity profile] spacediver.livejournal.com 2009-12-03 11:26 am (UTC)(link)
+1

мысль первична.

Re: нюню

[identity profile] gds.livejournal.com 2009-12-03 11:27 am (UTC)(link)
параметр cursor_sharing. Было "similar" -- всё работало, поставили "exact" -- этот запрос стал глючить. Обидно тут то, что запросов -- несколько тысяч, и как-то печально, что оно такое хрупкое, и что от таких не относящихся к делу мелочей оно может молча давать неправильные данные.

[identity profile] theiced.livejournal.com 2009-12-03 11:37 am (UTC)(link)
4. если у вас виндовз на серверах, то я вам просто сочувствую.

[identity profile] metaclass.livejournal.com 2009-12-03 11:41 am (UTC)(link)
В РБ на госконторах виндовса на серверах 90% наверно. Юниксы промышленные - дорого, для линуксов линуксоидов которые бы обслуживали, не найти на ту зарплату и в тех ебенях.

[identity profile] theiced.livejournal.com 2009-12-03 11:43 am (UTC)(link)
Ну так делайте дёшево и хреново, кто ж вам мешает ;))

[identity profile] theiced.livejournal.com 2009-12-03 11:47 am (UTC)(link)
я боюсь даже об этом думать.

гм...

[identity profile] a-sure.livejournal.com 2009-12-03 11:48 am (UTC)(link)
У клиента есть простой выбор:
1) купить (спиздить и потом не жаловаться) ОРАКЛ
2) оплатить на 5 человеколет миграции
3) пойти на йух, или за другим продуктом

Объяснять очередному умнику, начитавшемуся мурзилок, почему ОРАКЛ, никто просто не будет.

Ребе предлагает сделать иначе? Выбрать СУБД, в которой у разработчика (мы ведь тут про ентерпрайз всё ёщё, ага?) нет компетенции?!? И каковы шансы, что оно будет масштабируемо?

[identity profile] fas-tm.livejournal.com 2009-12-03 11:53 am (UTC)(link)
Андрей, спасибо за сочувствие. Но нам честно оно не нужно :)
Виндовый сервер для меня просто инструмент, его требует заказчик и платит деньги, при этом у нас есть отработанный набор инструментов для разработки обкатанные на куче проектов.
Точно так же мы работаем с Linux(для кластерных хранилок StorNext, ExaStore), MacOSX(для NLE станций).
Свои задачи WinServer выполняет. Как только Linux будет иметь инфраструктурные возможности (не просто "это в принципе можно наваять", а будет стандартно это делать) для наших задач и поддержка и сопровождение будет финансово выгодна - вопросов не будет.

Re: Уже можно суммировать

[identity profile] a-sure.livejournal.com 2009-12-03 11:55 am (UTC)(link)
Ну, ваши перлы про биллинг я посмотрел. Смеялсо, а как же. Ваша, ребе, беда - Вы все видите только с позиций ойтишнега. Вам трижды пытались объяснить, что есть до бениной мамы секурных ограничений, несоблюдение которых стоит ОЧЕНЬ дорого, но Вы как-то их не хотели заметить.

Чтобы я сказал, как лечить Оракель в приведенной ситуации, Вы сначала докажите (memtest'у после 24часов работы я верю), что к вас не глючит ПАМЯТЬ, диски, в б\п нет выкипевших кондюков. Да, и ОРАКЛ тоже хотя бы с предпоследним патчем.

Где взять патч - на металинке. Как попасть - купить. Нет денег на ОРАКЛ? Вы же не пытаетесь ездить на авто, купить который у Вас нет денег?

И я вообще не пишу.

Re: Уже можно суммировать

[identity profile] theiced.livejournal.com 2009-12-03 12:10 pm (UTC)(link)
понимаете, там собралось пачка говнодевелоперов с мегаконтор. их тааак приятно троллить. туповаты тока слегка, но это издержки работы на мегаконторах.

по ораклю - это лет 5-6 назад было. железо полностью меняли, ничего не помогало. раз в 3-4 недели стабильный хуяк. оракель был легальный есессно. саппорт оракля ничего ответить не смог, я с ним месяца три общался. так оно и жило пока не мигрировали на постгре ;)

[identity profile] theiced.livejournal.com 2009-12-03 12:12 pm (UTC)(link)
не ну требует заказчик говно - получает говно, вы получаете свои пару копеек, все довольны ;)

[identity profile] a-sure.livejournal.com 2009-12-03 12:13 pm (UTC)(link)
Ребе, я ж привел пример - система упала 4 числа, завтра выдавать еще не рассчитанную з\п на предприятии в 2500рыл, 3хсменка.

Так пойдет?

[identity profile] theiced.livejournal.com 2009-12-03 12:14 pm (UTC)(link)
про недосубд тока ораклисты говорят. это вообще специфическая каста долбоёбов.

Re: нюню

[identity profile] a-sure.livejournal.com 2009-12-03 12:33 pm (UTC)(link)
Способ разбора запроса ребе считает не относящейся к делу мелочью? Особенно в плане того, как относиться к литералам?!?
Зря.

Чтобы не сваливаться в оффтоп - вот еще один компонент "границы": наличие или готовность купить лицензию на ОРАКЛ.


Re: нюню

[identity profile] metaclass.livejournal.com 2009-12-03 12:42 pm (UTC)(link)
А причем тут способ разбора запроса и cursor_sharing, если поведение очевидно бредовое?

[identity profile] a-sure.livejournal.com 2009-12-03 12:57 pm (UTC)(link)
Да, я как раз тот, который 7 лет назад выбрал постгрес, а не мускуль.

И что, от того, что мускуль научился триггерам, целостности и т.д. - мне бросаться переделывать код? Мне делать больше нечего? Или отказываться от наработанных опыта\навыков\кода? А стоит ли оно?

А до саней это была MySQL AB, если ребе забыл. Теперь корпорация SUN принадлежит ОРАКЛ. Да и фиг бы с ней, даже если оракл решит задушить мускуль в пользу 10ХЕ - народ отфоркается и потащит дальше. Дело же не в этом!

Стереотип состоит из двух "половинок" - 1) я вот это попробовал и оно (было) говном (не подошло под задачу) 2)я уже имею успешный опыт решения задач с альтернативным продуктом

Просто вторую часть осознают единицы. Но они обычно вполне адекватны и в высказываниях. Это люде, ребе, просто люди.

[identity profile] spacediver.livejournal.com 2009-12-03 01:02 pm (UTC)(link)
Меня в постгресе возбуждает (увы, пока издалека) возможность ембеддить в сервер свои модули на чем попало. Оно вообще зачем-нибудь полезно? :) На первый взгляд, туда можно вкачать бизнес-логику и получить толстый сервер, хорошо интегрированный с СУБД. Профит ли?..

В чем сила постгреса? ;)

[identity profile] veter-r-r.livejournal.com 2009-12-03 01:05 pm (UTC)(link)
Я видел сколько они получают ТАМ. Они таки имеют право считать всех остальных низшей кастой. :))

[identity profile] a-sure.livejournal.com 2009-12-03 01:10 pm (UTC)(link)
ребе, а по существу?

Вот работают третий год 5 серверов Вонь2003, Оракл 9.2.0.6.
Я плююсь, конечно, мне до них RDP ходить приходится в соседнюю область. Но проблемы были только с одним - распиздяям одминам моих 3х китайских предупрждений о том, что UPS надо настроить, было мало. Пришлось подключить главбуха.

Остальные 4 проблем за 3 года не вызвали. Может, таки начнем смотреть на задачу в комплексе? Или Вы готовы саппортить пол-россии в одно лицо?

[identity profile] vp.livejournal.com 2009-12-03 01:35 pm (UTC)(link)
А модули эти в каком формате и как вызываются?
Мы, кстати, тоже такую возможность обсуждали. Субд сервер ради его "налаженного транспорт" (чтоб не плодить цирк с разными каналами связи) нагружается в стиле обращения к хранимым процедурам и выдачи назад таблиц совершенно посторонними функциями и становится по типу сервера приложений.

Re: нюню

[identity profile] a-sure.livejournal.com 2009-12-03 01:47 pm (UTC)(link)
Ребе, такой момент:
1)я не имею привычки фантазировать. Есть прога (железка), и она устроена так, как устроена. Я предпочитаю знать, как:

"CURSOR_SHARING=SIMILAR causes statements that may differ in some literals, but are otherwise identical, to share a cursor by replacing the literals with system-generated bind variables, unless the literals affect either the meaning of the statement, or the degree to which the plan is optimized.

With CURSOR_SHARING=SIMILAR we look at replaced literals in some query predicates during optimization, to calculate the predicate selectivity. This is the normal effect of BIND PEEKING.
A side effect of this bind peeking is to potentially mark the bind as unsafe, so it is no longer shareable. This is done for range predicates (eg <, >=) or equality predicates in the presence of a histogram on the column. The purpose of this is to ensure we only share cursors when bind values lead to the same selectivity.

In 9i there was a problem (Bug 3668224) which meant that we could not peek bind variables in predicates if they were under operators, for example WHERE ENAME = UPPER(:b1).
The fix for this problem is in patchsets 9.2.0.6 and 10.2.0.3, but for 9i release it has to be explicitly enabled by setting event 38044.
There was also a follow-on problem (Bug 4359367) which meant that we were peeking excessively (in circumstances other than those appropriate for cursor_sharing=similar) but this is also fixed in 10.2.0.3."

Процесс разбора тоже документирован. Из касающихся вопроса - сначала идет проверка синтаксиса, потом, если сказано cursor_sharing=similar, литералы заменяются на псевдопеременные. Потом идет поиск уже разобранного запроса. И если находится такой же, то берется его план на исполнение. А сколько в тех запросах литералов, и как они раскиданы и что получается после bind_peeking - только по месту.

2) select case ... вкупе с упоминанием, что там тысячи таких, мне тоже нормальным не кажется. Но пока я не разобрался, откуда оно выросло - говном,хрупким и прочими эпитетами не разбрасываюсь.

Page 3 of 4