0

ドキュメント編集 Web サービスを作成しています。このサービスでは、ドキュメントを Web サイト経由で編集したり、ローカルで git 経由でプッシュしたりできます。ドキュメントを個別のドキュメントとしてファイル システムに保存するか、データベースに保存するかを決定しようとしています。私が疑問に思っている点は次のとおりです。

  1. それらがデータベースにある場合、gitがドキュメントを表示する方法はありますか?
  2. ファイルシステムを使用すると、オーバーヘッドはどれくらい高くなりますか? OSはもっと多くの仕事をしていると思います。どうすればこれをいくらか緩和できますか? たとえば、Web エディターは自動保存します。書き込みを最小限に抑えるために、保存データをキャッシュする最良の方法は何でしょうか?
  3. 一方のスケールが他方よりも有意に優れているか、または劣っていますか? すべてが計画通りに進めば、これは何千ものドキュメントがアクセスされ、編集されるサービスになります。
4

2 に答える 2

0
  1. ドキュメントがデータベースに入ると、gitはドキュメントを直接見ることができません。gitはデータベースのバッキングストレージファイルを認識しますが、そこでの変更をファイルへの変更に関連付ける方法はありません。

  2. Carlosが回答したように、データベースを使用するオーバーヘッドは、ファイルシステムを使用するよりも高くなります。データベースはトランザクション用に最適化されており、メモリ内で実行されますが、ファイルにアクセスする必要があります。サブドキュメントレベルでデータベーストランザクションを実行するようにアプリケーションをプログラムしない限り(たとえば、変更された行のみを変更する)、データベースによるパフォーマンスの向上はありません。最新のファイルシステムのほとんどはキャッシュを実行し、バッキングストレージに移動するのではなく、RAMに格納される方法で「書き込み」を行うことができます。アプリケーションで「自動保存」の粒度を管理する必要があります(変更ごと?30秒ごと?5分?)が、実際には、データベースで同じ粒度で実行すると、同じ量のトラフィックが発生します。バッキングストア。

  3. 「ファイルシステムはデータベースと同様に拡張可能ですか」と質問するつもりだったと思いますか?:)ユーザーごとにファイルを整理する方法があり、特定のユーザーがアクセス/変更できるはずのファイル(実行可能なimo)にしかアクセスできないというセキュリティの問題を理解している場合、ファイルシステムは実行可能である。

于 2012-04-18T06:17:39.953 に答える
0

結局のところ、DB はデータをファイルシステムに保存するため、ファイルシステムは常に DB よりも高速です。

Git は github で証明されているように、それ自体で非常に効率的です。

結局のところ、Linus は何かを知っているはずです... ;)

于 2012-04-16T08:40:57.043 に答える