2011-07-07 10 views
2

私はpython/cherrypyを使って移植可能なWebアプリケーションを開発しています。これは、単にフォルダに展開して何かをインストールする必要がないのが理想です。これを防ぐ可能性のあるものの1つは、データベースのバックエンドです。ほとんどの同様のセットアップはSQLiteを使用しているようですが、サーバーに30人まで同時に接続でき、書き込み専用ロックが大きな影響を与えるのではないかと心配しています。ポータブル/スタンドアロンWebアプリケーションのための潜在的なデータベースシステム?

私の質問:

  1. どのようにひどく同時に、書き込もうとする人々の数と、読み取ろうとする30個の接続までの取り扱いと闘争のSQLiteのだろうか?データベースから読み込もうとしている人が挿入される待ち時間はどのくらいありますか?
  2. 誰にも代替案がありますか?私は私のプロジェクトの商業的な願望を持っているので、MySQLを避けたいと思いますが、必要ならばそのルートを下ります。私は多分移植性をあきらめ、MySQLにコミットする前にPostgreSQLをインストールする必要があります。
  3. 帯域幅に問題がなければ、1台のデスクトップに多くの接続を提供するのはもっともですか?

私は何か明白なことを尋ねている場合、または以前に回答されている場合(私はここでオンラインで検索し、決定的なものを見たことがない) 。 -repole


EDIT:ところで、後でこの質問時につまずく人のためのいくつかの有用な議論here

+0

、なぜあなたはまたのNoSQLデータベースについて考えていませんか? – Cinquo

+0

ポータブルはどのようにポータブルですか? –

+0

@Cinquo - 私はNoSQLデータベースをほとんど理解していません。私は現在それらを探しています。私のデータベースが価値のあることは、関係に非常に依存することであるため、私の現在のデザインは、ほぼすべてのテーブルに外部キーを備えています。私が早くNoSQLを読んでいるところから、それは理想的な解決策ではないかもしれません。 @Ignacio Vazquez-Abrams - 誰かが自分のアプリケーションを含むフォルダを別のコンピュータにコピーして貼り付け、何も変更されていないかのように使用できるようにしたいと思います。私はこれを可能にするいくつかのWebアプリケーションを見てきました(SABnzbd、SickBeard、Subsonicにはいくつか挙げられます)。 – repole

答えて

2

は、そこに彼らはどのように良いか、安定した確実ではない、いくつかの純粋なPythonのデータベースがあります。

あなたがいる場合流通のためのライセンスを心配してから、stをチェックしてくださいApacheライセンス付きのuff。現在ホストされている上位層のデータベースプロジェクトの1つがCouchDBです。私が見ている主な問題は、Pythonモジュールを含むだけの簡単な配布ではないということです。

ウェブアプリケーションでアーキテクチャがどのようなものかはっきりしないが、複数のSqliteデータベースを使用してロックの問題を回避することができます。

別のオプションは、バークレーDBである:ユースケースによってはhttp://docs.python.org/library/bsddb.html

+0

上記の私のコメントで述べたように、私はNoSQLソリューションに精通していません。確かに、CouchDB(およびその他のNoSQLソリューション)を検討します。 複数のSQLiteデータベースが動作するかどうかわかりませんが、本質的に各ユーザーごとに別々のデータベースを作成することができますが、それぞれの別々のファイル間で時々情報を交換することはありますが、思う。 – repole

+0

別の非ネットワークベースのデータベースはBerkeley DB(同じデータベースにアクセスする数千の同時スレッドをサポートすることができます)です:http://en.wikipedia.org/wiki/Berkeley_DB – pokstad

+0

答えに純粋なpythonデータベースを追加しました。パフォーマンスが問題ではない場合(30人のユーザーは、使用状況によってはそうではないように見えます)、これらのユーザーが実行する可能性があります。 – pokstad

関連する問題