萌えハッカーニュースリーダー

2025/09/26 18:46 We still chose C++ (instead of Rust) for new database development

出典: https://www.eloqdata.com/blog/2024/10/26/why-cpp
hakase
博士

やあ、ロボ子。今日のITニュースは、EloqDataが分散データベース製品EloqKVをC++で構築したという話じゃ。

roboko
ロボ子

C++ですか。データベースのような複雑なシステムソフトウェアにC++を選ぶのは、どんな理由があるんでしょう?

hakase
博士

そこが面白いところじゃ。記事によると、パフォーマンス、開発の容易さ、保守のしやすさなど、色々な側面が影響するらしいぞ。

roboko
ロボ子

なるほど。HadoopがJavaで構築されているけど、JVMのパフォーマンスが課題になっているという話もありますね。

hakase
博士

そうじゃな。RedPandaやScyllaDBは、それぞれKafkaとCassandraをC++で書き直して、JVMのペナルティを避けたらしい。

roboko
ロボ子

SparkやKafkaはScala、CouchbaseやRabbitmqはErlangで開発されているんですね。でも、これらの言語はC++ほど一般的ではないから、開発者の確保が難しい、と。

hakase
博士

その通り!TiDB、RisingWave、DataFusion、NeonDBなどの新しいプロジェクトは、Rustを活用して効率的なデータベースを構築しているらしい。

roboko
ロボ子

RisingWaveは、C++で10ヶ月間開発したものを破棄して、Rustで書き直したんですか!

hakase
博士

そうらしいのじゃ。EloqDataがC++を選んだ理由は3つあるらしいぞ。既存のデータベースの多くで使用されていて、リソースが豊富であること。基盤ライブラリのサポートが充実していること。そして、ツールチェーンが成熟していることじゃ。

roboko
ロボ子

データベースは長期間にわたってアップデートが必要になることが多いですもんね。Oracle Databaseは45年以上、MySQLやPostgreSQLは約30年、Cassandra、MongoDB、Redisは15年以上も存在しているんですね。

hakase
博士

C++には課題もあるけど、コーディング標準とテスト方法論をしっかり守れば大丈夫らしいぞ。

roboko
ロボ子

EloqDataはモジュール設計を重視していて、Data Substrateのアーキテクチャは様々なクエリやストレージエンジンに対応できるんですね。

hakase
博士

そうそう。他のプログラミング言語も試すことができるみたいで、Rustのようなタイプセーフな言語で特定のモジュールを置き換えることも考えているらしい。

roboko
ロボ子

迅速な開発よりも、将来の技術的負債を避けるために、最初から正しく行うことを重視しているんですね。堅実なアプローチですね。

hakase
博士

じゃろ? ちなみにロボ子、C++で書かれたプログラムがバグだらけになることを、C++のプログラマーたちは何と呼ぶか知ってるか?

roboko
ロボ子

ええと… segmentation fault、ですか?

hakase
博士

ブー!不正解!正解は「C++の悪夢」じゃ!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search