Меняемся местами

Пару постов назад уже показывал 2 фото из этой серии. Сегодня закрою тему. Вечер. Дождь. Не хочется думать и составлять какой-то осмысленно отчет по тем местам, что мы посетили в тот день. А это просто фото. Радость для глаз, а не для мозга. Отличный отдых. Вспоминать тепло холодными осенними вечерами. Мрачными.

А тем временем наткнулся на интересующий меня вопрос «Почему даже любимое дело надоедает?» и ответ на него по мнению автор. Он считает, что все дело в развитии. Когда оно останавливается, это развитие нас самих, останавливаемся и мы… Нет той былой подпитки энергией и мы выдыхаемся. Поэтому нет ничего плохого в том, что мы куда-то движемся, постоянно решаем задачи, сталкиваемся с трудностями. И это очень сильно подходит под то, чем мы занимаемся каждый день, под сущность работы. То, что мы делаем каждый день, может нам приносить радость только в том случае, если мы развиваемся, узнаем что-то новое, изучаем. И я считаю это очень правильным ответом! Попробуйте делать не рутиную работу, а что-то, что заставит вас углубиться в суть проблемы, изучить ее, попытать разные варианты. Не заметите, как время пролетит…

Попутно наткнулся там же на еще один свой «любимый» вопрос, связанный с поиском себя, своего таланта. Там много воды про родителей, это уже не мой случай. Ответ уже ближе к концу статьи словами «Никак. Себя невозможно найти. Но себя можно создать, а свой путь продолжить под собственными ногами. И я знаю тут только один практический способ – он называется «метод проб и ошибок».» И вот тут я увидел еще раз традиционный ответ из серии «иди копай картошку, а не нравится, рисуй картины, а не нравится, устройся медбратом» и т.п. Да только вот жизнь коротка. Так перепробуешь уйму всего и ничего толком не найдешь, лишь потратив жизнь на то, что ни тебе, ни кому-то еще не нужно!

ФОТОГРАФИИ

Share Button

Deadlock в MySQL

Это магическое пугающее слово deadlock =)

Получить его в мускуле достаточно просто:

Transaction #1
BEGIN;
SELECT * FROM `testlock` WHERE id=1 LOCK IN SHARE MODE; /* GET S LOCK */
SELECT SLEEP(5);
SELECT * FROM `testlock` WHERE id=1 FOR UPDATE; /* TRY TO GET X LOCK */
COMMIT;

Transaction #2
BEGIN;
SELECT * FROM `testlock` WHERE id=1 FOR UPDATE; /* TRY TO GET X LOCK - DEADLOCK AND ROLLBACK HERE */
COMMIT;

Первая транзакция лочит данные, вторая пытается получить лок ДРУГОГО типа этих же данных и ждет, в это время первая транзакция тоже хочет получить еще и блокировку ДРУГОГО типа. В итоге они ждут друг друга и так до бесконечности.

Описание ситуации.

Share Button