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/> >