From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: * X-Spam-Status: No, score=1.1 required=5.0 tests=DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED,DKIM_VALID,FREEMAIL_FROM,HTML_MESSAGE,MAILING_LIST_MULTI, PDS_OTHER_BAD_TLD,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL,URIBL_SBL_A autolearn=no autolearn_force=no version=3.4.4 Received: (qmail 2773 invoked from network); 27 Jan 2021 17:34:49 -0000 Received: from tb-ob0.topicbox.com (64.147.108.117) by inbox.vuxu.org with ESMTPUTF8; 27 Jan 2021 17:34:49 -0000 Received: from tb-mx0.topicbox.com (tb-mx0.nyi.icgroup.com [10.90.30.73]) by tb-ob0.topicbox.com (Postfix) with ESMTP id 4D2221A704 for ; Wed, 27 Jan 2021 12:34:47 -0500 (EST) (envelope-from bounce.mM40bb94bd40d97df72c885f69.r522be890-2105-11eb-b15e-8d699134e1fa@9fans.bounce.topicbox.com) Received: by tb-mx0.topicbox.com (Postfix, from userid 1132) id 468421469FAB; Wed, 27 Jan 2021 12:34:47 -0500 (EST) ARC-Authentication-Results: i=2; topicbox.com; arc=pass; dkim=pass (2048-bit rsa key sha256) header.d=gmail.com header.i=@gmail.com header.b=bUu1P+na header.a=rsa-sha256 header.s=20161025 x-bits=2048; dmarc=pass policy.published-domain-policy=none policy.published-subdomain-policy=quarantine policy.applied-disposition=none policy.evaluated-disposition=none (p=none,sp=quarantine,d=none,d.eval=none) policy.policy-from=p header.from=gmail.com; spf=pass smtp.mailfrom=charles.forsyth@gmail.com smtp.helo=mail-ua1-f48.google.com; x-internal-arc=fail (as.1.topicbox.com=pass, ams.1.topicbox.com=fail (body has been altered)) (Message modified while forwarding at Topicbox) ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d= topicbox.com; h=mime-version:references:in-reply-to:from:date :message-id:subject:to:content-type:list-help:list-id:list-post :list-subscribe:reply-to:content-transfer-encoding :list-unsubscribe; s=sysmsg-1; t=1611768887; bh=7mGbSJbNh2Swk9Es SwRtvuxLTqf/TsaM5rl+S67tQi4=; b=V+BXExkdQ7eMPLO3hy2nG/VRMKnuof0R WNGubNQRhrHr1tvpncIZYILRO1s+KXbpEKgaQB89GQyNpYWjHOwQTaiIvA5tX6Ao gV/gt0P7NJ6QzGWWwkblGnsjD2au+GKmCYvCrGUsIgbv75REit6IWaSMpBzODX/n Q6SXT7rb42A= ARC-Seal: i=2; a=rsa-sha256; cv=pass; d=topicbox.com; s=sysmsg-1; t= 1611768887; b=pjwo1sLPguutH+G07454lGgkIj01DbVwmFTzVZzOJY7S0dCO84 tu6VaZNrZX1t2fPs2O+QpzpnnHXgcJ1ZEABdksx5euDy/hKjhPamo9GaehwQEv1A s8CamqOSZ3F+tHheXUu4DOL1xB54+yetz2z2ZmkP+3Kq4zpCd4KOVG9FE= Authentication-Results: topicbox.com; arc=pass; dkim=pass (2048-bit rsa key sha256) header.d=gmail.com header.i=@gmail.com header.b=bUu1P+na header.a=rsa-sha256 header.s=20161025 x-bits=2048; dmarc=pass policy.published-domain-policy=none policy.published-subdomain-policy=quarantine policy.applied-disposition=none policy.evaluated-disposition=none (p=none,sp=quarantine,d=none,d.eval=none) policy.policy-from=p header.from=gmail.com; spf=pass smtp.mailfrom=charles.forsyth@gmail.com smtp.helo=mail-ua1-f48.google.com; x-internal-arc=fail (as.1.topicbox.com=pass, ams.1.topicbox.com=fail (body has been altered)) (Message modified while forwarding at Topicbox) X-Received-Authentication-Results: tb-mx1.topicbox.com; arc=none (no signatures found); bimi=skipped (DMARC Policy is not at enforcement); dkim=pass (2048-bit rsa key sha256) header.d=gmail.com header.i=@gmail.com header.b=bUu1P+na header.a=rsa-sha256 header.s=20161025 x-bits=2048; dmarc=pass policy.published-domain-policy=none policy.published-subdomain-policy=quarantine policy.applied-disposition=none policy.evaluated-disposition=none (p=none,sp=quarantine,d=none,d.eval=none) policy.policy-from=p header.from=gmail.com; iprev=pass smtp.remote-ip=209.85.222.48 (mail-ua1-f48.google.com); spf=pass smtp.mailfrom=charles.forsyth@gmail.com smtp.helo=mail-ua1-f48.google.com; x-aligned-from=pass (Address match); x-google-dkim=pass (2048-bit rsa key) header.d=1e100.net header.i=@1e100.net header.b=tZl9ZWlL; x-ptr=pass smtp.helo=mail-ua1-f48.google.com policy.ptr=mail-ua1-f48.google.com; x-return-mx=pass header.domain=gmail.com policy.is_org=yes (MX Records found: gmail-smtp-in.l.google.com,alt2.gmail-smtp-in.l.google.com,alt1.gmail-smtp-in.l.google.com,alt4.gmail-smtp-in.l.google.com,alt3.gmail-smtp-in.l.google.com); x-return-mx=pass smtp.domain=gmail.com policy.is_org=yes (MX Records found: gmail-smtp-in.l.google.com,alt2.gmail-smtp-in.l.google.com,alt1.gmail-smtp-in.l.google.com,alt4.gmail-smtp-in.l.google.com,alt3.gmail-smtp-in.l.google.com); x-tls=pass smtp.version=TLSv1.2 smtp.cipher=ECDHE-RSA-AES256-GCM-SHA384 smtp.bits=256/256; x-vs=clean score=14 state=0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=9fans.net; h= mime-version:references:in-reply-to:from:date:message-id:subject :to:content-type:list-help:list-id:list-post:list-subscribe :reply-to:content-transfer-encoding:list-unsubscribe; s=dkim-1; bh=HIduIS4AG3gNyiuXGzP8gwQUCxQsO2KJkcTDzuJGxcA=; b=fAfEHERYuynN f/oeyx7NzpTGvVGOssq0xquPsdSXmGGSrix5UVZfX+gaC/IGRnzV/Ddzr5rDXRWg IIQLCxNkodqAk/dISs8IKHtCU7I0SEihDFNEcyJ0u/e6qYKMj1D8PtltSWdzsg9F 0Us+O0+6u5riS737aLUZk/L2rHOISpc= Received: from tb-mx1.topicbox.com (localhost.local [127.0.0.1]) by tb-mx1.topicbox.com (Postfix) with ESMTP id 870311497092 for <9fans@9fans.net>; Wed, 27 Jan 2021 12:34:31 -0500 (EST) (envelope-from charles.forsyth@gmail.com) Received: from tb-mx1.topicbox.com (localhost [127.0.0.1]) by tb-mx1.topicbox.com (Authentication Milter) with ESMTP id 1A1F8A0058F; Wed, 27 Jan 2021 12:34:31 -0500 ARC-Seal: i=1; a=rsa-sha256; cv=none; d=topicbox.com; s=arcseal; t= 1611768871; b=qm0X0yUB08jX8VLFb74gGkbru1IvnjuBi2ldFrc/hBr9kOXZZh vLx4umYBQCmLMNgJhlw+BqRWW6cSdULiPMazDvAwCD+G2JjOK6ElFqCOZFncVewx hXnWMnI/3DYkvVL5HO710ykYSAipS1bhY+8Q5mPOJYuhzyHZqTCYCeti9vIwpezb IYkULgUbUyRg5W9i8Zx0ooyp+r7yueXhvd0lrjgvNA8/4HY8u07SYAOjRWyL5NVs CKQnDj2pssKOLtoPfOZP7LgzG0VZcM6hwsqvNFu8PUMdrBSyzyi8TeZ2Ui8Jeg+2 Aqykn1yoetjozJInPuBL3ZU7Mmf4zNnyZZQw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d= topicbox.com; h=mime-version:references:in-reply-to:from:date :message-id:subject:to:content-type; s=arcseal; t=1611768871; bh=KClXtNJ07PJOz6l5a+uwVf1k4uXDEBKN3HsFiYJyRQc=; b=KAHmH+Y1KGib XhF0ojnZ3A2b/olvF/PT9lYD5T7EnqFgVoHkciFtXi+DetmUEDpJ1oinAS4YZsFn ZzGrwcrIa4MHR/PzIkI6Qe40LdCOBSCpWWbRREo7fxhbeIuNpUtdq7MKFeVChXt0 1iLkrUHs5LqiR3Hz5saSSQ5dWLqqHUSxPyjhM7o3f2GyJidic7rv9E04IaE1heXz 5qzAkR794X4O9yG20rQiHQtIamYMoWdBR2AY1WbbgZLCbhFo99My16bxmjtyHIZ6 fmNotn5I8B/3nf/6W66GcqQZ2OWGxoj+NYbYwbZZMhr6267PZ1sNxI2bzDYgC2mp c0V/JgiYZw== ARC-Authentication-Results: i=1; tb-mx1.topicbox.com; arc=none (no signatures found); bimi=skipped (DMARC Policy is not at enforcement); dkim=pass (2048-bit rsa key sha256) header.d=gmail.com header.i=@gmail.com header.b=bUu1P+na header.a=rsa-sha256 header.s=20161025 x-bits=2048; dmarc=pass policy.published-domain-policy=none policy.published-subdomain-policy=quarantine policy.applied-disposition=none policy.evaluated-disposition=none (p=none,sp=quarantine,d=none,d.eval=none) policy.policy-from=p header.from=gmail.com; iprev=pass smtp.remote-ip=209.85.222.48 (mail-ua1-f48.google.com); spf=pass smtp.mailfrom=charles.forsyth@gmail.com smtp.helo=mail-ua1-f48.google.com; x-aligned-from=pass (Address match); x-google-dkim=pass (2048-bit rsa key) header.d=1e100.net header.i=@1e100.net header.b=tZl9ZWlL; x-ptr=pass smtp.helo=mail-ua1-f48.google.com policy.ptr=mail-ua1-f48.google.com; x-return-mx=pass header.domain=gmail.com policy.is_org=yes (MX Records found: gmail-smtp-in.l.google.com,alt2.gmail-smtp-in.l.google.com,alt1.gmail-smtp-in.l.google.com,alt4.gmail-smtp-in.l.google.com,alt3.gmail-smtp-in.l.google.com); x-return-mx=pass smtp.domain=gmail.com policy.is_org=yes (MX Records found: gmail-smtp-in.l.google.com,alt2.gmail-smtp-in.l.google.com,alt1.gmail-smtp-in.l.google.com,alt4.gmail-smtp-in.l.google.com,alt3.gmail-smtp-in.l.google.com); x-tls=pass smtp.version=TLSv1.2 smtp.cipher=ECDHE-RSA-AES256-GCM-SHA384 smtp.bits=256/256; x-vs=clean score=14 state=0 X-ME-VSCause: gggruggvucftvghtrhhoucdtuddrgeduledrvdekgddutddtucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucgfrhhlucfvnfffucdlud egmdenucfjughrpeggfhgjhfffkffuvfgtsegrtderredttdejnecuhfhrohhmpeevhhgr rhhlvghsucfhohhrshihthhhuceotghhrghrlhgvshdrfhhorhhshihthhesghhmrghilh drtghomheqnecuggftrfgrthhtvghrnhepueegfeejtdekgeeuueeiieelkefggfevvdeg gedvhedvteejueehvdeutdejveejnecuffhomhgrihhnpegsfhhorhgurdhinhhfohdprg dqsgdrgiihiidpthhophhitggsohigrdgtohhmnecukfhppedvtdelrdekhedrvddvvddr geeknecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehinhgvthepvddtledrke ehrddvvddvrdegkedphhgvlhhopehmrghilhdquhgruddqfhegkedrghhoohhglhgvrdgt ohhmpdhmrghilhhfrhhomhepoegthhgrrhhlvghsrdhfohhrshihthhhsehgmhgrihhlrd gtohhmqe X-ME-VSScore: 14 X-ME-VSCategory: clean Received-SPF: pass (gmail.com ... _spf.google.com: Sender is authorized to use 'charles.forsyth@gmail.com' in 'mfrom' identity (mechanism 'include:_netblocks.google.com' matched)) receiver=tb-mx1.topicbox.com; identity=mailfrom; envelope-from="charles.forsyth@gmail.com"; helo=mail-ua1-f48.google.com; client-ip=209.85.222.48 Received: from mail-ua1-f48.google.com (mail-ua1-f48.google.com [209.85.222.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by tb-mx1.topicbox.com (Postfix) with ESMTPS for <9fans@9fans.net>; Wed, 27 Jan 2021 12:34:31 -0500 (EST) (envelope-from charles.forsyth@gmail.com) Received: by mail-ua1-f48.google.com with SMTP id a31so1008285uae.11 for <9fans@9fans.net>; Wed, 27 Jan 2021 09:34:31 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=KClXtNJ07PJOz6l5a+uwVf1k4uXDEBKN3HsFiYJyRQc=; b=tZl9ZWlLuUnT6AdNeuGfbOt3YRmu2HgiEicGbHw2CYL5U1s1IwUn+erGk3CRWDfL/J Ur0kPx9y+uMCJ8qSo9PK06M9kTGALmhwwQqUi9uygPns9O56z3ZDHhoehG8OJDbYuyFJ 58UoIZQ3UqAJSL2lOgHYAbhMjJYLzwnZgZHGRzUo1L8r3taSLAD8RrSuHzbN3MtvUe0K oRa17V9VYjyRWV+k23RrnoyevAT0Rh1GRpi/XMRiLsnGme2Y2MhgQOZs2EBWDuWn9QJ3 FGhZhPffe6YlM1OBkaUojdbAMXmq7vyeiaCwuMxLB7fIu3ePm6/CbkGUmcfFgXJCuhYy CRDQ== X-Gm-Message-State: AOAM532S2MrCEp4Ntcls7Cx/UtCFDrvQ20m9cv/Wmlcl194/O3mxNonj uy4qQL/uDTT4sfhz4fJetAJPSg2uAdoxHOrCSrlValZRtR5xOQ== X-Google-Smtp-Source: ABdhPJzLT3u7l7mNWd9VQ+bDHteFEVj78jDu/ktTns/iL7fOZBC+Phfp+98grC5q1TuCWkkNqZiD0XYMGEsErTXp33w= X-Received: by 2002:ab0:2ee:: with SMTP id 101mr9042961uah.39.1611768870378; Wed, 27 Jan 2021 09:34:30 -0800 (PST) MIME-Version: 1.0 References: <21AE5944012F26AD61546F797F677050@eigenstate.org> In-Reply-To: <21AE5944012F26AD61546F797F677050@eigenstate.org> From: Charles Forsyth Date: Wed, 27 Jan 2021 17:34:19 +0000 Message-ID: Subject: Re: [9fans] Dual dialing/forking sessions to increase 9P throughput To: 9fans <9fans@9fans.net> Content-Type: multipart/alternative; boundary="000000000000fa9f4605b9e52e17" Topicbox-Policy-Reasoning: allow: sender is a member Topicbox-Message-UUID: ecf71cb4-60c5-11eb-b23d-c104deea1e8b Archived-At: =?UTF-8?B?PGh0dHBzOi8vOWZhbnMudG9waWNib3guY29tL2dyb3Vwcy85?= =?UTF-8?B?ZmFucy9UZTY5YmIwZmNlMGYwZmZhZi1NNDBiYjk0YmQ0MGQ5N2RmNzJjODg1?= =?UTF-8?B?ZjY5Pg==?= List-Help: List-Id: "9fans" <9fans.9fans.net> List-Post: List-Software: Topicbox v0 List-Subscribe: Precedence: list Reply-To: 9fans <9fans@9fans.net> Content-Transfer-Encoding: 7bit List-Unsubscribe: , Topicbox-Delivery-ID: 2:9fans:437d30aa-c441-11e9-8a57-d036212d11b0:522be890-2105-11eb-b15e-8d699134e1fa:M40bb94bd40d97df72c885f69:1:tXP2Ob5Xdy6kLlKjDCskau_ZaNQG_284Miu-gstHmi8 --000000000000fa9f4605b9e52e17 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable I found several of Bryan Ford's ideas interesting as always here, particularly Structured Streams (https://bford.info/pub/net/sst-abs/) and Breaking Up the Transport Logjam (https://bford.info/pub/net/logjam-abs/) On Wed, Jan 27, 2021 at 4:53 PM wrote: > Quoth David Arroyo : > > On Tue, Dec 29, 2020, at 18:50, cigar562hfsp952fans@icebubble.org wrote: > > > It's well-known that 9P has trouble transferring large files (high > > > volume/high bandwith) over high-latency networks, such as the Interne= t. > > > > From what I know of 9P, I don't think this is the fault of the protocol > > itself. In fact, since 9P lets the clients choose Fid and Tag > identifiers, > > it should be uniquely well suited for "long fat pipes". You could avoid > > waiting for round-trips by optimistically assuming your requests succee= d. > > For example, you could do the following to optimistically read the first > > 8K bytes of a file without needing to wait for a response from the > server. > > > > * Twalk tag=3D1 fid=3D0 newfid=3D1 /path/to/somefile > > * Topen tag=3D2 fid=3D1 o_read > > * Tread tag=3D3 fid=3D1 off=3D0 count=3D4096 > > * Tread tag=3D4 fid=3D1 off=3D4096 count=3D4096 > > * Tclunk tag=3D5 fid=3D1 > > > > I'm not aware of any client implementations that do this kind of > > pipelining, though. > > > > David >=20 > This also has some hairy edge cases. For example, > what happens to the actions in the pipeline if one > of the operations fails? >=20 > I think that for this kind of pipelining to be > effective, 9p may need some notion of 'bundles', > where the first failure, short write, or other > exceptional operation would cause all other > commands in the bundle to be ignored. >=20 > Another issue is that its' difficult to retrofit > this pipelining into the plan 9 system call > interface; when do you return an error from > read(2)? what if there are mutiple Treads? >=20 > Finally, there's the problem of flow control; > with 9p, round trip time limits starvation, > at least to a degree. But how do you handle > congestion if you can stuff as many 9p packets > down a single connection as possible? There's > no packet loss, but you can end up with very > long delays as small reads like /dev/mouse > get queued behind bulk transfers. >=20 > There are some programs that try to handle this > for 'well behaved' file systems (eg, fcp(1), > or http://src.a-b.xyz/clone/, but making it > happen in general is not trivial. >=20 ------------------------------------------ 9fans: 9fans Permalink: https://9fans.topicbox.com/groups/9fans/Te69bb0fce0f0ffaf-M40bb9= 4bd40d97df72c885f69 Delivery options: https://9fans.topicbox.com/groups/9fans/subscription --000000000000fa9f4605b9e52e17 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
I found several of Bryan Ford's ideas inte= resting as always here, particularly Structured Streams (https://bford.info/pub/net/sst-abs/) and = Breaking Up the Transport Logjam (https://bford.info/pub/net/logjam-abs/)

On Wed, Jan 27, 2021= at 4:53 PM <ori@eigenstate.org> wrote:
Q= uoth David Arroyo <droyo@aqwari.net>:
> On Tue, Dec 29, 2020, at 18:50, cigar562hfsp952fans@icebubble.org wrot= e:
> > It's well-known that 9P has trouble transferring large files = (high
> > volume/high bandwith) over high-latency networks, such as the Int= ernet.
>
> From what I know of 9P, I don't think this is the fault of the pro= tocol
> itself. In fact, since 9P lets the clients choose Fid and Tag identifi= ers,
> it should be uniquely well suited for "long fat pipes". You = could avoid
> waiting for round-trips by optimistically assuming your requests succe= ed.
> For example, you could do the following to optimistically read the fir= st
> 8K bytes of a file without needing to wait for a response from the ser= ver.
>
> * Twalk tag=3D1 fid=3D0 newfid=3D1 /path/to/somefile
> * Topen tag=3D2 fid=3D1 o_read
> * Tread tag=3D3 fid=3D1 off=3D0 count=3D4096
> * Tread tag=3D4 fid=3D1 off=3D4096 count=3D4096
> * Tclunk tag=3D5 fid=3D1
>
> I'm not aware of any client implementations that do this kind of > pipelining, though.
>
> David

This also has some hairy edge cases. For example,
what happens to the actions in the pipeline if one
of the operations fails?

I think that for this kind of pipelining to be
effective, 9p may need some notion of 'bundles',
where the first failure, short write, or other
exceptional operation would cause all other
commands in the bundle to be ignored.

Another issue is that its' difficult to retrofit
this pipelining into the plan 9 system call
interface; when do you return an error from
read(2)? what if there are mutiple Treads?

Finally, there's the problem of flow control;
with 9p, round trip time limits starvation,
at least to a degree. But how do you handle
congestion if you can stuff as many 9p packets
down a single connection as possible? There's
no packet loss, but you can end up with very
long delays as small reads like /dev/mouse
get queued behind bulk transfers.

There are some programs that try to handle this
for 'well behaved' file systems (eg, fcp(1),
or http://src.a-b.xyz/clone/, but making it
happen in general is not trivial.


------------------------------------------
9fans: 9fans
Permalink: https:= //9fans.topicbox.com/groups/9fans/Te69bb0fce0f0ffaf-Maff5e0961941062961ff4f= 2d
Delivery options: https://9fans.topicbox.com/gro= ups/9fans/subscription
= --000000000000fa9f4605b9e52e17--