問題タブ [wal]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
257 参照

postgresql - Postgres WAL をスキーマで分離しますか?

私がやろうとしていることに関連するものは何も見つからないようです。Postgres WAL ファイルをスキーマで分離することは可能ですか?

0 投票する
1 に答える
5049 参照

sqlite - SQLITE wal ファイルのサイズが大きくなり続ける

PRAGMA journal_mode=WAL、PRAGMA journal_size_limit=0 の db ファイルに継続的に書き込みを行っています。私の C++ プログラムには、リーダー (15 秒間隔でクエリ) とライター (5 秒間隔で挿入) の 2 つのスレッドがあります。

3 分ごとに挿入を一時停止して、モード パラメータを SQLITE_CHECKPOINT_RESTART としてライター スレッドから sqlite3_wal_checkpoint_v2() を実行しています。この時点でアクティブな読み取り操作が行われていないことを確認するために、チェックポイントが実行されようとしているというフラグを設定し、リーダーが完了する (接続がまだ開いている) のを待ってからチェックポイントを実行します。チェックポイントの完了後、クエリを再開しても問題ないことを再度読者に示します。

sqlite3_wal_checkpoint_v2() は SQLITE_OK を返し、pnLog と Ckpt は等しい (約 4000) として返され、完全な wal ファイルがメインの db ファイルと同期されたことを示します。したがって、ドキュメントに従って、次の書き込みは最初から開始する必要があります。ただし、後続の書き込みによって WAL ファイルが無限に大きくなり、最終的には数 GB になるため、これは発生していないようです。

いくつかの検索を行ったところ、開いているトランザクションが原因でリーダーがチェックポイントの失敗を引き起こす可能性があることがわかりました。ただし、私が使用している唯一のリーダーは、チェックポイントが開始する前にトランザクションを終了することです。WAL ファイルが大きくならないのを妨げているものは他にあるでしょうか?

0 投票する
1 に答える
1100 参照

sqlite - SQLite WALモード、メモリ内、プライベートキャッシュ付きデータベース?

私は、Sqlite で WAL ジャーナル モードが提供する読み取りスナップショットの分離に依存するプロジェクトに取り組んでいます。同じデータベースへの複数の接続を使用して、同時リーダーと単一のライターを許可します。

テストのために、メモリ内データベースを使用したいと思いますが、私が知る限り、それには必要ですSQLITE_OPEN_SHAREDCACHE(これにより、WAL モードが提供する読み取りスナップショット分離の保証が無効になります)。

インメモリ、WAL モード、SQLite データベースへの複数の接続をプライベート キャッシュ モードで開く方法はありますか?

この問題に対する (既存の) VFS ソリューションはありますか?

WAL モードのドキュメント

0 投票する
1 に答える
503 参照

postgresql - Postgresql: ハッシュ化されたインデックスを見つける

Postgresql 9.1 を使用して、WAL アーカイブおよびストリーミング レプリケーションをウォーム スタンバイ サーバーにセットアップしています。

Postgresql のドキュメントには次のように記載されています。

ハッシュ インデックスの操作は現在 WAL ログに記録されていないため、リプレイはこれらのインデックスを更新しません。これは、新しい挿入はインデックスによって無視され、更新された行は明らかに消え、削除された行は引き続きポインターを保持することを意味します。つまり、ハッシュ インデックスを含むテーブルを変更すると、スタンバイ サーバーで不適切なクエリ結果が得られます。リカバリが完了したら、リカバリ操作の完了後にそのような各インデックスを手動で REINDEX することをお勧めします。

特定のデータベースにハッシュ インデックスが含まれているかどうかを調べるにはどうすればよいですか?

0 投票する
1 に答える
88 参照

c++ - チェックポイントに失敗しました

iReturn = 5 (SQLITE_BUSY) で戻ります。ライターはときどき起動し、データベースに多数の行を追加または削除し、チェックポイントを実行して、再びスリープ状態になります。

質問 1: WAL モードを使用し、4 つのリーダーと 1 つのライターがある場合、どのようにそれが可能ですか?

質問 2: ログ メッセージで、チェックポイントは頻繁に機能するが、SQLITE_BUSY を報告するのはたまにしかないことを確認しました。時々機能するが、常に機能しない場合は心配する必要がありますか? これによりデータベースが破損する可能性はありますか?

質問 3: sqlite3_wal_checkpoint_v2 または SQLITE_CHECKPOINT_FULL を使用すべきではありませんか?

0 投票する
2 に答える
5145 参照

postgresql - Postgresql自動アーカイブパージが発生していません

postgresql アーカイブのリカバリとクリーンアップに関するドキュメントをいくつか読みましたが、私の postgresql サーバーはまだアーカイブをパージしていないか、その仕組みをよく理解していませんでした。

簡単に言うと、WAL アーカイブをクリーンアップするためのシェル スクリプトを作成しました。コマンド ラインからスクリプトを実行すると、スクリプトが機能し、アーカイブが消去されます (3 日より新しいアーカイブのみを残します)。私のスクリプトはpg_archive_cleanupという名前で、実行可能で、ここに配置されます: /usr/sbin/

そして、/etc/postgresql/9.3/main/recovery.confを次のように構成します。

ラインが見えます

私のクリーンアップスクリプト:

しかし、4 日後にはディスク容量が増えました。ドキュメントで、recovery.confファイルがcheck_pointrestart_pointで読み取られることを確認しました... アーカイブが自動的に削除されない理由を知りたいですか? オカレンスはどこで設定しますか? postgresl はいつパージを開始することになっていますか? これを毎日実行したいのですが、代わりにクリーンアップ スクリプトを crontab に配置する必要がありますか? それとも別の場所ですか?また、postgresql ログ ファイルにもトレースがありません。クリーンアップ ログはどこに書き込まれますか?

返信ありがとうございます。

0 投票する
1 に答える
576 参照

spark-streaming - Receiver が失敗し、WAL が s3 に保存されている場合、Spark ストリーミングは先行書き込みログ レコードからデータを読み取ることができませんでした

ここにエラーログがあります -

org.apache.spark.SparkException: org.apache で先行書き込みログ レコード FileBasedWriteAheadLogSegment(s3n://*****/checkpoint/receivedData/20/log-1439298698600-1439298758600,13678,5069) からデータを読み取ることができませんでした。 spark.streaming.rdd.WriteAheadLogBackedBlockRDD.org$apache$spark$streaming$rdd$WriteAheadLogBackedBlockRDD$$getBlockFromWriteAheadLog$1(WriteAheadLogBackedBlockRDD.scala:144) at org.apache.spark.streaming.rdd.WriteAheadLogBackedBlockRDD$$anonfun$compute$1.apply (WriteAheadLogBackedBlockRDD.scala:168) org.apache.spark.streaming.rdd.WriteAheadLogBackedBlockRDD$$anonfun$compute$1.apply(WriteAheadLogBackedBlockRDD.scala:168) で scala.Option.getOrElse(Option.scala:120) で org. apache.spark.streaming.rdd.WriteAheadLogBackedBlockRDD.compute(WriteAheadLogBackedBlockRDD.scala:168) org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:27​​7) org.apache.spark.rdd.RDD.iterator(RDD.scala:244) org.apache.spark.rdd.UnionRDD.compute(UnionRDD. scala:87) org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:27​​7) org.apache.spark.rdd.RDD.iterator(RDD.scala:244) org.apache.spark.rdd .MapPartitionsRDD.compute(MapPartitionsRDD.scala:35) at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:27​​7) at org.apache.spark.rdd.RDD.iterator(RDD.scala:244) at org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:35) で org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:27​​7) で org.apache.spark.rdd.RDD.iterator( RDD.scala:244) org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:70) org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:41) で org.apache.spark.scheduler.Task.run(Task.scala:70) で org.apache.spark.executor .Executor$TaskRunner.run(Executor.scala:213) で java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) で java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) でjava.lang.Thread.run(Thread.java:745) 原因: org.apache.spark.streaming.util.FileBasedWriteAheadLog.read(FileBasedWriteAheadLog.scala:106) での org.apache.spark での java.lang.NullPointerException。 streaming.rdd.WriteAheadLogBackedBlockRDD.org$apache$spark$streaming$rdd$WriteAheadLogBackedBlockRDD$$getBlockFromWriteAheadLog$1(WriteAheadLogBackedBlockRDD.scala:141) ... 22 もっと見る70) org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:41) で org.apache.spark.scheduler.Task.run(Task.scala:70) で org.apache.spark.executor.Executor $TaskRunner.run(Executor.scala:213) で java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) で java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) で java. lang.Thread.run(Thread.java:745) 原因: org.apache.spark.streaming.util.FileBasedWriteAheadLog.read(FileBasedWriteAheadLog.scala:106) での java.lang.NullPointerException org.apache.spark.streaming. rdd.WriteAheadLogBackedBlockRDD.org$apache$spark$streaming$rdd$WriteAheadLogBackedBlockRDD$$getBlockFromWriteAheadLog$1(WriteAheadLogBackedBlockRDD.scala:141) ... 22 もっと見る70) org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:41) で org.apache.spark.scheduler.Task.run(Task.scala:70) で org.apache.spark.executor.Executor $TaskRunner.run(Executor.scala:213) で java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) で java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) で java. lang.Thread.run(Thread.java:745) 原因: org.apache.spark.streaming.util.FileBasedWriteAheadLog.read(FileBasedWriteAheadLog.scala:106) での java.lang.NullPointerException org.apache.spark.streaming. rdd.WriteAheadLogBackedBlockRDD.org$apache$spark$streaming$rdd$WriteAheadLogBackedBlockRDD$$getBlockFromWriteAheadLog$1(WriteAheadLogBackedBlockRDD.scala:141) ... 22 もっと見る22以上22以上org.apache.spark.executor.Executor$TaskRunner.run(Executor. scala:213) で java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) で java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) で java.lang.Thread.run(Thread .java:745) 原因: org.apache.spark.streaming.util.FileBasedWriteAheadLog.read(FileBasedWriteAheadLog.scala:106) での java.lang.NullPointerException org.apache.spark.streaming.rdd.WriteAheadLogBackedBlockRDD.org$apache で$spark$streaming$rdd$WriteAheadLogBackedBlockRDD$$getBlockFromWriteAheadLog$1(WriteAheadLogBackedBlockRDD.scala:141) ... 22 もっと見るorg.apache.spark.executor.Executor$TaskRunner.run(Executor. scala:213) で java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) で java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) で java.lang.Thread.run(Thread .java:745) 原因: org.apache.spark.streaming.util.FileBasedWriteAheadLog.read(FileBasedWriteAheadLog.scala:106) での java.lang.NullPointerException org.apache.spark.streaming.rdd.WriteAheadLogBackedBlockRDD.org$apache で$spark$streaming$rdd$WriteAheadLogBackedBlockRDD$$getBlockFromWriteAheadLog$1(WriteAheadLogBackedBlockRDD.scala:141) ... 22 もっと見るrunTask(ShuffleMapTask.scala:41) で org.apache.spark.scheduler.Task.run(Task.scala:70) で org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:213) で java .util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) で java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) で java.lang.Thread.run(Thread.java:745) が発生した作成者: java.lang.NullPointerException at org.apache.spark.streaming.util.FileBasedWriteAheadLog.read(FileBasedWriteAheadLog.scala:106) at org.apache.spark.streaming.rdd.WriteAheadLogBackedBlockRDD.org$apache$spark$streaming$rdd $WriteAheadLogBackedBlockRDD$$getBlockFromWriteAheadLog$1(WriteAheadLogBackedBlockRDD.scala:141) ... 22 詳細runTask(ShuffleMapTask.scala:41) で org.apache.spark.scheduler.Task.run(Task.scala:70) で org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:213) で java .util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) で java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) で java.lang.Thread.run(Thread.java:745) が発生した作成者: java.lang.NullPointerException at org.apache.spark.streaming.util.FileBasedWriteAheadLog.read(FileBasedWriteAheadLog.scala:106) at org.apache.spark.streaming.rdd.WriteAheadLogBackedBlockRDD.org$apache$spark$streaming$rdd $WriteAheadLogBackedBlockRDD$$getBlockFromWriteAheadLog$1(WriteAheadLogBackedBlockRDD.scala:141) ... 22 詳細scala:70) で org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:213) で java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) で java.util.concurrent.ThreadPoolExecutor でjava.lang.Thread.run(Thread.java:745) での $Worker.run(ThreadPoolExecutor.java:615) 原因: org.apache.spark.streaming.util.FileBasedWriteAheadLog.read(FileBasedWriteAheadLog での java.lang.NullPointerException .scala:106) at org.apache.spark.streaming.rdd.WriteAheadLogBackedBlockRDD.org$apache$spark$streaming$rdd$WriteAheadLogBackedBlockRDD$$getBlockFromWriteAheadLog$1(WriteAheadLogBackedBlockRDD.scala:141) ... 22 詳細scala:70) で org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:213) で java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) で java.util.concurrent.ThreadPoolExecutor でjava.lang.Thread.run(Thread.java:745) での $Worker.run(ThreadPoolExecutor.java:615) 原因: org.apache.spark.streaming.util.FileBasedWriteAheadLog.read(FileBasedWriteAheadLog での java.lang.NullPointerException .scala:106) at org.apache.spark.streaming.rdd.WriteAheadLogBackedBlockRDD.org$apache$spark$streaming$rdd$WriteAheadLogBackedBlockRDD$$getBlockFromWriteAheadLog$1(WriteAheadLogBackedBlockRDD.scala:141) ... 22 詳細runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745) 原因: java.lang.NullPointerException org.apache.spark.streaming.util.FileBasedWriteAheadLog.read(FileBasedWriteAheadLog.scala:106) で org.apache.spark.streaming.rdd.WriteAheadLogBackedBlockRDD.org$apache$spark$streaming$rdd$WriteAheadLogBackedBlockRDD$$getBlockFromWriteAheadLog$1( WriteAheadLogBackedBlockRDD.scala:141) ... 22 続きを読むrunWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745) 原因: java.lang.NullPointerException org.apache.spark.streaming.util.FileBasedWriteAheadLog.read(FileBasedWriteAheadLog.scala:106) で org.apache.spark.streaming.rdd.WriteAheadLogBackedBlockRDD.org$apache$spark$streaming$rdd$WriteAheadLogBackedBlockRDD$$getBlockFromWriteAheadLog$1( WriteAheadLogBackedBlockRDD.scala:141) ... 22 続きを読むscala:106) at org.apache.spark.streaming.rdd.WriteAheadLogBackedBlockRDD.org$apache$spark$streaming$rdd$WriteAheadLogBackedBlockRDD$$getBlockFromWriteAheadLog$1(WriteAheadLogBackedBlockRDD.scala:141) ... 22 詳細scala:106) at org.apache.spark.streaming.rdd.WriteAheadLogBackedBlockRDD.org$apache$spark$streaming$rdd$WriteAheadLogBackedBlockRDD$$getBlockFromWriteAheadLog$1(WriteAheadLogBackedBlockRDD.scala:141) ... 22 詳細

注: HDFS がストレージとして使用されている場合、WAL からの読み取りは正常に機能します。

どんな助けでも大歓迎です。