@dba_ru

Страница 162 из 718
Fike
26.06.2017
20:58:02
что делать с конфликтами?

Sasha
26.06.2017
21:40:14
я бы первым делом первичные ключи если они инт сделал гуидами, а потом просто слил с помощьюинсерт инту

как-то так

хотя если у вас много уник констрейнтов, то этот фокус не прокатит и придеьтся потаблично писать скрипты дляслития

Google
Fike
27.06.2017
05:43:19
в том что автоинкременты наверняка сконфликтуют

https://opencredo.com/cockroachdb-first-impressions/

8к в секунду на три ноды

Al
27.06.2017
06:49:54
8к в секунду на три ноды
У меня кассандра на одном серваке. Не тюненая. По умолчанию установленная. Выдает 1.5 милисекуды на запрос

Правда ругается что я с индексами чет там закосячил

И маштабирается она хорошо

Fike
27.06.2017
06:53:07
ну последовательное выполнение 1.5 мс - это ~650 / сек )

понятно, что там совсем другие цифры будут, но да дело даже не в этом

кассандра тебе только по партишену или по всему кластеру выбирать умеет, никакой паджинации, а это вторая в мире распределенная SQL-совместимая БД

Uncel
27.06.2017
06:54:48
Атомные часы на сервер не нужны?

Fike
27.06.2017
06:55:03
которая еще и общается по нативному протоколу постгре и имеет поддержку большей части диалекта

желательны

Google
Fike
27.06.2017
06:56:01
афир полгода назад говорил о расхождении в 20 мс, что ли, после которого начинают проявляться артефакты, но с кластерами внутри одного дц все должно быть в порядке

а это значит, что больше никакой мерзости с переключениями мастеров

Al
27.06.2017
06:56:39
кассандра тебе только по партишену или по всему кластеру выбирать умеет, никакой паджинации, а это вторая в мире распределенная SQL-совместимая БД
Ну ей можно прикрутить эластик на бекэнд и огрести кучу плюшек. Но мне не нужен полнотекстовый поиск

Fike
27.06.2017
06:57:57
Да это все равно вторичные индексы и каждый запрос, уходящий на весь кластер

Al
27.06.2017
06:58:01
Да и затюнить ее можно еще

Fike
27.06.2017
06:58:14
Там не очень линейное масштабирование будет

Al
27.06.2017
06:58:54
Ну пишут что она идеально линейно маштбирается

Uncel
27.06.2017
07:00:18
В dse 5.1 sasi завезли, если так сильно вторичные индексы нужны

Fike
27.06.2017
07:00:41
Ну пишут что она идеально линейно маштбирается
это без ALLOW FILTERING и использования вторичных индексов

там вся соль в том, что она заставляет тебя указать партишен, а по нему известно подмножество серверов, которые могут ответить

при увеличении датасета ты просто добавляешь сервера, а на каждый запрос у тебя отвечает все то же фиксированное количество серверов

отсюда и линейность

Al
27.06.2017
07:01:57
Я не разбирался. У меня все равно один старенький сервер

Fike
27.06.2017
07:02:17
но если работать без партигшена, то запросу не остается ничего, кроме как пройтись по всему кластеру целиком, и тут можно попрощаться с линейностью

Max
27.06.2017
19:15:54
Господа, день добрый. Есть простая бизнес-логика: юзер, приход денег на его баланс, уход денег с его баланса. Приход денег с разных источников, уход денег тоже на разные (пару условных платежных систем). Предположим, что текущий баланс юзера уже есть в отдельной колонке (дабы не считать постоянно inc минус out). Статистика прихода\ухода по разным системам будет тоже нужна как минимум администратору. Подскажите, что говорит реляционная теория по поводу того, надо ли объединять входящие\исходящие транзакции в одну таблицу и выносят ли это в реальности в разные таблицы (таблица "income", таблица "outcome").

Vladislav
27.06.2017
19:36:17
Какой хороший вопрос...

По поводу теории точно не отвечу, но вот разделение таблиц на практике видел, скажу одно, вынимать данные с двух таблиц тяжелее, чем с одной. Разделение часто не оправдано в подобном примере

Разделение выгодно только тогда, когда по структуре дополнительных данных входящие транзакции кардинально отличаются от исходящих

Vladislav
27.06.2017
19:45:00
Только сферический

Google
Max
27.06.2017
19:45:17
можно и сферический)

Vladislav
27.06.2017
19:45:34
Это когда в одной таблице одна запись имеет 50% полей с null ?

И эти нулы скачат от входящих к исходящим

Max
27.06.2017
19:49:00
ок, спасибо. А считает ли кто-то баланс не с доп. столбца, а путем вычета income - outcome? С какого момента это начнет тормозить?

Vladislav
27.06.2017
19:49:59
Тут от множества факторов зависит

Но мне кажется, лучше все таки заранее рассчитывать баланс и сохранять его в доп столбец

Max
27.06.2017
19:56:02
мне просто интересно, когда такой случай денормализуют сразу, а не в тот момент, когда это внезапно начнет влиять на производительность

мне еще надо подсчитывать кол-во income\outcome транзакций, выносить ли это сразу в отдельные колонки или считать обычным count-запросом

Vladislav
27.06.2017
20:03:21
Слишком много условий и вашей специфики, чтобы давать однозначные рекомендации

Al
27.06.2017
20:10:25
Иначе упаритесь высчитывать каждый раз когда он делает операцию

Max
27.06.2017
20:12:19
Кто мешает в таблице юзеров завести столбик баланс для каждого
так и предполагалось, вопрос в том, когда (в каких случаях) столбик не заводится (мне, допустим, нужно показывать еще и отдельно количество транзакций income, отдельно outcome)

Vladislav
27.06.2017
20:13:33
Столбик с балансом лучше завести, иначе бизнес начнет капать на мозг

Транзакции тоже можно

Нет смысла только тогда, когда транзакции приходят раз в год по несколько штук, в противном случае, рано или поздно начнете упираться в производительность расчета баланса, а бизнес всегда хочет видеть баланс, да еще и в реал-тайме

Al
27.06.2017
20:15:52
так и предполагалось, вопрос в том, когда (в каких случаях) столбик не заводится (мне, допустим, нужно показывать еще и отдельно количество транзакций income, отдельно outcome)
Ну я бы сделал отдельные таблицы Юзеры (вся инфа и баланс текущий) Транзакции ( ид юзера. Время. Сумма. Отметка приход или расход. Откуда или куда. Табличка откуда/куда

И не теребонькал бы без толку

Max
27.06.2017
20:18:16
Ну я бы сделал отдельные таблицы Юзеры (вся инфа и баланс текущий) Транзакции ( ид юзера. Время. Сумма. Отметка приход или расход. Откуда или куда. Табличка откуда/куда
спасибо, я остановился пока что на таком же варианте, единственное пока - возник снова нестандартный вопрос, если у меня не добавится\изменится тип прихода\ухода (ближайшие пол года-год, например), стоит ли под это дело заводить отдельную таблицу или лучше положить в enum

Al
27.06.2017
20:19:23
А когда изменится тогда бегать в панике?

Google
Al
27.06.2017
20:19:49
И рвать волоски в неудобных местах?

Max
27.06.2017
20:21:46
почему же бегать в панике?

Al
27.06.2017
20:26:35
Переделывать

А оно там логикой обрастет уже

Admin
ERROR: S client not available

Al
27.06.2017
20:26:56
Будет весело

Max
27.06.2017
20:27:23
я понял, да, ответственность переносится больше на логику.

Ок, а такой момент - если ко мне внезапно приходит бизнес с идеей "а давайте еще и переводы м\у юзерами сделаем", соответственно попимо нового типа income\outcome, мне еще надо хранить id юзера отправителя\получателя. Что делать в таком случае, оставлять в этой же таблице?

Vladislav
27.06.2017
20:32:07
Почему и нет

Max
27.06.2017
20:46:25
Если это свойства текущей сущности, добавляй поля
По логике, свойство текущей, да, но тогда у большинства записей в столбце "юзед id" будет нулл

Konstantins
27.06.2017
20:47:24
Ну так руки ноги тоже не у всех людей есть

Тут надо смотреть ещё на отнощение

Max
27.06.2017
20:52:47
eav
Это сложновато конечно (проект для себя делается), но я идеи понял

Max
27.06.2017
20:55:53
Очередная домашняя бухгалтерия по взрослому без трусов?
Нет, но связано с деньгами (криптой) и каким-то количеством юзеров, поэтому стараюсь подходить серьезно

Alex
28.06.2017
04:03:56
за eav руки отрывать уже проектировщикам готов.

Google
Alex
28.06.2017
04:04:43
если есть возможность избежать, лучше избежать.

Vladislav
28.06.2017
05:05:08
Да в монгу фигачить и делов ?

Alex
28.06.2017
05:15:03
в самом деле, что это я :)

Al
28.06.2017
05:48:49
за eav руки отрывать уже проектировщикам готов.
Отрывать руки это как бы жестоко слишком. Может для начала головы отворачивать :)

Fike
28.06.2017
06:03:46
Лол как вы еще с неструктурированными данными будете работать?

Al
28.06.2017
06:20:55
А мы не ищем легких путей. Мы создаем себе трудности, что бы потом мужественно их преодолевать и гордится этим. :)

Fike
28.06.2017
06:24:45
лол

Konstantin
28.06.2017
06:26:10




Fike
28.06.2017
06:28:34
ой эксперты понабежали

чувак спрашивает - если мне внезапно прилетит ебаная хуйня, что я с этим могу сделать в ограниченное время?

не зная ее наперед

Страница 162 из 718