ignite-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Vladimir Ozerov <voze...@gridgain.com>
Subject Re: Read this if you want to integrate Ignite with other platforms (Python, R, etc.)
Date Thu, 26 Jan 2017 07:53:36 GMT
Shashank, Dmitriy,

In principle it should be possible to use 3rd party marshalling frameworks,
but with some limitations.

Java side expects objects in certain format. At the very high level it
looks like [HEADER][BODY][FOOTER]. This is enough for Java to process the
object. While you *MUST* marshal an object with proper header and footer
which follows our binary format, you are allowed to marshal body as you
want.

We already employ this trick in some edge cases in Java and .NET when
binary marshalling cannot be used. The only drawback is that you will loose
interoperability: if object body doesn't follow Ignite's binary format, it
will be impossible to read it's fields on other platforms. Also you will
not be able to use these objects in SQL queries.

To summarize: you can implement only part of Ignite's binary protocol at
the cost of some intrinsic limitations.

Vladimir.

On Thu, Jan 26, 2017 at 1:42 AM, Dmitriy Setrakyan <dsetrakyan@apache.org>
wrote:

> On Wed, Jan 25, 2017 at 1:12 AM, Shashank Gandham <
> shashankgandham@gmail.com
> > wrote:
>
> > So if we have to make full-fledged python platform for ignite. We can use
> > C++ common  API to integrate and have an high level API of Python. Object
> > serialisation can be achieved in python using libraries like marshal,
> > pickle, shelve or something similar. Theoretically speaking this should
> be
> > possible, or am I missing something?
> >
>
> As Vladimir mention, to add a new interoperable client in Python, you will
> need to implement the BinaryMarshaller in Python in the same way we already
> do in C++ and .NET. As a suggestion, you may be able to use Ignite C++ APIs
> for Python integration. This way you will not have to worry about
> marshalling. Python does support C callbacks as far as I know.
>
> D.
>

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