Folks,

I've looked into GraalVM and would like to share some observations and
suggestions:

1. GridGain nodes running on Graal can execute native Node.JS, Python, LLVM
(C/C++) code. This feature will let Ignite developers who are not using
Java as their primary programming language, deploy their custom non-Java
compute tasks to the server nodes and execute them via the Ignite compute
APIs. I see a little value of adding the compute APIs to Node/Python thin
clients if developers need to code compute tasks in Java (the scope of
IEP-42
<https://cwiki.apache.org/confluence/display/IGNITE/IEP-42+Thin+client%3A+compute+support>).
With Graal, this inconvenience goes away if our internal compute
implementation can detect that a node is running on Graal and load/execute
the code of a guest language:
https://www.graalvm.org/docs/reference-manual/embed/

2. Speaking of the compute tasks (re)deployment briefly touched here, we
can enhance our command-line tool to take care of this task. See how custom
tasks of an arbitrary language can be deployed on Oracle Database and
execute: https://www.graalvm.org/docs/examples/mle-oracle/

3. Presently, Ignite compute APIs are the only interface for the tasks'
execution. At the same time, we can treat a deployed compute task as an
advanced stored procedure and call it from SQL. Scroll to the bottom of the
same Oracle DB example: https://www.graalvm.org/docs/examples/mle-oracle/

Should we move forward creating an IEP for Graal which goal is to enable
the capabilities listed above?

@Pavel Tupitsyn <ptupit...@apache.org>, @Igor Sapego <isap...@apache.org>,
@plehanov.a...@gmail.com <plehanov.a...@gmail.com>, it would be nice to
hear your perspective on 1 and 2. @Igor Seliverstov
<iselivers...@gridgain.com>, @Taras Ledkov <tled...@gridgain.com>, @Roman
Kondakov <rkonda...@gridgain.com>, @Ivan Pavlukhin
<vololo...@gmail.com>, @Yuriy
Gerzhedovich <ygerzhedov...@gridgain.com> what are your thoughts on #3?


-
Denis


On Wed, May 6, 2020 at 1:07 PM Stephen Darlington <
stephen.darling...@gridgain.com> wrote:

> I just switched out OpenJDK and used GraalVM instead. Everything seemed to
> work but I wasn’t looking terribly hard. We’d need to do some more QA but I
> think chances are good that it’ll work just fine.
>
> Regards,
> Stephen
>
> >> On 6 May 2020, at 20:31, Denis Magda <dma...@apache.org> wrote:
> > Stephen, that's terrific! To Ivan's first question, did you just swap
> > HotSpot with GraalVM and got the thing working? Or did it require some
> > extra work?
> >
> > -
> > Denis
> >
> >
> >> On Wed, May 6, 2020 at 10:10 AM Stephen Darlington <
> >> stephen.darling...@gridgain.com> wrote:
> >>
> >> I’ve been playing around with it. I’ve was really impressed that I could
> >> run JavaScript on Ignite with comparatively little code:
> >>
> >> https://github.com/sdarlington/ignite-graalvm <
> >> https://github.com/sdarlington/ignite-graalvm>
> >>
> >> I’ve not been looking at performance, though.
> >>
> >> Regards,
> >> Stephen
> >>
> >>>>> On 6 May 2020, at 17:52, Denis Magda <dma...@apache.org> wrote:
> >>> I'll leave this reference here so that we have a better understanding
> of
> >>> why it's worthwhile to support GraalVM:
> >>> https://blogs.oracle.com/graalvm/apache-spark
> >>> —lightning-fast-on-graalvm-enterprise
> >>> Spark benefits from running on GraalVM, so should we. Apart from memory
> >>> usage and performance advantages, this JVM can execute Python code.
> With
> >>> that, we can enable compute APIs support for Python.
> >>> -
> >>> Denis
> >>> On Sun, May 13, 2018 at 12:23 PM Sven Beauprez <
> >> sven.beaup...@theglue.com>
> >>> wrote:
> >>>> Thnx all for the feedback.
> >>>> Looking forward to the results of such a test run.
> >>>> Regards,
> >>>> Sven
> >>>> SVEN BEAUPREZ
> >>>> L e a d   A r c h i t e c t
> >>>> De Kleetlaan 5, B-1831 Diegem
> >>>> www.theglue.com <http://www.theglue.com/>
> >>>> On 10/05/2018, 17:44, "Petr Ivanov" <mr.wei...@gmail.com> wrote:
> >>>>   File the ticket and specify priority — and I will start researching.
> >>>>   For test runs — we can have a copy of current test project and run
> >>>> some tests in different VMs (as you rightly remarked — right after
> JDK9
> >>>> task is complete).
> >>>>> On 10 May 2018, at 18:34, Dmitry Pavlov <dpavlov....@gmail.com>
> >>>> wrote:
> >>>>> Hi Peter,
> >>>>> It seems it is one more argument to implement selectable VM for
> >>>> existing run-all chain instead of creating one more.
> >>>>> Would it be easy to add one more option once JDK 9 run is ready?
> >>>>> Sincerely,
> >>>>> Dmitriy Pavlov
> >>>>> чт, 10 мая 2018 г. в 15:58, Dmitriy Setrakyan <dsetrak...@apache.org
> >>>> <mailto:dsetrak...@apache.org>>:
> >>>>> Would be nice to have a TC run on Graal, just to have an
> >>>> understanding
> >>>>> whether we support it or not.
> >>>>> D.
> >>>>> On Wed, May 9, 2018 at 4:28 PM, Denis Magda <dma...@apache.org
> >>>> <mailto:dma...@apache.org>> wrote:
> >>>>>> The performance might become better just by replacing HotSpot with
> >>>> Graal,
> >>>>>> but something suggests me that Ignite has to be adopted for this
> >>>> JVM (as
> >>>>>> well as for Azul VM) to get more benefits. Probably, someone will
> >>>> get
> >>>>>> interested and pick this task up.
> >>>>>> What stands out is that the Graal folks also see this VM as an
> >>>> opportunity
> >>>>>> to run custom code on a database side like Oracle or MySQL:
> >>>>>> https://oracle.github.io/oracle-db-mle/ <
> >>>> https://oracle.github.io/oracle-db-mle/> It's a sort of their
> response
> >> to
> >>>>>> compute grid functionality of data grids and Hadoop ecosystem.
> >>>>>> --
> >>>>>> Denis
> >>>>>> On Wed, May 9, 2018 at 5:23 AM, sbeaupre <
> >>>> sven.beaup...@theglue.com <mailto:sven.beaup...@theglue.com>>
> >>>>>> wrote:
> >>>>>>> This is just a thought that came out of a discussion with
> >>>> Dimitry this
> >>>>>>> morning. Recently Oracle has released GraalVM 1.0 after many
> >>>> years of
> >>>>>>> research and development, as a replacement for standard JVM.
> >>>>>>> It should come with huge improvements on several areas
> >>>> (interesting for
> >>>>>>> ignite: AOT, native compilation, remove object allocation in
> >>>> many cases,
> >>>>>>> ...)
> >>>>>>> Any interest from GG in this? Do you guys think it would give
> >>>> ignite a
> >>>>>>> performance boost (haven't tested it myself, just checking if it
> >>>> is
> >>>>>>> worthwhile in the first place, probably low on our prio list).
> >>>>>>> More info:
> >>>>>>> - GraalVM for Java:
> >>>>>>>       http://www.graalvm.org/docs/why-graal/#for-java-programs
> >>>> <http://www.graalvm.org/docs/why-graal/#for-java-programs>
> >>>>>>> - Twitter is running GraalVM in production for a while now:
> >>>>>>>       https://www.youtube.com/watch?v=pR5NDkIZBOA <
> >>>> https://www.youtube.com/watch?v=pR5NDkIZBOA>
> >>>>>>> - Getting started:
> >>>>>>>       http://www.graalvm.org/docs/getting-started/ <
> >>>> http://www.graalvm.org/docs/getting-started/>
> >>>>>>> regards,
> >>>>>>> Sven
> >>>>>>> --
> >>>>>>> Sent from:
> >>>> http://apache-ignite-developers.2346864.n4.nabble.com/ <
> >>>> http://apache-ignite-developers.2346864.n4.nabble.com/>
>

Reply via email to