問題タブ [data-consistency]
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.
ruby - データの依存性と一貫性
私は、工学計算用の非常に大きな (私にとっては) Ruby スクリプトを開発しています。このスクリプトは、階層的に相互接続されたいくつかのオブジェクトを作成します。
たとえば、1 つのオブジェクト (Inp) には、一連のシミュレーションの入力パラメーターが含まれています。他のオブジェクト (SimA、SimB、SimC) は実際にシミュレーションを実行するために使用され、それぞれが結果を含む 1 つ以上の出力オブジェクト (OutA、OutB、OutC) を生成し、視覚化または分析に使用される実際のファイルを生成します。他のオブジェクトなど。
初めてすべてのシミュレーションを実行して完了すると、すべてのオブジェクトが完全に定義され、ユーザーの出力を表すシリーズまたはファイルが作成されます。
ここで、ユーザーが Inp の属性の 1 つを変更する必要があるとします。どのアトリビュートが変更されたかに応じて、一部のシミュレーションを再実行する必要があり、一部のオブジェクト OutX が無効にレンダリングされます。そうしないと、出力が入力に対応しなくなるため、一貫性が失われます。
このプロセスを容易にする設計パターンがあるかどうかを知りたいです。また、オブジェクト間のさまざまな依存関係を明確な方法で視覚的に表すために、ある種のグラフを使用できるかどうかも疑問に思っていました。
Observable私が読んだことから (この質問は 1 年前のものです)、Rubyクラスはこの目的に使用できると思います。親オブジェクトが変更されるたびに、子オブジェクトが状態を更新できるように、子オブジェクトにメッセージを送信する必要があります。これは推奨されるアプローチですか?
これで質問が少し明確になることを願っています。
python - Pythonでモデルの一貫性を実装するにはどうすればよいですか?
いくつかの一貫性チェックを追加して、モデルの実装を強化したいと考えています (この値を負にすることはできず、これを None にすることはできません)。
« 型チェック » っぽいチェックも追加するのは « Pythonic » ではないかと思いました。たとえば、車に置いたオブジェクトが実際に SteeringWheel であることを確認します。
エラーをできるだけ早くキャッチするために、ある種の型チェックを実行したいと思います。車が最初のターンをしたときではなく、車に置いた瞬間に適切な SteeringWheel を追加したかどうかを知りたいです (そして、間違った割り当てが見つかるまで、車の残骸をデバッグします)。
追加されたオブジェクトの型ではなく属性またはメソッドをチェックする方が、Python のダック型哲学に近いと読みました。私はこの原則を理解していますが、それは、モデルが、指定されたオブジェクトが正しいことを確認するためにオブジェクトがどのように使用されるかを認識している必要があることを意味し、モデルとコントローラーの間に間違った依存関係が作成されます。
さらに、どの属性をテストする必要がありますか? wheel.rotate()SteeringWheel だけでなく、タイヤにも適用できます。
もう 1 つの方法は、Model をそのままにして、Model オブジェクトのすべての使用を try-catch で囲み、 forAttributeErrorまたはを期待することですTypeErrorが、これは非常に面倒です。
これを望むのは間違っているのかもしれません。誰かが私が間違った考えを持っていると納得できるなら、そうしてください。しかし、一貫性がなくなったときにエラーを発生させるモデルが欲しいと思うのは正しいと思うなら、を使用する以外の方法を教えてもらえますisinstance()か?
ありがとうございました。
python - matplotlib プロット全体のデータ
私はmatplotlibを使用して、データを線の形でプロットしています。すべてのデータをいつでも表示できるようにしたいのですが、細かいズーム中に mpl が奇妙な動作をします。
最初の画像: http://i.stack.imgur.com/nccvi.png 2 番目の画像: http://i.stack.imgur.com/hov79.png
異なるビュー間でデータに一貫性がなく、アプリケーションでそれを許可できません。これを防ぐにはどうすればよいですか?
すべてのデータをプロットするように mpl に指示する方法が見つかりません。n 番目ごとの要素または同様のものを描画する方法しかないようです (1 を渡しても役に立ちません)。
注: Qt バックエンドを使用しています。
azure - Azure DocumentDb 整合性レベルの提案
複数の csv ファイルを同時に読み取り、Azure DocumentDb に書き込む Azure バッチ プロセスをセットアップしました。自分に最適な一貫性レベルに関する提案が必要です。
整合性レベルのドキュメント ( http://azure.microsoft.com/en-us/documentation/articles/documentdb-consistency-levels/ ) を読みましたが、ビジネス ケースをそこに記載されているオプションに関連付けることができません。
私のプロセス
はIDでドキュメントを取得し
ます
-見つかった場合、ドキュメントのコピーを取得し、変更を更新して置き換えます。
-見つからない場合は、新しいエントリを作成します。
caching - 非常に同時実行環境での NoSQL + 分散キャッシュのデータ整合性
スライドでは、予約システムの非常に大まかなアーキテクチャを見ることができます。多くのユーザーが一度に同じホテル/部屋を予約しようとする可能性がある、非常に並行的な環境です。
一番下には NoSQL データベースがあり、迅速な応答/要求のために、データを要求する分散キャッシュとアプリケーションがあります。
このスライドの考え方は、NoSQL + Distributed Cache を使用すると、同期の問題、つまりデータの整合性の問題が発生するということです。分散キャッシュを NoSQL db と同期する必要があります。
質問: IMDG 以外に、そのような場合に既に存在するソリューション/テクニックは何ですか? これは、フレームワークまたはベスト プラクティスの両方である可能性があります。この問題を解決する特定の分散キャッシュはありますか?
質問 2 [更新]:キャッシュではなく NoSQL データベースに書き込む理由は何ですか? それはトランザクションですか、ノード障害の可能性ですか、それとも何か他のものですか?
PSこれは私のスライドではありません。著者は、これは IMDG の優れた使用例であると主張しています。

ios - タイムリーに正確な連続データ アルゴリズム
アルゴリズムを作成したいのですが、開始方法がわかりません。
このアルゴリズムは、実際には、いくつかの属性、createdAt、value を持つ N オブジェクトの配列を受け入れるメソッドになります。配列を古いものから新しいもの (createdAt) に並べ替えてから、利用可能なデータの一貫性を調べる必要があります。つまり、1 時間ごとに少なくとも 5 つのレコードがあり、30 分ごとに 2 つのレコードがあります。
例-テストコード:
メソッドのプロセスへの貢献に感謝します。
また、最終的な目標は、処理されたレコードのすべての結果に対してリターンを作成する (ブロック ハンドラーを呼び出す) ことです。ロジックは、少なくとも 1 時間あたり 5 つのレコードで終了し、それらの間の期間が 15 分未満である必要があります。
sql - Oracleクエリで一貫した順序を確保するための最良の方法は何ですか?
多数の非常に大きな Oracle テーブル (最大で数千万行) に対してクエリを実行する必要があるプログラムがあります。これらのクエリの出力は、(副作用として) クエリの進行状況 (つまり、フェッチされた最後の行) を記録できる別のプロセスに送られます。
タスクが何らかの理由で途中で停止した場合でも、再開できるとよいでしょう。これを行うには、クエリが一貫した順序で行を返す必要があるため、並べ替える必要があります。当然行うべきことは、主キーでソートすることです。ただし、ソートされていないソリューションと比較して、パフォーマンス (インデックス アクセス) の点でおそらくペナルティが生じるでしょう。再起動が発生しない可能性があることを考えると、これは望ましくありません。
別の方法で一貫した順序を確保するためのトリックはありますか? この場合、パフォーマンスを維持するための他の提案はありますか?
編集:私は周りを見回して、「rowidによる順序」が言及されているのを見てきました。これは便利ですか、それとも可能ですか?
EDIT2:いくつかのベンチマークを追加しています:
- 注文なし: 17 秒。
- PK による注文の場合: 46 秒。
- ROWID による順序の場合: 43 秒。
したがって、任意の order by はパフォーマンスに多大な影響を及ぼし、ROWID を使用してもほとんど違いはありません。受け入れられた答えは - それを行う簡単な方法はありません。
mongodb - 変更されたフィールドのみを保存する
スケーラビリティを維持しながら、単一のサーバーのような錯覚を与えるために、ゲーム世界での位置に基づいてプレイヤーがサーバー間で切り替えられるゲームに取り組んでいます。プレーヤーがサーバーに参加すると、データベース (MongoDB) からデータがロードされ、サーバーを終了または変更すると、データが保存されます。
私の問題は、プレーヤーのデータがプレーヤーとは別のサーバーから変更される場合に発生します。これは、時々発生する必要があります。データベース内のデータは変更されますが、プレイヤーがサーバーを離れたりサーバーを変更したりすると、データは上書きされます。

この問題を解決するために、通常、必要なデータは最近変更されたものであるため、変更されたデータのみを保存することを考えていました。しかし、これを行う方法を見つけようとすると、これが行われたケースが不足していることに気付きました. これを行わず、別の方法を使用して、変更されたデータが上書きされないようにする正当な理由はありますか? 私が考えることができる唯一の問題は、フィールドが更新され、それらの一部のみが上書きされるデータの一貫性であり、プレーヤーが無効な状態になる可能性があります。これは、すべての依存フィールドを一緒に更新することでかなり簡単に回避できます。
オブジェクトの選択のみを保持することに反対する他の理由や、大きな問題を引き起こさないこの問題を解決する他の方法がある場合は、ぜひ聞いてみたいと思います。