
Phil
17.01.2017
20:32:07

Roman
17.01.2017
20:32:56
И что делать, когда захочется немонетарных балансов?

Phil
17.01.2017
20:33:54

Google

Phil
17.01.2017
20:34:29

Roman
17.01.2017
20:34:30
Типа "внеси на счет 5к руб и получи 5 доменов в подарок"

Phil
17.01.2017
20:35:51

Roman
17.01.2017
20:37:06
Ну или "домен к хостингу в подарок"
И проч

Алексей
17.01.2017
20:38:48
я не предлагаю select for update
я предлагаю трназакцию
неужели в муське нет транзакций ?
с нормальным rollback ? и commit
http://dev.mysql.com/doc/refman/5.7/en/commit.html
нет все в порядке трнзакции есть
я помню что там какая то беда была с изоляцией транзакций, типа гразные данные видать
но уровнем изоляции это решается вполне

Google

Алексей
17.01.2017
20:42:34
а может у тя просто автокоммит включен ?
или у тя Myisam для биллинговых данных ???????????????

Phil
17.01.2017
21:11:00
Фил, мой ресурс конечен. Тебе уже несколько человек описали что и как.
Я тебе даже упрощу. Есть User1 с 1$ на лицевом счету и работающей услугой VDS1за 4 бакса в месяц. Через три недели он захотел поменять услугу VDS1 на услугу VDS2 стоимостью 8 баксов в месяц. Давай это действие смены тарифа по шагам пройдем. Шаг - транзакция БД. Выключаем каждый и каждыей междушаг электричество. Как пинг. Смотрим размер фарша в моём варианте записи этих шагов и в твоем варианте забивания на запись.

Алексей
17.01.2017
21:12:12
нет
транзакця это делает за тебя

Phil
17.01.2017
21:12:31
коечно нет
или ты предлагаешь сериализованную изоляцию? да, уже предлагали

Алексей
17.01.2017
21:13:22
я предлагаю не read commited да.
как минимум репитабл рид

Phil
17.01.2017
21:14:26
Т.е. при любом фейле (а они будут постоянно в виду особенности уровня изоляции) - вздрочнуть ещё раз? ну вариант да.

Алексей
17.01.2017
21:15:06
да при чем тут селект фор апдейт.

Phil
17.01.2017
21:15:16
а как ?

Алексей
17.01.2017
21:15:24
селект форапдейт это псевдо трнзакция для простых вещей

Phil
17.01.2017
21:15:45
это псевдотранзакция для блокировки данных

Алексей
17.01.2017
21:15:51
да
которая является упрощением от нормальной трнзакции

Phil
17.01.2017
21:16:30
ну. у меня по задаче - толпа разношерстных данных в разных таблицах в разных рядах со сложным отношением друг к другу, которую надо заблокировать

Алексей
17.01.2017
21:16:37
ну

Google

Алексей
17.01.2017
21:16:59
бегин сделал. селект первый сделал, все данные в пределах трнзакции неизменны.

Phil
17.01.2017
21:17:03
ну мне не понравилось десятиэтажные селекты фор апдейты составлять

Алексей
17.01.2017
21:17:17
пока комимт или ролбек не сделаешь повтор чтения будет давать такие же результаты
селект форапдейты для простых случаев.

Phil
17.01.2017
21:18:18
мля

Алексей
17.01.2017
21:18:22
пофиг что тут про постгрес. в муське так же

Phil
17.01.2017
21:18:25
мы на разных языках?

Алексей
17.01.2017
21:18:25
https://www.youtube.com/watch?v=QU2PVSnBGEY&list=PLaFqU3KCWw6JgufXBiW4dEB2-tDpmOXPH&index=2

Phil
17.01.2017
21:18:35
как я не заблокирую данные-то?
мне нужно заблокировать всё, что я потом апдейтить буду. или кто-то туда писнет без меня

Алексей
17.01.2017
21:19:11
еще раз. не смотри что тут про постгрес говорят.

Phil
17.01.2017
21:19:22
да причем тут постгресс

Алексей
17.01.2017
21:19:22
в рамках транзакции никто ничего не пихнет

Phil
17.01.2017
21:19:36
в рамках нет. а за рамками да

Алексей
17.01.2017
21:19:51
а за рамками транзакции нет операций со счетом

Phil
17.01.2017
21:19:54
а у меня два десятка sum = sum +1

Алексей
17.01.2017
21:21:16
когда коммит проходит если строки были изменены которые менялись в транзакции комит непроходит
проходит ролбек
ладно баиньки

Phil
17.01.2017
21:22:59

Google

Phil
17.01.2017
21:23:05
ну мне не нра

Alexey
17.01.2017
21:34:21

Roman
17.01.2017
21:39:26
У меня один вопрос: что будет если я из разных вкладок попытаюсь сменить тариф на разные тарифы

Phil
17.01.2017
21:44:54
но моя текущая система очень бедная и попасть между запросами надо было ещё умудриться :)))
но умудрялись
правда в ПХ теперь как в DO - мозг можно сломать пытаясь понять кто кому должен

Admin
ERROR: S client not available

Serge
17.01.2017
21:50:23
Резервирование средств должно ставить эксклюзивный лок. Чтобы оно проходило всегда консистентно

Alexey
17.01.2017
21:51:33
Фил, блин, в твоём примитивном билинге, нужна единственная таблица "очередь", с тем что надо списать/зачислить и один воркер её разгребающий, причём ни чего из неё не удаляющий, а только апдейтящий поля состояния задания.
В чём гемор-то?

Serge
17.01.2017
21:52:48
А дальше, мы создаем операцию, которая в процессе - изменение тарифа. Двух параллельных изменений быть не может. Все из выполняем по очереди. А очередь ставим из чего во что мы хотим поменять. Если к началу операции "из чего" поменялось - откат.
Optimistic transactions

Сергей
17.01.2017
21:53:23

Phil
17.01.2017
21:53:26

Serge
17.01.2017
21:53:37

Phil
17.01.2017
21:54:14

Alexey
17.01.2017
21:56:46
Ну так заканчивает этот многогодовалый флуд и сделай уже все "свои предложения"

Phil
17.01.2017
21:56:53

Google

Alexey
17.01.2017
21:57:37
одна "очередь", зачем per customer? Задачи и так не пересекающиеся

Phil
17.01.2017
21:58:47

Vitaliy
17.01.2017
21:59:23

Phil
17.01.2017
22:01:38
я так понимаю 9.6 ещё побаиваются

Vitaliy
17.01.2017
22:03:21
у меня 9.5, тысячи транзакций в секунду в пике , полёт нормальный


Phil
17.01.2017
22:06:09
да 9.5 уже в хвост и грву да
вон, тезка мне собственно подкинул идею с какой-то платежной системы как раз про очереди в pgsql
Ну так заканчивает этот многогодовалый флуд и сделай уже все "свои предложения"
ну кстати там начинает всплывать план счетов. то ли не ебстись и сделать двойную запись и подробный план. то ли простыню с флажками, чтобы не ебстись с двойной записью. так скажем форма представления плана счетов. я пока склоняюсь к венецианской двойной записи и подробному плану с субсчетами. причем без активно пассивных. машине вроде так проще будет
на языке Фила это select for update
на моём языке это тоже эксклюзивная блокировка. не заражайся говном от Сереги - дураков кроме него сюда не завезли. но мы там где-то уже про транзакции в базе говорили. а это ведь всегда SQL в данном типе задач. или есть мнение, что есть не реляционные базы под это (точнее есть какая-то нереляционная перспективная модель данных для биллинга? я с удовольствием почитаю) подходящие? или есть мнение, что есть какие-то не SQL реляционные базы, которые имеет смысл использовать?


Vitaliy
18.01.2017
07:02:58
есть NewSQL

Alexey
18.01.2017
07:15:16
есть NewSQL
The applications targeted by these NewSQL systems are characterized as having a large number of transactions that (1) are short-lived
как раз то, что щорсу не надо...

Vitaliy
18.01.2017
07:16:21
длинные транзакции немного про другое, типа аналитики

Phil
18.01.2017
08:09:08
есть NewSQL
Ну они пока есть только в мечтах. Или экспериментах. Кстати спасибо. Не знал о таком

Vitaliy
18.01.2017
08:11:52
VoltDB — очень интерпрайзная штука

Phil
18.01.2017
08:12:27
длинные транзакции немного про другое, типа аналитики
Да не нужны мне длинные транзакции. Я не очень понимаю, чего вы не понимаете. Проблема в кодогенерации. Надо генерировать достаточно сложный запрос для эксклюзивной блокировки тех данных, которые меняем. Да, можно использовать какой-нибудь из объектов как абсолютный признак эксклюзивной блокировки - там лицевой счет, или вот резервированные деньги, как предлагал Сергей, но что-то меня смущает в этом. Поменяется где-то логика, а у меня вся консистентность завязана на конкретном объекте


Alexey
18.01.2017
08:16:50
Да не нужны мне длинные транзакции. Я не очень понимаю, чего вы не понимаете. Проблема в кодогенерации. Надо генерировать достаточно сложный запрос для эксклюзивной блокировки тех данных, которые меняем. Да, можно использовать какой-нибудь из объектов как абсолютный признак эксклюзивной блокировки - там лицевой счет, или вот резервированные деньги, как предлагал Сергей, но что-то меня смущает в этом. Поменяется где-то логика, а у меня вся консистентность завязана на конкретном объекте
Так вся проблема как раз в том, что у тебя что-то на что-то завязано так как ты когда-то давно по дурости решил. А теперь ты стремаешься каких-то очевидных решений.
И ещё не понимаю твою паранойю по поводу возможного "мусора", который "надо собирать", в чём проблема-то?

Roman
18.01.2017
08:33:36
http://izvestia.ru/news/601535
любители шутить про гитлера в чятике?