今週末のフライトなんだが、久しぶりに高い券を買ってしまった、、、、大失敗。



先週の段階で、今週末のフライトは各社満席。


プロテクトとして少し高いが確実に席がとれる航空会社を押さえとして予約しておいた。その発券期限が昨日だった。




我が家の空席予想システム君は、昨日の夜には往復ともに空席が出てきて、最安値の航空券が買えるとおっしゃっていた。




今週は来週からの準備含めて朝から晩まで、夜中まで、ドタバタしている。あまりに忙しいし、発券期日がきたので、何も考えずに発券にまわして、決済した。


で、昨日の夜になり、、、、我が家のシステムからメールが飛んできた。最安値の空席が出てきたことを知らせるメール。





がっでぇ~む!!




1万円以上も高い券を買うてしまった。




大失敗。


我が家のシステムは、そんじょそこらのBtoCのサービスなんか目じゃないくらいに創り込んである。システムの指示に従うんだった、、、、




世間一般の予約システムは現段階での空席情報を維持している。


我が家のシステムは時系列の情報も保持している。過去、10年間に渡る、空席状況の変動をすべてデータベースとしてもっている。


過去のデータ遷移をもとに、曜日、日付、遷移状況から、将来の空席状況を予測というより計算している。



膨大なデータを保持し、膨大な計算をするシステム。



データそのものは単純だが、量が半端なく多い。


構築当初はオラクルを使ったり、MySQLをつかったりしたが、一般のデータベースでは対応できないので、分散対応したデータベースエンジンを自前で設計、開発した。


インデックスのお化けのようなデータベースであり、それを複数のハードウェアとハードディスクに分散かつ可容性を担保している。



絶対に障害をおこさないように二重三重の保護を入れてある。


時系列データというのは途中のデータが抜けてしまった場合、正しい計算ができなくなってしまう。ゆえにどんなことがあってもシステムが停止するこは許されない。



昔、この話を某ベンダーにしたら、「金融機関並のシステムですね」と言われたことがある。


一応、これでもエンジニアの端くれですから、、、、