実際には次のような話でした。
ある企業Nでは、安価で信頼性の高いデータストレージおよび処理システムを開発する必要がありました。 データについて簡単に説明します。 クライアントから情報を受信する必要があります(税務申告などの情報は見逃します)。 多くの場合、この情報を検索する必要があり、さらに多くの場合、過去数時間にわたって入力されたデータを変更する必要がありました。 情報の損失は、いかなる場合でも受け入れられません。 火災や地震の場合を含む。 以前は、これはすべて紙で行われ、大きなフォルダーに保存されていました。 フォルダの分析のために、無意味で無慈悲な人々の部門全体がありました。
これはすべて、自動化されたベースに転送されました。 最も興味深いのは、開発にかなりの費用が支払われたが、ハードウェアにお金をまったく割り当てなかったことです。既存のハードウェアでこれをすべて上げるように依頼しました。 車両の艦隊は、道徳的に死んだ十数体のモンスターで構成されており、データベースサーバーとバックアップサーバーを上げる必要があったのは、それらのモンスターでした。
マシンは主にP3、128メガバイト、16メガバイトのビデオ、10ギガバイトのネジでした。 控えめに言っても、これは標準サーバーではありません。
各エントリはバックアップに提供されました。つまり、データベースサーバーとバックアップサーバーをミラーリングします。 最初のテスト中のデータの量とマシンの速度を考えると、データベースからサンプリングするとき、これは不快なほど長い結果を示しました。 ちなみに、ベース自体は完全に正規化されコンパクトであるため、作業速度に大きく貢献しませんでした。
データベース内のレコードの編集は非常に頻繁であったため、これは不便をもたらしました。
ブレインストーミングの後、それはいくぶん倒錯することが決定されました。
合計の合計:
サーバーA.システムのメイン作業サーバーは、当日のベースを格納し、すべての基本的なロジックを実行します。
サーバーB。2番目のサーバーは、現在の日をカウントせずに、データベースを常に保存します。 真夜中に、AからのデータがBに注がれました。ここに、期間に関するレポート用のスクリプトがあります。
サーバーC.バックアップサーバー。 深夜にオーバーフローした後、Bはバックアップし、古いバックアップを消去しました。 そして彼は常にAをミラーリングしました。
合計:サーバーのいずれかが失われた場合、すべての情報がありました。 つまり、A + BまたはCです。
サーバーCは、緊急時に備えて個別に解決されました(顧客は依然として妄想的です)
すべてのサーバーに、Linux、Apache、およびマッスルがありました。 メインコードはPHPで、バックアップはPythonで記述されています。
火災も発生しませんでした、地震も。 2年目はすべてうまくいきます。 後に、「赤いボタン」が追加されました-あなた自身の危険で働く能力と車の1つが失われた場合のリスク。 役に立たないようです)
これは自転車または過度のパラノイアだと思いますが、すべてが機能し、すべてのクラッシュテストに合格し、全員が満足しました。
%username%ですが、このシステムをどのように改善しますか?
UPD:転送するブログをアドバイスします。