[PATCH] add documentation about backend naming for VMOD authors
    Dridi Boukelmoune 
    dridi at varni.sh
       
    Thu Nov 12 19:39:59 CET 2015
    
    
  
On Wed, Nov 4, 2015 at 11:40 AM, Poul-Henning Kamp <phk at phk.freebsd.dk> wrote:
> --------
> In message <563894B7.1020904 at uplex.de>, Geoff Simmons writes:
>
>>> Why not keep VRT_new_backend as the only interface for VMODs and
>>> allow this one to fail? (or do the atomic auto-renaming if needed)
>>
>>Um, VRT_new_backend creates a conventional backend (HTTP over TCP)
>>from a vrt_backend config. What if you want to do something entirely
>>different?
>
> Ok, I think we need to wrap this discussion up and move on.
>
> My conclusion for the 5.x perspective is the following:
>
> 1. Our terminology sucks, in particular the director/backend confusion.
Agreed.
> 2. We will not force all directors/backends to appear in CLI/VSC
>         a) Backends defined in VCL -> always listed
>         b) Backends/directors created by VMODS -> vmod decides.
>                 I think it still makes sense to register the
>                 be/dir with the VRT, in order to get the same
>                 cleanup-behaviour.  A flag on the VRT call will
>                 mark it as "unlisted" and disable VSC allocation.
>                 (Or malloc dummy VSC to reduce special-casing ?)
Sounds good.
> 3. Setting non-HTTP directors sick/healthy from CLI makes sense
It does, which means we'd need to make this check in varnishd before
asking the backend. That may already be the case.
> 4. Directors/backends created by VMODs should be tagged so it can
>    be seen in CLI which VMOD created them.  (Possibly also line# ?)
Why not.
It could be something carried by a VRT_CTX, set up by the VCC. Of
course nothing prevents a vmod author to build a context without the
vmod tag/field so it would need to be properly documented.
> 5. The VRT code will take a "unique name" flag argument.
>    When unset, that code will uniqu-ify the backend name with a
>    ".%u" suffix if necessary.  When set the call will fail if a
>    backend already exists with that name.
Why not. It could be useful if combined with 4 for error logging.
> 6. We should support health probing for non-http directors.
>    Some of the bitmaps apply only to HTTP based directors.
>    The overkill version would be for the director to tell which
>    and how many bitmaps it wants to record for health-probes.
>    That could massively complicate VSC handling.
>    A "sneaky" way would be to have VSC contain a fixed number
>    of bitmaps, and let the director name these.  This "only"
>    require a place to stash the names and varnishstat code to
>    pull that info out (A per director implementation VSC segment?)
I suggest the probe would use the director's functions, just like a
bereq. But we'd need to also tell the director not to try recycling a
connection for instance.
> 7. struct VSC_C_vbe seems to be general enough that it makes sense
>    for any kind of director, so there is no point in decoupling
>    CLI/VSC.  The be->vsc pointer needs to be moved up to the
>    director structure.  This may be more messy than it sounds.
Small nitpick, it has a conn field and as you pointed out, we could
have connection-less directors.
> Comments ?
>
> (After this is settled, we'll look at which parts we can also
> put in 4.1.x in ABI/API compatible ways)
Sounds like a good plan!
Best,
Dridi
    
    
More information about the varnish-dev
mailing list