|
|
|
Плюсы против голого Си, холивар #9
|
|||
|---|---|---|---|
|
#18+
(начало здесь ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 22:32 |
|
||
|
Плюсы против голого Си, холивар #9
|
|||
|---|---|---|---|
|
#18+
iv_an_ruПроясним ситуацОткрой для себя стандартные POSIX getcontext, setcontext...тогда уж просто pthreads и заюзать, вспоминая, что "The obsolescent functions getcontext(), makecontext(), and swapcontext() can be replaced using POSIX threads functions." :) Да, конечно проще, заодно и смириться, что для 1000 keep-alive коннектов нам придется зарезервировать примерно 32 гигабайта памяти чисто под стек (одна сессия - один тред, 32 метра стека на тред). Ура ура. iv_an_ruМешает ровно один грустный факт --- вы этим все реплицированные данные нод размножили в 16 экземплярах. А кэш проца вы не размножили. Какая-то откровенная ерунда. А что, при pthreads кеш процессоров размножается? Да неужели? iv_an_ruНу и ещё куча мелочей, вроде возможности зарезервировать гигов пять на ноду под тяжёлые буферы, пока это 5*4=20 гигов на ящик, и невозможность --- если это 16*5*4 гигов на ящик. Я сказал - mmap можно привязать к конкретной ноде, в чем проблема? Ты не знаешь что такое mmap и евойный map_policy? iv_an_ruПроясним ситуацАх да, сервер баз данных тоже свой, из отряда доработанного dbmМолодец, возьми с полки пирожок. Но есть ньюанс --- за 30 с хвостиком последних лет аппетиты приложений слегка подросли, и в возможности *дэбээм не влезают никак. соответственно и инструментарий на серверной стороне слегка поменялся. Расскажи это чувакам из redis и facebook (которые юзают mysql исключительно как key-value стораж), заодно и услышишь от них авторитетное мнение о твоих .... ээээ.... экспертных познаниях об аппетитах приложений. Детский сад, право. Ты походу вообще выпал из струи прогресса и современных highload течений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 23:17 |
|
||
|
Плюсы против голого Си, холивар #9
|
|||
|---|---|---|---|
|
#18+
iv_an_ruМешает ровно один грустный факт --- вы этим все реплицированные данные нод размножили в 16 экземплярах. А кэш проца вы не размножили. И поясним отдельно - замапленный файл, через mmap, во-первых не размножается, а как раз разделяется между процессами - учи букварь, это раз. Два - шарды на то и шарды, чтобы иметь разделение по некому хеш ключу, говоря проще, каждая шарда хранит строго свои наборы данных, мапит свои файлы, и обслуживает строго свои группы клиентов, никаких конкурентных доступов там и близко не предвидится. Что-то у тебя совсем плохо с основами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 23:24 |
|
||
|
Плюсы против голого Си, холивар #9
|
|||
|---|---|---|---|
|
#18+
Мы мешаем С и С++. С++ там, где нужна типизация, динамические массивы итд. С в остальных местах. Потоки не используем, вместо них процессы. Обмен данными через mmap. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 23:51 |
|
||
|
Плюсы против голого Си, холивар #9
|
|||
|---|---|---|---|
|
#18+
Проясним ситуацiv_an_ruпропущено... тогда уж просто pthreads и заюзать, вспоминая, что "The obsolescent functions getcontext(), makecontext(), and swapcontext() can be replaced using POSIX threads functions." :) Да, конечно проще, заодно и смириться, что для 1000 keep-alive коннектов нам придется зарезервировать примерно 32 гигабайта памяти чисто под стек (одна сессия - один тред, 32 метра стека на тред).А зачем? Мы 50-100 килобайт на нить даём. Для исключительно тяжёлых работ, вроде обработки гигабайтных XML-ек или некоторых заведомо кривых и больших хранимок --- 150. Проясним ситуацiv_an_ruМешает ровно один грустный факт --- вы этим все реплицированные данные нод размножили в 16 экземплярах. А кэш проца вы не размножили. Какая-то откровенная ерунда. А что, при pthreads кеш процессоров размножается? Да неужели?Да нет, не размножается, просто общие данные нитей валяются в единственном экземпляре. Проясним ситуацiv_an_ruНу и ещё куча мелочей, вроде возможности зарезервировать гигов пять на ноду под тяжёлые буферы, пока это 5*4=20 гигов на ящик, и невозможность --- если это 16*5*4 гигов на ящик.Я сказал - mmap можно привязать к конкретной ноде, в чем проблема? Ты не знаешь что такое mmap и евойный map_policy?А при чём тут mmap? Вот надо мне на коротенькую долю секунды здоровенный буфер под джойн в памяти. У меня что, два процесса должны договариваться, кто сейчас может заюзать общие пять гигов, а кто будет ждать? И это всё через IPC? Да на кой мне это надо, такие лишние тормоза? Проясним ситуацДва - шарды на то и шарды, чтобы иметь разделение по некому хеш ключу, говоря проще, каждая шарда хранит строго свои наборы данных, мапит свои файлы, и обслуживает строго свои группы клиентов, никаких конкурентных доступов там и близко не предвидится.Схему БД тоже будем шардить? Хранимки? Юзеров с их полномочиями? Все конфиги и всю топологию кластера? Этого добра может быть дофигища. У меня прям сейчас в одном примере приходится держать в памяти 50 млн только access control list-ов, они жаты пережаты, а все равно гиг на ноду, одно только их активное подмножество изрядно портит настроение кэшу, а если их на 12 помножить, то кластер будет занят не работой, а проверкой полномочий. Проясним ситуацРасскажи это чувакам из redis и facebook (которые юзают mysql исключительно как key-value стораж), заодно и услышишь от них авторитетное мнение о твоих .... ээээ.... экспертных познаниях об аппетитах приложений.Вы лучше расскажите про key-value каким-нибудь генетикам или картографам, у которых кодогенераторы запросто рисуют SQL-запросы длиной под 200 килобайт. Предложите им развернуть эти запросы в беготню по хэштаблицам --- генетики со знанием всей специальной терминологии пройдутся по всем вашим ни в чём не повинным предкам. Я понимаю ваше желание ограничиться простейшими инструментами, но так уж жизнь устроена, что надо выбирать, когда стоит юзать простейший, а когда и посложнее. Проясним ситуацТы походу вообще выпал из струи прогресса и современных highload течений.Странно, а чем же я тогда занимаюсь-то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 23:55 |
|
||
|
Плюсы против голого Си, холивар #9
|
|||
|---|---|---|---|
|
#18+
vromanovМы мешаем С и С++. С++ там, где нужна типизация, динамические массивы итд. С в остальных местах.Ну так и разумно делаете. Оно и надо без фанатизма в какую-то одну сторону. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 23:57 |
|
||
|
Плюсы против голого Си, холивар #9
|
|||
|---|---|---|---|
|
#18+
Как-то так (строки кода): sh 15620 sql 1356 cpp 36988 ansic 37846 sh - это кодогенатор на баше, который генерит еще 150 тысяч строк кода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2012, 00:02 |
|
||
|
Плюсы против голого Си, холивар #9
|
|||
|---|---|---|---|
|
#18+
iv_an_ruА при чём тут mmap? Вот надо мне на коротенькую долю секунды здоровенный буфер под джойн в памяти. У меня что, два процесса должны договариваться, кто сейчас может заюзать общие пять гигов, а кто будет ждать? И это всё через IPC? Да на кой мне это надо, такие лишние тормоза? То что ты не знаешь, что такое mmap я уже понял, то что ты так и не понял, что процессам НЕ НУЖНО договариваться, потому что данные разделены по ключу - я тоже понял. Ну что, ты не читаешь или не понимаешь то, что тебе пишут - тоже понятно, ну что с тебя взять? iv_an_ruСхему БД тоже будем шардить? Хранимки? Юзеров с их полномочиями? Все конфиги и всю топологию кластера? Этого добра может быть дофигища. Все статичные данных загружаются стартовым процессом сразу в память, помечаются как R/O, а после fork эти страницы памяти разделяются между всеми порожденными копиями основного процесса, разделяются, а не копируются - учи основы. Хранимки? Ок, если считать под хранимками обычный C код, который обрабатывает dbm базу данных - то код "хранимок" также хранится в одной физической области памяти, которая R/O и шарится между всеми шардами - опять учи основы. iv_an_ru У меня прям сейчас в одном примере приходится держать в памяти 50 млн только access control list-ов, они жаты пережаты, а все равно гиг на ноду, одно только их активное подмножество изрядно портит настроение кэшу, а если их на 12 помножить, то кластер будет занят не работой, а проверкой полномочий. Еще раз, ты или прикидываешься идиотом, или я даже не знаю, как тебя еще называть 50 млн acl в случае шардинга на 16 нот разделяются на секции по 50/16, хеш ключом, т.е. на одной шарде хранится по 3.2 миллиона, а не по 50. Иди почитай еще раз статью про шардинг, хватит уже тупить. iv_an_ruСтранно, а чем же я тогда занимаюсь-то? Похоже какими-то страшно кривыми провинциальными глупостями. Хотя оно у тебя все как-то работает, и ладушки, но ничего интересного ты пока даже близко не рассказал, разве про типовые заблуждения из древних тупиковых архитектур понарассказывал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2012, 00:18 |
|
||
|
Плюсы против голого Си, холивар #9
|
|||
|---|---|---|---|
|
#18+
vromanovМы мешаем С и С++. С++ там, где нужна типизация, динамические массивы итд. С в остальных местах. Потоки не используем, вместо них процессы. Обмен данными через mmap. В C есть типизация - структуры.Gприсваивать структуры разных типов запрещено, при переприсваивании указателей несовместимых типов - компилятор генерятся warnings как минимум. В общем по C++ незачет. Динамические массивы на C есть с 70х годов - изучите уже realloc. Незачет в квадрате. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2012, 00:26 |
|
||
|
Плюсы против голого Си, холивар #9
|
|||
|---|---|---|---|
|
#18+
Проясним ситуацiv_an_ruА при чём тут mmap? Вот надо мне на коротенькую долю секунды здоровенный буфер под джойн в памяти. У меня что, два процесса должны договариваться, кто сейчас может заюзать общие пять гигов, а кто будет ждать? И это всё через IPC? Да на кой мне это надо, такие лишние тормоза? То что ты не знаешь, что такое mmap я уже понял, то что ты так и не понял, что процессам НЕ НУЖНО договариваться, потому что данные разделены по ключу - я тоже понял. Ну что, ты не читаешь или не понимаешь то, что тебе пишут - тоже понятно, ну что с тебя взять?Ещё раз. _Не_все_ данные разумно пилить между нодами. _Не_все_ задачи сводятся к толпе юзеров, которые флудят на фейсбуке, никак кроме спама друг с другом не связаны и шардятся как угодно. Проясним ситуацiv_an_ruСхему БД тоже будем шардить? Хранимки? Юзеров с их полномочиями? Все конфиги и всю топологию кластера? Этого добра может быть дофигища. Все статичные данных загружаются стартовым процессом сразу в память, помечаются как R/O, а после fork эти страницы памяти разделяются между всеми порожденными копиями основного процесса, разделяются, а не копируются - учи основы. Хранимки? Ок, если считать под хранимками обычный C код, который обрабатывает dbm базу данных - то код "хранимок" также хранится в одной физической области памяти, которая R/O и шарится между всеми шардами - опять учи основы.Увы, в жизни это не статические данные, да и хранимки не на сях пишутся и не раз навсегда. Проясним ситуацiv_an_ru У меня прям сейчас в одном примере приходится держать в памяти 50 млн только access control list-ов, они жаты пережаты, а все равно гиг на ноду, одно только их активное подмножество изрядно портит настроение кэшу, а если их на 12 помножить, то кластер будет занят не работой, а проверкой полномочий. Еще раз, ты или прикидываешься идиотом, или я даже не знаю, как тебя еще называть 50 млн acl в случае шардинга на 16 нот разделяются на секции по 50/16, хеш ключом, т.е. на одной шарде хранится по 3.2 миллиона, а не по 50. Иди почитай еще раз статью про шардинг, хватит уже тупить.А что, уже придумали шардинг по зависимым полям, не только по ключам? Или каждую выборку из защищённой колонки таблицы надо будет снабдить лишним распределённым джойном ко всем нодам, в которых лежат секции ACL? Кто, спрашивается, прикидывается здесь идиотом? Проясним ситуацiv_an_ruСтранно, а чем же я тогда занимаюсь-то? Похоже какими-то страшно кривыми провинциальными глупостями. Хотя оно у тебя все как-то работает, и ладушки, но ничего интересного ты пока даже близко не рассказал, разве про типовые заблуждения из древних тупиковых архитектур понарассказывал.[/quot]Ну древние. Ну тупиковые. Правда, вы начали с того, что поставили mysql в пример, а мы его почему-то регулярно и по скорости делаем и тем более по функционалу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2012, 00:36 |
|
||
|
Плюсы против голого Си, холивар #9
|
|||
|---|---|---|---|
|
#18+
iv_an_ruЕщё раз. _Не_все_ данные разумно пилить между нодами. _Не_все_ задачи сводятся к толпе юзеров, которые флудят на фейсбуке, никак кроме спама друг с другом не связаны и шардятся как угодно. Приведи пример задачи. Пока ты привел acl - там как раз тупейшее пиление именно по юзерам. iv_an_ruУвы, в жизни это не статические данные, да и хранимки не на сях пишутся и не раз навсегда. Кофигурация кластера - это именно статические данные. Если вы не умеете делать кластеры и писать хранимки на сях... Ну это лишь показывает ваш уровень "развития", гордиться нечем. iv_an_ruА что, уже придумали шардинг по зависимым полям, не только по ключам? Или каждую выборку из защищённой колонки таблицы надо будет снабдить лишним распределённым джойном ко всем нодам, в которых лежат секции ACL? Кто, спрашивается, прикидывается здесь идиотом? Господи, что за тупость? Какие еще нахрен джойны? Что с чем джойнить? ref_id в name для справочника на SQL? Вы там реально мохом позарастали. Откройте для себя уже денормализацию, право. iv_an_ruНу древние. Ну тупиковые. Правда, вы начали с того, что поставили mysql в пример, Это не пример, а лишь образец проекта на C. С вкраплениями гамнокода на C++, как выяснилось довольно быстро. Впрочем, я mysql не пользуюсь, так что мне на это все до лампочки. iv_an_ru а мы его почему-то регулярно и по скорости делаем и тем более по функционалу. Кто это мы? Что вы там делаете? У меня модифицированный dbm отрабатывает 450к записей в секунду на запись в одной ноде и примерно 800к на чтение, и? mysql на этой задаче барахтался с показателем 3к и 7к, тоже мне невидаль. Только идиот сейчас станет использовать SQL подобное для нового проекта для highload ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2012, 00:46 |
|
||
|
Плюсы против голого Си, холивар #9
|
|||
|---|---|---|---|
|
#18+
Проясним ситуацВ C есть типизация - структуры.Gприсваивать структуры разных типов запрещено, при переприсваивании указателей несовместимых типов - компилятор генерятся warnings как минимум. В общем по C++ незачет. Динамические массивы на C есть с 70х годов - изучите уже realloc. Незачет в квадрате. В с нет нормальной типизации для перечислений, а нам это важно. реалок это не динамический массив, это всего лишь возможность изменить рамзер выделенного буффера. Чтобы это стало ТИПИЗОВАННЫМ динамическим массивом надо очень много навертеть. Пока с этой работой лучше справлется vector<>. У него етсть свои недостатки, но для нас они не кртичны. В планах есть избавиться от них, но уж точно не перйти на realloc ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2012, 00:50 |
|
||
|
Плюсы против голого Си, холивар #9
|
|||
|---|---|---|---|
|
#18+
vromanovПроясним ситуацВ C есть типизация - структуры.Gприсваивать структуры разных типов запрещено, при переприсваивании указателей несовместимых типов - компилятор генерятся warnings как минимум. В общем по C++ незачет. Динамические массивы на C есть с 70х годов - изучите уже realloc. Незачет в квадрате. В с нет нормальной типизации для перечислений, а нам это важно. Скажем так - вам хочется верить в то, что вам это важно. vromanovреалок это не динамический массив, это всего лишь возможность изменить рамзер выделенного буффера. Чтобы это стало ТИПИЗОВАННЫМ динамическим массивом надо очень много навертеть. Ага, очень, очень много myarr = (*myarr_t) realloc(myarr, ....) НУ ОЧЕНЬ, ОЧЕНЬ МНОГО vromanov Пока с этой работой лучше справлется vector<>. У него етсть свои недостатки, но для нас они не кртичны. В планах есть избавиться от них, но уж точно не перйти на realloc Смешно и печально. С++ мозга такое C++. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2012, 00:56 |
|
||
|
Плюсы против голого Си, холивар #9
|
|||
|---|---|---|---|
|
#18+
myarr = (*myarr_t) realloc(myarr, ....) НУ ОЧЕНЬ, ОЧЕНЬ МНОГО Детский сад.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2012, 00:59 |
|
||
|
Плюсы против голого Си, холивар #9
|
|||
|---|---|---|---|
|
#18+
vromanovmyarr = (*myarr_t) realloc(myarr, ....) НУ ОЧЕНЬ, ОЧЕНЬ МНОГО Детский сад.. Это все, что ты способен сказать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2012, 01:02 |
|
||
|
Плюсы против голого Си, холивар #9
|
|||
|---|---|---|---|
|
#18+
Проясним ситуацiv_an_ruЕщё раз. _Не_все_ данные разумно пилить между нодами. _Не_все_ задачи сводятся к толпе юзеров, которые флудят на фейсбуке, никак кроме спама друг с другом не связаны и шардятся как угодно. Приведи пример задачи. Пока ты привел acl - там как раз тупейшее пиление именно по юзерам.Не, в теории-то можно и распилить. Если не интересует скорость в результате. Потому что в той задаче все остальные данные никаким боком _не_ шардятся по юзерам. Проясним ситуацiv_an_ruУвы, в жизни это не статические данные, да и хранимки не на сях пишутся и не раз навсегда.Кофигурация кластера - это именно статические данные.За аптайм в кластере несколько нод успеют сдохнуть, все машины в очередь запросто сходят на апгрейд, а часто ещё и количество машин удвоится. Про схему и хранимки даже не заикаюсь. Ну очень статические данные. Проясним ситуацЕсли вы не умеете делать кластеры и писать хранимки на сях...Сколько будет стоить написать на сях эквивалент одного хотя бы 20-килобайтного скуля? А хранимки с десятком таких запросов? И не устареет ли эта хранимка за время её написания? А если это ad-hoc запрос, то не помрёт ли пациент, пока вы напишете (и отладите!) запрос, который из всех медкарт отберёт случаи с наиболее похожими томограммами черепушки и выдаст чем лечили и что получилось? Проясним ситуацВы там реально мохом позарастали. Откройте для себя уже денормализацию, право.Вы не поверите, мы в курсе про денормализацию. Только, опять таки, знаем, когда и где её надо применять, а когда --- нет. Проясним ситуацЧто вы там делаете?Ну я ж не аноним, сами можете догадаться. Вы же гордились, что читать умеете. Проясним ситуацУ меня модифицированный dbm отрабатывает 450к записей в секунду на запись в одной ноде и примерно 800к на чтение, и?Ну и сколько кверимиксов в час он выдаст на BSBM? А сколько покажет на TPC-H? Нисколько? Тогда зачем устраивать пузомерку c RDBMS? Проясним ситуацТолько идиот сейчас станет использовать SQL подобное для нового проекта для highloadДлинноват получается список "идиотов". Эти "идиоты" упорно не хотят ходить строем, каждый из низ выбирает ровно то, что ему подходит больше. А иногда --- о ужас! --- они используют сразу несколько разных инструментов для разных подзадач. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2012, 01:15 |
|
||
|
Плюсы против голого Си, холивар #9
|
|||
|---|---|---|---|
|
#18+
iv_an_ruПроясним ситуацпропущено... Приведи пример задачи. Пока ты привел acl - там как раз тупейшее пиление именно по юзерам.Не, в теории-то можно и распилить. Если не интересует скорость в результате. Потому что в той задаче все остальные данные никаким боком _не_ шардятся по юзерам. Приведи пример данных, которые не шарятся. Вопрос #2 - что мешает их, эти данные, расшрить через mmap (MAP_SHARED), просто тупо загрузив из базы данных в разделяемую память? iv_an_ruЗа аптайм в кластере несколько нод успеют сдохнуть, все машины в очередь запросто сходят на апгрейд, а часто ещё и количество машин удвоится. Про схему и хранимки даже не заикаюсь. Ну очень статические данные. Ты или в очередной раз решил продемонстрить свое "слышал звон", или... даже уже не смешно. Откройте для себя carp/ucarp/VRRP или HSRP. Конфигурация кластера - статична, и предопределена заранее. Если падает нода - резервная автоматом встает заместо нее, пока блейд меняют. Плюс ноды заранее создаются прореженными, фактически один шард обслуживает несколько IPников, при перебалансировке - просто шарда сплиттится автоматом (данные предварительно копируются на новую ноду). Вот уже позорище, ёмое. Динамическая конфигурация кластера - это пять. В фортунки навечно! архЕткторы блин. iv_an_ruПроясним ситуацЕсли вы не умеете делать кластеры и писать хранимки на сях...Сколько будет стоить написать на сях эквивалент одного хотя бы 20-килобайтного скуля? А хранимки с десятком таких запросов? И не устареет ли эта хранимка за время её написания? А если это ad-hoc запрос, то не помрёт ли пациент, пока вы напишете (и отладите!) запрос, который из всех медкарт отберёт случаи с наиболее похожими томограммами черепушки и выдаст чем лечили и что получилось? Еще раз - не умеете делать высоконагруженные базы данных, пишете хранимки на SQL - гордиться нечем. Стыд и срам по перфомансу и не только. iv_an_ruПроясним ситуацВы там реально мохом позарастали. Откройте для себя уже денормализацию, право.Вы не поверите, мы в курсе про денормализацию. Только, опять таки, знаем, когда и где её надо применять, а когда --- нет. Судя по джойнам, которые упоминаются уже пятый раз - вы там походу НИХРЕНА не знаете. А если и знаете - то уж точно применять знание не умеете. iv_an_ruНу и сколько кверимиксов в час он выдаст на BSBM? А сколько покажет на TPC-H? Нисколько? Тогда зачем устраивать пузомерку c RDBMS? Мне откровенно плевать на TPC-H. Я только знаю, что вместо 200 серверов на mysql у меня работает всего два, остальное мне - глубоко до лампочки. iv_an_ruДлинноват получается список "идиотов". Эти "идиоты" упорно не хотят ходить строем, каждый из низ выбирает ровно то, что ему подходит больше. А иногда --- о ужас! --- они используют сразу несколько разных инструментов для разных подзадач. 95% населения - идиоты. Это ни для кого не секрет. ---- Чувак, ты реально утомил. Оригинальные мысли у тебя будут или нет? Те глупости, что ты "вещаешь" - мы прошли уже лет пять назад. Расскажи хоть что-то новое, а? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2012, 01:37 |
|
||
|
Плюсы против голого Си, холивар #9
|
|||
|---|---|---|---|
|
#18+
Это все, что ты способен сказать? Попробую объяснить на примере. Есть приложение. В нем используются ipv4 ip адреса. Они хранятся в базе, выодтся на печать, получаются по сети. Есть два варинта представления IP - сетевое и хостовое. Например 16.17.18.19 может быть закодирован как 0x10111213 или как 0x13121110. Есть функции типа uint32_t get_some_network_ip() и void print_host_ip(uint32_t ip). Задача сделать так,чтобы не получалось скомпилировать print_host_ip(get_some_network_ip()); И при этом не было мучительно больно писать такой код. К сожалеию сделать typedef uint32_t host_ip_t; typedef uint32_t net_ip_t; не помогает. Т.к. типы host_ip_t и net_ip_t будут соместимы. Можно обернуть в структуры.. Но это будет через жопу. Есть другие решения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2012, 01:38 |
|
||
|
Плюсы против голого Си, холивар #9
|
|||
|---|---|---|---|
|
#18+
Мне вот искренне интересно, с какого перепугу профессионал будет строчить столько буквов в каких-то там форумах ради убеждения себя в своем профессионализме? Или есть другие цели всего этого детсада? У меня, к примеру, предел в 3-4 содержательных поста в адрес троллей в сутки. Дальше уже времени жалко. А тут прям пишет и пишет не покладая рук. Неужели настолько сомневается в себе? Это ж печаль и повод обратиться к психологу. Чувак, ты реально утомил. Оригинальные мысли у тебя будут или нет? (с) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2012, 01:49 |
|
||
|
Плюсы против голого Си, холивар #9
|
|||
|---|---|---|---|
|
#18+
vromanovне помогает. Т.к. типы host_ip_t и net_ip_t будут соместимы. Можно обернуть в структуры.. Но это будет через жопу. Есть другие решения? Т.е. через классы и темплейты - это не через жопу, а через структуры - через жопу? Извини, я не настолько спец по жопам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2012, 01:51 |
|
||
|
Плюсы против голого Си, холивар #9
|
|||
|---|---|---|---|
|
#18+
Edd.DragonМне вот искренне интересно, с какого перепугу профессионал будет строчить столько буквов в каких-то там форумах ради убеждения себя в своем профессионализме? Или есть другие цели всего этого детсада? Это просто верификация подходов на обычных смертных. Вернее, в данном случае - оценка их реакции, когда вместо 200 серверов им предложат технологию, которая позволит оставить всего 2, правда придется прочитать мануал на 50 листиков. Пока результаты печальны - простые смертные настолько зашорены и зашуганы, что починить им разум просто так не получится. Edd.DragonУ меня, к примеру, предел в 3-4 содержательных поста в адрес троллей в сутки. Дальше уже времени жалко. У тебя вообще нет ни одного хоть как-то осмысленного поста. Ты лишь генеришь бессмысленный и никому нафиг не нужный информационный шум. Edd.DragonА тут прям пишет и пишет не покладая рук. Неужели настолько сомневается в себе? Это ж печаль и повод обратиться к психологу. Обратись сам, заодно выяснишь - на кой хрен ты постаешь тут на скуль свои нафиг никому не нужные "мысли." Edd.DragonЧувак, ты реально утомил. Оригинальные мысли у тебя будут или нет? (с) У меня все мысли - оригинальные. Это у тебя просто разум настолько незрел, для тебя все это это лишь "блаблабла". Так не для тебя пишется, любимого. Иди лучше телик посмотри, под пивас. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2012, 01:56 |
|
||
|
Плюсы против голого Си, холивар #9
|
|||
|---|---|---|---|
|
#18+
Проясним ситуацiv_an_ruпропущено... Не, в теории-то можно и распилить. Если не интересует скорость в результате. Потому что в той задаче все остальные данные никаким боком _не_ шардятся по юзерам. Приведи пример данных, которые не шарятся. Вопрос #2 - что мешает их, эти данные, расшрить через mmap (MAP_SHARED), просто тупо загрузив из базы данных в разделяемую память?Потому что все они в память тупо не влезут, а надеяться на то, что ОС вслепую, не зная специфики приложения, исхитрится правильно спланировать вытеснение дисковых буферов на несколько физических томов (и закачку нужных с тех же томов) --- очень наивно. Проясним ситуацiv_an_ruЗа аптайм в кластере несколько нод успеют сдохнуть, все машины в очередь запросто сходят на апгрейд, а часто ещё и количество машин удвоится. Про схему и хранимки даже не заикаюсь. Ну очень статические данные. Откройте для себя carp/ucarp/VRRP или HSRP.Увы, нужна именно реальная конфигурация, потому что читать надо поровну со всех копий ноды, а писать --- на все разом, при этом обеспечивая правильную транзакционную семантику. Проясним ситуацiv_an_ruпропущено... Сколько будет стоить написать на сях эквивалент одного хотя бы 20-килобайтного скуля? А хранимки с десятком таких запросов? И не устареет ли эта хранимка за время её написания? А если это ad-hoc запрос, то не помрёт ли пациент, пока вы напишете (и отладите!) запрос, который из всех медкарт отберёт случаи с наиболее похожими томограммами черепушки и выдаст чем лечили и что получилось? Еще раз - не умеете делать высоконагруженные базы данных, пишете хранимки на SQL - гордиться нечем.Это ответ на вопрос "сколько...". Понятно. [quot Проясним ситуац]iv_an_ruпропущено... Вы не поверите, мы в курсе про денормализацию. Только, опять таки, знаем, когда и где её надо применять, а когда --- нет. Судя по джойнам, которые упоминаются уже пятый раз - вы там походу НИХРЕНА не знаете.А что, реляционную алгебру уже отменили? Теперь положено просто хранить базы готовых ответов на все случаи жизни? Увы, это не всегда возможно, потому что нет списка готовых вопросов. Проясним ситуацiv_an_ruНу и сколько кверимиксов в час он выдаст на BSBM? А сколько покажет на TPC-H? Нисколько? Тогда зачем устраивать пузомерку c RDBMS?Мне откровенно плевать на TPC-H. Я только знаю, что вместо 200 серверов на mysql у меня работает всего два, остальное мне - глубоко до лампочки.Если вам глубоко до лампочки, чем занимаются другие люди, то зачем вы их пытаетесь учить? Проясним ситуац95% населения - идиоты. Это ни для кого не секрет.Пока что секрет --- входите ли вы в оставшиеся 5%, или мы с вами вместе составляем интеллектуальное большинство. Проясним ситуацРасскажи хоть что-то новое, а?Нафига? Вам же "откровенно плевать" и "глубоко до лампочки". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2012, 02:05 |
|
||
|
Плюсы против голого Си, холивар #9
|
|||
|---|---|---|---|
|
#18+
iv_an_ruПотому что все они в память тупо не влезут, а надеяться на то, что ОС вслепую, не зная специфики приложения, исхитрится правильно спланировать вытеснение дисковых буферов на несколько физических томов (и закачку нужных с тех же томов) --- очень наивно. Еще раз. Ты читал man mmap? Ну пойди прочитай. Отображенный в память файл - это не буфер, и уж тем более не файловый и не дисковый буфер. Про madvise ты как я понял тоже - даже не попытался почитать руководство. Это пять. Профессионализм видно невооруженным взглядом. iv_an_ruУвы, нужна именно реальная конфигурация, потому что читать надо поровну со всех копий ноды, а писать --- на все разом, при этом обеспечивая правильную транзакционную семантику. Походу ты даже не прочитал, что это такое UCARP/CARP. Опять попадание в десятку. Очень приятно рассказать человеку о полетах в космос, а он тебе отвечает, ну да, дескать у него картошка не взошла в этом году, потому самогон не удался.... iv_an_ruЭто ответ на вопрос "сколько...". Понятно. Господи, что тебе понятно? При наличии библиотеки поверх dbm манипуляция курсорами и выборками занимает столько-же кода, сколько и на PL/SQL, T-SQL, и даже меньше. Так устроит? iv_an_ruА что, реляционную алгебру уже отменили? Теперь положено просто хранить базы готовых ответов на все случаи жизни? Увы, это не всегда возможно, потому что нет списка готовых вопросов. Нет, теперь положено хранить таблицы уже денормализованные, в случае документ-строка - уже сразу кластеризованные (документ и строки в одном блоке данных), а не джойнить их каждый раз со справочниками и между собой. Не знал? Ну джойнь дальше, тыж не зря SQL выучил, ага. iv_an_ruПроясним ситуацпропущено... Мне откровенно плевать на TPC-H. Я только знаю, что вместо 200 серверов на mysql у меня работает всего два, остальное мне - глубоко до лампочки.Если вам глубоко до лампочки, чем занимаются другие люди, то зачем вы их пытаетесь учить? Я не собираюсь никого учить. Сейчас я понял предельно четко - что для того, чтоб вбить тебе в голову знания о подходе, который замещает 200 сервров двумя - нужно нанимать специально обученных людей, вбивателей знания в голову. Чтоб они писали книги и статьи, и тогда, может быть - тебе что-то удастся там в голову поместить. А пока твой разум напрочь отказывается даже mmap поместить на уровень понимания. iv_an_ruПроясним ситуац95% населения - идиоты. Это ни для кого не секрет.Пока что секрет --- входите ли вы в оставшиеся 5%, или мы с вами вместе составляем интеллектуальное большинство. Правило 95% универсально. С т.з. квантовой физики лично я - беспросветный идиот, и не только с точки зрения физики. А ты наверное себя огранненным алмазом считаешь, универсальным энциклопедистом, да? iv_an_ruПроясним ситуацРасскажи хоть что-то новое, а?Нафига? Вам же "откровенно плевать" и "глубоко до лампочки". А ты просто попробуй, сначала. А потом мы уже решим - будет мне плевать или нет. Или вот этими десятками уже постов - ты пытался мне дать некое новое знание или истинно верное? Ой, извини, не оценил.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2012, 02:19 |
|
||
|
Плюсы против голого Си, холивар #9
|
|||
|---|---|---|---|
|
#18+
То, что я никакими полезными писаниями тебя не наградил, так я ж и не брался, в отличии от тебя, верно? А ты взялся прояснять, но делаешь это жуть не респектабельно и не убедительно. Возникают вопросы. авторЭто просто верификация подходов на обычных смертных. не для тебя пишется И я о том же. Твои фразы, не относящиеся к теме спора, но которыми ты непременно заканчиваешь свои ответы, явно дают понять, что ты пишешь не для меня любимого и не для iv_an_ru, а для себя любимого. Иначе чем объяснить попытки усилить свои слова детскими колкостями типа авторТы походу вообще выпал из струи Что-то у тебя совсем плохо с основами. ну что с тебя взять? Ну это лишь показывает ваш уровень "развития", гордиться нечем. Вы там реально мохом позарастали. Это все, что ты способен сказать? Вот уже позорище, ёмое. архЕткторы блин. Оригинальные мысли у тебя будут или нет? Любому дураку очевидно, что эти фразы не придают твоим речам весомости, а наоборот перечеркивают возможность воспринимать тебя, как человека, которого стОит послушать. Но если ты не хочешь, чтобы тебя слушали, для кого тогда вещаешь?! авторПока результаты печальны - простые смертные настолько зашорены и зашуганы, что починить им разум просто так не получится. Угу. Вот я спрашивал о твоих достижениях, чтобы сложить мнение о твоей компетенции, а ты сделал вид, что не заметил. Ну и с фига ты тут взялся кого-то чинить, если пока что ты никто и звать тебя никак? Естетсвенно, что с таким подходом ты не увидел ни одного "О чувак! Дело пишешь!". Можно даже допустить, что дело думаешь, но пишешь явно не его. Самолюбованием занимешься. Я захотел обратить твое внимание на это - обратил. Тебя не устраивает сказанное - твоя проблема. Можешь попробовать еще разок уколоть меня в ответ. И продолжать игнорировать вопросы в лоб, а отвечать только на те, которые тебе по зубам. Так обычно и поступают истинно оригинальные спорщики. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2012, 02:45 |
|
||
|
Плюсы против голого Си, холивар #9
|
|||
|---|---|---|---|
|
#18+
Edd.DragonНо если ты не хочешь, чтобы тебя слушали, для кого тогда вещаешь?! Я не хочу чтобы меня слушали. Я хочу что бы мне дали развернутый ответ - почему тот или иной тезис является неверным. Да. Чтобы меня самого назвали глупцом, потому что... (далее идет список). Edd.DragonУгу. Вот я спрашивал о твоих достижениях, чтобы сложить мнение о твоей компетенции, а ты сделал вид, что не заметил. Да, я не считаю нужным тебе на это отвечать. Мне не нужно признание моих достижений - мне нужна лишь верификация пары тройки идей, на счет которых у меня есть сомнения. Edd.DragonНу и с фига ты тут взялся кого-то чинить, если пока что ты никто и звать тебя никак? Естетсвенно, что с таким подходом ты не увидел ни одного "О чувак! Дело пишешь!". Можно даже допустить, что дело думаешь, но пишешь явно не его. Самолюбованием занимешься. Лично мне глубоко плевать на какой-то там статус. Мне важны лишь идеи, свежие мысли, которые можно развернуть в конкретное решение. А если ты привык пресмыкаться перед "авторитетами", то что же- пресмыкайся дальше, но мне с тобой точно не по пути. Edd.DragonЯ захотел обратить твое внимание на это - обратил. Тебя не устраивает сказанное - твоя проблема. Можешь попробовать еще разок уколоть меня в ответ. И продолжать игнорировать вопросы в лоб, а отвечать только на те, которые тебе по зубам. Так обычно и поступают истинно оригинальные спорщики. Я на все вопросы ответил. На все, что не достойно внимания - я и не собирался отвечать. Вопрос про мои достижения - уж тем более - мои личные "достижения" на этом "форуме" - никак не соотносятся с той командой и тем проектом, в которым я сейчас занимаюсь, потому вопросы с долгоиграющими выводами "ты кито такой, дасвидания" строем идут в лес. Так доходчиво? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2012, 02:57 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=37929955&tid=1342110]: |
0ms |
get settings: |
10ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
186ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
94ms |
get tp. blocked users: |
1ms |
| others: | 242ms |
| total: | 574ms |

| 0 / 0 |
