Re: RFC reviews for ggate and hastd

From: Johannes Totz via freebsd-geom <freebsd-geom_at_FreeBSD.org>
Date: Sun, 19 Sep 2021 16:27:40 UTC
On 14/09/2021 22:21, John-Mark Gurney wrote:
> Johannes Totz wrote this message on Mon, Sep 13, 2021 at 02:00 +0100:
>> On 09/09/2021 23:33, John-Mark Gurney wrote:
>>> Johannes Totz via freebsd-geom wrote this message on Thu, Sep 02, 2021 at 21:55 +0100:
>>>> (looks like gmane swallowed my 1st message, trying again)
>>>>
>>>> Hey folks,
>>>>
>>>> any ggate or hastd users here? I've got some code reviews for you.
>>>> Please take a look if you get a chance:
>>>>
>>>> https://reviews.freebsd.org/D31727
>>>> Fix potential out-of-bounds read in the geom-gate kernel module.
>>>>
>>>> https://reviews.freebsd.org/D31722
>>>> Dynamically alloc buffers in ggatec, instead of assuming a fixed size on
>>>> the stack.
>>>>
>>>> https://reviews.freebsd.org/D31709
>>>> Simple rc script to start ggated.
>>>
>>> I'll try to look at them.
>>>
>>> I've broken out the ggate code to: https://www.funkthat.com/gitea/jmg/ggate
>>
>> Nice, thanks!
>>
>> I noticed the http branch. One weekend toy project idea I wanted to get
>> around to was to write a ggated impl that talks to Backblaze.
> 
> I looked at the Backblaze B2 API, and I don't see a way to do partial
> updates of a file.  All the API that I see require you to upload the entire
> file, so I don't think that it'll work.
> 
> I abanded http as a solution, because of issues w/ WebDAV and partial
> updates and the IETF not being very sane about it:
> https://blog.sphere.chronosempire.org.uk/2012/11/21/webdav-and-the-http-patch-nightmare

Oh I was just gonna store each block as a separate file on the backend. 
No need to keep it all together as one huge image. Sure we'd end up with 
literally billions of small files. But I'd ignore that until it becomes 
an actual problem.

> Also, the fact that apache would randomly truncate a file didn't help
> either...
> 
>>> and have a number of fixes in that tree, one of them being having the
>>> server (ggated) be multi-threaded, to improve IOPs.  Another is dropping
>>> the setting of tcp buffer sizes to allow the dynamic buffer sizing code
>>> to work, allowing it to grow larger than 128kB for better perf on high
>>> latency links..
>>>
>>> In another branch, I have a version that runs the client over ssh using
>>> sftp (requires a modified sftp-server for best performance, and security)
>>> allowing for better security..
>>>
>>> The ssh branch does have an rc.d script for that.  I'll look at which one
>>> should be used, and adapting the man page that I've written for that one
>>> as well.
>>>
>>> Thanks for the help/work!
>