connecting...
Google translation for articles :
5 NEMBER donated to you!!

【NEM技術勉強会】9. ディスラプター【Symbol白書】

nem31.80xem (5) 321 0 0

コロナストレスを解消するために、海の見えるところで、きれいな空気を吸ってリフレッシュしてきました。今回から、Symbolのトランザクション処理の目玉、ディスラプターについてです。ディスラプターはスタートレックでクリンゴンが使う武器の名前ですが、JAVAライブラリのそれは、情報処理を生産者と消費者に見立てて、その仲介をする高性能なリング状のバッファ機構です。


9. ディスラプター

 

「死とは、偉大なディスラプターである。命の鏡の向こう側へ、真実の旅に出れば、再び生まれ変わって、すべてをやり直すことができると知る。」- B. G. Bowers(オーストラリアの詩人)

 

Symbolの重要なゴールのひとつは、高いスループットを得ることである。そのために、ディスラプターパターンを利用して、ほとんどのデータを処理している(脚注:https://en.wikipedia.org/wiki/Disruptor_(software))。ディスラプターはリング状のデータ構造内にデータを保持して、必要な処理をおこなう。新しいデータは、このリングバッファーの空いているスロットに、順次入れられていく。処理が完了したデータは、新しいデータを入れるために取り出される。このリングバッファーは、限られた数のスロットしか持たないため、処理が情報の流入量に追いつかない場合は、空きスペースを使い切ってしまう。そのような場合に、Symbolはサーバーを止めるか、スロットが空くのを待つかを、設定で選択できる。

 

リングバッファー上のそれぞれのデータ要素は、ひとつまたはそれ以上のコンシューマー(消費者, Consumers)によって処理される。それぞれのコンシューマーは、一つのデータ要素を入力として使用する。コンシューマーのうちいくつかは、入力データを計算処理して、その結果をデータ要素に追加する。また、他のコンシューマーは、データ要素の検証をおこなったり、データを利用してブロックチェーン全体の状態キーを変化させる。また、あるコンシューマーの処理は、前のコンシューマーによってなされた処理に依存している。それゆえ、コンシューマーは常にデータ要素の順番に気を配る必要がある。そのために、それぞれのコンシューマーは、障壁(barrier)を立てることができる。障壁は、処理が済んでいないデータ要素が、次のコンシューマーによって先に処理されてしまうのを防ぐ。最後のコンシューマーは、使用済みのメモリー領域を開放する。

 

コンシューマーはまた、データの処理が終了して(使用済みの古いデータ?)いる場合や、何らかの理由でエラーが生じていると判断したときには、CompletionStatus::Abortedという状態関数を使って、強制的に処理を終わらせることもできる。その後に続くコンシューマーは、この終了されたデータ要素を無視するようになる。

 


ディスラプターとは、マルチコアCPUのキャッシュを効率的に使えるように開発されたものです。ちょうど、世界の経済取引(特にFX取引)が活発になる一方で、CPUのクロック数の増加が頭打ちになり、複数のコアを使って並列に処理を進めることで処理能力を上げようとしていた時期ですね。このブログを読むと、LMAXという企業が、とことんまでCPUの性能を引き出すためにチューニングしたオープンソースライブラリのようです。Symbolがディスラプターを採用したのは、コア数の多いCPUを搭載したノードの高速化より、枯れた技術としてDual Core程度でもPeerノードとして十分に機能するようにという方向を狙ったのだと思います。Symbolが比較的低性能のサーバーで動くので、そう感じました。

 

目指せ北海道

Why don't you get crypt currency 'nem' by posting your blog article?

nemlog is blog posting service which has donation feature by crypt currency nem.
nemlog was launched to create environment which can be donated nem among NEMbers via blog articles.
Let's get nem by posting good blogs.

Nem prize event is being held frequently, Please join us on this opportunity!

nemlog registration from here
Register

NEMber who posted this article

趣味はバイクでツーリングしながら、ブログを書いたり、動画配信したりすること。暗号通貨はまだまだ初心者。

nemlogに何を書こうかいろいろ考えたのですが、まずはバイクで動画配信をするための工夫や楽しさ、充実感などを伝えられたらと思ってはじめました。ラズパイをバイクに積載して、ボタン一つでYoutubeライブ配信できるシステムを作りました。それを発展させて、XEMの価格を常時監視、取引するボットも作って活用してます。子供の頃から技術書を読むのが好きなので、NEMの白書を訳したりもしています。

本業は再生医療研究者です。歯の神経の中にいる「歯髄(しずい)細胞」を活用して新しい医療を開拓するために、しずい細胞プロジェクトを推進中。細胞の流通(トレーサビリティー)管理にNEMを使っています。管理システムの名称は「ShizuiNet」。NEM.ioのAlexさん、Jeffさんと名刺交換&握手できたのが心の宝物。
40819
0

Why don't you read following articles?