Unfortunately, we do not have Mac agents, so we can not detect when
compilation on Mac OS is broken, so yeah...

Best Regards,
Igor


On Tue, Mar 14, 2023 at 2:48 PM Ivan Daschinsky <ivanda...@gmail.com> wrote:

> An ignite odbc driver works well on linux and windows OSes, but it seems
> that it is impossible to compile it on Mac OS.
>
> вт, 14 мар. 2023 г. в 14:47, Ivan Daschinsky <ivanda...@gmail.com>:
>
>> Hi, Dren!
>>
>> Unfortunatelly, pyignite doesn't have an efficient native serialization
>> library, whereas psycopg2 has (it is a thin wrapper around libpq).
>>
>> I would suggest two options:
>> 1. Reduce a default batch size like this : `client.sql("SELECT * FROM
>> TABLE", page_size=10)`. Default 1024 seems too big and parsing of such a
>> big response seems to be really slow.
>> 2. Use ignite odbc driver and pyodbc over it. Both of them work pretty
>> well.
>>
>> вт, 14 мар. 2023 г. в 14:10, Dren Butković <dren.butko...@gmail.com>:
>>
>>>
>>> Ignite and py client versions:
>>>
>>> - Apache Ignite 2.13.0
>>> - pyignite 0.5.2
>>>
>>> On Tue, Mar 14, 2023 at 11:46 AM Zhenya Stanilovsky via user <
>>> user@ignite.apache.org> wrote:
>>>
>>>> Hi, plz append ignite and py client versions.
>>>>
>>>>
>>>> Hi,
>>>>
>>>> I made a speed comparison of retrieving data from Apache Ignite using
>>>> several methods. All records are in one table, I did not use any WHERE
>>>> condition, only a SELECT * FROM TABLE XYZ LIMIT 20000.
>>>>
>>>> Test results are:
>>>> Apache Ignite
>>>>
>>>>    - Apache Ignite REST API - 0.52 seconds
>>>>    - JDBC - 4 seconds
>>>>    - Python pyignite - 40 seconds !!!
>>>>
>>>> pseudocode in Python using pyignite:
>>>>
>>>> client = Client(username="ignite", password="pass", use_ssl=False)
>>>> client.connect('localhost', 10800)
>>>>
>>>> cursor=client.sql('SELECT * FROM TABLE_XYZ LIMIT 20000')for row in cursor:
>>>>     pass
>>>>
>>>> After that I made a speed comparison of retrieving data from PostgreSQL
>>>> using JDBC and psycopg2 Python package. SQL select is same, SELECT * FROM
>>>> TABLE XYZ LIMIT 20000
>>>> PostgreSQL
>>>>
>>>>    - JDBC - 3 seconds
>>>>    - Python psycopg2 using fetchall - 3 seconds
>>>>    - Python psycopg2 using fetchone - 4 seconds
>>>>
>>>> pseudocode in Python using psycopg2:
>>>>
>>>> import psycopg2
>>>>
>>>> conn = psycopg2.connect(database=DB_NAME,
>>>>             user=DB_USER,
>>>>             password=DB_PASS,
>>>>             host=DB_HOST,
>>>>             port=DB_PORT)
>>>>
>>>> cur = conn.cursor()
>>>> cur.execute("SELECT * FROM TABLE_XYZ LIMIT 20000")
>>>> rows = cur.fetchall()for data in rows:
>>>>     pass
>>>>
>>>> I can conclude that the pyignite implementation has much worse
>>>> performance compared to psycopg2 tests. The performance difference on
>>>> PostgreSQL between Java JDBC and Python psycopg2 is negligible.
>>>>
>>>> The performance difference on Apache Ignite between Java JDBC and
>>>> Python pyignite is very big.
>>>>
>>>> Please if someone can comment on the tests, did I do something wrong or
>>>> are these results expected? How can such large differences in execution
>>>> times be explained? Do you have any suggestions to get better results using
>>>> pyignite?
>>>>
>>>> Thank you
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>
>> --
>> Sincerely yours, Ivan Daschinskiy
>>
>
>
> --
> Sincerely yours, Ivan Daschinskiy
>

Reply via email to