サンプルの大きapache couchdbが持つデータベースのための地域開発を避ける長期ビューを構築

StackOverflow https://stackoverflow.com/questions/3604158

  •  25-09-2019
  •  | 
  •  

質問

Apache couchdbが持つ便利なの開発(CouchApps)を押してモンドチップを生産。残念ながら生産規模データアーカイブデータセットを作のきの煩雑さである。

何か良い方法をサンプルのapache couchdbが持つデータベース用地開発?

役に立ちましたか?

解決

その答えは濾過します。私はこの二つのパーツ:

  1. 再生産データベース example_db 私の地元のサーバーとして example_db_full
  2. を行うフィルタからのレプリケーション example_db_fullexample_db, のフィルターカットだけの十分なデータをファンの人にファンが常に十分なデータで確認をしたコードです。

書類選択できるアプリケーション、特に設計されています。この時、私は満足して簡単なランダムpass/fail割合ができます。の乱数の発生源での一貫した(同一文書の常時の経過または常に失敗します。)

私の技術では正常化のコンテンツチェックサムを書 _rev 分野の範囲[0.0,1.0).それかで指定部分(例えば 0.01場合、正規化チェックサムの値は <=私の割合を、文書ます。

function(doc, req) {
  if(/^_design\//.test(doc._id))
    return true;

  if(!req.query.p)
    throw {error: "Must supply a 'p' parameter with the fraction"
                  + " of documents to pass [0.0-1.0]"};

  var p = parseFloat(req.query.p);
  if(!(p >= 0.0 && p <= 1.0)) // Also catches NaN
    throw {error: "Must supply a 'p' parameter with the fraction of documents"
                  + " to pass [0.0-1.0]"};

  // Consider the first 8 characters of the doc checksum (for now, taken
  // from _rev) as a real number on the range [0.0, 1.0), i.e.
  // ["00000000", "ffffffff").
  var ONE = 4294967295; // parseInt("ffffffff", 16);
  var doc_val = parseInt(doc._rev.match(/^\d+-([0-9a-f]{8})/)[1], 16);

  return doc_val <= (ONE * p);
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top