All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nick Fisk <nick-ksME7r3P/wO1Qrn1Bg8BZw@public.gmane.org>
To: 'Josh Durgin' <jdurgin-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>,
	'Patrick Donnelly'
	<pdonnell-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>,
	'Noah Watkins'
	<noahwatkins-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Cc: 'ceph-devel' <ceph-devel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	'ceph-users' <ceph-users-idqoXFIVOFJgJs9I8MT0rw@public.gmane.org>
Subject: Re: Passing LUA script via python rados execute
Date: Tue, 21 Feb 2017 21:45:23 -0000	[thread overview]
Message-ID: <10037c78.AEEAIIaNAnsAAAAAAAAAAEtrDcsAADNJBWwAAAAAAACRXwBYrLT9@mailjet.com> (raw)
In-Reply-To: <10499347-8c11-83fb-9778-e95049668c6c-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>

> 
> On 02/19/2017 12:15 PM, Patrick Donnelly wrote:
> > On Sat, Feb 18, 2017 at 2:55 PM, Noah Watkins <noahwatkins-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
> wrote:
> >> The least intrusive solution is to simply change the sandbox to allow
> >> the standard file system module loading function as expected. Then
> >> any user would need to make sure that every OSD had consistent
> >> versions of dependencies installed using something like LuaRocks.
> >> This is simple, but could make debugging and deployment a major
> headache.
> >
> > A locked down require which doesn't load C bindings (i.e. only load
> > .lua files) would probably be alright.
> >
> >> A more ambitious version would be to create an interface for users to
> >> upload scripts and dependencies into objects, and support referencing
> >> those objects as standard dependencies in Lua scripts as if they were
> >> standard modules on the file system. Each OSD could then cache
> >> scripts and dependencies, allowing applications to use references to
> >> scripts instead of sending a script with every request.
> >
> > This is very doable. I imagine we'd just put all of the Lua modules in
> > a flattened hierarchy under a RADOS namespace? The potentially
> > annoying nit in this is writing some kind of mechanism for installing
> > a Lua module tree into RADOS. Users would install locally and then
> > upload the tree through some tool.
> 
> Using rados objects for this is not really feasible. It would be incredibly
> complex within the osd - it involves multiple objects, cache invalidation, and
> has all kinds of potential issues with consistent versioning and atomic
> updates across objects.
> 
> The simple solution of loading modules from the local fs sounds way better
> to me. Putting modules on all osds and reloading the modules or restarting
> the osds seems like a pretty simple deployment model with any configuration
> management system.
> 
> That said, for research purposes you could resurrect something like the
> ability to load modules into the cluster from a client - just store them on the
> local fs of each osd, not in rados objects. This was removed back in 2011:
> 
> https://github.com/ceph/ceph/commit/7c04f81ca16d11fc5a592992a4462b3
> 4ccb199dc
> https://github.com/ceph/ceph/commit/964a0a6e1326d4f773c547655ebb2a5
> c97794268
> 

Thanks Josh. They look like they refer to loading the actual rados classes themselves, whereas I just want the LUA rados class which runs a LUA script passed via JSON, to be able to load extra lua scripts from the local FS. Or have I misunderstood the contents of those commits?

I'm trying to put some examples together for a book and so wanted to try and come up with a more out of the box experience someone could follow. I'm guessing some basic examples in LUA and then come custom rados classes in C++ might be the best approach for this for now?

> Josh

  parent reply	other threads:[~2017-02-21 21:45 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1fa1fa7d.AEEAIBzI4F8AAAAAAAAAAF3gdzcAADNJBWwAAAAAAACRXwBYpMPz@mailjet.com>
     [not found] ` <1fa1fa7d.AEEAIBzI4F8AAAAAAAAAAF3gdzcAADNJBWwAAAAAAACRXwBYpMPz-ImYt9qTNe79BDgjK7y7TUQ@public.gmane.org>
2017-02-15 23:41   ` Passing LUA script via python rados execute Noah Watkins
2017-02-15 23:42 ` Noah Watkins
     [not found]   ` <3177d648.AEQAH1DOmSwAAAAAAAAAAF3gdzcAADNJBWwAAAAAAACRXwBYphEb@mailjet.com>
2017-02-16 21:00     ` Noah Watkins
     [not found]       ` <1cadb44c.ADsAAGb8C0gAAAAAAAAAAF3gdzcAADNJBWwAAAAAAACRXwBYphQY@mailjet.com>
2017-02-16 22:17         ` Noah Watkins
     [not found]           ` <3a5eb209.AEEAIECau6cAAAAAAAAAAF3gdzcAADNJBWwAAAAAAACRXwBYp3rL@mailjet.com>
     [not found]             ` <3a5eb209.AEEAIECau6cAAAAAAAAAAF3gdzcAADNJBWwAAAAAAACRXwBYp3rL-ImYt9qTNe79BDgjK7y7TUQ@public.gmane.org>
2017-02-18 19:55               ` Noah Watkins
     [not found]                 ` <CAB2gnbWXWcj=O1LKKMGCn2X6h_T46x9Ypaupy2u7wQHdBV2CJA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-02-18 22:39                   ` Nick Fisk
     [not found]                 ` <5ad9bb93.AEQAH3DlQ6gAAAAAAAAAAF3gdzcAADNJBWwAAAAAAACRXwBYqM0y@mailjet.com>
2017-02-18 23:58                   ` Noah Watkins
2017-02-19 20:15                 ` Patrick Donnelly
2017-02-20  8:43                   ` Josh Durgin
     [not found]                     ` <10499347-8c11-83fb-9778-e95049668c6c-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2017-02-21 21:45                       ` Nick Fisk [this message]
     [not found]                     ` <c36e222c.AEEAIIaNAn4AAAAAAAAAAF3gdzkAADNJBWwAAAAAAACRXwBYrLT9@mailjet.com>
2017-02-21 21:59                       ` Patrick Donnelly

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=10037c78.AEEAIIaNAnsAAAAAAAAAAEtrDcsAADNJBWwAAAAAAACRXwBYrLT9@mailjet.com \
    --to=nick-ksme7r3p/wo1qrn1bg8bzw@public.gmane.org \
    --cc=ceph-devel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=ceph-users-idqoXFIVOFJgJs9I8MT0rw@public.gmane.org \
    --cc=jdurgin-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
    --cc=noahwatkins-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    --cc=pdonnell-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.