1

私は Vertica を初めて使用し、多くの資料を読んでいますが、まだあまり実践していません。これまで読んだことから、クエリに実際に応答する読み取り専用ストア (ROS) は完全にディスクから実行され、メイン メモリをまったく使用しないことがわかりました。これは、Vertica にはクエリ キャッシングの概念がないということですか? これは「シェアード ナッシング」アーキテクチャによるものですか?

上記を考慮して、Vertica はクエリに応答するために実際に GB のメモリを必要としないということですか? 書き込み専用ストア (WOS) は主にメモリから動作するため、WOS にはメモリが必要になることはわかっています。しかし、OLAP の使用法 (書き込みと比較して読み取りがより複雑な場合) から考えると、Vertica はメモリを使いやすいように見えます。

私の理解は正しいですか?

4

4 に答える 4

2

Vertica のパフォーマンスはメモリの影響を受けます。

(たとえば) 2 つの大きなテーブルを結合しようとすると、メモリ内でハッシュ/マージ/何でも結合しようとします。データが収まらない場合、「ディスクにこぼれる」ため、メモリ内にあるよりもはるかに処理が遅くなります。

Vertica は機能しますが、十分なメモリがない場合、パフォーマンスに悪影響を及ぼします。(十分に意図的にあいまいなままにしておきます)

于 2012-07-30T15:38:14.800 に答える
0

RE:Nija-実際、MergeJoinやその他のソートベースの最適化は比較的少ないメモリを使用します。

WOSは、書き込み最適化ストレージ内の複数のロードからタプルを収集し、それらをより大きなバッチでソート/書き込みすることにより、多くの小さなロードを実行するコストを償却するために使用されます。通常、クエリのパフォーマンスは向上しません。

于 2012-07-31T16:12:41.110 に答える
0

In addition to the Stephen comment, using the WOS collecting data, will impeove the insert performance, but if you will insert more than 100MB at once, is better to bypass the WOS and insert directly to ROS, in this way Vertica is not forced to move the data using tuples, and it will avoid other sub optimal data distribution situation.

于 2012-08-01T06:36:38.760 に答える
0

ROS と WOS は、読み取り専用と書き込み専用ではなく、読み取り最適化ストアと書き込み最適化ストアの略です。

Vertica は独自に選択したスケジュールに従って、タプルをテーブルごとに WOS から ROS に移動します。最終的に、読み取り/クエリのパフォーマンスは、データがディスクにどのように格納されているかに依存します。

確かに、Nija が説明しているようにメモリの制限があります。ただし、WOS 内のデータをそこに常駐していると見なすべきではありません。長期的には最終的に ROS に移行することを期待してください。

于 2012-07-30T18:24:42.103 に答える