ignite-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dmitriy Setrakyan <dsetrak...@apache.org>
Subject Re: Ignite and non-Java languages
Date Tue, 05 May 2015 08:33:40 GMT

I think you misunderstood me. I was not suggesting that users access our
API from Python. I was suggesting that users use our Java API to execute
Python tasks. For Python, we should have a PythonTask which will have
enough information to execute an appropriate Python program out of process.


On Tue, May 5, 2015 at 1:23 AM, Vladimir Ozerov <vozerov@gridgain.com>

> Dima,
> The most complex part of task execution is master-node side. We assume that
> user starts job execution from some Python/Ruby/etc. application. To
> implement the same API as we have in Java, we must establish a link between
> Java master node and external platform so that not only other platform
> invokes Java, but Java is able to invoke the platform as well (e.g. to pass
> job results). This is where we have to start JVM in the same process (or
> use some other mechanisms like shmem).
> On the other hand, remote job execution and cache operations are trivial to
> implement given that "JVM-in-the-same-process" is done - these are single
> "Java -> platform" or "platform -> Java" calls
> Memcached and external process start could make our live easier for a while
> (at the cost of more complex and less consistent API), but we will have to
> implement the most difficult part still.
> Vladimir.
> On Tue, May 5, 2015 at 4:14 AM, Dmitriy Setrakyan <dsetrakyan@apache.org>
> wrote:
> > In continuation of previous discussions on multi-language support in
> > Ignite, I have been thinking on how to make Ignite available to other
> > languages with minimal effort and think there is a very elegant way to do
> > it.
> >
> > Even though Ignite tasks are written in Java, they can be used only as a
> > distribution engine for tasks that are written in Python, Ruby, or any
> > other language. For example, Ignite task can receive job coordinates for
> > Python task (task name, class name, etc.) and spawn of jobs. When jobs
> > arrive to remote nodes, they can start another process which in turn will
> > execute a Python, Ruby, or any other program.
> >
> > The way we can make Ignite data available to Python or Ruby jobs is via
> > Memcached API that we already support and that is available on every
> > language out there.
> >
> > Here is a Jira ticket for this (I will cross link it with this
> discussion):
> > https://issues.apache.org/jira/browse/IGNITE-859
> >
> > Thoughts?
> >
> > D.
> >

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message