LINUX.ORG.RU

Его крокейшество о вредности СУБД, если архитектурно она для программ, а не живого человека

 ,


0

4

Давно уже что-то про Столярова Croco ничего не было =) А тут он повод недавно дал, расписав почему считает недопустимым использовать СУБД в архитектуре при проектировании софта. То есть, если для каких-то программ нужно хранение данных, его надо индивидуально под программу делать, а не подключать базы данных.

Можно обсудить. В принципе я сам не люблю для локальных данных применять базы данных, часто достаточно просто текстовых файлов и это даже надежно и быстро. Но в целом каким-то луддизмом отдает. Его сообщение ниже:

http://www.stolyarov.info/guestbook#cmt97

==============

Я придерживаюсь принципа несколько более узкого: недопустимо создание, распространение и использовние программ, для работы которых требуется СУБД.

Причины можно назвать, например, такие:

  1. СУБД — это лишняя внешняя зависимость, при том что вообще любые внешние зависимости суть хамство в отношении пользователей и мейнтейнеров;
  2. СУБД требует трудозатрат на установку, настройку и дальнейшее администрирование;
  3. СУБД способна упасть (и да, падает намного чаще, чем, скажем, тот же апач — вообще пока мои сайты жили на «традиционной» CMSке, именно СУБД была причиной всех случаев downtime моих сайтов, за исключением одного, когда на сервере физически осыпался жёсткий диск);
  4. СУБД требует от пользователя постоянно обновлять навыки, которые, возможно, больше ни для чего не нужны;
  5. СУБД хранит информацию пользователя в неочевидном для него виде; этим грешат не только СУБД, конечно, но СУБД мало того что хранят всё в бинарных файлах, которые без самой СУБД даже думать нечего разобрать, они ещё и вводят дополнительный слой хаотизации в виде схемы БД, провоцируя разработчиков софта на внедрение «решений», единственное «описание» которых остаётся в голове у автора;
  6. СУБД требует изрядных вычислительных мощностей и крадёт (а вовсе не повышает, как почему-то многие уверены) производительность.

Я, заметим, не рискну утверждать, что СУБД как сущность вообще никогда не может ни для чего применяться. Тут вопрос в том, кто на ком стоял: если главной целью является база данных как таковая, то есть вот имеется какой-то значительный объём разнородной, но при этом взаимосвязанной информации и стоит задача обеспечить его хранение и в нём поиск, причём никто заранее не знает, какие именно задачи будут решаться на этом массиве информации, какие именно поисковые запросы будут делаться и вот это вот всё, то да, СУБД вполне может оказаться адекватным решением, и даже для работы с ней могут создаваться вспомогательные программки. Это, конечно, не оправдывает существования языка SQL, который в любых его проявлениях представляет собой надругательство над здравым смыслом, но в целом СУБД как вид софта существовать, наверное, всё-таки может — но лишь в случаях, когда либо вообще нет никаких программ кроме неё самой, либо программы делаются для неё, а не она сама поддерживается для работы какой-то программы.

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

Когда же пишется некая программа, предполагающая применение для конкретных задач (а программы иначе, собственно, и не пишутся), и данные возникают исходя из этих задач, а не наоборот, то за саму идею задействования внешней СУБД нужно убивать на месте. Сугубо из санитарных соображений.

★★★★★
--- Ты умеешь готовить курочку в апельсиновом соусе?
--- Когда я работала над одним из многих своих ультранадёжных, сверхзащищённых, меганагруженных проектов, в офисном центре была кафешка и там подавали это блюдо. Так что я, в отличие от абсолютно безразличного мне плебса, имею представление об азиатской кухне!
anonymous
()
Ответ на: комментарий от s-warus

может сетевую игруху на webassembler, или gcompiz нормальный для обучения детей в deb7 был нормальный был мультики схемы учил рисовать, а сейчас повесточка эко-зелёно-голубая скучный стал.

Весьма интересная технология.

Экспромтом.

«Заточить» её в качестве ВМ для обычных программ?

anonymous
()
Ответ на: комментарий от Iron_Bug

основную массу работы выполняют воркеры, а запись и чтение из буферов - это очень быстрые операции. запросы не теряются, вывод не тормозит обработку. медленные запросы не тормозят более быстрые. пропускная способность возрастает за счёт параллельного выполнения самой жирной части - обработки.

Все что ты описываешь это асинхронная модель с независимыми шардами, каждый из которых сидит на своем ядре, поллит / прерывается и занимается приоритизацией выполнения. Так nginx работает, так NVMe диски работают, так low-latency софт по RDMA какому-нибудь работает.

Единственный смысл в межшардовой коммуникации – это когда обработка занимает на три порядка больше, чем само IO (PostgreSQL какой-нибудь, который прежде чем что-то сделать, стадию планирования проходит). Это довольно редкий случай в любой области, которая прописана в твоих компетенциях (сети и быстрая обработка данных).

anonymous
()
Ответ на: комментарий от anonymous

Единственный смысл в межшардовой коммуникации – это когда обработка занимает на три порядка больше, чем само IO (

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

anonymous
()
Ответ на: комментарий от anonymous

Cкорее она занята не отптимизацией прикладных проектов, а эффективностью работы сети.

Я поэтому и написал что это не очень стыкуется с её областью. Когда у тебя RDMA RTT занимает условные 5 us и операция фильтрации ещё 50-300 us, ваще не ясно зачем породжать синхронизацию. Это приведет к резкому росту задержек на p95 без какого-то внятного обоснования зачем.

anonymous
()
Ответ на: комментарий от anonymous

Когда у тебя RDMA RTT занимает условные 5 us и операция фильтрации ещё 50-300 us, ваще не ясно зачем породжать синхронизацию.

Конкретики в её постах нет, так что права она или нет …

anonymous
()
Ответ на: комментарий от anonymous

Конкретики в её постах нет, так что права она или нет …

Ну вот, например, для ходовых мелланоксов (CX6) через свич:

$ taskset -c 2 ib_send_bw -zR -I 0 -s 1024 -p 1234 -d mlx5_1 192.168.1.1
[...]
    #bytes #iterations    t_min[usec]    t_max[usec]  t_typical[usec]    t_avg[usec]    t_stdev[usec]   99% percentile[usec]   99.9% percentile[usec] 
 1024    1000          2.90           3.50         2.96     	      2.96        	0.00   		3.20    		 3.50   

Это мы послали 1 KiB и получили ответ что на той стороне его получили, с p99 3.20 us. Как только здесь появится CAS, на котором все встанут, то мы легко можем получить ещё 5-10 us сверху, в зависимости от количества ядер (чем больше, тем хуже, очевидно).

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

anonymous
()
Ответ на: комментарий от anonymous

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

s-warus ★★★★
()
Ответ на: комментарий от s-warus

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

А где разница? Если кид-хакер-школьник может повесить процесс, он просто будет посылать до тех пор пока у тебя PID не кончатся. Это не то чтобы много запросов, 4M на RHEL.

anonymous
()
Ответ на: комментарий от anonymous

ты идиот: сервис со временем после атаки оживёт без телодвижений человека, это не главное профит от много ядерности, ты другими способами не получишь, это только если генерация настолько дешева что лучше её не обслуживать, весьма редкий случай.

s-warus ★★★★
()
Ответ на: комментарий от s-warus

ты идиот

Какая классная аргументация. Сразу видно что ты очень образованный человек, способный доносить свою позицию аргументированно и без взрывания жопы.

сервис со временем после атаки оживёт без телодвижений человека

Он и без тредов оживет:

mater
 `- worker
 `- worker
 `- worker

master пингует worker’а, если тот не отвечает, его убивают. Учитывая что master thread в любом случае будет, разницы все ещё нет, синхронизация тредов все ещё не нужна.

anonymous
()
Ответ на: комментарий от anonymous

сиди на win95 там всё асинхронно как ты любишь, нормальные люди давно от этого ушли, и почему то другую стратегию используют, есть когда она выигрышна, но все почему то чаще нет, и подозреваю в юзерспейс сетевой стек и прочее втянут сделют их работу дешевле, о ней ещё реже вспоминать будут.

s-warus ★★★★
()
Ответ на: комментарий от s-warus

сиди на win95 там всё асинхронно как ты любишь

Там все синхронно. Все шутки про win95 на этом и строятся.

нормальные люди давно от этого ушли

Какие люди? Воображаемые? Последние лет пятнадцать все только и делают что пытаются сделать ЕЩЁ БОЛЬШЕ ASYNC. Отсюда появился io_uring, который (наконец-то) позволил ещё и файлами работать через асинхронку. Go полностью асинхронный, Rust опционально асинхронный, даже Python почти смог.

anonymous
()
Ответ на: комментарий от anonymous

master пингует worker’а, если тот не отвечает, его убивают. Учитывая что master thread в любом случае будет, разницы все ещё нет, синхронизация тредов все ещё не нужна

в вин95 один процесс весил весь комп, аналогично с гуртовинами-воркерами, и другим потугами (бывают удачные) отойти от много поточности, есть ab, тестируй, проверяй, замеряй всё делатся весьма просто.

s-warus ★★★★
()
Ответ на: комментарий от s-warus

в вин95 один процесс весил весь комп, аналогично с гуртовинами-воркерами, и другим потугами (бывают удачные) отойти от много поточности, есть ab, тестируй, проверяй, замеряй всё делатся весьма просто.

Ты путаешь SMP и тредовую модель работы пользовательского приложения. Не знаю зачем. Возможно ты тупой.

anonymous
()
Ответ на: комментарий от anonymous

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

Iron_Bug ★★★★★
()
Ответ на: комментарий от Iron_Bug

отец только иногда спрашивал, сколько мне лет исполнилось и в каком я классе. в остальном родители практически не вмешивались в мою жизнь и занятия.

Learn from her mistakes kids. Не пошел в терапию вовремя — превратился в Багиню.

anonymous
()
Ответ на: комментарий от Iron_Bug

… вмешивались в мою жизнь и занятия. и это было правильно, это развивало самостоятельность.

Они любили нас такими какими мы есть …
Это врождённое чувство любви, но даже его некоторые умудряются потерять.

anonymous
()
Ответ на: комментарий от bugfixer

ты деньгами пользуешься? вот. это я их «печатаю». точнее, софт, который я написала для Гознака и который там крутится и всё это печатает, проверяет, режет и упаковывает. всё работает стабильно и уже много лет. много лет весь Сбербанк по всей стране работал на сетевом софте, который писала и дорабатывала я. да, и переписывалась с админами по всей стране, во всех ЦОДах, всё это внедряла, отлаживала и прочее. что там у вас за «mission critical» в вашем убогом воображении - я хз, и неинтересно вообще. но до сих пор работают самые разные проекты: от LTE у местного провайдера, до dns для миллионов юзеров, всяких там роутеров для провайдеров в разных странах, девайсов для ИВЛ, обрудования для сталелитейных заводов и прочего. и никто не жужжит. если ты когда-нибудь дотянешь до моего уровня - возьми пряник с полки.

а если вы не можете освоить многопоточность - так и скажите. а не пытайтесь мелко срать тут на какие-то непонятные темы. я ещё понимаю, когда люди приводят аргументы. пусть плохонькие, но аргументы. но когда начинается вот такое - это просто тупость.

Iron_Bug ★★★★★
()
Последнее исправление: Iron_Bug (всего исправлений: 1)
Ответ на: комментарий от Iron_Bug

а если вы не можете освоить многопоточность

Я питонист, у нас с многопоточностью - фигово если не I/O не моя компетенция! Мне бы узнать сколько threads на процессор оптимально?

но я анонимус и меня всегда затирают(((

anonymous
()
Ответ на: комментарий от liksys

Не, добро сделал студент. Преподаватель же вынес из этого урок. А вот справедливого обращения не проявил.

kaldeon
()
Последнее исправление: kaldeon (всего исправлений: 2)
Ответ на: комментарий от Iron_Bug

… отец только иногда спрашивал, сколько мне лет исполнилось

Один семестр за время учёбы в институте не получал.
Дело было так.
Политэкономию я не любил, на семинары не ходил, задания писал таким почерком, что его трудно было прочитать, …
Преподаватель мне отомстил так.
На госэкзамене мне поставил двойку, когда я перездавал поставил четвёрку потому, что всё правильно ответил и на дополнительные
вопросы также.
Спросил его - «Ведь и тогда вам отвечал не хуже чем ныне. Почему поставили мне двойку?».
Он честно и ответил почему.

Отец рассказывал, что он на политэкономии в задании написал какой-то рассказ Пушкина.
Говорил, что чуть с партии не исключили …

anonymous
()
Ответ на: комментарий от anonymous

когда обработка занимает на три порядка больше, чем само IO

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

люди ожидают, что «оно как-то само» распараллелится, если они применят распиаренные магические готовые решения. но нет, это так тоже не работает. надо шевелить мозгами. без работы программиста софт сам по себе не образуется каким-то чудесным образом. тем более софт, тщательно оптимизированный и заточенный на работу с большими нагрузками.

Iron_Bug ★★★★★
()
Ответ на: комментарий от Iron_Bug

не обязательно прямо на «три порядка», но примерно так оно обычно и есть в обработке практически любых данных на сетевых серверах

Ну, нет. NGINX отличный тому пример – там независимые рабочие процессы.

в промышленной автоматике

Опять же, нет. Там обычно конечный автомат, который чрезвычайно прост.

телекоме

Опять мимо, там задержки ещё критичнее чем в обычном Интернете.

обработке медиапотоков

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

Серьезно, ты вообще не шаришь о чем говоришь.

anonymous
()
Ответ на: комментарий от anonymous

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

но я столкнулась с неадекватным преподавателем как-то раз. вместо нашего замечательного преподавателя физики в лицее временно поставили какого-то другого, тупого и упёртого, если не сказать «упоротого». я ему чем-то не понравилась (видимо, умные и независимые ученики ему не нравились) и он меня донимал персонально: специально задавал вопросы, на которые нет единого ответа и требовал отвечать однозначно, а потом ставил даже не «двойки», а «минус единицы». и он этим издевательством занимался на постоянной основе, поэтому у меня накопилось 32 «минус единицы» за семестр. и вот он мне как-то ехидно заявил, что если я на республиканской олимпиаде возьму медаль, то он все эти «минус единицы» лично исправит на отлично. и я взяла медаль на республиканской олимпиаде. он краснел, как рак, пыжился, пыхтел и сопел и лично, в моём присутствии, сидел и исправлял в журнале свои дурацкие «минус единицы». а я стояла и считала вслух, от одного до 32. после этого его увезли в больницу с каким-то приступом типа инсульта, а я спокойно училась дальше. нам вернули нашего нормального учителя и всё стало хорошо.

Iron_Bug ★★★★★
()
Ответ на: комментарий от Iron_Bug

это ты не шаришь и пишешь чушь про какое-то «обычно», с которым ты даже никогда не работал. впрочем, с онанимусами спорить бессмысленно.

Посрами анонимуса, приведи пруфы. Hint: ты не можешь.

anonymous
()
Ответ на: комментарий от Iron_Bug

… после этого его увезли в больницу с каким-то приступом типа инсульта, а я спокойно училась дальше. нам вернули нашего нормального учителя и всё стало хорошо.

У меня на работе аналогичное было.
Зам.нач вышестоящей организации мне по телефону весьма нагрубил на ровно месте.
Рассказал об этому своему начальнику, …
Вообщем через какое-то время этот зам позвонил и извинился.
Где-то через пол года от инсульта умер (а ведь молодой был).

К чему об этом рассказал?
Болезни наши бывают от нашей нервозности, …
Извинити за то, что далее скажу, так как вы считаете, что Бога нет.
Так как я верующий, то скажу прямо, болезни обычно бывают у нас за наши грехи (так это не моё частное мнение).

anonymous
()
Ответ на: комментарий от anonymous

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

Iron_Bug ★★★★★
()
Ответ на: комментарий от anonymous

запроси исходники у Гознака. если тебя служба охраны допустит (а у них своя служба охраны, которая не подчиняется ни одному из других ведомств) - можешь смотреть, сколько влезет. но подозреваю, что тебя пошлют нахрен, а может даже решат, что ты какой-то шпиён и пытаешься выкрасть важные сведения. NDA везде работает примерно одинаково. но в случае с Гознаком это ещё и гостайна, в частности. конечно, для разработчика разницы особой нет, но у меня никогда не было привычки что-либо куда-либо сливать. я всегда забочусь о безопасности любых данных: личных, клиентских или корпоративных. и никакую информацию наружу не сливаю, даже если она, казалось бы, «несекретная». это дело принципа и элементарное уважение к людям.

Iron_Bug ★★★★★
()
Ответ на: комментарий от Iron_Bug

запроси исходники у Гознака. если тебя служба охраны допустит (а у них своя служба охраны, которая не подчиняется ни одному из других ведомств) - можешь смотреть, сколько влезет. но подозреваю, что тебя пошлют нахрен, а может даже решат, что ты какой-то шпиён и пытаешься выкрасть важные сведения. NDA везде работает примерно одинаково. но в случае с Гознаком это ещё и гостайна, в частности. конечно, для разработчика разницы особой нет, но у меня никогда не было привычки что-либо куда-либо сливать. я всегда забочусь о безопасности любых данных: личных, клиентских или корпоративных. и никакую информацию наружу не сливаю, даже если она, казалось бы, «несекретная». это дело принципа и элементарное уважение к людям.

Мне нравятся твои отмазки в духе «ты ее не знаешь, она живет в другом городе и учится в закрытой школе без Интернета».

anonymous
()
Ответ на: комментарий от anonymous

У меня на работе аналогичное было.

А вот ещё вспомнил.
Как-то мне пришлось выполнить работу по заказу отдела сбыта.
В нём одни женщины были (человек пять их было).
Среди них находиться было всё равно как в аду побывать (злоба и развращённость).
Через полтора месяца под новый год их всех уволили.

anonymous
()
Ответ на: комментарий от anonymous

Среди них находиться было всё равно как в аду побывать (злоба и развращённость).

Через полтора месяца под новый год их всех уволили.

Эрик Картман мой лучший друг и он совсем не толстый. Весь этот тред пропитан невыдуманными историями, о которых невозможно молчать.

anonymous
()
Ответ на: комментарий от anonymous

нравятся или не нравятся - дело твоё. меня это не беспокоит.

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

Iron_Bug ★★★★★
()
Ответ на: комментарий от Iron_Bug

иногда даже документация по некоторым протоколам является закрытой, с доступом только конкретным компаниям

Как это связано с тем что у тебя кода нет? Бумаги от INCITS мы все покупали, то же мне новость.

anonymous
()
Ответ на: комментарий от Iron_Bug

У меня личный продакшн. На единоличной планерке-совещании принято решение)) Да и база уже вся на питоне.. да и человеко/часы не эфимерная вещь..

Однако, как я понял, параллельное вычисление немного больше(абстрактней) чем выбор языка программирования?

anonymous
()
Ответ на: комментарий от Iron_Bug

отец только иногда спрашивал, сколько мне лет исполнилось и в каком я классе. в остальном родители практически не вмешивались в мою жизнь и занятия. и это было правильно, это развивало самостоятельность.

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

anonymous
()
Ответ на: комментарий от anonymous

при чём тут перегибы? человек с детства должен развивать самостоятельность и это надо поддерживать. чтобы выработалось критическое мышление, чтобы была независимость принятия решений и умение вообще решать за себя, нужно этому учиться с детства. а если детей допекают (а некоторые это делают вообще до 30 лет), то из них потом вырастают абсолютно несамостоятельные незрелые личности, которые просто не приспособлены к жизни.

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

Iron_Bug ★★★★★
()
Ответ на: комментарий от Iron_Bug

при чём тут перегибы? человек с детства должен развивать самостоятельность и это надо поддерживать. чтобы выработалось критическое мышление, чтобы была независимость принятия решений и умение вообще решать за себя, нужно этому учиться с детства. а если детей допекают (а некоторые это делают вообще до 30 лет), то из них потом вырастают абсолютно несамостоятельные незрелые личности, которые просто не приспособлены к жизни.

Так ты и есть такая личность. Суть(с) любой жизни в том чтобы оставить хорошее потомство, и ты проиграла.

anonymous
()
Ответ на: комментарий от Iron_Bug

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

anonymous
()