Contribution request: Ignite lightweight Python client

2018-06-21 Thread Dmitry Melnichuk
Hello, my name is Dmitry Melnichuk, my Jira username is "Melnichuk". I would like to work on issue IGNITE-7782. Please assign the task to me or give me permissons to assign tasks. Regards, Dmitry

Re: Thin Client lib: Python

2018-07-02 Thread Dmitry Melnichuk
Hi Igor, I totally agree with the point that auto-generated things does not belong to the source tree. I already made short instructions on how to generate HTML documents with Sphinx in README file. The instructions assume that the user is able to use the common tools (Python, pip,

Re: Thin Client lib: Python

2018-07-25 Thread Dmitry Melnichuk
Hi Prachi! At the moment I already have my documents (temporarily) published at RTD. This is how they look like at a whole: https://apache-ignite-binary-protocol-client.readthedocs.io/ I already have a separate section on examples:

Re: Thin Client lib: Python

2018-07-25 Thread Dmitry Melnichuk
Either ``` conn = Connection('example.com', 10800) cache_put(conn, cache_id('my-cache'), 'a', 1) ``` or ``` conn = Connection('example.com', 10800) my_cache_id = cache_id('my-cache') cache_put(conn, my_cache_id, 'a', 1) ``` It is also possible to give parameters names, if you like to. ```

Re: Thin Client lib: Python

2018-07-27 Thread Dmitry Melnichuk
Dmitriy, Igor, Ilya, Sergey! Thank you for sharing your ideas, concerns and criticism with me. I do appreciate it. I already made some changes in my API, influenced by your feedback. I also plan to add a certain set of features, that will make my UX closer to what you can see from other

Re: Thin Client lib: Python

2018-07-26 Thread Dmitry Melnichuk
Hi, Ilya! I considered this option. Indeed, the code would look cleaner if only one kind of identifier (preferably the human-readable name) was used. But there can be a hypothetical situation, when the user is left with hash code only. (For example, obtained from some other API.) It would be

Re: Thin Client lib: Python

2018-07-24 Thread Dmitry Melnichuk
Hello, Dmitriy, Igor! Dmitriy, as you have noted, most cache API functions are parameterized with the hash codes, and the function for creating the hash codes is documented. I personally see no harm in using hash codes as it is defined by low-level client operations. But it may be better to

Re: Thin Client lib: Python

2018-07-25 Thread Dmitry Melnichuk
Igor, Thank you for your elaborated response. I think the examples you gave me are valid for statically-typed languages only. At least not for Python. If we add an extra parameter to key-value operation, we just add it to a given API function as a named argument (“keyword argument” or

Re: Thin Client lib: Python

2018-07-25 Thread Dmitry Melnichuk
Dmitriy, The short answer is: Python client uses hash code (or any cache identifier) instead of Java Cache object, since such an abstraction is not necessary in Python. As for why (IMO) Cache object may be needed in Java, but not in Python − the main reason is the difference in typing

Re: Thin Client lib: Python

2018-07-25 Thread Dmitry Melnichuk
Igor, That is a very good point. It just did not cross my mind during the implementation of this function, that the cache identifier can be abstract. I will fix that. On 07/26/2018 01:46 AM, Igor Sapego wrote: Well, at least name should be changed, IMO, as the API function name should say

Re: Python thin client

2018-09-04 Thread Dmitry Melnichuk
4, 2018 at 7:25 AM, Dmitry Melnichuk < dmitry.melnic...@nobitlost.com> wrote: Nikolay, There is indeed a feature in `setuptools` I just learned about, which would help in this case (and I believe the case you demonstrated can be quite typical, thank you for pointing it out). It give

Re: Thin Client lib: Python

2018-09-06 Thread Dmitry Melnichuk
Hello, Prachi! The section is a hand-written .rst-file, which contains links to some content, generated from code with `sphinx-apidoc`. All autogenerated content resides in `source` folder. For example, this is an autogenerated page:

Re: Can not gather default cluster on localhost

2018-09-07 Thread Dmitry Melnichuk
:47500 in the list of IP addresses? чт, 6 сент. 2018 г. в 22:16, Dmitry Melnichuk < dmitry.melnic...@nobitlost.com>: Hello igniters! I am again in need of your mighty helping hand. Recently I experienced a strange bug. It may be a fresh regression, or maybe I myself did something wrong. It

Re: Python thin client

2018-09-04 Thread Dmitry Melnichuk
Nikolay, There is indeed a feature in `setuptools` I just learned about, which would help in this case (and I believe the case you demonstrated can be quite typical, thank you for pointing it out). It gives user a clever message in the end of a stack trace like > UnsupportedPythonVersion:

Can not gather default cluster on localhost

2018-09-06 Thread Dmitry Melnichuk
Hello igniters! I am again in need of your mighty helping hand. Recently I experienced a strange bug. It may be a fresh regression, or maybe I myself did something wrong. It would be great if someone looked into this matter. I have a need of testing some things in my client against a

Re: Can not gather default cluster on localhost

2018-09-07 Thread Dmitry Melnichuk
Maxim, Thank you very much, your command did it. I did not had to set the `IGNITE_HOME` var though. Now I must analyze the difference it made to put in into my client's documentation. On 9/8/18 2:27 AM, Maxim Muzafarov wrote: Dmitry, Recently, I've faced the same issue. I've tried

Re: Python thin client

2018-09-11 Thread Dmitry Melnichuk
Igor, I literally followed the steps you describe, but unfortunately could not reproduce the error. The only clue I got is that your site-packages already have the newer version of attrs (18.2.0 against 18.1.0 as of pyignite requirements). But this should not be an issue, since

Application of various Complex object types

2018-07-13 Thread Dmitry Melnichuk
Hello fellow Ignite developers! As you may already know, I am building Ignite thin client API library in Python. I have reached the point where all applicable operations are implemented. All data types are also fully covered, except for some variants of Complex object. I have been already

Thin Client lib: Python

2018-06-28 Thread Dmitry Melnichuk
Hello Ignite developers! I would like to bring to your attention, that the new Apache Ignite binary protocol API client library, written in Python 3, is out for your review and evaluation. This client is in an early stage of development and lacks some features, but I am going to further

Re: Thin Client lib: Python

2018-06-29 Thread Dmitry Melnichuk
Hi, Dmitry! I guess there will be no IEP specifically for the client, because it has nothing to do with Ignite enhancing, as what IEP stands for. From Ignite side, the purpose and potential capabilities of the thin client, aka binary API client, is best described by this document:

Re: Thin Client lib: Python

2018-06-29 Thread Dmitry Melnichuk
Dmitry, I have mentioned Jira task in my reply earlier today. Sorry, but the task description was a bit messy and less than informative. I just updated it. Please have a look. https://issues.apache.org/jira/browse/IGNITE-7782 Please let me know if this information is supposed to be

Re: Python thin client

2018-10-12 Thread Dmitry Melnichuk
/IGNITE-9850 Best Regards, Igor On Thu, Oct 11, 2018 at 12:18 PM Dmitry Melnichuk < dmitry.melnic...@nobitlost.com> wrote: Stepan, Thank you for answering my question and for the updated results. I have ran the profiler (cProfile) against the benchmark code you provided and have not fou

Re: Python thin client

2018-10-15 Thread Dmitry Melnichuk
Igor, I do not have access to edit wiki pages, so please fill it. All the features are supported, except for: - Query API: ScanQuery with filter, - Binary API: Get object in BinaryObject form, BinaryObject building, - Additional Features: Best effort affinity, - Type registration: Enum

Re: Python thin client

2018-10-17 Thread Dmitry Melnichuk
Stepan, Sadly, it was a C `long` data type size mismatch between Windows and other OSes. I investigated this issue and offered a pull request. https://github.com/apache/ignite/pull/5017 On 10/17/18 6:29 PM, Stepan Pilschikov wrote: Dmitry, I've trying to use python thin client with Ignite

Re: Python thin client

2018-10-19 Thread Dmitry Melnichuk
, can please help with that? ср, 17 окт. 2018 г. в 20:48, Dmitry Melnichuk < dmitry.melnic...@nobitlost.com>: Stepan, Sadly, it was a C `long` data type size mismatch between Windows and other OSes. I investigated this issue and offered a pull request. https://github.com/apache/ignite/pul

Re: Thin clients all in one

2018-10-26 Thread Dmitry Melnichuk
Stepan! TL/DR: what you got with Python client in your gist is an intended behavior. Explanation: As per docs, Object array contains of type ID (which is defaults to -1) and an array of objects. https://apacheignite.readme.io/docs/binary-client-protocol-data-format#section-object-array Your

Re: Python thin client

2018-10-10 Thread Dmitry Melnichuk
Hi, Stepan! I looked at the benchmark code and the overall methodics, discussed it with fellow programmers, and came up with basically two remarks. First of all, I think, the key for the good (or, at least, unobjectionable) measurement is to isolate the object being measured from the

Re: Python thin client

2018-10-10 Thread Dmitry Melnichuk
, they will not use Ignite. So performance questions are always of great importance for us. Vladimir. On Wed, Oct 10, 2018 at 9:57 AM Dmitry Melnichuk mailto:dmitry.melnic...@nobitlost.com>> wrote: Hi, Stepan! I looked at the benchmark code and the overall methodics, discussed it with

Re: Python thin client

2018-10-10 Thread Dmitry Melnichuk
Stepan! Please tell me one thing about how you created the environment for your benchmarks, namely: how did you install the Python client. Did you just do `pip install pyignite`, or did you pull my working branch from the downstream repository and did `pip install -e

Re: Python thin client

2018-10-11 Thread Dmitry Melnichuk
. Dmitry On 10/11/18 4:19 PM, Степан Пильщиков wrote: Dmitry, pip install -e from latest sources On Thu, 11 Oct 2018, 06:37 Dmitry Melnichuk, wrote: Stepan! Please tell me one thing about how you created the environment for your benchmarks, namely: how did you install the Python client. Did you

Re: Python thin client

2018-09-03 Thread Dmitry Melnichuk
Hello, Nikolay! Thank you for your interest in Python thin client. The traceback suggests that you using Python 2.7. Unfortunately, my client supports only Python versions 3.4 and later. Since you are using the latest Ubuntu OS, chances are you already have a recent Python 3 installed. Try

Python thin client

2018-09-03 Thread Dmitry Melnichuk
Hello, Igniters! Please review my work on Ignite thin client library written in Python 3. Pull request: https://github.com/apache/ignite/pull/4278 Jira issue with initial proposal: https://issues.apache.org/jira/browse/IGNITE-7782 The documentation is temporarily available at:

Re: Python thin client installation instructions

2018-09-19 Thread Dmitry Melnichuk
Prachi, This line in your message > Requirement already satisfied: pyignite in > ./Downloads/ignite-python/modules/platforms/python (0.3.1) looks like you already did an installation of pyignite in this environment before (maybe with "pip install -e ") from 'Downloads' folder, then delete or

Re: Python thin client installation instructions

2018-09-20 Thread Dmitry Melnichuk
/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from pyignite) (3.6.4) Installing collected packages: pyignite Successfully installed pyignite-0.3.0 How can I fix this? On Wed, Sep 19, 2018 at 6:43 PM, Dmitry Melnichuk mailto:dmitry.melnic...@nobitlost.com>

Re: [RESULT] [VOTE] Apache Ignite 2.7.0 Release (RC2)

2018-12-10 Thread Dmitry Melnichuk
Nikolay, Petr, I have already registered the package `pyignite` on PyPI[1]. The person who is going to take the responsibility of maintaining it should create an account on PyPI and mail me in private, so that I can grant them the necessary rights. They also must install twine[3]. The

Re: Thin clients all in one

2018-11-23 Thread Dmitry Melnichuk
But a specially in this branch i found another bug Please look at my last comment: https://issues.apache.org/jira/browse/IGNITE-10358?focusedCommentId=16697285=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-16697285 пт, 23 нояб. 2018 г. в 01:21, Dmitry Melnichuk

Re: Thin clients all in one

2018-11-24 Thread Dmitry Melnichuk
Hope that Igor made review for this PR But what about Maps? Looks like different ticket? or it can be done in same ticket scope? пт, 23 нояб. 2018 г. в 23:58, Dmitry Melnichuk < dmitry.melnic...@nobitlost.com>: Stepan, Sorry, I forgot to update from upstream prior to start working on this

Re: Thin clients all in one

2018-11-22 Thread Dmitry Melnichuk
at it and maybe in future somehow fix it? пт, 26 окт. 2018 г. в 19:05, Dmitry Melnichuk < dmitry.melnic...@nobitlost.com>: Stepan! TL/DR: what you got with Python client in your gist is an intended behavior. Explanation: As per docs, Object array contains of type ID (which is defaults to -1) and an

Re: Python thin client

2018-09-12 Thread Dmitry Melnichuk
, Sep 11, 2018 at 11:21 PM Dmitry Melnichuk < dmitry.melnic...@nobitlost.com> wrote: Igor, I have just commited an improvment to the HandshakeError message generation algorithm. I hope it is now easier to understand what expects what in case of binary protocol version mismatch. Tha

Re: Python thin client

2018-09-14 Thread Dmitry Melnichuk
Igor, I am in doubt here because I am not fully comprehend the meaning of "binary release". But if it is somehow related to the "distribution" thing, I would dare to suggest the following options: 1. Copy nothing. Just do ``` $ python setup.py bdist_wheel $ twine upload dist/* ``` during

Re: Python thin client

2018-09-13 Thread Dmitry Melnichuk
these comments are for - [1]? [1] - https://github.com/nobitlost/ignite/blob/ignite-7782/modules/platforms/python/examples/create_binary.py#L95 Best Regards, Igor On Thu, Sep 13, 2018 at 12:52 AM Dmitry Melnichuk < dmitry.melnic...@nobitlost.com> wrote: Igor, Yes, it's my bad, sorry. Just

Re: Python thin client

2018-09-18 Thread Dmitry Melnichuk
to supply examples and instructions, how user can run them. What do you think? Best Regards, Igor On Sat, Sep 15, 2018 at 7:03 AM Dmitry Melnichuk < dmitry.melnic...@nobitlost.com> wrote: Igor, I am in doubt here because I am not fully comprehend the meaning of "bin

Re: Python thin client

2018-09-11 Thread Dmitry Melnichuk
Igor, I have just commited an improvment to the HandshakeError message generation algorithm. I hope it is now easier to understand what expects what in case of binary protocol version mismatch. Thank you for pointing this out. On 9/12/18 2:13 AM, Igor Sapego wrote: I managed to start

Best effort affinity: NPE on topology version check

2019-02-18 Thread Dmitry Melnichuk
Igniters, I am currently trying to teach my thin client (pyignite) a new trick called “Best effort affinity”. I have been told that this feature is being implemented in the private branch [1], so I checked it out, built it, and gave it a go. The handshake goes as expected, I have actually

Re: Binary clients: fallback to the previous versions of the protocol

2019-02-12 Thread Dmitry Melnichuk
t; kind of API as it can be useful for example in terms of security. > > 2. Complexity is the price developers have to pay for better user > experience. > Nothing new here. Software is not designed for developers, it's > designed > for a user. > > Best Regards, > Igor

Re: Python examples are missing in Ignite 2.7

2019-02-12 Thread Dmitry Melnichuk
://mirrors.standaloneinstaller.com/apache//ignite/2.7.0/apache-ignite-2.7.0-bin.zip On Wed, 2019-02-13 at 12:49 +1000, Dmitry Melnichuk wrote: > Denis, > > If by “release procedure” you mean the contents of the PyPI package, > then it is not a bug, but a deliberate decision, that was documented >

Re: Python examples are missing in Ignite 2.7

2019-02-12 Thread Dmitry Melnichuk
Denis, If by “release procedure” you mean the contents of the PyPI package, then it is not a bug, but a deliberate decision, that was documented in README [1]: > Installation > > - for end user > > If you only want to use the pyignite module in your project, do: > > $ pip install

Re: Binary clients: fallback to the previous versions of the protocol

2019-02-13 Thread Dmitry Melnichuk
such > users. And now imagine, you want to update your servers. > > Best Regards, > Igor > > > On Tue, Feb 12, 2019 at 8:51 PM Dmitry Melnichuk < > dmitry.melnic...@nobitlost.com> wrote: > > > Igor, > > > > Thank you for your explanation. I think

Binary clients: fallback to the previous versions of the protocol

2019-02-12 Thread Dmitry Melnichuk
Hello fellow igniters! I recently started reconnaissance before the implementation of IEP-23 [1] in Python thin client. I think it is an interesting and much promising feature. As I understand, the changes associated with this feature will result in a new version of the binary protocol. What

Re: Best effort affinity: NPE on topology version check

2019-02-20 Thread Dmitry Melnichuk
Igor, Thank you! It helped. I adapted my code to the new protocol, so my tests are passing. On Tue, 2019-02-19 at 13:22 +0300, Igor Sapego wrote: > This is my branch. I fixed an issue so re-merge and check if it > helps. > > Best Regards, > Igor > > > On Tue, Feb 19

Re: [DISCUSSION] Ignite 3.0 and to be removed list

2019-06-21 Thread Dmitry Melnichuk
Dmitry, As a Python thin client developer, I think that separate repository is a truly great idea! On Tue, 2019-06-18 at 21:29 +0300, Dmitriy Pavlov wrote: > - Move to separate repositories: thin clients (at least non-Java > > > ones)

Re: [DISCUSSION] Ignite 3.0 and to be removed list

2019-06-21 Thread Dmitry Melnichuk
Hello Igniters, I'd like to add my ¢2 considering Python thin client. I think we should abandon Python 3.4, which was a precondition from Ignite community when I started to work on `pyignite` a good year ago, and update the minimum requirement to at least Python 3.6, or, better yet, 3.7.

[jira] [Created] (IGNITE-11303) Python thin client: best effort affinity

2019-02-12 Thread Dmitry Melnichuk (JIRA)
Dmitry Melnichuk created IGNITE-11303: - Summary: Python thin client: best effort affinity Key: IGNITE-11303 URL: https://issues.apache.org/jira/browse/IGNITE-11303 Project: Ignite Issue