ОРАКЛ СДВИГАЕТ ИНДЕКСЫ

«Три миллиона жизней — это плата за независимость?!» — третий раз вопрошала героиня низким грудным голосом, всеми силами изображая волнение за судьбу планеты. Герой не отвечал, и его можно было понять: огромные трехглавые ракопауки, вооруженные ржавыми трезубцами, загоняли беднягу в дюзу гигантской ракеты, которая вот-вот собиралась стартовать. Тревожно тикала атомная бомба, привязанная ржавой цепью к ногам героини. Лицо героя алело от крови, чистыми оставались лишь белоснежные кудри, но было ясно, что сейчас он что-нибудь придумает, и в пламени дюзы сгорят пауки, а не он. Ну вот, так и есть, нашел тайную кнопку. Нет, определенно третий фильм мне не нравился. Во-первых, это оказалась жуткая экранка, украденная, видно, с какого-то предпоказа — первые десять минут не было звука, затем он появился, но чересчур бухающий — казалось, наушники на голове подпрыгивают и бьют по ушам. Вдобавок вместе со звуком в центре экрана возник титр «Украдено на Первом» и мешал смотреть. Когда вой прогревающейся дюзы достиг максимума, а вопли пауков смешались в один яростный вопль, к ощущениям добавилась тряска за плечо. Я поспешно нажал пробел и стянул с головы наушники.

— Оглох что ли? — спросил наш хамоватый менеджер Вова. — Чем ты занимаешься на рабочем месте? Иди к начальству!

— Случилось что-то? — поморщился я.

— Случилось, — ответил Вова серьезно. — Случилось. Молись.

* * *

В кабинете Ивана Ильича на монументальном столе среди бумаг, телефонов, калькуляторов и распахнутого Макбука возвышался большой половой каучуковый член. Сам Иван Ильич говорил по мобильнику. Держал он мобильник двумя пальчиками брезгливо как лягушку, но тон был подобострастным. Когда я вошел, Иван Ильич глазами приказал мне сесть, но разговор продолжал. «Да, конечно, — повторял он, — конечно. Конечно. Мы разберемся. Это не повторится. Конечно». Наконец беседа закончилась. Начальник оперся руками о стол и уставился на меня.

— Вызывали, Иван Ильич?

Вместо ответа он показал глазами на член посреди стола и гневно спросил:

— Тимохин, что это?

— Не могу знать, — ответил я по-военному, слегка смутившись от такого начала беседы.

— ЧТО ЭТО ТАКОЕ, ТИМОХИН?!!! — взревел Иван Ильич.

— Почему вы на меня кричите? — обиделся я. — У вас на столе, пардон, половой член. Если не ошибаюсь, из нашего ассортимента. Если вам нужен точный артикул — могу посмотреть в базе.

— Тимохин! — Иван Ильич схватил злополучный член и потряс им в воздухе. — Это пришло наложенным платежом нашей клиентке!

Я пожал плечами:

— Для того он и в каталоге, чтоб клиентки его заказывали.

— Да! Но она заказывала у нас набор посуды! Набор посуды и задачник Сканави по математике! У нее дочка поступает в ВУЗ!

— Все так говорят. — Я снова пожал плечами. — Сперва заказывают черте что, а после все кругом виноваты.

— Это, — Иван Ильич заговорщицки понизил голос, — жена губернатора Омска.

— Рад за них обеих. — Я постарался изобразить максимум тактичности, но, похоже, мне это не удавалось. — Зачем таким большим людям Интернет-магазин? Дочка поступит в ВУЗ без учебника, посуду пришлют из Франции.

— Вот при чем! — Иван Ильич совершенно непоследовательно вновь потряс членом.

— А я что? Я — ди-би-эй, не кладовщик и не логистик.

— Это не первый раз, Тимохин! — начальник укоризненно покачал в воздухе товаром. — И я уверен, это ошибки в базе!

— В базе Oracle ошибки? — усмехнулся я. — Иван Ильич, вы меня, конечно, извините, но это смешно. Я восемь лет работаю с Oracle, пять лет проработал в Штатах и там же получал ди-би-эй-сертификат. И почему-то никто на мою работу до сих пор не жаловался. А тут какие-то полуграмотные таджики, которых вы нанимаете на склад оптом по дешевке, перепутали артикулы и вместо учебников завернули член. А вы вызываете меня. Это нормально, как вы считаете?

Он устало бросил член на стол, тот с грохотом прокатился по полировке и уперся в Макбук. Иван Ильич опустился в кресло и сцепил перед собой руки плетнем, оттопырив вверх большие пальцы. Видимо, этому жесту его учили на курсах высшего руководства.

— Понимаете, Павел, — проникновенно начал он, выдержав театральную паузу, — мы делаем очень большое, очень нужное дело. Наш Интернет-магазин борется за звание самого лучшего, самого крупного Интернет-магазина России с самым большим ассортиментом, самой гибкой системой цен и самой пластичной системой доставки...

Я молчал. Когда Иван Ильич начинает шпарить наизусть свои собственные пресс-релизы, перебивать его бесполезно. Пока не дочитает до конца — не остановится.

— Поэтому мы и называемся «Сто тысяч мелочей точка нет», — пел Иван Ильич. — Мы продаем книги, одежду, бытовую технику, компьютеры, мебель, бижутерию, лекарства, продукты питания, книги, товары для спорта и отдыха...

— Члены каучуковые, — не выдержал я.

— Интимные товары и сувениры для розыгрышей, — печально согласился Иван Ильич, и в голосе его чувствовалась глубокое раскаяние. Видать, крепко досталось ему от администрации губернатора Омска. Но он продолжал: — Понимаете, Тимохин, одна подобная ошибка — это такой удар по репутации, что она, ошибка, может стоить нам... — Иван Ильич задумался, пододвинул к себе широкий калькулятор и принялся бойко перебирать кнопки. — Может стоить нам многих миллионов, — печально закончил он.

— Да, Иван Ильич, — согласился я. — Очень неприятный инцидент. Только я при чем? Трясите кладовщиков. Трясите менеджера Вову. Трясите отдел логистики. Я ди-би-эй, понимаете? Датабэйс-администратор, программист Oracle.

— Все понимаю, Тимохин, — согласился Иван Ильич. — Я же не дурак.

Я тактично промолчал.

— Но вы, Тимохин, — Иван Ильич снова поднял каучуковый член и принялся качать им в воздухе, словно отбивая такт своим словам, — расследуйте этот случай внимательно и напишите мне докладную.

— Конечно, Иван Ильич, — кивнул я. — Но вы хоть немного понимаете в базах данных?

— Cовершенно не понимаю, — покачал головой Иван Ильич и кивнул на свой Макбук. — Я и в компьютерах не понимаю, я малограмотный пользователь. У вас это называется, чайник, да? Но у меня пятнадцатилетний опыт руководства и чутье руководителя. Проблема — не первая. И я чувствую — проблема в базе данных.

Ну что тут скажешь?

— Вас понял, — кивнул я. — Проведу расследование и напишу докладную. Что? Нет, спасибо, эта штука мне не нужна.

— Господи, — произнес Иван Ильич вполголоса, когда я уже шел к двери, — сделай так, чтобы мне не пришлось лететь в Омск с извинениями!

* * *

По пятницам мы всегда пили пиво в Ирландском пабе: я, Альберт, Володька Панфилов и Максим. Я думал, что опоздал, но за столиком сидел только Альберт и пил он почему-то молочный коктейль, закусывая фисташками из вазочки.

— Салют труженикам симфонической эстрады! — крикнул я Альберту и кивнул на коктейль. — А что, пива сегодня не наливают?

— Так... — поморщился Альберт. — Со здоровьем что-то неважно.

— Что такое? — насторожился я, вдруг вспомнив, что Альберт и на прошлой неделе был какой-то кислый.

— Давление скачет в последнее время, — объяснил Альберт.

— Ко врачу надо, анализы посдавать... — кивнул я.

— Да уже в процессе, — отмахнулся Альберт. — Ну а ты чего невеселый?

— На работе неприятности, — объяснил я.

— Поделись.

— Ты не ди-би-эй, ты не поймешь, — вздохнул я. — Это тебе не виолончель пилить.

— А ты объясни, чтоб я понял, — предложил Альберт.

Я вздохнул и набрал полную горсть фисташек.

— Ну, смотри. Допустим, ты играешь в Большом симфоническом оркестре.

— Допустим, — признал Альберт.

— И перед тобой лежат ноты. И вот дирижер взмахивает палочкой, ты играешь ноту...

— Одну? — иронично уточнил Альберт.

— Не придирайся! — отмахнулся я. — Ты играешь ноту, а оказывается, что не ту.

— Вчера такое — дважды, — поморщился Альберт. — Давление прыгнуло...

— Нет, просто пюпитры перепутаны, — объяснил я. — И ты сыграл не свою ноту, а ту, что должен был сыграть пианист. А пианист сыграл ту, что должен был сыграть барабанщик. А барабанщик — ту, что должен был играть гитарист...

— Ты когда последний раз симфонический оркестр слышал? — хохотнул Альберт. — Знаешь, расскажи-ка лучше в своих терминах, я пойму.

— Ну, смотри, — начал я вторую попытку. — Как ты помнишь, я работаю программистом в Интернет-магазине. И вот у нас с какого-то момента начались сбои. Сперва единичные, а потом сплошным потоком. Заказывает клиент, допустим, учебник математики, а ему присылают член.

Альберт удивленно изогнул бровь:

— Совсем ничего не присылают?

— Если бы! Ему присылают каучуковый член. А тому, кто заказывал каучуковый член, присылают ортопедический матрац.

— В этом есть своя логика, — заметил Альберт, задумчиво помешивая коктейль трубочкой.

— Логики ни малейшей, — перебил я раздраженно. — Тому, кто заказывал матрац, присылают детский велосипед. А тому, кто заказывал детский велосипед, присылают золотые сменные панельки для Айфона.

— Такие бывают? — удивился Альберт.

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

Альберт снова изогнул бровь, задумчиво приложил к виску два длинных пальца и уставился вдаль.

— Такова, в общем, вся наша жизнь, — заключил он философски. — Просим одно, получаем другое.

— Так мне и объяснить начальнику? — усмехнулся я.

— Так и объясни, — кивнул Альберт. — Если он не дурак, то поймет.

Мы помолчали.

— Вот ты мне лучше скажи, как программист, — начал Альберт, — я уже могу где-то скачать «Обитаемый остров», третью часть?

Такого я от Альберта не ожидал.

— А тебе зачем? Я как раз сегодня скачал, посмотрел — и стер. Первый был еще ничего, второй — похуже, а уж третий...

— Дай посмотреть? — жадно попросил Альберт. — Мне очень надо, я музыку для него записывал, только не знаю, взяли или нет...

Я пожал плечами.

— Да у меня и ссылки не сохранилось, совсем случайно наткнулся и скачал.

— Ну вот, — расстроился Альберт, — я тут неделю молился богу Интернета, чтобы дал мне скачать этот фильм, а он — случайно наткнулся, фыркнул и стер... Несправедливость.

В этот момент в зале появился Володька Панфилов. Он был отчасти моим коллегой, когда-то собирал компьютеры, потом стал совладельцем маленькой фирмы и вел бухгалтерию, но фирма влезла в какую-то неприятную историю, директорат разбежался, а под суд попал Панфилов. Спасло его только чудо и наша помощь, и теперь он снова трудился бухгалтером на пяти работах, раздавая долги. Мы поздоровались, и тут же у меня зазвонил мобильник — это была Ксения. Она спрашивала, что я делаю, и какие у меня планы на выходные, но я, как обычно, аккуратно ее отшил.

— Ксения опять? — сочувственно спросил Панфилов, когда я нажал отбой.

— Угу, — кивнул я. — Прямо уж не знаю, что делать. Уже почти открытым текстом посылаю, а она все равно звонит и звонит каждый день.

— Нравишься ты ей, — объяснил прямолинейный Панфилов. — Трахни ее!

— Фу, какие слова... — поморщился интеллигентный Альберт.

— Такая мысль мне даже в голову не приходила, — признался я и поспешил объяснить: — Девица-то она хорошая, но совсем не в моем вкусе.

— Слушайте, прекращайте эти разговоры, вот-вот Максим подойдет, — занервничал Альберт.

— К тому же, у меня Тонька есть, ты знаешь, — закончил я.

— Тонька твоя, во-первых, замужем, — напомнил Панфилов, — во-вторых, в Штатах.

— Ну и что? — вскинулся я. — Мы очень часто видимся!

— Везет тебе, катаешься всюду, — вздохнул Панфилов. — А вот я мечтаю в Ирландию.

— А что мешает? — спросил я неосторожно.

— Денег нет, — объяснил Панфилов. — И очень долго не будет.

Мы дипломатично помолчали — Панфилов был должен каждому из нас, но страдал от этого морально куда больше, чем мы финансово. К счастью, наконец появился Максим.

С видом человека, страдающего от жажды, он подошел к барной стойке, купил рюмку водки и опрокинул ее в рот. После чего подошел к нам и мрачно уселся за стол, бросив перед собой барсетку.

Мы переглянулись, но спрашивать ни о чем не стали.

— Сука, — наконец объяснил Максим. — Ну чем, чем я ей не гожусь? Сколько нужно молить бога, чтоб она меня полюбила? Решился, купил ей кольцо с бриллиантом, приехал, говорю: выходи за меня... А она меня — вежливо за дверь...

Максим замолчал.

— Ксения — девушка с характером, — не очень уверенно сообщил Панфилов. — Думаю, надо продолжать попытки. Слетаешь завтра в свой Омск на матч, вернешься...

— Мне не придется лететь в Омск, — мрачно перебил Максим. — Сегодня выяснилось, что меня не взяли в основной состав. Впрочем, это уже мелочи.

Что тут скажешь? Панфилов шумно вздохнул, Альберт сделал вид, что внимательно рассматривает соломинку от коктейля. К cчастью, в этот момент подошла наша неспешная официантка. Она приняла заказ и затараторила про какую-то акцию паба — мол, надо заполнить анкеты, и победитель розыгрыша поедет в Ирландию. Я-то сразу отмахнулся, но Панфилов насторожился как гончая и заставил нас всех заполнить эти дурацкие листочки. Впрочем, так мы скоротали время, пока несли пиво.

— Ну что! — поднял кружку Максим. — Тост, парни? За прекрасную Ксению?

— Давай-ка, — тактично поправил я, — каждому своё. Вот я — за то, чтобы мне понять глюки Oracle.

— Я за Ирландию! — поддержал Володька Панфилов, — За то, чтоб выиграть поездку в Ирландию!

— За здоровье! — лаконично сообщил Альберт, поднимая кружку.

* * *

Я еще раз вывел на экран статистику. Пустота. Суббота, почти ночь, а я в офисе. Проклятье. Хуже только боссу — он все-таки полетел в Омск извиняться.

— Господи! — сказал я вслух. — Молю тебя! Исполни мою просьбу! Сделай так, чтобы мне в голову пришло понимание, почему глючит наш Oracle!

В этот момент зазвонил мобильник. Звонил Володька Панфилов.

— Мне в голову пришло понимание, — начал он, — почему глючит ваш Oracle. Я тут думал, думал про то, что ты вчера рассказывал...

— Разве я тебе вчера тоже рассказал про Oracle? — удивился я.

— Не меньше трех раз, — вздохнул Панфилов. — Короче, там все просто. У тебя плывут индексы. Когда идет большой поток запросов, индекс заказа просто сдвигается на шаг. Тот, кто заказывал учебники, получает каучуковый член. Кто просил член — получает ортопедический матрац. Кто заказывал матрац — получает детский велосипед. И так далее. Просто сдвиг на одну позицию строго в хронологическом порядке — в порядке регистрации запросов. С точки зрения базы — все просьбы выполнены и все запросы закрыты. А что адресат оказался не тот — про это Oracle не в курсе и знать о том не может. Понимаешь?

— Спасибо, это я и без тебя знаю, — саркастически вздохнул я. — А есть версия, почему это происходит?

— Глюки Oracle, — объяснил Панфилов.

— Да такого просто не может быть! — вскричал я. — Просто физически такого не может быть!

— Ты меня не дослушал, — строго перебил Панфилов. — Этого не может быть при исправной технике. Но если в серверах сбоят плашки памяти... Тут Oracle спотыкается, и индексы плывут. Такие случаи известны и описаны. Если хочешь — найду ссылки...

— Сбои памяти на серверах? — Я хлопнул себя ладонью по лбу. — Вот те раз! Слушай, а ведь похоже! Об этом я не думал... Спасибо!

— Да не за что. Рад, что хоть у тебя все хорошо.

— А у кого плохо? — насторожился я.

— Альберта скорая в больницу увезла ночью. Оказалось — сердце. Врачи говорят, опасности для жизни нет, но лежать придется долго — месяц будут обследовать, потом шунты какие-то ставить... А знаешь, прикол? — Панфилов мрачно усмехнулся. — Ему в больницу звонили на мобильник, сказали, что он выиграл поездку в Ирландию. Он спросил, можно ли перенести выигрыш на меня — нет, нельзя. Вот такая несправедливость.

Мы попрощались.

Я подошел к окну и задумчиво посмотрел вниз. Под окном расстилалась промзона, в которой выстроило офис наше экономное руководство. Внизу, в осенней темноте двора горел одинокий фонарь, и где-то там гулял пьяный — пел и колотил какую-то жестянку. Как бы не мою машину.

— У-мол-я-ю! — пел пьяный. — Дай мне слово! Дай мне право быть с тобой!

— Твоя молитва услышана, берегись, — усмехнулся я. — Только Господь, похоже, совсем не слышит наши просьбы и молитвы...

В тот же миг позвонила Ксения и начала плакать в трубку. Мне пришлось достаточно грубо сказать, что я на работе. Почему-то мне кажется, что она не поверила. А вскоре позвонил Максим. Он был пьян и начал на меня орать, что я подонок, обидел Ксению, и она теперь плачет...

— Господи, — вздохнул я, отложив мобильник. — Неужели у тебя так много наших молитв, что ты тоже путаешь наши индексы?

2009 октябрь, Грелка «Твоя молитва услышана: берегись»

 


    посещений 3107