Re: [9fans] Acme Mail editable from address

2021-01-27 Thread ori
Quoth pouya+lists.9f...@nohup.io:
> I was looking for a way to send emails from different addresses with
> Acme Mail, as I use + address suffixes to sort incoming mail and
> occasionally need to send emails from the same (e.g.  to this mailing
> list).  Not finding a convenient way, I committed a bad hack to
> include an optional From: line in the header of outgoing messages.
> It's available at
> 
> 9p.io/sources/contrib/pdt/acme/mail
> 
> in case someone might find it useful (or be kind enough to tell me
> this is not the right way to do it).
> 

The ability is useful, but the code to do it would be better
placed in upas/marshal.


--
9fans: 9fans
Permalink: 
https://9fans.topicbox.com/groups/9fans/T9469a3ec554967c5-M45b4767d3b572a1f2d04a7b9
Delivery options: https://9fans.topicbox.com/groups/9fans/subscription


Re: [9fans] Dual dialing/forking sessions to increase 9P throughput

2021-01-27 Thread David Arroyo
On Wed, Jan 27, 2021, at 11:25, Ethan Gardener wrote:
> fcp(1)? 

You are right, but fcp(1) would only produce multiple parallel read
and write messages, I'm talking about a more general approach. fcp is
probably a better compromise, though, as ori points out the client can
get complicated pretty quickly when trying to solve the problem more
generally:

On Wed, Jan 27, 2021, at 11:52, o...@eigenstate.org wrote:
> This also has some hairy edge cases. For example,
> what happens to the actions in the pipeline if one
> of the operations fails?

Yes, the tradeoff of this pipelining is that the client becomes a lot
more complex, but for this specific problem, the client would need to be
prepared to receive and discard Rerror messages for each message after
the failed one, just surfacing the first error to whatever system call
or library function kicked off this sequence of messages.

> 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.

You can get pretty close to "bundles" without changing the protocol by
having the client reserve a few bits of storage in the Tag header to
group requests in a pipeline together:

# Bundle 1, sent at once
Twalk tag=0x0100 fid=0 newfid=1 "foo/bar"
Topen tag=0x0101 fid=1 O_RDONLY
Twrite tag=0x0102 fid=1 data
Tclunk tag=0x0103 fid=1

Then the client could use a trie or some similar data structure on the
tag of an R-message to get the "state" of a pipeline.

> 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?

This is a harder problem, I think. What if non-contiguous reads or writes
succeed? An mmap()-style API might fare better here, but that comes with
its own drawbacks. I don't have a good answer here, but I think since
Twrite and Rread messages are elastic it is always better to just send
larger messages, increasing msize if necessary.

> 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.

The problem you describe is analagous to the "buffer bloat" problem.
In the lower protocols like TCP it is solved by making the sender aware of
the bandwidth delay product and sizing its buffers appropriately. So it
could be handled by using a model-based congestion avoidance algorithm
like BBR or Vegas, and sending messages out of a prioritized queue,
where "interactive" files like /dev/mouse are prioritized.

David

--
9fans: 9fans
Permalink: 
https://9fans.topicbox.com/groups/9fans/Te69bb0fce0f0ffaf-M6e7a64ad95ea27ac3c73a9ac
Delivery options: https://9fans.topicbox.com/groups/9fans/subscription


[9fans] Acme Mail editable from address

2021-01-27 Thread pouya+lists . 9fans
I was looking for a way to send emails from different addresses with
Acme Mail, as I use + address suffixes to sort incoming mail and
occasionally need to send emails from the same (e.g.  to this mailing
list).  Not finding a convenient way, I committed a bad hack to
include an optional From: line in the header of outgoing messages.
It's available at

9p.io/sources/contrib/pdt/acme/mail

in case someone might find it useful (or be kind enough to tell me
this is not the right way to do it).

Pouya



--
9fans: 9fans
Permalink: 
https://9fans.topicbox.com/groups/9fans/T9469a3ec554967c5-M059a7a0d5e206cd7b9c25ef2
Delivery options: https://9fans.topicbox.com/groups/9fans/subscription


Re: [9fans] authoritative source for u9fs?

2021-01-27 Thread Lucio De Re
No the source code differences are pretty vast as well, although right
now I couldn't tell you what the main theme of the changes might be.

Lucio.

On 1/27/21, Ethan Gardener  wrote:
> On Mon, Jan 25, 2021, at 5:10 AM, Lucio De Re wrote:
>>
>> PS: The new executable seems noticeably bigger than whatever I used
>> previously. Which happens to be the NetBSD "pkg" version
>> (/usr/pkgsrc/filesysytems/u9fs). Hmm, the differences are quite
>> significant...
>
> Just checking: Was the old one `strip`ped and the new one not? That's caught
> be out before; the symbol table being by far the largest part of some
> binaries.
>

--
9fans: 9fans
Permalink: 
https://9fans.topicbox.com/groups/9fans/Tee2220301f2a891c-M696d655d3b3e6536a3980424
Delivery options: https://9fans.topicbox.com/groups/9fans/subscription


Re: [9fans] Dual dialing/forking sessions to increase 9P throughput

2021-01-27 Thread Charles Forsyth
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, cigar562hfsp952f...@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 Internet.
> >
> > 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 succeed.
> > 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=1 fid=0 newfid=1 /path/to/somefile
> > * Topen tag=2 fid=1 o_read
> > * Tread tag=3 fid=1 off=0 count=4096
> > * Tread tag=4 fid=1 off=4096 count=4096
> > * Tclunk tag=5 fid=1
> >
> > 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-M40bb94bd40d97df72c885f69
Delivery options: https://9fans.topicbox.com/groups/9fans/subscription


Re: [9fans] Dual dialing/forking sessions to increase 9P throughput

2021-01-27 Thread ori
Quoth David Arroyo :
> On Tue, Dec 29, 2020, at 18:50, cigar562hfsp952f...@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 Internet.
> 
> 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 succeed.
> 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=1 fid=0 newfid=1 /path/to/somefile
> * Topen tag=2 fid=1 o_read
> * Tread tag=3 fid=1 off=0 count=4096
> * Tread tag=4 fid=1 off=4096 count=4096
> * Tclunk tag=5 fid=1
> 
> 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-Maff5e0961941062961ff4f2d
Delivery options: https://9fans.topicbox.com/groups/9fans/subscription


Re: [9fans] Dual dialing/forking sessions to increase 9P throughput

2021-01-27 Thread Ethan Gardener
On Mon, Jan 25, 2021, at 10:31 PM, David Arroyo wrote:
> On Tue, Dec 29, 2020, at 18:50, cigar562hfsp952f...@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 Internet.
> 
> 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 succeed.
> 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=1 fid=0 newfid=1 /path/to/somefile
> * Topen tag=2 fid=1 o_read
> * Tread tag=3 fid=1 off=0 count=4096
> * Tread tag=4 fid=1 off=4096 count=4096
> * Tclunk tag=5 fid=1
> 
> I'm not aware of any client implementations that do this kind of
> pipelining, though.

fcp(1)? 

--
9fans: 9fans
Permalink: 
https://9fans.topicbox.com/groups/9fans/Te69bb0fce0f0ffaf-M1b4dd6e347d2d00d2cd645d8
Delivery options: https://9fans.topicbox.com/groups/9fans/subscription


Re: [9fans] authoritative source for u9fs?

2021-01-27 Thread Ethan Gardener
On Mon, Jan 25, 2021, at 5:10 AM, Lucio De Re wrote:
> 
> PS: The new executable seems noticeably bigger than whatever I used
> previously. Which happens to be the NetBSD "pkg" version
> (/usr/pkgsrc/filesysytems/u9fs). Hmm, the differences are quite
> significant...

Just checking: Was the old one `strip`ped and the new one not? That's caught be 
out before; the symbol table being by far the largest part of some binaries.

--
9fans: 9fans
Permalink: 
https://9fans.topicbox.com/groups/9fans/Tee2220301f2a891c-M74ae21d6ac07c6d16acab49f
Delivery options: https://9fans.topicbox.com/groups/9fans/subscription


Re: [9fans] 9p.zone: Public 9P Registry Services

2021-01-27 Thread fgergo
On 1/27/21, fge...@gmail.com  wrote:
> On 1/25/21, sirjofri+ml-9f...@sirjofri.de 
> wrote:
>> Hello all,
>>
>> we haven't announced it here, I believe, so here it is:
>>
>> 9p.zone is a public registry service for 9p services, OS agnostic.
>> This means, it works for Plan 9, 9front, inferno, basically all 9p
>> capable systems can use the registry.  The project is public, so it's
>> meant for public services and everyone can announce their services in
>> this registry.
>>
>> While the center of 9p.zone is the registry itself (CORE services), we
>> also plan to do other services as well (called EXTRA services).  This
>> services should help others to build great 9p stuff for the community,
>> without the need to do everything.  For example, we plan to build
>> public auth services for free that can be used as a SSO service for
>> other 9p services built by YOU.
>>
>> Furthermore, the old gridchat (from 9gridchan.org, which is basically
>> shut down) is also inside this domain (chat.9p.zone).  The whole
>> 9p.zone will become a new grid system that's free and public.
>>
>> More information about the registry is available via http://9p.zone .
>> Feel free to contribute your public services.
>>
>>
>> sirjofri
>
> Nice, thanks!
> mount -A tcp!registry.9p.zone!registry /mnt/registry worked from
> inferno on the day you sent the announcement, but it does not seem to
> connect now. Is it supposed to work now?
> thanks!
>
pebkac, it's working fine.
sorry

--
9fans: 9fans
Permalink: 
https://9fans.topicbox.com/groups/9fans/Ta99fa16f523b4280-M8efd52a66122142ca8a0402c
Delivery options: https://9fans.topicbox.com/groups/9fans/subscription


Re: [9fans] 9p.zone: Public 9P Registry Services

2021-01-27 Thread fgergo
On 1/25/21, sirjofri+ml-9f...@sirjofri.de  wrote:
> Hello all,
>
> we haven't announced it here, I believe, so here it is:
>
> 9p.zone is a public registry service for 9p services, OS agnostic.
> This means, it works for Plan 9, 9front, inferno, basically all 9p
> capable systems can use the registry.  The project is public, so it's
> meant for public services and everyone can announce their services in
> this registry.
>
> While the center of 9p.zone is the registry itself (CORE services), we
> also plan to do other services as well (called EXTRA services).  This
> services should help others to build great 9p stuff for the community,
> without the need to do everything.  For example, we plan to build
> public auth services for free that can be used as a SSO service for
> other 9p services built by YOU.
>
> Furthermore, the old gridchat (from 9gridchan.org, which is basically
> shut down) is also inside this domain (chat.9p.zone).  The whole
> 9p.zone will become a new grid system that's free and public.
>
> More information about the registry is available via http://9p.zone .
> Feel free to contribute your public services.
>
>
> sirjofri

Nice, thanks!
mount -A tcp!registry.9p.zone!registry /mnt/registry worked from
inferno on the day you sent the announcement, but it does not seem to
connect now. Is it supposed to work now?
thanks!

--
9fans: 9fans
Permalink: 
https://9fans.topicbox.com/groups/9fans/Ta99fa16f523b4280-Mb0c91ed2e6573982806f606f
Delivery options: https://9fans.topicbox.com/groups/9fans/subscription