問題タブ [database-concurrency]
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.
java - エッジと頂点でデータベースの同時実行性を調整する
キャッシングの一部が問題を引き起こし、クエリが作成されるたびに頂点の古いバージョン。( graph.getrawGraph().getLocalCache().clear()) によってプールから接続を取得した後、ローカルキャッシュを無効にしようとしました
しかし、これは特定のシナリオで機能するようです。更新を行う場合は常にトランザクションと再試行メカニズムを使用しています (同時実行の問題を克服するため)。しかし、どういうわけか、いくつかの場所で古いバージョンがキャッチされているため、アプリケーションは null ポインター例外をスローしています。
頂点に関する既存の問題を解決するために、コマンドを使用して選択クエリを起動することで、データベースに直接クエリを実行しています 。 "' "))。実行する();
これはどういうわけか正常に動作します。しかし今、このクエリはクラス値 = null の頂点を v(null)[some@Rid] として返しますが、実際には作成後に理想的にはクラス名も一緒に来るはずです。これにより、その頂点にエッジを追加することが難しくなっています。このような状況に対処するための推奨される手順について、この点について教えてください。
ありがとうございます
ヴァルン・タヒン
concurrency - エアフローで現在のジョブを調整する方法は?
私はAirflowの初心者です。しかし、私は現在、Airflow で現在のジョブを抑制する方法に取り組んでいます。Airflow での同時実行またはスロットリングについて少し知っている人はいますか。どんな提案も役に立ちます。どうもありがとう。
mysql - MySQL: 単一のテーブル UPDATE...WHERE でデッドロックが発生する
次の問題は、この構成で発生します。
- MySQL 5.7.10
- 春 4.0.5
- 春のバッチ 3.0.1
- 10 ~ 20 スレッドの Spring ThreadPoolTaskExecutor
問題は、一部のスレッドが 1 つのテーブルで UPDATE...WHERE を実行しようとすると、デッドロックが発生することです。
表は次のとおりです。
UPDATE ステートメントは次のとおりです。
このステートメントの MySQL の EXPLAIN は次のとおりです。
問題の SHOW STATUS ENGINE は次のとおりです。
innodb データベース変数から、innodb_thread_concurrencyの値が 32 であることがわかりました。
選択したパーティションには 21853907 行が含まれています。
簡単な UPDATE ステートメントを作成しようとしました。必要なパーティションにアクセスするためだけに fecha_fac でフィルタリングしてから、インデックス付きフィールドでフィルタリングします。
ですから、私の最初の主な質問は次のとおりです。このトランザクション ロックを修正するにはどうすればよいですか? 何かアドバイス、ヒント、...?
その他の重要な質問は次のとおりです。
- EXPLAIN 出力から: 1 回のテーブル更新でも、タイプ (範囲) を改善できますか? それとも、単一テーブルの更新に最適なタイプですか?
- EXPLAIN 出力から: 最終キーが IDX_MSISDN ではなく IDX_INV_INT_ID だったのは正しいですか? IDX_INV_INT_ID は、NULL 列にインデックスを付けます。
- innodb_thread_concurrency パラメータが 0 (無限の同時実行数) に設定されていることは役に立ちますか?
- SHOW STATUS の出力にデータがありますか?
私の質問に加えて、助けやアドバイスをいただければ幸いです。
前もって感謝します。
asp.net-core - EF Core + SignalR 複数のクライアント:「ロールバックできません - アクティブなトランザクションがありません」
SignalR で EFCore SQLite を使用しています。
多くのクライアントが同時に接続している場合、データベースは変更 (挿入/更新) できなくなり、この例外がスローされます: 「ロールバックできません - アクティブなトランザクションがありません」
クライアントは、その情報を含むクエリ パラメータで接続し、次に:
- データベースを調べて、clientName が存在する場合は、その情報を更新します。それ以外の場合は、新規追加します。
- 接続後、すべてのクライアント情報を返すクライアント名呼び出し GetData() など...
- 約 100 のクライアントが同時に接続しています。
ログ:
それで
その後、物事を挿入または更新しようとすると:
回避策はありますか? これは、50 クライアント以上の運用環境でのみ発生するため、開発時にデバッグするのは困難です。
どんな助けでも大歓迎です!