現在、Webプロジェクトの設計に取り組んでおり、そのためにJavaスタックを使用する必要があります。Javaスタック - ORMとデータベースのスケーラビリティ
限られた負荷を考慮して、最初は単一のデータベース(私たちの場合はPostgreSQL)を使うことができました。この場合は、we knowオブジェクト/リレーショナルの問題は常に最も時間とコストのかかる問題の1つなので、HibernateのようなORMは良い決定になります。これがORMツールを使用する理由のすべてです。安価で時間を節約できます。
しかし、この問題は、後でデータベース層でシャーディングとマスター/スレーブ(読み取り/書き込み)のレプリケーションが必要になることです。これはORMにとっては本当に問題です(少なくとも私が知る限り)。
私が間違っていて、私たちが使用できるJavaスタック用の良いORMツールがある場合は、私を修正してください。
私はこの問題を解決する可能性のあるHibernate Shardsというプロジェクトがあったと知っていますが、2007年にはベータ版と開発の開発が終わったことはありません。分散型のレベル2キャッシュを定期的にHibernateの使用
、我々は、ビジネスロジックとノード
の数を使用することができますが、これはデータベースのスケーラビリティの問題を解決することはできませんし、我々はまだアプリケーションのためにのみ1つのデータベースを使用することができます。
ボトムライン:私たちのケース(Javaスタック)に適したオープンソース/フリーORMがありますか、それともデータベースのスケーラビリティなどの利点を後で提供するために、かなりのコストをかけて自分で実装する必要があります。
ありがとうございます!
水平または垂直シャーディングを検討していますか? –
ボリス、水平シャーディングを検討しています。率直に言って、私は「垂直シャーディング」という言葉を知らないのですが、垂直のテーブル分割を意味しますか? –
これで、HibernateのMultiTenantセッションファクトを使用できるはずです。各データベースに接続ソースを割り当ててから、どちらを使用するかを選択できます。 –