2012-02-11 9 views
1

私が知る限り、多くのnosqlストアは、HBase、CassandraなどのJavaで書かれています。しかし、私の経験によれば、多くの高性能サーバープログラムはc/C++(Apache、Opensipsなど)で書かれていますが、そのようなJava実装プログラムはプロダクションでうまく動作しますか? Javaのスケールで実装されたシステムを維持し、分散しますか?なぜ多くのnosqlストアがJavaで書かれていますか?

私は、Javaでコードを書いたほうが生産性が高いと確信していますが、実装スピードは大きな企業では問題になりません。これは一度実装してから数回のリファクタリングを行うためです。長期的な見通しから時間のコストは高くない。

+3

「実現スピードは大企業では問題ではありません...」うわー、私はこの10年ほど前に別の宇宙で働いたに違いありません。だから私はこれがYMMVのことだと思う;-) –

+0

-1私はこのような幅広い質問への答えは、NoSqlの文脈に限定さえ、このサイトのための良いフィット感だとは思わない – Crowie

答えて

8

右の[関連]セクションの最初のリンク(Why was Cassandra written in Java)に従うと、回答が見つかります。

短い要約:

  • それは独立したプラットフォームです。
  • Javaコードは、時には速く(下記参照)
  • Javaが最初からサポートをスレッドに建てられた、必ずしもC/C++よりもはるかに遅いではありません - 任意のプラットフォーム
  • セキュリティ/セーフティ(無バッファオーバーフローのために、コアダンプ、...)

EDITは、 "C/C++は、定義のJavaよりも高速である" 神話はまさにそれです - 神話。カウンターの例についてはthis questionをご覧ください。

+3

+1貧しい質問。 –

+0

実際、CassandraはなぜJavaで書かれたのですか?記事を読んだことがありますが、私の経験から、低レベルのネットワーキングプログラム(例えば、Linuxシステムの多くのネットワーキングユーティリティ)がC言語で書かれています。パフォーマンスの理由よりも互換性の理由? ところで、C++/Java exec speed comparasionについての参考記事は非常に便利です! – realjin

+3

C/C++には利点があり、OSレベルのプログラミングのような低レベルのシステムでは、良い理由から他のものを使いたくないのです。これは私の生涯では変わらないでしょう。しかし、アプリケーションコードは、あまり鋭いエッジではない言語で書かれたほうがよい。これらの極端の間には、両方の言語スタイルが支配的に戦う大きなグレーフィールドがあります。ヒント:_THAT_データベースシステム(e.a.)は、Javaで書かれています。成功したことは、言語自体と完全な実行時インフラストラクチャーの両方が非常に成熟していることを示す強い兆候です。 –

関連する問題