
I
26.11.2016
13:16:31

Andrey
26.11.2016
13:16:36

Mikhail
26.11.2016
13:16:39
ну на самом деле нет
преждевременная оптимизация зло

Google

Mikhail
26.11.2016
13:16:56
Важно дойти до хайлоада
Я спрашивал тут как то как оптимизировать запрос

I
26.11.2016
13:17:09
Over time your versions table will grow to an unwieldy size. Because each version is self-contained (see the Diffing section above for more) you can simply delete any records you don't want any more.

Mikhail
26.11.2016
13:17:25
Мне сказали ты дойти до хайлоада и будем на деле смотреть как лучше сделать

I
26.11.2016
13:17:29
а если он уже на хайлоаде?

Andrey
26.11.2016
13:17:35
При чем тут преждевревенная оптимизация если это типа и есть "основная фича"

I
26.11.2016
13:17:45
да, на проде повыполнять запросы, которые идут по 10 минут?
чтобы просрать все полимеры?

Mikhail
26.11.2016
13:18:11

I
26.11.2016
13:18:12
если берешь новый гем - надо адекватно понимать его минусы

Mikhail
26.11.2016
13:18:12
лолчто?

I
26.11.2016
13:18:32
что, не видел запросов на 10 минут?:)

Mikhail
26.11.2016
13:18:46
на 10 минут что?

Google

I
26.11.2016
13:19:06
запрос, который 10 минут выполняется базой

Mikhail
26.11.2016
13:19:40
Ну 10 минут не видел. Видел минуту
И это было у проекта с базой в пару десяткой ГБ
И один раз и лиды это быстро поправили
достаточно было переписать логику запроса и подчистить незамеченные n+1

I
26.11.2016
13:20:58
ну я за лидов рад, но я о том, что на проде тестить немного хуевая идея

Mikhail
26.11.2016
13:21:16
проект пришел в поддержку
Давай будем писать супербыстрыйправильный код на dry-rb и rack
тогда ты точно не проебешь проект

I
26.11.2016
13:22:08

Mikhail
26.11.2016
13:22:21
Вот и я говорю, зачем думать о проблеме, пока ее нет
Проблемы надо решать по мере поступления

I
26.11.2016
13:22:43
у них в документации написано "База быстро разрастается"

Mikhail
26.11.2016
13:22:59
Да это ясно и так
Если ты сохраняешь документ по 100 раз в день то да
если миллион пользователей будут по 10 раз в день сохранять то надо будет думать об этом
У меня был проект с 10млн пользователей и папертрейлом
и никакой боли в нем не было

I
26.11.2016
13:25:20
ну если у тебя не было проблем, а в доках сказано, что они вполне вероятны - то это не значит, что проблем не будет?)
тем более, что они реально сохраняют весь объект, а не диффы

Google

Mikhail
26.11.2016
13:25:39
это значит, что ты если ты пряморуких программист ты будешь сохранять только нужные версии
например последние 5

Alex
26.11.2016
13:25:55
для документов точно надо диффы сохранять
и делать опорные точки

I
26.11.2016
13:26:30
вот и я о том, что хранить доки целиком в базе - сомнительное решение

Mikhail
26.11.2016
13:27:00
цена разработки/проектировки = результату/полезности?

I
26.11.2016
13:27:17
в смысле? Разве гема нет для версионирования?
Нужно посмотреть, кто внес изменения в док месяц назад - последние 5 изменений тут не особо помогут

Mikhail
26.11.2016
13:28:38
Ну и будешь ты в соседнюю табличку дифф складывать какой вообще профит

I
26.11.2016
13:28:41
у нас была проверка - письма маркетинг с версионированием делал.
В итоге скатились к тому, что отменили версионирование, поскольку те запутались в версиях(не от большого ума, но буквально за пару дней они всем отделом наплодили около 1000 разных вариаций одного и того же письма)

Alex
26.11.2016
13:28:51
профит в размерах базы

Mikhail
26.11.2016
13:29:14
ну строки также будут плодится быстро

I
26.11.2016
13:29:14
а какой профит в гите? Взял, откатился на любую версию по диффам. И сможешь посмотреть, когда что было изменено

Mikhail
26.11.2016
13:29:19
просто будет меньше полей

I
26.11.2016
13:29:25
нет, гораздо меньше будет

Mikhail
26.11.2016
13:29:39
ну как нет. Изменил я текст, записал
Текст не поменялся не записал

I
26.11.2016
13:30:00
да, поменял ты строку - а пересохранился весь текст
в paper_trail так

Mikhail
26.11.2016
13:30:12
ну тебе же надо видеть разницу

Google

Mikhail
26.11.2016
13:30:23
за много сохранений и иметь доступ к любой версии
что к 48 что к 13

I
26.11.2016
13:30:48
да
paper_trail для такой задачи не подходит

Alex
26.11.2016
13:30:56
Я опорные точки для дураков написал?

Mikhail
26.11.2016
13:31:06
как раз я могу жонглировать версией
любой
у тебя та хранятся все версии

I
26.11.2016
13:32:04
не, у меня хранятся только изменения

Admin
ERROR: S client not available

I
26.11.2016
13:32:11
если у меня не paper_trail
ну я даже не знаю, как тебе объяснить. Знаешь, почему гит сохраняет диффы файлов текстовых, а не целиком их?

Mikhail
26.11.2016
13:32:34
a = Article.create
a.versions.length # 1
a.update_attributes :title => 'My Title', :rating => 3
a.versions.length # 1
a.update_attributes :title => 'Greeting', :content => 'Hello'
a.versions.length # 2
a.paper_trail.previous_version.title # 'My Title'

I
26.11.2016
13:32:58
или с другой стороны начну - у нас на проекте одном был флеш. Там файлики бинарные - гит их пересохранял целиком. За 2 года проекта папка гита была около 70 Гб
притом сам проект весил около 7

Mikhail
26.11.2016
13:33:18
не, тут идея в чем, в том что ссыте что база будет вырастать быстро
от каждого апдейта
И типа когда записи пойдут на десятки/сотни миллионов все это будет тяжело выбираться

Andrey
26.11.2016
13:34:20
Идея как раз сделать мини-гит в базе, а не сохранять всё подряд

Google

Mikhail
26.11.2016
13:36:06
Да я понял, вопрос это стоит того? У тебя реально миллионы пользователей в месяц, которые засрут тебе базу? у тебя реально нет денег чтобы когда это случится вложиться в оптимизацию и железо? Переписать выборку и отдачу на более быстрые решения? Поколдовать с кэшированием?
Я думал мы про быструю разработку и быструю прибыль
Все таки railsway

I
26.11.2016
13:37:00
а что, хранение диффов каким-нибудь готовым гемом - настолько неприемлимая для тебя идея, что там бомбит?)

Mikhail
26.11.2016
13:37:12
Прям

Andrey
26.11.2016
13:37:21
Вопрос не в том стоит или не стоит.
А вопрос в том как реализовать такую фичу. Чисто спортивный интерес. О прибыли темболее нет речи :)

Mikhail
26.11.2016
13:37:33
Просто эти диффы же он тоже будет тебе приводить в порядок
брать разницу подменять текст выдавать
это рубя
она медленная и тупая
про это тоже не забывай. Я думаю что очень логично на БД такое вешать
Меня учили что если чтото можно отдать БД пусть Бд это делает.
Она умная и быстрая

I
26.11.2016
13:39:55
да, так и есть, но кто мешает сделать тогда тонкий клиент на фронте, небольшую прослойку и все в ней делать?)

Mikhail
26.11.2016
13:39:59
ну и по идее для такой задачи монго подойдет, насколько я правильно понял
на готовом проверенном решении
?
главное чтобы проект не умер раньше, чем начнуться траблы с бдшкой

I
26.11.2016
13:41:24
ой, да умереть может что угодно
тот же разработчик
я не вижу гема сейчас просто, который бы работал с диффами. Но если он есть и он адекватно написано - то вполне верю, что он там все сам хорошо разрулит на уровне бд

Mikhail
26.11.2016
13:42:30
ну я поэтому и говорю что преждевременная оптимизация зло. Тогда раз такие сложности, может вообще от рельсы отказаться