[jira] [Updated] (IGNITE-6054) SQL: Add option to store primitive keys in plain form for CREATE TABLE

2018-08-16 Thread Vladimir Ozerov (JIRA)


 [ 
https://issues.apache.org/jira/browse/IGNITE-6054?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladimir Ozerov updated IGNITE-6054:

Labels: performance  (was: performance sql)

> SQL: Add option to store primitive keys in plain form for CREATE TABLE
> --
>
> Key: IGNITE-6054
> URL: https://issues.apache.org/jira/browse/IGNITE-6054
> Project: Ignite
>  Issue Type: Task
>  Components: sql
>Affects Versions: 2.1
>Reporter: Vladimir Ozerov
>Assignee: Alexander Paschenko
>Priority: Major
>  Labels: performance
> Fix For: 2.3
>
>
> Currently we create separate internal type for primary key columns. This is 
> necessary to avoid clashes between keys of the same type within the same 
> caches (ironically, we do not allow multiple dynamic tables per cache).
> The most widely used PK is single-column key of {{Long}} or {{String}} data 
> type. If we store a key plain {{long}}, it will consume 9 bytes. If we store 
> it as an object with long field, it will consume 24 + 9 = 33 bytes. What is 
> worse, in the latter case we will have to copy key object back and forth 
> between page memory and application code many times, while for plain long key 
> we simply do {{Unsafe.getLong}}.
> For this reason, it makes sense to introduce special mode for {{CREATE 
> TABLE}} command, when key will not be wrapped into a class, and will be 
> stored as is. Let's name it {{plainPrimaryKey}}.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Updated] (IGNITE-6054) SQL: Add option to store primitive keys in plain form for CREATE TABLE

2017-09-28 Thread Vladimir Ozerov (JIRA)

 [ 
https://issues.apache.org/jira/browse/IGNITE-6054?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladimir Ozerov updated IGNITE-6054:

Fix Version/s: 2.3

> SQL: Add option to store primitive keys in plain form for CREATE TABLE
> --
>
> Key: IGNITE-6054
> URL: https://issues.apache.org/jira/browse/IGNITE-6054
> Project: Ignite
>  Issue Type: Task
>  Components: sql
>Affects Versions: 2.1
>Reporter: Vladimir Ozerov
>  Labels: performance
> Fix For: 2.3
>
>
> Currently we create separate internal type for primary key columns. This is 
> necessary to avoid clashes between keys of the same type within the same 
> caches (ironically, we do not allow multiple dynamic tables per cache).
> The most widely used PK is single-column key of {{Long}} or {{String}} data 
> type. If we store a key plain {{long}}, it will consume 9 bytes. If we store 
> it as an object with long field, it will consume 24 + 9 = 33 bytes. What is 
> worse, in the latter case we will have to copy key object back and forth 
> between page memory and application code many times, while for plain long key 
> we simply do {{Unsafe.getLong}}.
> For this reason, it makes sense to introduce special mode for {{CREATE 
> TABLE}} command, when key will not be wrapped into a class, and will be 
> stored as is. Let's name it {{plainPrimaryKey}}.



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


[jira] [Updated] (IGNITE-6054) SQL: Add option to store primitive keys in plain form for CREATE TABLE

2017-08-22 Thread Vladimir Ozerov (JIRA)

 [ 
https://issues.apache.org/jira/browse/IGNITE-6054?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladimir Ozerov updated IGNITE-6054:

Issue Type: Task  (was: Improvement)

> SQL: Add option to store primitive keys in plain form for CREATE TABLE
> --
>
> Key: IGNITE-6054
> URL: https://issues.apache.org/jira/browse/IGNITE-6054
> Project: Ignite
>  Issue Type: Task
>  Components: sql
>Affects Versions: 2.1
>Reporter: Vladimir Ozerov
>  Labels: performance
> Fix For: 2.2
>
>
> Currently we create separate internal type for primary key columns. This is 
> necessary to avoid clashes between keys of the same type within the same 
> caches (ironically, we do not allow multiple dynamic tables per cache).
> The most widely used PK is single-column key of {{Long}} or {{String}} data 
> type. If we store a key plain {{long}}, it will consume 9 bytes. If we store 
> it as an object with long field, it will consume 24 + 9 = 33 bytes. What is 
> worse, in the latter case we will have to copy key object back and forth 
> between page memory and application code many times, while for plain long key 
> we simply do {{Unsafe.getLong}}.
> For this reason, it makes sense to introduce special mode for {{CREATE 
> TABLE}} command, when key will not be wrapped into a class, and will be 
> stored as is. Let's name it {{plainPrimaryKey}}.



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


[jira] [Updated] (IGNITE-6054) SQL: Add option to store primitive keys in plain form for CREATE TABLE

2017-08-14 Thread Vladimir Ozerov (JIRA)

 [ 
https://issues.apache.org/jira/browse/IGNITE-6054?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladimir Ozerov updated IGNITE-6054:

Issue Type: Improvement  (was: Bug)

> SQL: Add option to store primitive keys in plain form for CREATE TABLE
> --
>
> Key: IGNITE-6054
> URL: https://issues.apache.org/jira/browse/IGNITE-6054
> Project: Ignite
>  Issue Type: Improvement
>  Components: sql
>Affects Versions: 2.1
>Reporter: Vladimir Ozerov
>  Labels: performance
> Fix For: 2.2
>
>
> Currently we create separate internal type for primary key columns. This is 
> necessary to avoid clashes between keys of the same type within the same 
> caches (ironically, we do not allow multiple dynamic tables per cache).
> The most widely used PK is single-column key of {{Long}} or {{String}} data 
> type. If we store a key plain {{long}}, it will consume 9 bytes. If we store 
> it as an object with long field, it will consume 24 + 9 = 33 bytes. What is 
> worse, in the latter case we will have to copy key object back and forth 
> between page memory and application code many times, while for plain long key 
> we simply do {{Unsafe.getLong}}.
> For this reason, it makes sense to introduce special mode for {{CREATE 
> TABLE}} command, when key will not be wrapped into a class, and will be 
> stored as is. Let's name it {{plainPrimaryKey}}.



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


[jira] [Updated] (IGNITE-6054) SQL: Add option to store primitive keys in plain form for CREATE TABLE

2017-08-14 Thread Vladimir Ozerov (JIRA)

 [ 
https://issues.apache.org/jira/browse/IGNITE-6054?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladimir Ozerov updated IGNITE-6054:

Labels: performance  (was: )

> SQL: Add option to store primitive keys in plain form for CREATE TABLE
> --
>
> Key: IGNITE-6054
> URL: https://issues.apache.org/jira/browse/IGNITE-6054
> Project: Ignite
>  Issue Type: Bug
>  Components: sql
>Affects Versions: 2.1
>Reporter: Vladimir Ozerov
>  Labels: performance
> Fix For: 2.2
>
>
> Currently we create separate internal type for primary key columns. This is 
> necessary to avoid clashes between keys of the same type within the same 
> caches (ironically, we do not allow multiple dynamic tables per cache).
> The most widely used PK is single-column key of {{Long}} or {{String}} data 
> type. If we store a key plain {{long}}, it will consume 9 bytes. If we store 
> it as an object with long field, it will consume 24 + 9 = 33 bytes. What is 
> worse, in the latter case we will have to copy key object back and forth 
> between page memory and application code many times, while for plain long key 
> we simply do {{Unsafe.getLong}}.
> For this reason, it makes sense to introduce special mode for {{CREATE 
> TABLE}} command, when key will not be wrapped into a class, and will be 
> stored as is. Let's name it {{plainPrimaryKey}}.



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