You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ignite.apache.org by Ilya Kasnacheev <il...@gmail.com> on 2018/03/01 14:17:11 UTC

Re: Ignite Thin clients for Node.js, Python, PHP

With regards of thin clients for dynamically typed languages, I think
Ignite needs two following features to shine:

- Ability to pass JSON to such clients, turn JSON Objects into a
BinaryObjects, which will give ability to index top-level keys in such JSON
with SQL Indexing. Of course this should be integrated with QueryEntities.
- Ability to pass JavaScript snippets to invoke() and affinityCall()
families of calls. On Server node they should be interpreted by Nashorn
(since we've upgraded to Java 8). We should also cache such snippets
pre-interpreted, in this case it can be pretty fast since Nashorn compile
to JVM bytecode.

WDYT?

-- 
Ilya Kasnacheev

2018-02-20 0:23 GMT+03:00 Alexey Kosenchuk <al...@nobitlost.com>:

> Hi All!
>
> Let us join the party, please ;)
>
> As we see, there is Binary Client Protocol to communicate with Ignite
> cluster and a concept of Thin (lightweight) client.
>
> If there are no objections or duplicated plans, we would like to develop
> Thin Client libs for:
> - Node.js
> - Python
> - PHP
>
> Please add us as contributors and provide access to the Ignite Jira
> components.
>
> Usernames in the Apache Jira:
> alexey.kosenchuk
> ekaterina.vergizova
> pavel.petroshenko
>
> Thanks!
> -Alexey
>

Re: Ignite Thin clients for Node.js, Python, PHP

Posted by Denis Magda <dm...@apache.org>.
Thanks, Sergey! It's a really robust foundation. My guess that the guys can
take your client, support the rest of APIs the protocol has and eventually
merge it to Ignite code base.

--
Denis

On Fri, Mar 2, 2018 at 2:40 AM, Sergey Kozlov <sk...@gridgain.com> wrote:

> Hi Igniters
>
> Due to some delay for release 2.4 and personal circumstances I decided to
> public the prototype of Python Client [1].
>
> Feel free to use it as a base if it makes sense.
>
> [1] https://github.com/skozlov-gridgain/apache-ignite-python-thin-client
>
>
> On Thu, Mar 1, 2018 at 8:17 PM, Pavel Tupitsyn <pt...@apache.org>
> wrote:
>
> > Agree with Vladimir and Denis.
> >
> > I don't think JSON has any place in the thin client protocol,
> > which is a binary protocol designed to be efficient, with clearly defined
> > data format.
> >
> > We already have JSON in "REST" client.
> >
> >
> > On Thu, Mar 1, 2018 at 8:15 PM, Denis Magda <dm...@apache.org> wrote:
> >
> > > Totally share Vladimir's stance. Let's support the scope that already
> > > exists in the protocol and think about the future later. The users will
> > > definitely guide us to a right direction :)
> > >
> > > --
> > > Denis
> > >
> > > On Thu, Mar 1, 2018 at 7:12 AM, Vladimir Ozerov <vo...@gridgain.com>
> > > wrote:
> > >
> > > > I would extract compute tasks into separate scope. It is better to
> keep
> > > > focus on protocol things and basic language support for now. Once we
> > have
> > > > basic client API in production-ready state, we could consider adding
> > > > JavaScript to our core compute feature set and then extend it to the
> > > > clients (which should be trivial provided that core part is ready).
> We
> > > > should
> > > > be ready to spend considerable efforts to prior R&D because dynamic
> > code
> > > > execution is not very simple thing, especially in terms of security,
> > > native
> > > > compilation, etc..
> > > >
> > > >
> > > >
> > > > On Thu, Mar 1, 2018 at 5:17 PM, Ilya Kasnacheev <
> > > ilya.kasnacheev@gmail.com
> > > > >
> > > > wrote:
> > > >
> > > > > With regards of thin clients for dynamically typed languages, I
> think
> > > > > Ignite needs two following features to shine:
> > > > >
> > > > > - Ability to pass JSON to such clients, turn JSON Objects into a
> > > > > BinaryObjects, which will give ability to index top-level keys in
> > such
> > > > JSON
> > > > > with SQL Indexing. Of course this should be integrated with
> > > > QueryEntities.
> > > > > - Ability to pass JavaScript snippets to invoke() and
> affinityCall()
> > > > > families of calls. On Server node they should be interpreted by
> > Nashorn
> > > > > (since we've upgraded to Java 8). We should also cache such
> snippets
> > > > > pre-interpreted, in this case it can be pretty fast since Nashorn
> > > compile
> > > > > to JVM bytecode.
> > > > >
> > > > > WDYT?
> > > > >
> > > > > --
> > > > > Ilya Kasnacheev
> > > > >
> > > > > 2018-02-20 0:23 GMT+03:00 Alexey Kosenchuk
> > <alexey.kosenchuk@nobitlost.
> > > > com
> > > > > >:
> > > > >
> > > > > > Hi All!
> > > > > >
> > > > > > Let us join the party, please ;)
> > > > > >
> > > > > > As we see, there is Binary Client Protocol to communicate with
> > Ignite
> > > > > > cluster and a concept of Thin (lightweight) client.
> > > > > >
> > > > > > If there are no objections or duplicated plans, we would like to
> > > > develop
> > > > > > Thin Client libs for:
> > > > > > - Node.js
> > > > > > - Python
> > > > > > - PHP
> > > > > >
> > > > > > Please add us as contributors and provide access to the Ignite
> Jira
> > > > > > components.
> > > > > >
> > > > > > Usernames in the Apache Jira:
> > > > > > alexey.kosenchuk
> > > > > > ekaterina.vergizova
> > > > > > pavel.petroshenko
> > > > > >
> > > > > > Thanks!
> > > > > > -Alexey
> > > > > >
> > > > >
> > > >
> > >
> >
>
>
>
> --
> Sergey Kozlov
> GridGain Systems
> www.gridgain.com
>

Re: Ignite Thin clients for Node.js, Python, PHP

Posted by Sergey Kozlov <sk...@gridgain.com>.
Hi Igniters

Due to some delay for release 2.4 and personal circumstances I decided to
public the prototype of Python Client [1].

Feel free to use it as a base if it makes sense.

[1] https://github.com/skozlov-gridgain/apache-ignite-python-thin-client


On Thu, Mar 1, 2018 at 8:17 PM, Pavel Tupitsyn <pt...@apache.org> wrote:

> Agree with Vladimir and Denis.
>
> I don't think JSON has any place in the thin client protocol,
> which is a binary protocol designed to be efficient, with clearly defined
> data format.
>
> We already have JSON in "REST" client.
>
>
> On Thu, Mar 1, 2018 at 8:15 PM, Denis Magda <dm...@apache.org> wrote:
>
> > Totally share Vladimir's stance. Let's support the scope that already
> > exists in the protocol and think about the future later. The users will
> > definitely guide us to a right direction :)
> >
> > --
> > Denis
> >
> > On Thu, Mar 1, 2018 at 7:12 AM, Vladimir Ozerov <vo...@gridgain.com>
> > wrote:
> >
> > > I would extract compute tasks into separate scope. It is better to keep
> > > focus on protocol things and basic language support for now. Once we
> have
> > > basic client API in production-ready state, we could consider adding
> > > JavaScript to our core compute feature set and then extend it to the
> > > clients (which should be trivial provided that core part is ready). We
> > > should
> > > be ready to spend considerable efforts to prior R&D because dynamic
> code
> > > execution is not very simple thing, especially in terms of security,
> > native
> > > compilation, etc..
> > >
> > >
> > >
> > > On Thu, Mar 1, 2018 at 5:17 PM, Ilya Kasnacheev <
> > ilya.kasnacheev@gmail.com
> > > >
> > > wrote:
> > >
> > > > With regards of thin clients for dynamically typed languages, I think
> > > > Ignite needs two following features to shine:
> > > >
> > > > - Ability to pass JSON to such clients, turn JSON Objects into a
> > > > BinaryObjects, which will give ability to index top-level keys in
> such
> > > JSON
> > > > with SQL Indexing. Of course this should be integrated with
> > > QueryEntities.
> > > > - Ability to pass JavaScript snippets to invoke() and affinityCall()
> > > > families of calls. On Server node they should be interpreted by
> Nashorn
> > > > (since we've upgraded to Java 8). We should also cache such snippets
> > > > pre-interpreted, in this case it can be pretty fast since Nashorn
> > compile
> > > > to JVM bytecode.
> > > >
> > > > WDYT?
> > > >
> > > > --
> > > > Ilya Kasnacheev
> > > >
> > > > 2018-02-20 0:23 GMT+03:00 Alexey Kosenchuk
> <alexey.kosenchuk@nobitlost.
> > > com
> > > > >:
> > > >
> > > > > Hi All!
> > > > >
> > > > > Let us join the party, please ;)
> > > > >
> > > > > As we see, there is Binary Client Protocol to communicate with
> Ignite
> > > > > cluster and a concept of Thin (lightweight) client.
> > > > >
> > > > > If there are no objections or duplicated plans, we would like to
> > > develop
> > > > > Thin Client libs for:
> > > > > - Node.js
> > > > > - Python
> > > > > - PHP
> > > > >
> > > > > Please add us as contributors and provide access to the Ignite Jira
> > > > > components.
> > > > >
> > > > > Usernames in the Apache Jira:
> > > > > alexey.kosenchuk
> > > > > ekaterina.vergizova
> > > > > pavel.petroshenko
> > > > >
> > > > > Thanks!
> > > > > -Alexey
> > > > >
> > > >
> > >
> >
>



-- 
Sergey Kozlov
GridGain Systems
www.gridgain.com

Re: Ignite Thin clients for Node.js, Python, PHP

Posted by Pavel Tupitsyn <pt...@apache.org>.
Agree with Vladimir and Denis.

I don't think JSON has any place in the thin client protocol,
which is a binary protocol designed to be efficient, with clearly defined
data format.

We already have JSON in "REST" client.


On Thu, Mar 1, 2018 at 8:15 PM, Denis Magda <dm...@apache.org> wrote:

> Totally share Vladimir's stance. Let's support the scope that already
> exists in the protocol and think about the future later. The users will
> definitely guide us to a right direction :)
>
> --
> Denis
>
> On Thu, Mar 1, 2018 at 7:12 AM, Vladimir Ozerov <vo...@gridgain.com>
> wrote:
>
> > I would extract compute tasks into separate scope. It is better to keep
> > focus on protocol things and basic language support for now. Once we have
> > basic client API in production-ready state, we could consider adding
> > JavaScript to our core compute feature set and then extend it to the
> > clients (which should be trivial provided that core part is ready). We
> > should
> > be ready to spend considerable efforts to prior R&D because dynamic code
> > execution is not very simple thing, especially in terms of security,
> native
> > compilation, etc..
> >
> >
> >
> > On Thu, Mar 1, 2018 at 5:17 PM, Ilya Kasnacheev <
> ilya.kasnacheev@gmail.com
> > >
> > wrote:
> >
> > > With regards of thin clients for dynamically typed languages, I think
> > > Ignite needs two following features to shine:
> > >
> > > - Ability to pass JSON to such clients, turn JSON Objects into a
> > > BinaryObjects, which will give ability to index top-level keys in such
> > JSON
> > > with SQL Indexing. Of course this should be integrated with
> > QueryEntities.
> > > - Ability to pass JavaScript snippets to invoke() and affinityCall()
> > > families of calls. On Server node they should be interpreted by Nashorn
> > > (since we've upgraded to Java 8). We should also cache such snippets
> > > pre-interpreted, in this case it can be pretty fast since Nashorn
> compile
> > > to JVM bytecode.
> > >
> > > WDYT?
> > >
> > > --
> > > Ilya Kasnacheev
> > >
> > > 2018-02-20 0:23 GMT+03:00 Alexey Kosenchuk <alexey.kosenchuk@nobitlost.
> > com
> > > >:
> > >
> > > > Hi All!
> > > >
> > > > Let us join the party, please ;)
> > > >
> > > > As we see, there is Binary Client Protocol to communicate with Ignite
> > > > cluster and a concept of Thin (lightweight) client.
> > > >
> > > > If there are no objections or duplicated plans, we would like to
> > develop
> > > > Thin Client libs for:
> > > > - Node.js
> > > > - Python
> > > > - PHP
> > > >
> > > > Please add us as contributors and provide access to the Ignite Jira
> > > > components.
> > > >
> > > > Usernames in the Apache Jira:
> > > > alexey.kosenchuk
> > > > ekaterina.vergizova
> > > > pavel.petroshenko
> > > >
> > > > Thanks!
> > > > -Alexey
> > > >
> > >
> >
>

Re: Ignite Thin clients for Node.js, Python, PHP

Posted by Denis Magda <dm...@apache.org>.
Totally share Vladimir's stance. Let's support the scope that already
exists in the protocol and think about the future later. The users will
definitely guide us to a right direction :)

--
Denis

On Thu, Mar 1, 2018 at 7:12 AM, Vladimir Ozerov <vo...@gridgain.com>
wrote:

> I would extract compute tasks into separate scope. It is better to keep
> focus on protocol things and basic language support for now. Once we have
> basic client API in production-ready state, we could consider adding
> JavaScript to our core compute feature set and then extend it to the
> clients (which should be trivial provided that core part is ready). We
> should
> be ready to spend considerable efforts to prior R&D because dynamic code
> execution is not very simple thing, especially in terms of security, native
> compilation, etc..
>
>
>
> On Thu, Mar 1, 2018 at 5:17 PM, Ilya Kasnacheev <ilya.kasnacheev@gmail.com
> >
> wrote:
>
> > With regards of thin clients for dynamically typed languages, I think
> > Ignite needs two following features to shine:
> >
> > - Ability to pass JSON to such clients, turn JSON Objects into a
> > BinaryObjects, which will give ability to index top-level keys in such
> JSON
> > with SQL Indexing. Of course this should be integrated with
> QueryEntities.
> > - Ability to pass JavaScript snippets to invoke() and affinityCall()
> > families of calls. On Server node they should be interpreted by Nashorn
> > (since we've upgraded to Java 8). We should also cache such snippets
> > pre-interpreted, in this case it can be pretty fast since Nashorn compile
> > to JVM bytecode.
> >
> > WDYT?
> >
> > --
> > Ilya Kasnacheev
> >
> > 2018-02-20 0:23 GMT+03:00 Alexey Kosenchuk <alexey.kosenchuk@nobitlost.
> com
> > >:
> >
> > > Hi All!
> > >
> > > Let us join the party, please ;)
> > >
> > > As we see, there is Binary Client Protocol to communicate with Ignite
> > > cluster and a concept of Thin (lightweight) client.
> > >
> > > If there are no objections or duplicated plans, we would like to
> develop
> > > Thin Client libs for:
> > > - Node.js
> > > - Python
> > > - PHP
> > >
> > > Please add us as contributors and provide access to the Ignite Jira
> > > components.
> > >
> > > Usernames in the Apache Jira:
> > > alexey.kosenchuk
> > > ekaterina.vergizova
> > > pavel.petroshenko
> > >
> > > Thanks!
> > > -Alexey
> > >
> >
>

Re: Ignite Thin clients for Node.js, Python, PHP

Posted by Vladimir Ozerov <vo...@gridgain.com>.
I would extract compute tasks into separate scope. It is better to keep
focus on protocol things and basic language support for now. Once we have
basic client API in production-ready state, we could consider adding
JavaScript to our core compute feature set and then extend it to the
clients (which should be trivial provided that core part is ready). We should
be ready to spend considerable efforts to prior R&D because dynamic code
execution is not very simple thing, especially in terms of security, native
compilation, etc..



On Thu, Mar 1, 2018 at 5:17 PM, Ilya Kasnacheev <il...@gmail.com>
wrote:

> With regards of thin clients for dynamically typed languages, I think
> Ignite needs two following features to shine:
>
> - Ability to pass JSON to such clients, turn JSON Objects into a
> BinaryObjects, which will give ability to index top-level keys in such JSON
> with SQL Indexing. Of course this should be integrated with QueryEntities.
> - Ability to pass JavaScript snippets to invoke() and affinityCall()
> families of calls. On Server node they should be interpreted by Nashorn
> (since we've upgraded to Java 8). We should also cache such snippets
> pre-interpreted, in this case it can be pretty fast since Nashorn compile
> to JVM bytecode.
>
> WDYT?
>
> --
> Ilya Kasnacheev
>
> 2018-02-20 0:23 GMT+03:00 Alexey Kosenchuk <alexey.kosenchuk@nobitlost.com
> >:
>
> > Hi All!
> >
> > Let us join the party, please ;)
> >
> > As we see, there is Binary Client Protocol to communicate with Ignite
> > cluster and a concept of Thin (lightweight) client.
> >
> > If there are no objections or duplicated plans, we would like to develop
> > Thin Client libs for:
> > - Node.js
> > - Python
> > - PHP
> >
> > Please add us as contributors and provide access to the Ignite Jira
> > components.
> >
> > Usernames in the Apache Jira:
> > alexey.kosenchuk
> > ekaterina.vergizova
> > pavel.petroshenko
> >
> > Thanks!
> > -Alexey
> >
>