<

SNSのアーカイブ

SNSのアーカイブ

…を気合で1GB以下に収めるプロジェクト

  • FullScratch

    概要

    非公開プロジェクト

    • 画像
      • クラウドストレージに全部突っ込んだ(これで残り1GB)
    • DBをどうするか
      • デカイ,遅い
      • まぁー無難にB木でgzできるようなプラグインを使…
      • 仕様で出来ない(バイナリをサーバーに置けない)
        • しゃーない自分でファイル構造作るか
        • 記事データ
          • 数十万件
          • 先頭からid*4bytesの位置にファイル内ポインタ
          • ポインタ位置にgzデータ、中身\0区切り
        • 画像とURLの対応リスト
          • 二分木インデックスでファイル内ポインタ
          • ポインタ位置から\0まで
    • 高速に記事を全文検索したい
      • 無難にプラグイン…はやはり出来ない
      • しゃーない(ry
        • 形態素解析挟んだN-Gramインデックスを作成
        • 圧縮した記事データに迫るデータサイズ,ギリギリ入った
    • ログインはslack認証を利用
      • 特定のチームのアカウントでログインすることを条件にした
      • パスワード管理しなくても良いので安全
    • せっかくなのでgithubのヒートマップみたいな実装をした

    雑感

    独自ファイル構造への変換はnode、サイト側はphp
    形態素解析はライブラリ利用して変換(まぁ、サイト側に実装はないので実質全手書き)
    こんなことせずvps使うべき(コスト削減でこうなった)