2011-02-02 9 views
1

私はOracleデータベースにフィードしたいライブオーディオを持っています。次に、クライアントがオーディオに接続し、ライブフィードの任意のポイントを聴くことができるようにしたいと思います。現在私はコミットされたBLOBからオーディオを再生するようにセットアップしましたが、生のシーク可能なデータは問題ありません。Oracleデータのバッファリング

問題は、生データを即座に利用可能な宛先/ソースにどのくらい正確にストリームするのですか?アドバンスト・キューの使用について考えましたが、それはランダムなシークの問題があります。私はテーブルを作成し、生のチャックを入れるだけですが、かなり高価で汚れているようです。

マルチコンシューマBLOBやマルチコンシューマバッファを作成する方法はありますか?

答えて

1

データベースにオーディオを保存しないでください。オーディオをファイルシステム上のファイルに入れ、そのファイルへのポインタをDBに格納します。 「マルチコンシューマBLOB」は単なるファイルシステムファイルです。

+0

BFileは完全に機能しました。ソースは、BFile列を持つレコードを作成してから、OSを介してそのファイルに積極的に書き込み、そのファイルから読み込むソースをたくさん持つことができます。 – Will

0

これは、RDBMSの非友好的な概念です。一般に、データがデータベースに挿入/更新されている間は、他のセッションで使用することはできません(または更新されたデータに関しては、変更がコミットされるまで更新前のデータが返されます)。

オーディオが完了し、データベースにコミットすると、この問題は非常に異なります。

私は、ライブオーディオをストリーミングするための専用アプリケーションを探し、データベースをそのストリームの別のサブスクライバとしてデータベースに記録します。

+0

私は実際にこれを考え、私の最初のルートでした。オラクルはWindows Mediaサービスへのプラグインを実際に用意しています。私たちはプラグインで多くの問題に遭遇しましたが、追加の失敗点については満足していませんでした。 bfilesは非トランザクションなので、上記のbfilesの答えは完全に機能しました。 – Will

関連する問題