Macs don’t have epoll, so it doesn’t compile currently.

> On 14 Mar 2023, at 16:02, Igor Sapego <[email protected]> wrote:
> 
> 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 <[email protected] 
> <mailto:[email protected]>> 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 <[email protected] 
>> <mailto:[email protected]>>:
>>> 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ć <[email protected] 
>>> <mailto:[email protected]>>:
>>>> 
>>>> 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 
>>>> <[email protected] <mailto:[email protected]>> 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