_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL
* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.
* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

Цитата (MiksIr @ 24.08.2013 - 14:01) |
Подвержены. И это отдельная тема развития своего мышления - как то или иное написанное будет вести себя в реальных условиях конкурентных запросов. Начиная от нубского сайта на файлах и заканчивая серьезными хайлоадами, где нерешенный race condition приносит кучу проблем. |
Цитата |
>Результаты одного не будут учтены другим, как не блокируй хранилище. Как раз если блокировать - то будут учтены. Если не блокировать - то нужно учитывать это в архитектуре скрипта. Например, если ++ операция атомарна на уровне базы - мы решили эту проблему. |
Цитата |
Предупреждение устное, первое и оно же последнее. |
Цитата (MiksIr @ 24.08.2013 - 17:41) |
У топикстартера была конкретная архитектурная проблема. Он предложил несколько ее решений. Одновременные запросы - не есть неверная архитектура. Часто она даже более верная, чем последовательные запросы. |
Цитата | ||
Базу именно? Ну, например, select for update. Не знаю, обычные локи это или нет. |
Цитата (MiksIr @ 24.08.2013 - 17:59) |
Это хорошо, что вы поняли, что он хотел сказать. Я не понял. Может переведете мне на русский? |
Цитата | ||
Я опять же потерял нить... что вы хотите то? Как в случае хранения сессий в базе эмулировать блокировки по принципу хранения в файлах? Ну а чем select for update плох. Сессия запустилась - сделали select for update. Или вы что-то другое? |
Цитата |
Остальные скрипты стоят, ждут, пока взявший не сделает update или порвет сессию. |
Цитата (MiksIr @ 24.08.2013 - 19:33) |
Да не нужно ничего блокировать бездумно. Нужно блокировать ровно на то время, что бы избежать рейс кондишн на определенном участке работы с данными или не блокировать вовсе, если это допустимо. |
Цитата |
Одно из вещей как раз, которые мне во встроенной сессии не нравится - там тупо блокируется от начала до конца - даже если это нам не нужно и мы только читаем. И заблокируется весь массив данных, а не отдельные ключи. |
Цитата |
Ну и конечно стараться не создавать подобных ситуаций, когда код выполняется достаточно долго |
Цитата (MiksIr @ 25.08.2013 - 02:49) |
Хотя, если бы сессии изначально были бы неблокирующие |
Цитата |
пять же что именно блокировать. Хранилище или сам скрипт. Или скрипт в зависимости от состояния хранилища. В случае с примером ТС отказываться от блокировки на мой взгляд решение по пути наименьшего сопротивления. Он увидел локальную проблему, нашел сиюминутный выход и объявил это гениальным решением. |