yopp
и ха-ха
yopp
я не знаю, в 2016 году уже чонибудь приличное для пг сделали или нет
yopp
но раньше это был пиздец и ад, и ты хоть обтестируйся
yopp
а повалившиеся друг за другом стойки, это не такое уж и редкое событие
yopp
у нас как-то аналитический фронтенд для скады работал с монгой и ничо
yopp
в соло
nvkv
Я знаю три проекта которые считают Бизнос Аналитику™ для чиновников на монге
yopp
в смысле это было единственное хранилище
nvkv
хотя к монке я чот как-то так
yopp
как и у любой другой субд у монги есть свои хорошие и плохие стороны
yopp
плохие стороны заключаются в том, что они выбрали eventually consistent модель и это в некоторых случаях делает какие-то простые вещи сильно нетривиальными
yopp
например если усраться как надо аналог транзакций
yopp
мне нравится идея кассандры, про то что ты можешь сам выбать какие два стула из CAP тебе надо
yopp
ну вот мы сейчас делаем штуку которая работает с баблом, микротранзакции по сути. нам там аналог транзакций понадобился в трёх местах
nvkv
вы их в итоге на стороне приложения делаете?
yopp
в итоге я наебался с реализацией тразакций по монговскому феншую вдоль и поперёк и получил пиздец, а не код. в итоге мы приняли стратегическое решение сделать тупо всё идемпотентным, так чтоб если операция свалилась, мы могли её свободно повторять до упора
yopp
в нашем случае это работает
yopp
транзакции в монге на уровне приложения это очень сложно
yopp
в итоге всё сводится к тому что ты как идиот раз десять долбишься в базу
yopp
на каждый чих
yopp
а если долбятся двое, то всё очень сложно и лайвлоки и дедлоки и вот эти все многопоточные развлечения
yopp
https://docs.mongodb.com/manual/tutorial/perform-two-phase-commits/
yopp
вот например как они предлагают с этой проблемой работать
yopp
это ещё работает с одной коллекцией, когда у тебя коллекций несколько, то лучше настя
yopp
я решил накидать прототип, и когда у меня получилось в итоге полторы тысячи строк кода, я понял что нет, нихуя не работает :)
yopp
я вот эти последние 10 лет в основном цифрами и занимаюсь. бабки и всякая ололитика.
yopp
блядь, шесть вечера а я всё ещё докера не доебал :(
yopp
отдохнувший завтра буду
Denis
nvkv
опять срач будет
yopp
yopp
можно сказать по буквам
yopp
про документацию кстати
yopp
As can be seen, all image layer IDs are cryptographic hashes
yopp
тоесть если раньше слои просто uuid генерировали (кто там говорил про айдишник машины?)
yopp
судя по исходникам у них там какой-то tarsum свой
Anonymous
многатекста. Есть чо интересное?
yopp
только какого хуя слои на разных тачках разные один хуй? :(
yopp
эм
yopp
подскажите тупому как такое ваще возможно
yopp
docker pull hub.swag.tech/swag/rails:0.2.9-dev
... стащили новый имадж
Step 1 : FROM hub.swag.tech/swag/rails:0.2.9-dev
Pulling repository hub.swag.tech/swag/rails
time="2016-07-17T17:43:52Z" level=info msg="Error: image swag/rails not found"
yopp
чот короче билд и private registry в docker in docker работают чорти как
yopp
локально у меня всем всё пуллится
yopp
yopp
Docker version 1.6.2, build bc9c64f
yopp
SOOOOOQUA
yopp
альпин, ёбанное ты ведро
yopp
Evgeny
А ты из оффа ставил?
yopp
RUN apk --update add ca-certificates wget git unzip procps docker
yopp
короче урок выучен: пакеты в докере без version pinning ставить просто тупо нельзя
Evgeny
В альпине надо комьюнити репы ставить для докера
yopp
https://pkgs.alpinelinux.org/packages?name=docker&branch=&repo=&arch=&maintainer=
yopp
а, блядь, и правда community
yopp
Evgeny
ну да. тут. часа два назад
yopp
apk add -U \
docker \
-X http://dl-cdn.alpinelinux.org/alpine/edge/main \
-X http://dl-cdn.alpinelinux.org/alpine/edge/community \
&& rm -rf /var/cache/apk/*
yopp
не благодори :)
yopp
я думаю что там можно stable вместо main, but I’m feeling lucky
yopp
*вместо edge
yopp
я ничего в монге не храню
yopp
в смысле ничего такого!
yopp
всё законно товарищ майор
yopp
а надо было.
yopp
я говорил что в монге можно сделать аналог транзакций, я даже для одного нашего кейса пробовал, но в итоге получилось сложно и страшно и мы просто придумали как сделать так, чтоб было просто и красиво
yopp
у них даже есть документация как так делать
yopp
когда мы начали пилить нашу аналитическую хуйню, монга была единственным вменяемым решением которое подходило по нужным нам параметрам
yopp
у нас там динамическая объектная модель для представления данных была, надо было хранить много-много записей с неограниченным набором полей и уметь этими полями быстро манипулировать
yopp
в пг нет шардинга из коробки, а для нас это было очень важно
yopp
ещё важно было снизить телодвижения в случае отказов
yopp
в тот момент только монга умела вменяемый self recovery
yopp
без вмешательства живых людей
yopp
ещё в постресе даже с теми костылями которые были, было близко к невозможному аггрегировать данные с шардов и складывать обратно. это надо было делать прямо в приложении, а это было очень много данных и вобщем на этапе r&d постгрес отвалился. то был 2010 или 2011 год
Pavel
в том году еще даже pg json толком не было
yopp
уже было, но там было всё плохо
Evgeny
Evgeny
По крайней мере до последнего обновления альпина не надо было
yopp
yopp
оно там насрало после установки докера
yopp
ааааа