[jira] [Created] (IGNITE-5991) SQL: create prototype for map query execution without moving full ResultSet to memory

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[jira] [Created] (IGNITE-5991) SQL: create prototype for map query execution without moving full ResultSet to memory

Anton Vinogradov (Jira)
Vladimir Ozerov created IGNITE-5991:
---------------------------------------

             Summary: SQL: create prototype for map query execution without moving full ResultSet to memory
                 Key: IGNITE-5991
                 URL: https://issues.apache.org/jira/browse/IGNITE-5991
             Project: Ignite
          Issue Type: Improvement
          Components: sql
    Affects Versions: 2.1
            Reporter: Vladimir Ozerov
            Assignee: Vladimir Ozerov
             Fix For: 2.2


Currently we move the whole {{ResultSet}} to memory when executing SQL query on mapper. If result set is large enough, this could easily bring server down due to high GC pressure or even OOME.

To avoid that we should stream H2's {{ResultSet}} to our own consumer, which will construct a page and send it to the client  When a page is sent, consumer will block current thread until "next page request" is received. This approach has disadvantage - query thread will be blocked. However, implementation should be fairly easy and will allow us to avoid OOMEs on server. In future we will improve it to minimize blocking (or even avoid it completely).



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)