2017-11-12 6 views
0

私たちは、ハイパージーガーファブリックを使用して、将来的に金融取引を行うリソース管理アプリケーションを手助けしていきたいと考えています。ファブリックはそれがかなり簡単にいくつかの設計要件を解決するように見えます。バルクロード(さらに後で追加)元帳

チェーンコードソリューションの中で話されていないことの1つは、大量(100,000)のアイテムとその状態を持つ元帳を作成する必要があることです。

また、新しいリソースが追加されることもあります。

私は、ソースURL(またはDB接続)を受け取り、ソースからロードして元帳から追加するためにassetmgmtチェーンコードに保護された接続を渡すトランザクションを持つことができると思います特定のチェーンコードに)。 (要件の1つがダウンタイムなしであるため、意図的にトランザクションチェーンコードをシャットダウンする必要がないため、initでこれを行う必要はありません)。

他のアイデアやベストプラクティスへのポインタを歓迎します。

答えて

0

私は今、1.xのために自分自身で作業しており、他の入力を楽しみにしています。ここに私が知っているものがあります。

0.6で200kをロードしました。 Node SDKを使用していて、dbから生成されたcsvファイルから読み込んでいました。読み込みバッファ、呼び出しキューなどでメモリの問題が発生し始めました。これは主に、非同期の性質と確認を求めているためです。私は一度に10kでロードすることで解決しました。

あなたは火をつけて忘れることができますが、私はあなたに確認が必要だと思います。

ノード、Java、またはCLIのいずれの場合でも、処理するクライアント側のSDKメモリがあります。ちょうどsqlloaderや何かを使うのと同じです。

しかし、ピア、発注者、カフカの設定もあります。ブロックサイズ、タイムアウト、多くの設定一種の標準的なDBチューニングタイプの考え方ですが、バルク負荷についてはまだそれほど知られていませんが、私は思っていません。

私はチェーンコード内で多くのチェックを行います。ユーザーはそのタイプのレコードを作成する権限を持っていますか?レコードは既に存在していますか?など、ccは読み込み時間にも影響する可能性があります。私のためのほとんどのものは、実際のユーザーペースでは問題ありませんでしたが、バルクロード中は高価になりました。

私は、ピアが大量の読み込み時間中にクエリを処理するには余りにも忙しくなるという心配があります。私は何もテストしていませんが、負荷が何とか15分かかり、うまくクエリを処理できない場合、それは問題です。一部の設計では、クエリ用に別個のピアを使用し、HAProxyクラスタなどにあり、オフラインで更新を更新することができます。

1.xでは最初にccを最適化しています。サーバは次にparamsし、最後にクライアントをparamsします。最初はバルクロードのみで進行中ではないことを願っています。

他の考えを読もうと思っています。

+0

フィードバックに感謝します。分散トランザクションベースのシステムで心配しているすべての問題。最初の読み込みが完了したら、私は月に数百以上の新しいリソースを持っているとは思わない。最初の起動前に、負荷をオフラインで行うことができました。 私は、すべてのオーバーヘッドがなければこれを行う方法があるべきだと思います。 – Sam

+0

合意。私は1.xにあると確信しています。それだけでまだそれをすべて取り組んでいない。たいてい私のCCにパススルーCouchDBとカスタムインデックスを使用するように変換します。一括読み込みに役立ちます。 1B +レコードになると効率的です。私はすぐにECertのカスタム属性を使用できるはずだと思います。私は現在、それらを状態に保存しているので、ユーザー権限の参照に役立ちます。私は現在10kのユーザーがおり(テスト)、1M +をサポートしたいと考えています。 – jworthington

関連する問題