
Evgeniy
02.10.2018
05:45:07
или уменьшать его использования и оставлять где без этого не работает
ну или мириться с тормозами
исходя из уровней транзакций потом идешь читать про блокировки
у тебя какие то запросы блокируют ресурсы

Google

Igor
02.10.2018
05:46:09
Dead lock возникает уже)

Evgeniy
02.10.2018
05:46:10
и система ждет их освобождение
найди такие запросы и подумай как сделать чтобы не блокировалось
или продумай над тем как хранятся данные

Igor
02.10.2018
05:47:19
Ещё читал, что InnoDB без транзакций норм работает - миф?

Evgeniy
02.10.2018
05:47:52
ты понимаешь зачем используются транзакции ?)
как это хотя бы отдаленно работает и что такое блокировки ?
уровни изоляции
почитай мне кажется много нового для себя откроешь

Igor
02.10.2018
05:49:03
Я их начал использовать, хоть и не успешно, для того, чтобы предотвратить Race Condition, ибо на ресурсе работа с деньгами и воровство не нужно
И Race Condition действительно нет, только появились тормоза и Dead Lock)

Evgeniy
02.10.2018
05:50:14
ну попробуй их использовать там где идет списание денег
и почитай про то как делают списания денег и почему
и делай так чтобы как списание закончилось транзакция закрылась

Igor
02.10.2018
05:51:12
Попробовать Использовать только на списании, а с других мест убрать? Есть ещё начисление, где тоже бы желательно использовать

Google

Evgeniy
02.10.2018
05:51:34
да пусть начисляют сколько угодно имхо
главное чтобы в минус не уйти

Igor
02.10.2018
05:52:07
Если начислили больше - баланс стал больше, а значит могут увести больше, чем положено

Evgeniy
02.10.2018
05:52:12
и либо все операции по списанию делать в одном потоке, последовательно, например очередь с одним обработчиком тогда не будет race condition
но один обработчик работает медленно)

Igor
02.10.2018
05:52:44
Это да

Evgeniy
02.10.2018
05:53:01
можно делать обработчики так чтобы они не делали парельно операции одного юзера
и тогда обработчиков может быть больше
например
но это все костыли
можно делать списание через блокировку
в начале делается блокировка денег
если их достаточно потом списание

Igor
02.10.2018
05:56:14
Ну, у меня сейчас сделано так: ставлю на сессию ISOLATION LEVEL SERIALIZABLE, начинаю транзакцию, проверяю баланс, если достаточно, то пользователь выводит, если на достаточно, то отменяю транзакцию, если все вывелось, то COMMIT.
SET SESSION ISOLATION LEVEL SERIALIZABLE смущает, должно это делаться по-другому, нет?

Evgeniy
02.10.2018
06:02:15
вообем читай изучай
все сильно зависит от бд, если например это mysql то и от engine и прочих нюансов
как прочитаешь в общих словах что такое транзакция, блокировки, изоляции, начинаешь читать про то как они устроенны в твоей бд и как себя поведут и сравнить со своими ожиданиями

Igor
02.10.2018
06:04:11
Ладно, тебе спасибо. Попробую пока убрать из лишних мест SERIALIZABLE, если будет безуспешно, то буду что-то предпринимать поконкретнее и

Piskovyi
02.10.2018
06:33:56
Выручайте братцы. У меня есть сервер и там на локалке крутиться бд. Мне нужно как-то подключиться к этой бд. Мне сказали пробросить тунель но вот опыта в таких действиях у меня . Может кто-то подсказать что-то?

?
02.10.2018
06:41:34
некоторые клиенты а-ля навикат уже умеют в это нативно

Evgeniy
02.10.2018
06:44:04
ssh port forward же надо гуглить

Google

?
02.10.2018
06:46:03
и будут принципиально иные результаты?

Evgeniy
02.10.2018
06:51:20
конечно, более крутые по хипстерски

Игорь
02.10.2018
07:58:05
Фабрики классов применяются только когда есть большое колл-во классов одного типа и их нужно динамически создавать, или для массового производства одного класса тоже?
Суть в том что у меня есть пара классов - источников, которые принимают url, html файл etc. и используются позже при работе с классами - обработчиками, которые их принимают и выдают нужные данные. Нужна возможность массового производства классов - источников из массивов (url например). Как это лучше сделать?

R0thschild
02.10.2018
09:23:15
Подскажите, как изменить текст коммита. Набираю git rebase -i HEAD~3, всплывает окно редактора, меняю в нем текст закрываю редактор. Пишу git log текст коммита тот же. Что не так делаю?

Andrew
02.10.2018
09:26:43
напротив коммита который хочешь переименовать нужно поставить r
и сохранить
тебе откроется еще раз редактор, там уже правишь коммит мессадж

Алексей
02.10.2018
09:45:24
Всем привет

Ed
02.10.2018
09:53:38
хахах, гениально

Subb98
02.10.2018
09:54:01
:D

Sergey
02.10.2018
09:54:25
????

Алексей
02.10.2018
09:54:28

Дмитрий
02.10.2018
10:12:24
Прошу помощи в безуспешных попытках понять что к чему. Есть сайт, на нём до какого-то момента всё было хорошо. Затем в какой-то неудачный день случился перенос сайта грубо говоря. И на этом сайте поехали стили как в админке, так и на клиентской части. Причина уже ясна, что стили просто напросто не могут загрузиться, так как нет доступа ко всем стилям которые лежат в папках .default . Кто в битриксе сталкивался с подобной проблемой? Как это можно решить?

Andrew
02.10.2018
10:14:08

Алихан
02.10.2018
10:14:18
Привет
Нужен совет

Дмитрий
02.10.2018
10:14:30
Как это сделать, если кратко не залезая в гугл?

Алихан
02.10.2018
10:14:49
Выполнять запросы к бд в цикле очень плохо?

Andrew
02.10.2018
10:14:58
никак. лезти в гугл и документацию по битрикс. какие там должны быть права доступа. и смотреть логи.

Google

Дмитрий
02.10.2018
10:15:31
Ладно, попробую, спасибо

Andrew
02.10.2018
10:15:37
лучше в цикле набрать id в массив, а потом сделать where in если сильно нужно

Дмитрий
02.10.2018
10:16:02
Ну задача такая

Admin
ERROR: S client not available

Дмитрий
02.10.2018
10:16:12
Сам бы рад был дропнуть его из моей жизни

Andrew
02.10.2018
10:16:32
ну так задачу надо решать, а не надеятся, что кто-то по хрустальному шару по бырику даст 100% решение, да еще и без гугла
что за люди
идею я дал, дальше только дебаг и логирование

Алихан
02.10.2018
10:16:49

Дмитрий
02.10.2018
10:16:52
Ну помощь то спросить всеравно можно) Ясное дело я буду задачу решать)
Так проще)

Алексей
02.10.2018
10:17:00

Andrew
02.10.2018
10:17:08
можешь мне тогда бабки отдать за задачу))

Дмитрий
02.10.2018
10:17:20
Но я ведь её ещё не решил)))

Andrew
02.10.2018
10:17:37

Дмитрий
02.10.2018
10:18:16
Да не, я думаю что откажусь :D

Andrew
02.10.2018
10:19:02
с другой стороны where in по миллиарду тоже плохо

Алексей
02.10.2018
10:20:34

Google

Andrew
02.10.2018
10:21:15
надо больше подробностей по задаче
массив тот можно все равно разбить и сделать 5 запросов, вместо 500 например

Алихан
02.10.2018
10:25:26
Не-не-не, нет там миллиарда записей

Сасный
02.10.2018
10:25:46
/ban

Combot
02.10.2018
10:25:48
/ban
You don't have permission to perform this action.

Алихан
02.10.2018
10:26:14
Есть доска объявлений osclass, а есть мой парсер, нужно данные из парсера вносить в бд доски
запросы делаются в разные таблицы т.к у этой доски бд построена так, что инфа хранится кусками в 100500 таблицах

Сасный
02.10.2018
10:33:00
Ну так и добавляй так же, в них же, либо перепиливай в одну

Алихан
02.10.2018
10:36:45
переделать не вариант
добавлять то ладно, но делать это нужно в цикле
Сначала мне нужно проверить, есть ли запись в бд, если ее нет записать
и это все в цикле

Dima
02.10.2018
11:17:17
Insert into ... values .... on duplicate не катит уже, отменили?

Nikitcat
02.10.2018
11:18:59
INSERT INTO t1 (a,b,c) VALUES (1,2,3)
ON DUPLICATE KEY UPDATE c=c+1;
katit