
yopp
22.11.2016
11:55:10
доку и пройти курсы
там всё разжевывается вполне себе

Mikhail
22.11.2016
11:55:24
ок

yopp
22.11.2016
11:55:28
всё что не требует транзакционности — отлично переносится в монгу

Google

yopp
22.11.2016
11:55:43
тразакционность в монге тоже реализуется, но это _очень больно_
и очень сложно

Mikhail
22.11.2016
11:56:32
такая прекрасная монга и боль в транзакциях?
это типа держи 2 бд и пиши туда, куда нужно

yopp
22.11.2016
11:56:46
в монге нет транзакций как класса
потому что атомарность гарантируется только на уровне одного документа
если с монгой начать думать идемпотентными операциями с документами, то всё будет хорошо
транзакции это один из способов, но не единственный
с транзакциями невозможно обеспечить большой поток записей
особенно в распределённых системах

Антон
22.11.2016
11:58:58
я пошел гуглить "идемпотентными"
это не принесло результатов
please explain

Google

yopp
22.11.2016
11:59:29
https://ru.wikipedia.org/wiki/Идемпотентность

Антон
22.11.2016
11:59:41
я понял каждое слово из этой статьи
отдельно
отдельно от объектов/документов

yopp
22.11.2016
12:00:51
значит что тебе порядок выполнения операций не важен

Антон
22.11.2016
12:01:22

yopp
22.11.2016
12:01:45
и одинаковая операция повторённая 10 раз, будет давать результат как и первая

Антон
22.11.2016
12:03:09
transition new -> end запушенная 10 раз сработает 1
9 раз вернет ошибку

yopp
22.11.2016
12:03:30
всё, уже не идемпотентная

Антон
22.11.2016
12:03:57

yopp
22.11.2016
12:04:05
да
наверное
задача всё ещё не сформулировна, но я в тебя верю!

Антон
22.11.2016
12:04:34
я напряг вот щас все органы для восприятия

Alex
22.11.2016
12:04:51
натыкался на то что monga в проде хреново себя держит, @dd_bb что скажешь? держал монгу? как себя ведет?

I
22.11.2016
12:05:01
думаю, нормально
живут же как-то разрабы на node.js
с их дефолтным MEAN

Google

Антон
22.11.2016
12:05:19

yopp
22.11.2016
12:05:38
у меня подшефных два кластера, один на 2 терабайта, другой на тер
в одном 12-15к qps, в другом чот около 20к
брат жив

Антон
22.11.2016
12:07:32

yopp
22.11.2016
12:08:06
но это уже математическая задача на самом деле

Антон
22.11.2016
12:08:47
я уверен что ты примерно понял
ибо документами мыслить еще не научился, на нормальное формулирование могут уйти дни

yopp
22.11.2016
12:08:50
и я сразу скажу что я не знаю ответа :)
идемпотентность не является единственным инструментом

Антон
22.11.2016
12:09:46

yopp
22.11.2016
12:10:03
нет
требованием для проектировщика является отсутсвие установок типа «нет транзакций — плохо» и хорошее понимание какую задачу, с какими ограничениями надо решить

Антон
22.11.2016
12:12:04
"нет транзакций - ничего мы справимся" может стоить очень дорого

yopp
22.11.2016
12:12:19
вот ты уже сразу совершил ошибку
начать надо с вопроса: зачем нам транзакции? какую задачу мы ими решаем?

Антон
22.11.2016
12:13:44
интернет так привык - кликнул кнопку нечаянно два раза, но получил тот-же результат
но в общем случае эту проблему решать начинают только когда кто-то репортит баг

yopp
22.11.2016
12:14:28
ну вот, ты начинаешь к пониманию задачи приближаться
как сделать «кликнул кнопку нечаянно два раза, но получил тот-же результат»

Google

Антон
22.11.2016
12:14:41
я примерно понимаю, я ее просто не формулировал

yopp
22.11.2016
12:14:51
зачем нужны транзакции в этом случае?

Антон
22.11.2016
12:15:27

yopp
22.11.2016
12:16:18
в чём заключается ошибка?
что случится если я нажму кнопку два раза?

Антон
22.11.2016
12:16:39
два запроса

yopp
22.11.2016
12:16:48
что случится с двумя запросами?

Антон
22.11.2016
12:17:06
обработаются один за другим

yopp
22.11.2016
12:17:15
user.update color: :blue
что плохого если два раза будет установка color в :blue?

Admin
ERROR: S client not available

Антон
22.11.2016
12:17:46
ну это частный случай
может быть project.activate! два раза, ничего нет страшного кроме лишнего исключения

I
22.11.2016
12:18:11
а если там заплатить - то проверяем валидность формы?

yopp
22.11.2016
12:18:32
решай в частном
всё решить — невозможно

Антон
22.11.2016
12:19:07
решай в частном
я понимаю что за это платят больше, но я нормально ленив и любо общие решения :)

yopp
22.11.2016
12:19:35
ну вот транзакции тоже общее решение, причём мало кто понимает как они работают и что такое видимость в рамках транзакций
транзакции очень сложная концепция

Google

yopp
22.11.2016
12:19:58
а вот атомарное изменение документа — очень простая

Антон
22.11.2016
12:20:11
еще и решения не очевидны

yopp
22.11.2016
12:20:37
ну вот документ — актор

Антон
22.11.2016
12:20:38
надо думать не о том что хочешь, а о том как транзакция решена тем или иным вендором
я понял, есть над чем подумать, спасибо

yopp
22.11.2016
12:21:24
а транзакции это когда у тебя мьютексы и мерж состояний
транзакционность работает там где нужна целостность очень больших графов связей

Alex
22.11.2016
12:22:43
обожаю чат за такие диалоги.

Антон
22.11.2016
12:23:18

Alex
22.11.2016
12:23:32

Антон
22.11.2016
12:25:39
я старый пердун который знает все больше и знает все меньше
постоянная депрессия

yopp
22.11.2016
12:27:09
да, это печально конечно

Антон
22.11.2016
12:27:56
Как вы вообще без депрессии живете? Хохочете целыми днями? (ц) Кафка

Татьяна Аква
22.11.2016
12:27:58
Всем привет)
А здесь вакансии на ruby бывают или у вас тут своя тусовка только по рабочим моментам с блекджеком и ... ? ?

yopp
22.11.2016
12:28:12

Антон
22.11.2016
12:28:29

yopp
22.11.2016
12:28:46
не надо пить на работе
надо пить после работы

Антон
22.11.2016
12:28:55
это не выход! :)

yopp
22.11.2016
12:28:59
выход-выход

Alex
22.11.2016
12:29:08

yopp
22.11.2016
12:29:12
пить надо начинать сразу после окончания рабочего времени, чтоб работать не тянуло больше