夏の訪れと蝉の鳴き声とともに6月も半ばを過ぎようとしており、予定通りGreptimeDB v0.3が登場しました。
4 月中旬にリリースされたv0.2 バージョンでは、私たちの主な目標は、単一マシン、PromQL の互換性、書き込みパフォーマンスの最適化などに焦点を当てています。v0.2 のスタンドアロン バージョンにはより優れた基盤があり、v0.3 バージョンでは、キーワードは「分散」です。つまり、すべての機能やアップデートが分散バージョンで提供されます (分散プロビジョニング、さらにスケーラビリティも向上) 、スタンドアロン バージョンにはない高可用性とフォールト トレランス)、要約すると、主な側面は次のとおりです。
- 分散パフォーマンスの最適化: リージョンレベルの高可用性を実現し、迅速な災害復旧スイッチング スケジューリングを提供します。分散書き込みパフォーマンスも最適化されました。
- クエリ機能の向上: 分散クエリの最適化、重要な SQL クエリ (TopK など) の改善、クエリを高速化するためのデータ圧縮戦略の最適化のサポートが含まれます。
- 安定性の強化: システムの堅牢性と信頼性を高めるために、プロシージャ フレームワークが導入され、複数ステップの操作の最終的な一貫性が保証されます。同時に、書き込みの安定性を向上させるために、よりきめの細かいハイブリッドフラッシュ戦略が提供され、システムの可観測性を向上させるためにパフォーマンス指標の測定ポイントが追加され、Tokio コンソールなどのツールがサポートされます。
0.2 から 0.3 まで、1 か月半で、GreptimeDB プロジェクトだけでも222 のPR をマージし、674 件のファイル変更が含まれ、その中には120 件以上の機能最適化、50 件以上の修正、20 件以上のリファクタリングが含まれています。これらの数字の背後には27人の人々がいます。コミュニティ貢献者の努力。コミュニティとチームの尽力に感謝します。次に、v0.3 のコア コンテンツのレビューに焦点を当てます。
GreptimeDB v0.3 のキーの内容
リージョンレベルの高可用性を実現
分散システムでは、高可用性を確保するために、リージョン レベルの災害復旧が必要です。GreptimeDB は、バージョン v0.3 でこの機能をサポートしています。これは、分散型高可用性を実現するための重要なマイルストーンです。フロントエンド、メタの変換が関与するため、 Datanode や Datanode などのさまざまなコンポーネントは、幅広い影響を及ぼします。Issue #1126を通じて実装プロセス全体を追跡します。これに興味がある場合は、注目してください。もちろん、すべてはRFC: リージョン フォールト トレランスから始まります。
重要な SQL クエリ シナリオの最適化
GreptimeDB v0.3の開発では、これまでのビジネス経験に基づき、主にプルーニングの考え方を用いて、TopKなどの最もよく使われるクエリシナリオの最適化に重点を置き、全体の作業を複数に分割しました。サブタスクと問題番号 1286の追跡に合格しました。
分散クエリの最適化、一般的な演算子のプッシュダウンのサポート
データベースの分析能力を向上させるために、誰かが長年にわたって準データ処理手法を提案してきました。これは、ストレージ層に一定量の計算能力を与え、データセンターに戻る前にいくつかの簡単な計算をデータセンターで完了できるようにするものです。これにより、大量の元データの送信を回避できます。演算子のプッシュダウンが最も一般的な実装方法です。GreptimeDB v0.3 は、分散クエリを最適化するために、PromQL のほとんどの演算子と述語のプッシュダウンをサポートしています。このような重要な機能については、事前にRFC: Distributed Plannerを通じて実装計画についても議論しました。具体的な実装についてはPR#1660を参照してください。 (Greptime 開発ルーチン: この PR には 1,000 行を超えるコード修正が必要であり、これは非常に困難です)社内推奨ではありませんが、作者が赤い封筒を配ってくれるので、皆さん渋々許しており、むしろ楽しみにしています)
Procedure フレームワークは、複数ステップの操作の最終的な一貫性を保証するために導入されています。
システムの堅牢性と信頼性を高めるために、Apache HBase の ProcedureV2 フレームワークに触発され、GreptimeDB は Rust を使用して、マルチステップ操作の最終的な一貫性を保証するプロシージャ フレームワークを作成しました。これは、RFC: Procedure Frameworkから始まる別のストーリーです。超巨大なIssue#286が追跡されていますが、v0.3 で終わりではなく、ストーリーは続きます。(ちなみに、RFC が退屈すぎると思われる場合は、 Procedure が何であるかを理解するために大腸の 9 回転を参照することもできます)
パフォーマンス指標をさらに追加して、システムの可観測性を向上させます。
可観測性システムの下で信頼性の高いストレージ ソリューションとして、GreptimeDB 自体の可観測性も優れている必要があります。v0.3 では、システムの動作を検出するためにさらに多くのメトリック インジケーターが追加されています。この部分の内容は、コンポーネントのすべてをカバーしています。PR リストに追加します。
その他の詳細の最適化:
- 外部データのクエリ、CSV/JSON/Parquet 形式ファイルのインポートとエクスポートをサポート
- サポート
TQL EXPLAIN
/TQL ANALYZE
句、PromQL クエリ パフォーマンスの分析 - PromQL の互換性の向上
- クラスターモードでのTokioコンソールの有効化をサポート
- 等
全体として、v0.3 は最初に試用できる分散バージョンとなり、リージョン単位のサービスの高可用性 (高いデータ信頼性は後続のバージョンで完成する予定) と、主要なシナリオでの分散クエリ (PromQL クエリの方向に重点を置いています) を備えています。書き込みパフォーマンスは、主流の同様のデータベースのパフォーマンス基準に達するか、わずかに超えています。
アップグレードに関する注意事項
0.2 からアップグレードする場合は、次の点に特に注意する必要があります。
- ローカル ストレージを使用するには、構成を変更する必要があります
data_dir
。このオプションは廃止されました。最初に設定した場合は、指定したデータ ルート ディレクトリを置き換えるためにdata_dir = "/greptimedb/data"
変更する必要があります。data_home = "/greptimedb"
data_home
COPY
アップグレードする前に、コマンドを使用してデータをバックアップすることをお勧めします。
GreptimeDB v0.4 プラン
0.3からはディストリビューションを中心に研究開発を進め、月次で中長期計画を策定してきましたが、0.4では既存機能の性能向上と改善をテーマとし、以下の機能に注力していきます。
- Create Table、Drop Table などの分散 DDL ステートメントのサポートは、プロシージャ フレームワークに接続されており、分散マルチステップ操作が正しく実行されるようになります。
- 非同期圧縮とインデックス作成によりクエリのパフォーマンスが向上します。
- バージョン 0.3 では、PromQL のほとんどの演算子と述語のプッシュダウンをサポートしていましたが、バージョン 0.4 では、SQL クエリのパフォーマンスを向上させるために、SQL の一般的な演算子のプッシュダウンに焦点を当てます。
- テーブル エンジンとストレージ エンジンの最適化に重点を置き、読み取りおよび書き込みのパフォーマンスを向上させ、リソース消費を削減します。
コミュニティのおかげで
親愛なるコミュニティとすべての貢献者に感謝します。このプロジェクトが成長を続け、新たな高みに達することができるのは、皆さんのあらゆる提案、バグ修正、コードの貢献のおかげです。
グレプタイムについて
Greptime Greptime Technology は 2022 年に設立され、現在、時系列データベース GreptimeDB と GreptimeCloud という 2 つの製品の改善と構築を行っています。
GreptimeDB は、Rust 言語で書かれた時系列データベースです。分散型、オープンソース、クラウド ネイティブで、互換性が高く、企業が時系列データをリアルタイムで読み取り、書き込み、処理、分析するのに役立ち、長期的なデータのコストを削減します。ストレージ。
GreptimeCloud は、オープンソースの GreptimeDB に基づいて、フルマネージド DBaaS だけでなく、可観測性、モノのインターネット、その他の分野と組み合わせたアプリケーション製品をユーザーに提供します。クラウドを使用してソフトウェアとサービスを提供すると、迅速なセルフサービスのプロビジョニングと配信、標準化された運用とメンテナンスのサポート、およびリソースの柔軟性の向上が実現します。GreptimeCloud は内部テストのために正式にオープンしました。最新の開発については、公式アカウントまたは公式 Web サイトをフォローしてください。
公式サイト:https://greptime.com/
パブリックアカウント: GreptimeDB
GitHub: https://github.com/GreptimeTeam/greptimedb
ドキュメント: https://docs.greptime.com/
Twitter: https://twitter.com/Greptime
スラック: https://greptime.com/slack
LinkedIn: https://www.linkedin.com/company/greptime/
オープンソース フレームワーク NanUI の作者がスチールの販売に切り替えたため、プロジェクトは中断されました。Apple App Store の無料リストのナンバー 1 はポルノ ソフトウェア TypeScript です。人気が出てきたばかりなのに、なぜ大手はそれを放棄し始めるのでしょうか。 ? TIOBE 10月リスト:Javaが最大の下落、C#はJavaに迫る Rust 1.73.0リリース AIガールフレンドにイギリス女王暗殺を勧められた男性に懲役9年の実刑判決 Qt 6.6正式リリース ロイター:RISC-Vテクノロジーが中米テクノロジー戦争の鍵となる 新たな戦場 RISC-V: 単一の企業や国に支配されない レノボ、Android PC の発売を計画