From mboxrd@z Thu Jan 1 00:00:00 1970 To: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net> In-reply-to: Your message of "Mon, 31 Aug 2009 09:25:36 CDT." References: <2abfc8db078f981044b3f9e69934279d@quanstro.net> From: Bakul Shah Date: Mon, 31 Aug 2009 09:16:33 -0700 Message-Id: <20090831161633.CD6F75B64@mail.bitblocks.com> Subject: Re: [9fans] Interested in improving networking in Plan 9 Topicbox-Message-UUID: 5d68b56a-ead5-11e9-9d60-3106f5b1d025 On Mon, 31 Aug 2009 09:25:36 CDT Eric Van Hensbergen wrote: > > Why not have a synthetic file system interface to ndb that allows it > to update its own files? I think this is my primary problem. > Granular modification to static files is a PITA to manage -- we should > be using synthetic file system interfaces to to help manage and gate > modifications. Most of the services I have in mind may be transient > and task specific, so there are elements of scope to consider and you > may not want to write anything out to static storage. ndb maps directly to a list of lisp's association lists but how would you map this to a synthetic fs? Something like / to yield a tuple? For example: % cat ndb/ip/198.41.0.4 # same as ndbquery ip 198.41.0.4 dom=A.ROOT-SERVERS.NET ip=198.41.0.4 % cat ndb/dom/A.ROOT-SERVERS.NET dom=A.ROOT-SERVERS.NET ip=198.41.0.4 But this is nasty! % cat ndb/dom/'' # same as ndbquery dom '' dom= ns=A.ROOT-SERVERS.NET ns=B.ROOT-SERVERS.NET ns=C.ROOT-SERVERS.NET ns=D.ROOT-SERVERS.NET ns=E.ROOT-SERVERS.NET ns=F.ROOT-SERVERS.NET ns=G.ROOT-SERVERS.NET ns=H.ROOT-SERVERS.NET ns=I.ROOT-SERVERS.NET ns=J.ROOT-SERVERS.NET ns=K.ROOT-SERVERS.NET ns=L.ROOT-SERVERS.NET ns=M.ROOT-SERVERS.NET And it is not clear how you would map % ndbquery attr value rattr ... Another alternative is to map each tuple to a directory: % ls ndb/dom/A.ROOT-SERVERS.NET # just show the attributes! dom ip % grep '' ndb/dom/A.ROOT-SERVERS.NET/* dom:A.ROOT-SERVERS.NET ip:198.41.0.4 An intriguing idea that can point toward a synth fs interface to a dbms or search results.... But I don't think this would be a lightweight interface.