並行システム システム情報系/情報工学域, システム情報工学研究群/情報理工学位プログラム システム情報工学研究科/コンピュータサイエンス専攻 新城 靖 <yas@cs.tsukuba.ac.jp>
このページは、次の URL にあります。
http://www.cs.tsukuba.ac.jp/~yas/cs/csys-2023/2023-05-26
あるいは、次のページから手繰っていくこともできます。
http://www.cs.tsukuba.ac.jp/~yas/cs/
http://www.cs.tsukuba.ac.jp/~yas/
(集中)システムで問題を解くための指令の集まり。
James C. Corbett, Jeffrey Dean, Michael Epstein, Andrew Fikes, Christopher Frost, JJ Furman, Sanjay Ghemawat, Andrey Gubarev, Christopher Heiser, Peter Hochschild, Wilson Hsieh, Sebastian Kanthak, Eugene Kogan, Hongyi Li, Alexander Lloyd, Sergey Melnik, David Mwaura, David Nagle, Sean Quinlan, Rajesh Rao, Lindsay Rolig, Yasushi Saito, Michal Szymaniak, Christopher Taylor, Ruth Wang, Dale Woodford: "Spanner: Google's Globally-Distributed Database", 10th USENIX Symposium on Operating Systems Design and Implementation, 2012.
2つの重要なパタン two important patterns
https://www.distributed-systems.net/index.php/books/
.
日本語訳は、「分散システム」という名前で第2版(2009)まである。
2003年の第1版も良い。
図? 1対1の通信の繰り返し / by releated unicast send()
図? 1対多の通信/ by single multicast send()
マルチキャストなら、あるプロセスが1回 send() すると、同じメッセージが 複数のプロセスに届けられる。send() の宛先のアドレス(destination address)は、1個。
何が難しいか
対等だと、クラッシュに強い(single point of failure がない)が、何をす るにもすぐ投票が必要になる。
グループサーバを持つか持たないか。
難しいのは、メンバのプロセスがクラッシュした時。 何も言わずにグループから抜ける。
図? 簡単なatomic broadcastのアルゴリズム
total ordering は、グループ通信では実現が難しすぎる。弱いものが実現さ れる。
プロセスが複数のグループに属していると、1つのメッセージについての順序 だけ考えていてはすまなくなる。
冗長性があると、メッセージの重複をうまく扱う必要がでてくる。
下手をすると、メッセージが増幅しながいつまでもぐるぐる回る。
「データが更新された」というイベントを、複数のプロセスにきちんと送り届 けようとすると、分散システムのマルチキャストと同じ話になる。
図? 出版・購読モデルによるメッセージの受け渡し
図? ブロードキャストによる出版・購読モデルの実装
図? マルチキャストとしてのメーリング・リスト/a mailing list as an implementation of multicast$
http://www.cs.cornell.edu/info/projects/isis/
http://dx.doi.org/10.1145/7351.7478
.
http://dx.doi.org/10.1145/2524211.2524212
Phase 1:
メンバの数:n
各プロセスは、グループごとに、長さnのベクトルVを持つ。 i番目の要素は、プロセスiから正しい順序で受信したメッセージの最後の番号。 0に初期化される。
図? ISISでのCBCASTの実現/ Implementation of ISIS CBCAST.
動画像や音声など大量のデータを配信する時、複数人で同じデータを受信する 時に、同じメッセージを共有できる。
例:筑波大学で、100人の人が同じ 1M bps の動画像の「生中継(live)」データを 見る
送信側(sender):
受信側(receiver):
送信側と受信側の間にあるすべてのルータがマルチキャストに対応していない と、受信できない。多くの IPv4 ルータは、マルチキャストのオプションを無 効にしている。
ルータは、個々のプロセスにメッセージを届ける時には、ネットワークのブロー ドキャストが使える場合には使う。たとえば、イーサネットでは、ブロードキャ ストを使う。
図? 通常の IP アドレスによるメッセージの送信
図? IP anycast によるメッセージの送信
使われている場所ニュース・システムは、ネットワーク・ニュースを実装しているプログラムの集合。
Path: gama.is.tsukuba.ac.jp!ie.u-ryukyu.ac.jp!CALA-MUZIK!rlss-news!orie-news!not-for-mail From: committee@fj-news.org Newsgroups: fj.news.lists,fj.news.group,fj.archives.documents Subject: Active Newsgroups List of fj (2007/01/15) Followup-To: fj.news.group Date: Mon, 15 Jan 2007 00:00:01 +0900 Organization: fj Newsgroups Management Committee Lines: 1095 Sender: kgk@film.rlss.okayama-u.ac.jp Approved: committee@fj-news.org Expires: 24 Feb 2007 00:00:01 +0900 Message-ID: <active-newsgroups.part1.20070115@fj-news.org> Reply-To: committee@fj-news.org NNTP-Posting-Host: film.rlss.okayama-u.ac.jp Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-2022-JP Content-Transfer-Encoding: 7bit X-Trace: orie.rlss.okayama-u.ac.jp 1168786802 14625 192.168.0.104 (14 Jan 2007 15:00:02 GMT) X-Complaints-To: news@film.rlss.okayama-u.ac.jp NNTP-Posting-Date: Sun, 14 Jan 2007 15:00:02 +0000 (UTC) Xref: gama.is.tsukuba.ac.jp fj.news.lists:240 fj.news.group:185 fj.archives.documents:205 Archive-name: fj-news/active-newsgroups/part1 Original-author: saitoh@ics.es.osaka-u.ac.jp (SAITOH akinori) Last-change: 2006/07/20 by kgk@film.rlss.okayama-u.ac.jp fjのニュースグループの一覧とその解説 ・現在 fj にあるニュースグループ 412 個の名前と説明文です。 ・この文書は「JUNET利用の手引 (第1版)」に由来するもので、 現在はfjニュースグループ管理委員会(committee@fj-news.org)が 維持管理を担当しています。 出所 (題名と日付) を明示する限りにおいて、引用、転載、複製等は、 著作者等に断りなしに、自由におこなって構いません。 文書の一部を他の著作物に流用する等の利用は、完全に自由とします。
Newsgroups:
From:
Subject:
Date:
Message-ID:
Path:
図? ネットニュースの記事の配送の仕組/Article transfer mechanism in Netnews
A server表? NNTPの応答/ Responses in NNTP
応答コード | 説明 |
---|---|
100 | ヘルプのテキストが続く。 |
200 | 要求受け付け可能である(投稿可)。 |
201 | 要求受け付け可能である(投稿不可)。 |
205 | 通信路を切断する。 |
211 | ニュース・グループが選ばれた。記事の数、記事番号の上限、下限、ニュース・グループ名。 |
235 | 記事の転送は成功した。 |
335 | 記事を送れ。最後は、CR-LF . CR-LF 。 |
400 | サービスを中断する。 |
411 | そのようなニュース・グループがない。 |
421 | もうそのニュース・グループには次の記事がない。 |
435 | その記事は欲しくない。(もう既に受け取っている) |
436 | 転送に失敗した。後でもう一度転送しB$iて欲しい。 |
437 | 転送に失敗した。もう転送するな。 |
500 | コマンドが認識できなった。 |
501 | コマンドの文法に誤りがあった。 |
502 | アクセスが制限されている。 |
% telnet $NNTPSERVER 119 Trying 130.158.80.241... Connected to gama.cs.tsukuba.ac.jp. Escape character is '^]'. 200 gama.is.tsukuba.ac.jp InterNetNews NNRP server INN 2.4.1 ready (posting ok). group fj.news.lists 211 120 127 254 fj.news.lists article 240 220 240 <active-newsgroups.part1.20070115@fj-news.org> article Path: gama.is.tsukuba.ac.jp!ie.u-ryukyu.ac.jp!CALA-MUZIK!rlss-news!orie-news!not-for-mail From: committee@fj-news.org Newsgroups: fj.news.lists,fj.news.group,fj.archives.documents Subject: Active Newsgroups List of fj (2007/01/15) Followup-To: fj.news.group Date: Mon, 15 Jan 2007 00:00:01 +0900 Organization: fj Newsgroups Management Committee Lines: 1095 Sender: kgk@film.rlss.okayama-u.ac.jp Approved: committee@fj-news.org Expires: 24 Feb 2007 00:00:01 +0900 Message-ID: <active-newsgroups.part1.20070115@fj-news.org> Reply-To: committee@fj-news.org NNTP-Posting-Host: film.rlss.okayama-u.ac.jp Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-2022-JP Content-Transfer-Encoding: 7bit X-Trace: orie.rlss.okayama-u.ac.jp 1168786802 14625 192.168.0.104 (14 Jan 2007 15:00:02 GMT) X-Complaints-To: news@film.rlss.okayama-u.ac.jp NNTP-Posting-Date: Sun, 14 Jan 2007 15:00:02 +0000 (UTC) Xref: gama.is.tsukuba.ac.jp fj.news.lists:240 fj.news.group:185 fj.archives.documents:205 Archive-name: fj-news/active-newsgroups/part1 Original-author: saitoh@ics.es.osaka-u.ac.jp (SAITOH akinori) Last-change: 2006/07/20 by kgk@film.rlss.okayama-u.ac.jp fjのニュースグループの一覧とその解説 ・現在 fj にあるニュースグループ 412 個の名前と説明文です。 ・この文書は「JUNET利用の手引 (第1版)」に由来するもので、 現在はfjニュースグループ管理委員会(committee@fj-news.org)が 維持管理を担当しています。 出所 (題名と日付) を明示する限りにおいて、引用、転載、複製等は、 著作者等に断りなしに、自由におこなって構いません。 文書の一部を他の著作物に流用する等の利用は、完全に自由とします。 <中略> . quit 205 . Connection closed by foreign host. %ここで、強調で示した部分が、キーボードからのタイプである。 この例では、ホスト $NNTPSERVER のポート番号119(nntp)のポート に、TCP/IPにより接続を試みている。続く3行は、telnet コマンドによる定 型的な表示である。通信路が開設されると、サーバは、"
200
"
という応答を返している。これは、NNTP で定義されている応答であり、サー
バが、要求を受け付け可能であり、かつ、要求としては投稿要求(POST)も受
け付けることを意味している。"200
" 以降の文字列は、コメン
トである。
接続されると、"group
" というコマンドをサーバに送っ
ている。これに対して、サーバは、"211
" という応答に続けて、
記事の数、記事番号の上限、下限、ニュース・グループ名を送っている。
次に "article
" コマンドを送っている。これによ
り記事が転送されている。記事の最後には、".
" からなる行が
ある。これが、article
コマンドに対する応答の終
りを示している。
最後に "quit
" というコマンドをサーバに送ってい
る。これにたいして、サーバは、205 という応答を返し、続いて TCP/IP の通
信路を切断している。その下の Connection closed...
は
telnet コマンドが生成したメッセージである。
ME:!*/!local:: news.ie.u-ryukyu.ac.jp/ie.u-ryukyu.ac.jp:fj.*,okinawa.*:Tm:innfeed! nadesico.cc.tsukuba.ac.jp/nadesico.cc.tsukuba.ac.jp:comp.*,sci.*,rec.*,news.*,soc.*,talk.*,misc.*,fj.*,gnu.*,tsukuba.*,campus.*,tnn.*:Tm:innfeed! news.esys.tsukuba.ac.jp/news.esys.tsukuba.ac.jp:coins.*,tsukuba.*:Tm:innfeed! keknews.kek.jp/keknews:tsukuba.*:Tm:innfeed!転送の様子
maple% telnet gama.is.tsukuba.ac.jp nntp
Trying 130.158.80.241 ...
Connected to gama.is.tsukuba.ac.jp.
Escape character is '^]'.
200 gama.is.tsukuba.ac.jp InterNetNews server INN 1.5.1sec2 25-Jul-1997 ready
IHAVE <YAS.98Feb2175819@is.tsukuba.ac.jp>
335
Newsgroups: denjo.test
Path: is.tsukuba.ac.jp!gama.is.tsukuba.ac.jp!is.tsukuba.ac.jp!yas
From: yas@is.tsukuba.ac.jp (Yasushi Shinjo)
Subject: from maple
Date: Mon, 2 Feb 1998 08:58:17 GMT
Nntp-Posting-Host: hlla-gw
Organization: Institute of Information Sciences and Electronics, University of
Tsukuba
Sender: news@is.tsukuba.ac.jp (News Manager)
Message-ID: <YAS.98Feb2175819@is.tsukuba.ac.jp>
Lines: 2
fake Path: gama.is.tsukuba.ac.jp!is.tsukuba.ac.jp!yas
1998/02/02 17:58:13
.
235
QUIT
205 .
Connection closed by foreign host.
maple%
図? UUCP によるファイルのコピー/Copying a file with UUCP
% uucp file1 host2!host3!host4!~user1/dir1
図? uucp コマンドによるファイルのコピー/Copying a file with the uucp command
メールの送信の例(sending an email): 「!」を含むメールアドレスによるメールの送信
% mail -s "hello" host2!host3!host4!user1
途中のホストは、次にどのホストに転送すれば良いかを知っている。自分とは
無関係のホストのメールを中継することもある。誰が電話代を払うか、そもそ
も(日本では)法律的にそのような中継をしてよいのかが議論があった。
図? 冗長リンクを含むニュースの配送/ Network news transfer with redundant links
#gama[lib-news] 113# tail history <19980131213101.QAA14061@ladder03.news.aol.com> 886406952~-~886282319 rec.collecting.sport.hockey/46595 <8E8622E.0015000738.uuout@venture.fipnet.fi> 886406953~-~886231080 comp.sys.ibm.pc.demos/3590 <34D57354.592B@pp.kolumbus.fi> 886406953~-~886403924 comp.sys.ibm.pc.games.action/24913同じ記事を送ろうとしたとき。 An server tries to send a duplicate article.886406953~-~886282077 control/403867 <01bd2b53$921e9680$LocalHost@santotan> 886406953~-~886282077 <6b3s6k$85k$1@talia.mad.ibernet.es> 886406953~-~886403962 comp.sys.ibm.pc.games.flight-sim/52150 <34cd5ecb.20149236@nntp.best.com> 886406953~-~885929344 rec.arts.sf.tv.babylon5.moderated/10108 <34d4eeb3.2546651@news.txdirect.net> 886406953~-~886370114 rec.backcountry/9841 886406954~-~885923414 misc.fitness.weights/21696 <6b3s8r$dp0@sjx-ixn5.ix.netcom.com> 886406954~-~886404085 comp.sys.ibm.pc.games.flight-sim/52151 #gama[lib-news] 114# ls -l history* -rw-rw-r-- 1 news 110490739 Feb 2 17:09 history -rw-rw-r-- 1 news 122 Feb 2 17:14 history.dir -rw-rw-r-- 1 news 8294372 Feb 2 17:09 history.pag #gama[lib-news] 115#
maple% telnet gama.is.tsukuba.ac.jp nntp
Trying 130.158.80.241 ...
Connected to gama.is.tsukuba.ac.jp.
Escape character is '^]'.
200 gama.is.tsukuba.ac.jp InterNetNews server INN 1.5.1sec2 25-Jul-1997 ready
Trying 130.158.80.241 ...
Connected to gama.is.tsukuba.ac.jp.
Escape character is '^]'.
200 gama.is.tsukuba.ac.jp InterNetNews server INN 1.5.1sec2 25-Jul-1997 ready
IHAVE <YAS.98Feb2175819@is.tsukuba.ac.jp>
435 Duplicate
QUIT
205 .
Connection closed by foreign host.
maple%
図? 冗長リンクを含むニュースの配送/ Network news transfer with redundant links
Aで投稿された記事が、B,C,Dを通って E までやってきた時には、Path: には、通ってきたニュースのサイトの名前が入る。
Path: E!D!C!B!A!username
サイト E のサーバは、この記事は サイト A を通ったと判断し、その記事を
サイト A には送らない。
実際の Path: の例。
Path: orchid-news.coins.tsukuba.ac.jp!gama.is.tsukuba.ac.jp! nadesico.cc.tsukuba.ac.jp!news-sv.sinet!newsfeed.mesh.ad.jp! newsgate1.web.ad.jp!news501.nifty.com!not-for-mail
Path: gama.is.tsukuba.ac.jp!is.tsukuba.ac.jp!hagi!ume!igakukei!news.cs.ritsumei.ac.jp!kuis-news!kuee-news!tamaru-news!Q.T.Honey!news.hbl.or.jp!news.ksi.co.jp!spinosk!threeWeb-news!nf2.iij.ad.jp!nr0.iij.ad.jp!news.iij.ad.jp!newsgw.yokohama.tao.or.jp!news.yokohama.tao.or.jp!citron!miyano From: fj-committee@cow.nara.sharp.co.jp Newsgroups: fj.rec.trading-cards Subject: cmsg newgroup fj.rec.trading-cards Control: newgroup fj.rec.trading-cards Date: 12 Jan 1998 23:53:28 GMT Message-ID: <newgroup.fj.rec.trading-cards.19980113@cow.nara.sharp.co.jp> For your newsgroups file: fj.rec.trading-cards Topics and discussions on trading-cards
名前 | 説明 |
---|---|
cancel <message-id> | 記事のキャンセル |
newgrop groupname [moderated] | ニュース・グループの作成 |
rmgroup groupname | ニュース・グループの削除 |
checkgroups | activeファイルの確認 |
ihave systemname | 送りたい記事のリスト |
sendme systemname | 送って欲しい記事のリスト |
sendsys | sysファイルの転送要求 |
version | ニュース・システムのバージョンの転送 |
ihave/sendme は、UUCP で冗長リンクを作る時に使う。
Path: bounce-back From: committee@fj-news.org (Fj Newsgroups Management Committee) Newsgroups: fj.comp.dev.pc-card Subject: cmsg newgroup fj.comp.dev.pc-card Control: newgroup fj.comp.dev.pc-card Approved: yas@is.tsukuba.ac.jp Message-ID: <newgroup.fj.comp.dev.pc-card.19990112@fj-news.org> Date: Tue, 12 Jan 1999 07:12:37 -0000 Lines: 26 X-Info: ftp://ftp.isc.org/pub/pgpcontrol/README.html ftp://ftp.isc.org/pub/pgpcontrol/README X-PGP-Sig: 2.6.3ia Subject,Control,Message-ID,Date,From,Sender iQCVAwUBNpr16hf4TH9gf12pAQHabwP/SLnIuV26QMrAB6EdSahCzHniDvlmwjWB EXbPine+y0zcoSWYtj0h1ZBuY9HTV8h/Y3WMGEbsZ7UTDrK8HKYh3agEB1ZRQEe8 jY3Ya1WCTk8ht7WGqf6mfihJB9pyXy2tkTLjaJ3CwjyQ/OGx+Ogo+4kr1oZeJ/Vt pC9OH+/G0CI= =KxP+ For your newsgroups file: fj.comp.dev.pc-card Discussion on PC Card(JEIDA/PCMCIA Card).
shh.post({ optionally "from": owned public key, optionally "to": public key, "topics": [..., ...], "payload": ..., "ttl", integer, "priority": integer }); var w = shh.watch({ optionally "to": owned public key, "topics": [..., ...], }); w.arrived(function(m) { ... m.payload ... });
参考:
https://eth.wiki/concepts/whisper/whisper
,
https://github.com/ethereum/wiki/wiki/Whisper
https://github.com/ethereum/wiki/wiki/%5BJapanese%5D-Whisper
(日本語)
Consider the features of the mailing service as an implementation of mulicast. Choose one of two selections in each item. (There are three items. Each item has two choices.)
Choose an important advantage of ISIS CBCAST(causal multicast) over mailing lists in terms of implications of multicast. Describe this important advantage briefly.
Consider that four servers of the News System, A, B, C, and D are connected as in the following figure, and they exchange news articles.
At the first time, each server has articles and the history file that contains the message IDs of the articles as shown in this figure.
図? ネットワーク・ニュースのサーバの接続例
その記事の日付は、転送する範囲に含まれており、記事はヘッダに "Path A!user" を含むものとする。 Note that the date of the article is good for transfer and the article has "Path: A!user" in the header.
その記事の日付は、転送する範囲に含まれており、記事はヘッダに "Path A!user" を含むものとする。 Note that the date of the article is good for transfer and the article has "Path: A!user" in the header.