Слушайте, коллеги, у меня есть очень странный реквест. Вот тут есть текст одного человека: http://maxim.livejournal.com/476279.html про распределенные транзакции и проч., и я пытаюсь извлечь что-то полезное из этого текста (и дискуссии, которая ведется в некотором ммм специфическом стиле). У меня некие смешанные ощущения от попыток провести вероятностный анализ репутации. Он ваще о чом?
по-моему, о том, чтобы каждый раз строить хранение данных исходя из требований к работе с ними, а не накручивая очередной завиток на легаси-систему общего вида. ну, у него ещё много наркоты в виде concurrency theories direct to brain, что осложняет ‎- из-за разнузданности гламурной
но это первое впечатление, я ещё почитаю вокруг ‎- из-за разнузданности гламурной
я ничего не понял, если честно. ‎- uncanny нейросеть
@hotgiraffe: но под "легаси-системой" явно имеется в виду классическая реляционка ведь? Он в одном из комментариев пишет единственное что хоть как-то похоже на намек: "Ну посчитай какие примитивы нужны чтобы держать страницы и сообщения на страницах и чтобы это можно было листать вниз. Просто напиши это используя минимальное количество возможных операций." just draw the rest of the fucking owl? ‎- псы в рапиде
да-да, "нафиг нам нужен постгрес, который никак не сделает то, что мне бы нужно, если я на эрланге захерачу только то, что мне нужно", как-то так. я не берусь пока судить о том, что он делает, но эмпатии с людьми, которым нужно всё остальное, у него не хватает ‎- из-за разнузданности гламурной
@ayoshi: мне кажется, что там много престижного сигналлинга, но наверняка есть какая-то простая статья, в которой содержатся все нужные ключевые слова без понтов. Чувак так пишет, как будто он лично изобрел половину computer science, что очевидно не так. ‎- псы в рапиде
Там есть ссылка на http://synrc.com/apps/cr/doc/cr.htm, которая статья выглядит странно — вероятно, потому что я не могу заставить себя ее дочитать. Но обещание как бы в ней. ‎- alf
@alf: кстати да! возможно, это от того, что как только тебе начинают излагать с позиции "вот у нас в банковской сфере супер-жесткие требования, не то что у вас, лошни" — у меня рука тянется к Cmd-W. Update: лол, есть ощущение, что автор этой статьи и есть этот maxim. ‎- псы в рапиде
Также мне очень нравится, что многие программисты пишут чистый, прозрачный и понятный код! It's so cute! ‎- псы в рапиде
Чувак реальный сумасшедший компьютер саентист от математики, но ему очень трудно разговаривать по-человечески, ганглий мешает. Я его довольно часто вижу воочию и могу передать вопросы в любой форме, уверен он зажжется написать ответы :) ‎- aint so saint
Алсо, он не столько от банков (хотя немного пописал действительно сложных банков, с хорошими результатами - у меня с ним клиенты пересекаются немного, отзывы восторженные), сколько от высоколобой математики и хардкор ФП, которое особо некуда, кроме high-margin сфер продавать. А что уж higher margin per LOC, чем банкинг, по крайней мере в Украине. ‎- aint so saint
@aintsaint: ну то что он хардкор-fp это понятно, вопрос не в нем лично, а в том, что почитать чтобы понимать о чем он — если он реально может бросить несколько затравочных ссылок — то это было бы очень полезно. Я еще вспомнил урл: http://maxim.livejournal.com/479306.html, мне в этом урле нравится фраза "этот конструктор не имеет ограничений". ‎- псы в рапиде
^ ок, я прочел, тут кажется есть проблеск того в чем я понимаю, к сожалению он так пишет, что очень сложно свести все в когерентную картину. MQ+KVS это очень осмысленное направление мысли, только из того что он написал не понятно что конкретно он имеет ввиду, может он про совсем другое. мне знакома эта проблема немного с другого конца: обеспечение 7 девяток и консистентности в системах с тройной репликацией. В общем, я подозреваю что за тем что он написал есть глубокая мысль, но выглядит все чудовищно. ‎- uncanny нейросеть
@ayoshi: у меня есть подозрение, что при этом эта мысль на самом деле является хорошо нам всем знакомой (ну или хотя бы известной), и просто возведенной в некий абсолют. Вообще конечно нам всем тут идея использоваться KVS в качестве базы в силу эээээ исторических причин традиционно не близка. ‎- псы в рапиде
^ в общем, я не готов судить, как минимум он знает тему, CR ссылка тоже чудовищна, но там хотя бы внизу есть линк на papers про chain replication которые более понятны. ‎- uncanny нейросеть
автор сообщает буквально следующее: ‎- aint so saint
http://synrc.com/apps/cr/doc/cr.htm тут внизу ссылки на PhD; ну и моя имплементация XA протокал на основе этого алгоритма; постгресовцы просто подразумевали иерархические транзакции и при этом сформулировали более общее ложное утверждение, за что были уличены; А в посте было написано, что вместо того чтобы писать БД "на коленке" — нужно их core алгоритмы экстрактить из теорем пруверов — Coq, Idris, Agda, мы вот свой прувер пишем OM/EXE; развернутый будет критикой вообще использования релиционных БД в приложениях для этого не подходящих; ‎- aint so saint
после чего предложил если все недостающие вопросы выяснить прямо там в жж - он обещает не сразу взрываться потоком говна (i doubt, tho) ‎- aint so saint
Ок, я надеюсь всосал общую идею, щас накидаю, а потом мы проверим с сияющим источником. ‎- uncanny нейросеть
В общем идея кажется следующая: для большинства ситуаций нам не требуется реляционная алгебра (она нужна для анализа позже) – например в банке нас интересует только account balance, и история транзакций (точнее линейный кусок), поэтому мы в принципе можем отделить проблемное место архитектуры для которого будет верно следующее: consistency (for whatever definition of strength), scalability. в качестве решения он предлагает использовать bysantine chain based replication и key value store. в данном случае KV store это не замена SQL баз, а источник consistent truth values и истории транзакций. Те KV которые мы знаем а) используются неправильно б) не обеспечивают достаточный уровень consistency и fault tolerance при распределении. если мы решим эти задачи для распределенного KV, то его можно будет использовать для этих целей. С точки зрения автора ни одна SQL база данных не обеспечивает достаточных гарантий, особенно при масштабировании и ее использование нецелесообразно именно с целью гарантировать эти две функции. (От меня: Что совершенно не отменяет ее использования для OLAP/OLTP и т.д, поскольку если мы уже решили задачи consistent truth values и transaction history, мы сможем ослабить требования по consistency к SQLDB. Мы можем строить tiered системы которые будут сочетать strong consistency этого волшебного решения, с асинхронными обновлениями sharded SQLDB для удобства анализа ). ‎- uncanny нейросеть
Объединение MQ и KV нужно, чтобы полностью гарантировать требуемый уровень consistency и fault tolerance, связывая messaging protocol client acknowledgement с необходимым уровнем репликации примитива в KV store. Скорее всего здесь Queuе немного лишняя сущность (разве что в качестве transaction log) поскольку MQ+KV это больше M+KV ‎- uncanny нейросеть
Какую часть алгоритмов необходимо прогонять через proover я не понял, подозреваю что chain replication protocol который имплементирует автор. ‎- uncanny нейросеть
Для того чтобы врубиться в детали протокола, мне понадобится еще несколько прочтений, но я не уверен что я готов к этому. ‎- uncanny нейросеть
@ayoshi: спасибо! @aintsaint: спасибо! я буду читать статьи из низу той ссылки, посмотрю не станет ли лучше. ‎- псы в рапиде
@aintsaint можешь проверить с автором правильно ли я его понял? ‎- uncanny нейросеть
@ayoshi я передам конечно, но мне кажется что этот уровень коммуникаций через посредника будет малоэффективен и накладен для всех его участников и возможно стоит-таки напрямую. ‎- aint so saint
@ayoshi: лично мне кажется, что в понимании претензии не хватает одной главной штуки: у максима drawbacks sql служат не просто аргументом для "ведь можно получить более высокие гарантии на более простой и надежной архитектуре" (это реально очевидно), а еще и устранить вагон "ненужного кода" и цикла обслуживания "ненужного кода", которое кроме как OLAP-ом особо и не оправдывается ничем. ‎- aint so saint
что же до пруверов, идея (это я как-то за чаем вживую слышал, для меня это довольно-таки alien stuff, поэтому я могу ошибаться в деталях и поэтому предлагаю за такими вопросами ходить к автору) в том, что правильно формализовав требования к поведению алгоритма, прувер позволяет выбрать не ту позу, которая "кажется автору надежной" (opinionated), а ту, в которой математически доказано, что эти требования реализуются этим фрагментом кода. я теории про это мало знаю, но аналог этого процесса в криптографии (math proofs) подсказывают мне, что задача эта таки да практически часто решаемая. ‎- aint so saint