問題タブ [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 に答える
659 参照

java - Java SQLite WAL モード: データベースはロックされています

マルチスレッド アプリケーションで SQLite を使用しています。それが問題を引き起こさないようにするために、SQLite データベースを WAL モードに設定しました。すべてのスレッドは、実行時に閉じられることのない 1 つの接続を共有します。ただし、バッチを実行するとこのエラーが発生しますが、なぜ発生するのかわかりません。データベースへのすべての書き込みは単一のスレッド エグゼキューターを使用して行われ、読み取りは複数のスレッドで行われます。

前もって感謝します

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

java - OrientDB 2.1 スレッド「OrientDB WAL Flush Task」で java.lang.OutOfMemoryError (ヒープまたは GC) の例外が発生する

OrientDB v.2.1 で console.sh を使用して選択を行っています。数分待った後、次の出力が得られます。

6 GB の RAM が利用可能で、デフォルト構成を使用しています。

JAVA_OPTS=-Xmx1024 のコメントを外して値を 4G に変更し、orientdb を再起動してクエリを再度実行しようとしました...結果は次のとおりです。

結果を出すにはどうすれば修正できますか?

更新:デフォルト構成でバージョン 2.2 を使用した同じ話

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

sqlite - SQLite WALのチェックサムアルゴリズムは何ですか

SQLite WALモードのチェックサムアルゴリズムについて疑問に思っています。すでにドキュメントファイルをチェックしましたが、次のように書かれています(この画像はsqliteドキュメントファイルにキャプチャされていますhttps://www.sqlite.org/fileformat2.html#section_4_1

WALモードSQLiteのチェックサムアルゴリズム

「フレーム ヘッダーの最後の 8 バイトのチェックサム値は、WAL ヘッダーの最初の 24 バイト、最初の 8 バイト、およびすべてのフレームのコンテンツで連続して計算されたチェックサムと正確に一致します」の意味がわかりませんでした。現在のフレームまで」

もっとはっきりと理解したい。

ありがとう。

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

influxdb - influxdb v0.13 で WAL を無効にするか、フラッシュを強制します

2 つの異なる流入プロセスがデータベースを共有する EFS (NFS に似たエラスティック ファイル ストレージ) を使用して、AWS で influxdb 用の単純なクラスターをセットアップしようとしています。独自の influxdb プロセスを実行する 2 つの EC2 インスタンス (名前: EC2_1、EC2_2) があります。両方の EC2 インスタンスは、/opt/efs の「efs」と呼ばれる共通の EFS ディレクトリでマウントされます。両方の ec2 インスタンスで influxdb.conf を変更して、データ用の共通/opt/efs/influxdb/dataディレクトリ、wal 用の /opt/efs/influxdb/wal、メタ ディレクトリ用の/opt/efs/influxdb/metaを指すようにしました。

これによって私が達成しようとしているのは、EC2_1 流入プロセスがデータベースに何かを書き込んだときに、EC2_2 の流入プロセスによってすぐに読み取ることができるということです。

これを達成するために、別のプロセスがディスクから直接読み取ることができるように、WALを無効にするか、ディスクへの書き込みを非常に頻繁に(1回/秒)行うことができる設定を見つけようとしています。読み取り/書き込みのパフォーマンスやデータの損失は、今のところ大きな問題ではありません。

WALフラッシュが頻繁になることを期待して、以下の設定を変更しようとしましたが、期待どおりに機能しませんでした:

EC2_1 が influxdb に何かを書き込む場合、EC2_2 の influxdb プロセスが再起動されない限り、EC2_2 にクエリを実行してもそのデータは表示されません。

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

android - SQLite: データベースが接続された先行書き込みログ (WAL ジャーナル モード)

データベースの最適化に取り組み、データベースを db と db2 の 2 つのデータベースに分割しました。優先度の低いバックグラウンド スレッドが db2 に挿入されています。db のクエリの一部は db2 と結合されているため、db2 を db にアタッチする必要があります。すべてをマルチスレッドにしたいので、WAL を有効にします。

この問題を理解するために、単純な 2 スレッド テストを実行します。最初のスレッドは db に行を挿入し、2 番目のスレッドは db から選択しています。各スレッドは、前のループからの時間の差分と、データベース内にいた時間を出力します。

選択スレッドが挿入スレッドをブロックしていることがわかります。これは、巨大な(そして遅い)選択と小さな挿入を行うことで強調できます。挿入時間とデルタがほぼ選択時間まで増加することがわかります。遅いスレッドを実行しないと、挿入スレッドが大幅に高速化されます。

SQLiteDatabase のソース コードを掘り下げると、次の行が見つかりましたSQLiteDatabase#enableWriteAheadLogging()

今私の質問に:

  1. コメントの意味は何ですか?正確に何が機能しないのですか?取り残された古いコードですか?ATTACH DATABASE ( https://www.sqlite.org/lang_attach.html ) のドキュメントは、ATTACH + WAL が OK であることを明示的に示しています (小さな警告があります)。

  2. Android バインディング コードが SQLite の内部問題から私たちを守ろうとするのはなぜですか? 私の見方では、それは薄い界面層であるはずです。

編集: 私はこれをAOSP issue trackerのバグとして報告しました。そこに回答が表示された場合に更新されます。

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

postgresql - PostgreSQL のホット スタンバイ WAL ファイルの復元はどのようにトリガーされますか?

プライマリ サーバー

待機サーバー

/archive/*プライマリ サーバーをスタンバイ サーバーにコピーしまし$PGDATA/pg_xlogたが、何も起こりません。スタンバイ サーバーを再起動すると、サーバー ログから次のエラー メッセージが表示されました。

質問:

  1. /archive/*プライマリ サーバーをスタンバイ サーバーにコピーするだけで、データをスタンバイ サーバーに同期するだけで十分$PGDATA/pg_xlogですか?

  2. ホット スタンバイ サーバーで WAL ファイルの復元はいつ、どのようにトリガーされますか? スタンバイサーバーは定期的に$PGDATA/pg_xlogディレクトリをチェックして、新しい WAL ファイルを探しますか? または、手動でトリガーする必要がありますか?

  3. ストリーミング レプリケーションではなく、ホット スタンバイについて話しています。したがって、構成する必要はないと思います。私は正しいですか?conninfo

  4. hot_standby = onサーバーを構成して再起動した後も、INSERTエラーなしで実行できます。本当に読み取り専用にするように構成するにはどうすればよいですか?