2009-07-02 5 views
5

NoSQL(http://nosql.eventbrite.com/)についての読者は、伝統的なリレーショナルデータベースの廃棄を促して、アプリケーションに適したカスタムのストレージシステムを奨励することを目指しています。独自のストレージシステムの作成:どこから始めるのですか?

学習用ペットプロジェクトとして小さな個人用ストレージシステム(.netフレームワーク用)を作成しようとしているというアイデアに興味を持ち、提案や有用なリンクは何ですか?どこから始めれば?どのようにハードドライブ上のものとメモリ内のものとのバランスを取るか?

これは、データベース内部の仕事の内部を学ぶ興味深い機会になると思いますが、私は実際にはその最も基本的な理論が欠けています。おかげさまで

答えて

3

先に進む前に、リレーショナルデータベース内にBLOBオブジェクトとしてXMLファイルを格納するSQL Serverの機能を調べることをおすすめします。おそらく、ストレージシステムは「最初から」である必要はありません。これは、SQLのXMLストレージ機能の上にハイブリッドとなる可能性があります。

2

それはすべてあなたが構築しているアプリケーションに依存します。

たとえば、アプリが数百個のオブジェクトを保持し、いくつかの方法でそれらを切り取る必要があり、しばらくの間オブジェクトが壊れるかどうかは気にしません。 LINQを使用してリストを照会し、しばらくのうちにリストをディスクに永続させることができます。

魔法のあるものが必要な場合はACIDという性質があります。

トランザクションをサポートするものが必要な場合は、その処理に膨大な時間がかかります。

ANSI-SQLを理解する必要がある場合は、多くの作業が必要なパーサーを作成する必要があります。

データベースの作成に着手する前に、多くのデータベース理論、get a bookを理解しておく必要があります。

+0

最初の3つは多くの作業ではありません。 prevaylerを参照してください。 –

3

NoSQLの動きは、関係モデルが本当に破損するサイズで、巨大規模のシステムを対象としています。独自のストレージの作成を開始する前に、CSの最もよく理解され、よく理解されているドメインの1つであるリレーショナルモデルの理解を強くお勧めします。​​3210で始まり、この本はすべてについて説明します古典的なRDBMSの実装について知っておくべきです。次のリストにはReadings in Database Systemsがあります。これは最も関連性の高い科学論文と記事の集まりです。

1

Prevaylerの人たちの仕事を見てみましょう。彼らは、ラムにデータを収めることができれば、ほとんどの使用シナリオはRDBMSなしではるかに優れたパフォーマンスを示し、コードの書き方はずっと少なくなるという観測をしています。一方、Google、Amazonのユーザーは、大量のデータの場合、RDBMSを使用したくないことを示しています。私たちが64ビットOSに移行し、RAMを多く搭載しているため、RDBMSはロックとハードの間にあります。

1

これは遅れていますが、 dboとそのエンジンがどのように動作するかを事前に知っていても、これを行う前に考慮する必要があるいくつかの基本的なシナリオがあります。 1.重量物保管用ですか? もしそうなら、ページを微調整し、読み込みと読み込みに時間がかかるファイルフォーマットで作業する必要があります。

  1. 多くの接続を処理する必要がありますか? このページもまた重要ですが、サービスのエンジンを作成する必要があるかもしれません。

  2. アプリケーションの使用またはウェブの使用ですか? ウェブの場合は、実際にはMySQLまたはMSSQLを使用してください。

データベースの目的を無効にするため、インラインメモリをdbストレージとして使用しないでください。そのデータベースを作成して、メモリを解放して、そのメモリをシステムに戻す時間をかけてテーブルオブジェクトを解放できるようにしました。軽量用の場合は、一度に大量のデータを保存または変更しないため、単純なXML /カスタムファイルデータベースシステムを作成します。それよりも優れているのは、その目的に非常に適したSQLiteを使用することです。オープンソースや商用のためのものであれば、誰かが高いメモリ要件を満たすように強制しないため、インラインメモリを使用しないでください。メモリコストがかかり、一部の人々はまだ32ビットOSを実行しています。

関連する問題