多数のレコードまたはファイル (~5,000 万、~100GB のアンパック、~20MB のパック) 用の単純なバージョン管理システムを探しています。ファイルはそれぞれわずか数キロバイトで、一意の ID を持っているため、フラットな構造 (テーブル、ディレクトリなど) に格納されているかどうかは気にしません。平均して、各レコードは 1 か月に 1 回変更されますが、ほとんどの変更の差分は 1 キロバイト未満であるため、バージョンを圧縮するのは簡単です。ただし、バージョンごとに 1 つのエントリを持つ単純なデータベースでは、すぐに大きくなりすぎてしまいます。次の操作が必要です。
- 基本的な CRUD 操作: 作成、読み取り、更新、削除
- 最近の変更のクイック リスト
- 特定のレコードの最近の変更のクイック リスト
- 特定の期間の変更を照会する
- 特定のユーザーによる変更のクエリ (各編集はいくつかのユーザー ID に関連付けられ、オプションでコメントとしてコミット メッセージを持ちます)
- 書き込み操作の場合、不正な形式のレコードを検証して拒否するためのコミット フックが必要です。
簡単に言えば、簡単な記録やファイルのための Wiki のようなソフトウェアを探しています。
私は可能な解決策について考えました:
ファイルをバージョン管理システムに配置します。これにより、レプリケーションと多くの利用可能なアクセス ツールが得られるため、これが私の推奨ソリューションです。しかし、git のような分散システムにはデータ量が多すぎます。成功した同様のタスクに Subversion を使用している人はいますか?
データベースまたはファイル システムに独自のバージョン管理を実装します。おそらく、圧縮されたレコードと差分のみを保存する必要があり、より多くの作業と何かを学ぶ必要があります。楽しみのためだけなら、これが私の好ましい解決策です。
バージョン管理ファイル システムを使用します。これにより、セットアップ、複製、およびアクセスがより困難になります。おそらく、ファイル システムの上に独自のアクセス API を実装する必要があるでしょう。
バージョン管理データベース システムを使用します。いくつか提案できますか?
バージョニングを備えた他の既存のデータ ストアを使用する(MediaWiki?、Amazon Cloud Drive?、...)
明らかに多くのパスがあります。同様の、または大量のデータに対して成功した他の人が使用したパスはどれですか?