[ 
https://issues.apache.org/jira/browse/IGNITE-6054?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16187911#comment-16187911
 ] 

ASF GitHub Bot commented on IGNITE-6054:
----------------------------------------

GitHub user alexpaschenko opened a pull request:

    https://github.com/apache/ignite/pull/2784

    IGNITE-6054

    

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/gridgain/apache-ignite ignite-6054

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/ignite/pull/2784.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #2784
    
----
commit 5e144a6a9147798e147768062c1dd5a0adcce2a4
Author: Alexander Paschenko <[email protected]>
Date:   2017-09-28T19:22:22Z

    IGNITE-6054 Flat PK

commit dca4ab001908b0a08486425db74d86c2799071bd
Author: Alexander Paschenko <[email protected]>
Date:   2017-09-29T18:32:37Z

    IGNITE-6054 Contd.

commit 6a286e14cb260c17e972c023f6c332914ce45525
Author: Alexander Paschenko <[email protected]>
Date:   2017-10-02T12:08:41Z

    IGNITE-6054 Finished.

----


> 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
>              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)

Reply via email to