Шрифт:
Закладка:
«Для разработки софта вам нужны люди, и чтобы найти людей, вам будут нужны деньги, так?»
«Все верно».
«Но в действительности, университетам не выгодно вкладывать деньги в это, потому что он не принесет им прибыли в краткосрочной перспективе».
«……»
«Вы узнаете все это, когда пойдете работать».
Сонгю его не понимал. Молчание повисло в конференц-зале.
Второй день был для 3-го курса. В этот раз работник был напряжен.
«Пожалуйста, будьте сегодня особенно внимательными», - посоветовал он им. Ёнхо внимательно наблюдал, одновременно смотря на окно багов. Он видел несколько ошибок, но они не создавали никаких проблем для подачи заявок на курс.
«Минута до выхода».
Из студентов 2-й и 3-й курсы были наиболее интенсивными. 4 курс был занят поиском работы, а 1 курс многого не знал.
«Запускай. Состояние сервера?»
Как только система заработала, CPU для всех трех серверов поднялась до 99,9%.
«Проблем нет».
спокойно ответил Ёнхо.
«БД?»
«Также отсутствуют», - ответил Сонгю работнику. БД была более важной, чем сервер приложений. Если сервер приложений полетит, можно просто повторно активировать его, и он продолжит работать, в то время как БД перестанет работать.
«Пожалуйста, подождите минуту».
Вдруг сказал Ёнхо, посмотрев на экран.
«Что такое?»
«Память достигла более 70%, и продолжает увеличиваться».
«Что?»
Сотрудник посмотрел на экран. Ёнхо был прав. Коэффициент использования памяти для БД всё увеличивался.
«Д... Давайте понаблюдаем еще минуту. Если она по-прежнему не заработает, то мы можем просто повторно активировать его.
Сеансы, которые получили доступ к БД через сервер приложений, возвращали ресурсы после того, как они были закончены. Нормально, когда уровень поднимается и опускается. Но сейчас он просто продолжал подниматься.
«Больше 80%»
Процент все увеличивался. На лице работника появилась растерянность.
«Вот черт. Все прекрасно работало во время тестирования, так почему сейчас...» - ругался работник. Если сервер упадет, придется писать отчеты об ошибке. И это в лучшем случае. Если они попросят о снисхождении...
«90%».
В словах Ёнхо слышалась настойчивость.
«98%».
Память занималась слишком быстро. В этом случае единственным решением будет вытащить вилку из розетки, если сервер не мог даже принимать команды.
«По... Повторное включение».
Работник дал команду для сервера БД.
«немедленное выключение»
Внезапно экраны для регистрации студентов на курсы зависли. Сервер БД остановился.
«Запуск»
До тех пор, пока не была дана команда для повторной активации.
Глава 8. Регистрация на курсы (3)
Это был второй повторный запуск БД из-за той же самой ошибки. Программа RDBMS (система управления реляционными базами данных) по-прежнему занимает более 90% памяти на сервере. Если бы это продолжалось недолго, то это нормально, но проблема заключалась в том, что все зависнет, когда память заполнится на 100%.
«Хён, разве это нормально, перезапускать ни с того ни с сего?»
«Нет».
«Я не думаю, что это правильно».
«Я тоже... Я такого же мнения».
* дзинь * * дзинь * (звонок телефона)
Телефоны в конференц-зале начали звонить, не переставая. Это были жалобы от студентов, у которых зависла страница.
«Когда я могу зарегистрироваться на курсы снова?»
«Скоро мы все исправим».
«Такое произошло не только у меня, да?»
«Да. Это произошло у всего 3-го курса. Так что не переживайте».
Студентов заботила только одна вещь:
Я единственный, у кого возникла такая проблема? В то время как страница зависла, не займут ли мое место на курсе? – Они беспокоятся об этом.
«Хм...»
Даже сейчас, когда он отвечал на звонки, Ёнхо был сосредоточен на чем-то другом. Он проверял систему через окно багов. Но со стороны выглядело, как будто он просто бродил.
«Посмотрите на это, у сонбэ по-прежнему есть время, чтобы просто ходить даже в такой ситуации».
«Не говори так, Сумин».
«Я не могу понять, почему Сонгю-сонбэ защищает такого, как он».
«Но он хороший!»
«Хороший? Не видела, как он сидел в одних трусах в клубной комнате?»
Из-за слов Сумин лицо Хеджин покраснело. Она сменила тему.
«Е...Еще звонок, я отвечу».
Хеджин быстро схватила телефон. Ёнхо, сосредоточенный на окне багов, слышал их разговор. Если кто-то говорил в этом зале размером 5 пён (≈16.5 кв.м.), невозможно было не услышать.
«Почему она меня так ненавидит?»
Ёнхо действительно не сделал ничего плохого. Кроме решения вопросов с едой и жильем, он не сделал ничего, чтобы он нем думали плохо.
«Но в любом случае, строка 107, т.е. где SQL (язык структурированных запросов, используемых в реляционной базе данных), запускается...»
Ёнхо посмотрел на подробности ошибки.
«Хм... Но что это значит?»
Несмотря на то, что он уже на последнем курсе и выполнял много подработок, он был еще студентом. Это не первый раз, когда он видел содержание, как сейчас, но не мог ничего понять.
Название: Table Lock (блокировка таблицы).
Подробнее: Из-за команды SELECT FOR UPDATE произошла Table Lock. Из-за блокировки другие пользователи, пытающиеся получить доступ к связанной таблице, находятся в режиме ожидания, и это является причиной текущей ошибки.
Решение: Измените SELECT FOR UPDATE на SELECT FOR UPDATE WAIT 3, чтобы сессии других пользователей осуществлялись после примерно 3-х секунд.
«Мне нужно как-то сказать об этом».
Теперь Ёнхо знал, что за баг произошел. Но что-то связанное с SQL... это было исключением. Все, что он знал, было из курса по базам данных, который читали год назад.
«Надо как-то намекнуть об этом Сонгю-хёну».
Сначала он хотел бы подтвердить это у Сонгю. Даже сейчас память использовалась на 100%. Они смогли пообедать только после 2-х перезапусков.
Ёнхо тихо позвал Сонгю, который собирался войти в конференц-зал.
«Хён, подожди секунду».
«Что такое?»
«Просто давай поговорим секундочку».
«Зачем? Я сейчас занят».
«Это из-за этого. Мне нужно уточнить только один момент».
«Хён, случайно, ты не знаешь, что такое Table Lock?»
«Table Lock?»
«Да. Ты знаешь, как ошибка вытекает из строки 107?»
«Ну?»
«Оператор запроса (сокращенный вариант SQL, видимо), который выполняется в этой строке, содержит что-то, запускающее SELECT FOR UPDATE.»
«SELECT FOR UPDATE?»
«Я поискал об этом в Интернете и узнал, что это та же система используется для бронирования билетов в кинотеатрах. Кажется, мы используем её для системы регистрации на курсы.
«В этом проблема, ты думаешь?»
«Я обнаружил, что суть Table Lock такая: когда я использую таблицу, никто другой не может делать тоже самое. Если ты хочешь использовать её, то нужно подождать, пока я не закончу».
«Хм...»
«Поэтому пока я не закончу работать с таблицей, остальные будут ждать бесконечно долго».
«Так