[jira] [Updated] (IGNITE-10729) MVCC TX: Improve VAC using visibility maps

2019-03-11 Thread Vladimir Ozerov (JIRA)


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

Vladimir Ozerov updated IGNITE-10729:
-
Issue Type: Task  (was: Improvement)

> MVCC TX: Improve VAC using visibility maps
> --
>
> Key: IGNITE-10729
> URL: https://issues.apache.org/jira/browse/IGNITE-10729
> Project: Ignite
>  Issue Type: Task
>  Components: mvcc
>Reporter: Igor Seliverstov
>Priority: Major
>  Labels: mvcc_performance
>
> Currently we have several issues:
> 1) vacuum doesn't have change set, this means it travers all data to find 
> invisible entries; hanse it breaks read statistics and make all data set 
> "hot" - we should travers data entries instead, and only those entries, which 
> was updated (linked to newer versions), moreover, vacuum should travers only 
> those data pages, which were updated after last successful vacuum (at least 
> one entry on the data page was linked to a never one) - this can be easily 
> done by just having a special bit at the data page, so - any update resets 
> this bit, vacuum travers only data pages with zero value bit and sets it to 1 
> after processing.
> 2) vacuum travers over partitions instead of data entries, so, there possible 
> some races like: reader checks an entry; updater removes this entry from 
> partition; vacuum doesn't see the entry and clean TxLog -> reader cannot 
> check the entry state with TxLog and gets an exception. This race prevents an 
> optimization when all entries, older than last successful vacuum version, are 
> considered as COMMITTED (see previous suggestion)
> We need to implement a special structure like visibility maps in PG to reduce 
> examined pages amount, iterate over updated data pages only and do not use 
> cache data tree.



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


[jira] [Updated] (IGNITE-10729) MVCC TX: Improve VAC using visibility maps

2019-03-11 Thread Vladimir Ozerov (JIRA)


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

Vladimir Ozerov updated IGNITE-10729:
-
Ignite Flags:   (was: Docs Required)

> MVCC TX: Improve VAC using visibility maps
> --
>
> Key: IGNITE-10729
> URL: https://issues.apache.org/jira/browse/IGNITE-10729
> Project: Ignite
>  Issue Type: Improvement
>  Components: mvcc
>Reporter: Igor Seliverstov
>Priority: Major
>
> Currently we have several issues:
> 1) vacuum doesn't have change set, this means it travers all data to find 
> invisible entries; hanse it breaks read statistics and make all data set 
> "hot" - we should travers data entries instead, and only those entries, which 
> was updated (linked to newer versions), moreover, vacuum should travers only 
> those data pages, which were updated after last successful vacuum (at least 
> one entry on the data page was linked to a never one) - this can be easily 
> done by just having a special bit at the data page, so - any update resets 
> this bit, vacuum travers only data pages with zero value bit and sets it to 1 
> after processing.
> 2) vacuum travers over partitions instead of data entries, so, there possible 
> some races like: reader checks an entry; updater removes this entry from 
> partition; vacuum doesn't see the entry and clean TxLog -> reader cannot 
> check the entry state with TxLog and gets an exception. This race prevents an 
> optimization when all entries, older than last successful vacuum version, are 
> considered as COMMITTED (see previous suggestion)
> We need to implement a special structure like visibility maps in PG to reduce 
> examined pages amount, iterate over updated data pages only and do not use 
> cache data tree.



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


[jira] [Updated] (IGNITE-10729) MVCC TX: Improve VAC using visibility maps

2019-03-11 Thread Vladimir Ozerov (JIRA)


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

Vladimir Ozerov updated IGNITE-10729:
-
Labels: mvcc_performance  (was: )

> MVCC TX: Improve VAC using visibility maps
> --
>
> Key: IGNITE-10729
> URL: https://issues.apache.org/jira/browse/IGNITE-10729
> Project: Ignite
>  Issue Type: Improvement
>  Components: mvcc
>Reporter: Igor Seliverstov
>Priority: Major
>  Labels: mvcc_performance
>
> Currently we have several issues:
> 1) vacuum doesn't have change set, this means it travers all data to find 
> invisible entries; hanse it breaks read statistics and make all data set 
> "hot" - we should travers data entries instead, and only those entries, which 
> was updated (linked to newer versions), moreover, vacuum should travers only 
> those data pages, which were updated after last successful vacuum (at least 
> one entry on the data page was linked to a never one) - this can be easily 
> done by just having a special bit at the data page, so - any update resets 
> this bit, vacuum travers only data pages with zero value bit and sets it to 1 
> after processing.
> 2) vacuum travers over partitions instead of data entries, so, there possible 
> some races like: reader checks an entry; updater removes this entry from 
> partition; vacuum doesn't see the entry and clean TxLog -> reader cannot 
> check the entry state with TxLog and gets an exception. This race prevents an 
> optimization when all entries, older than last successful vacuum version, are 
> considered as COMMITTED (see previous suggestion)
> We need to implement a special structure like visibility maps in PG to reduce 
> examined pages amount, iterate over updated data pages only and do not use 
> cache data tree.



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


[jira] [Updated] (IGNITE-10729) MVCC TX: Improve VAC using visibility maps

2019-02-27 Thread Igor Seliverstov (JIRA)


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

Igor Seliverstov updated IGNITE-10729:
--
Description: 
Currently we have several issues:

1) vacuum doesn't have change set, this means it travers all data to find 
invisible entries; hanse it breaks read statistics and make all data set "hot" 
- we should travers data entries instead, and only those entries, which was 
updated (linked to newer versions), moreover, vacuum should travers only those 
data pages, which were updated after last successful vacuum (at least one entry 
on the data page was linked to a never one) - this can be easily done by just 
having a special bit at the data page, so - any update resets this bit, vacuum 
travers only data pages with zero value bit and sets it to 1 after processing.

2) vacuum travers over partitions instead of data entries, so, there possible 
some races like: reader checks an entry; updater removes this entry from 
partition; vacuum doesn't see the entry and clean TxLog -> reader cannot check 
the entry state with TxLog and gets an exception. This race prevents an 
optimization when all entries, older than last successful vacuum version, are 
considered as COMMITTED (see previous suggestion)

We need to implement a special structure like visibility maps in PG to reduce 
examined pages amount, iterate over updated data pages only and do not use 
cache data tree.

  was:
1) vacuum doesn't have change set, this means it travers all data to find 
invisible entries; hanse it breaks read statistics and make all data set "hot" 
- we should travers data entries instead, and only those entries, which was 
updated (linked to newer versions), moreover, vacuum should travers only those 
data pages, which were updated after last successful vacuum (at least one entry 
on the data page was linked to a never one)

2) vacuum travers over partitions instead of data entries, so, there possible 
some races like: reader checks an entry; updater removes this entry from 
partition; vacuum doesn't see the entry and clean TxLog -> reader cannot check 
the entry state with TxLog and gets an exception. This race prevents an 
optimization when all entries, older than last successful vacuum version, are 
considered as COMMITTED (see previous suggestion)

We need to implement a special structure like visibility maps in PG to iterate 
on updated data pages only and do not use cache data tree.


> MVCC TX: Improve VAC using visibility maps
> --
>
> Key: IGNITE-10729
> URL: https://issues.apache.org/jira/browse/IGNITE-10729
> Project: Ignite
>  Issue Type: Improvement
>  Components: mvcc
>Reporter: Igor Seliverstov
>Priority: Major
>
> Currently we have several issues:
> 1) vacuum doesn't have change set, this means it travers all data to find 
> invisible entries; hanse it breaks read statistics and make all data set 
> "hot" - we should travers data entries instead, and only those entries, which 
> was updated (linked to newer versions), moreover, vacuum should travers only 
> those data pages, which were updated after last successful vacuum (at least 
> one entry on the data page was linked to a never one) - this can be easily 
> done by just having a special bit at the data page, so - any update resets 
> this bit, vacuum travers only data pages with zero value bit and sets it to 1 
> after processing.
> 2) vacuum travers over partitions instead of data entries, so, there possible 
> some races like: reader checks an entry; updater removes this entry from 
> partition; vacuum doesn't see the entry and clean TxLog -> reader cannot 
> check the entry state with TxLog and gets an exception. This race prevents an 
> optimization when all entries, older than last successful vacuum version, are 
> considered as COMMITTED (see previous suggestion)
> We need to implement a special structure like visibility maps in PG to reduce 
> examined pages amount, iterate over updated data pages only and do not use 
> cache data tree.



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


[jira] [Updated] (IGNITE-10729) MVCC TX: Improve VAC using visibility maps

2019-02-27 Thread Igor Seliverstov (JIRA)


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

Igor Seliverstov updated IGNITE-10729:
--
Summary: MVCC TX: Improve VAC using visibility maps  (was: MVCC TX: Improve 
VAC)

> MVCC TX: Improve VAC using visibility maps
> --
>
> Key: IGNITE-10729
> URL: https://issues.apache.org/jira/browse/IGNITE-10729
> Project: Ignite
>  Issue Type: Improvement
>  Components: mvcc
>Reporter: Igor Seliverstov
>Priority: Major
>
> 1) vacuum doesn't have change set, this means it travers all data to find 
> invisible entries; hanse it breaks read statistics and make all data set 
> "hot" - we should travers data entries instead, and only those entries, which 
> was updated (linked to newer versions), moreover, vacuum should travers only 
> those data pages, which were updated after last successful vacuum (at least 
> one entry on the data page was linked to a never one)
> 2) vacuum travers over partitions instead of data entries, so, there possible 
> some races like: reader checks an entry; updater removes this entry from 
> partition; vacuum doesn't see the entry and clean TxLog -> reader cannot 
> check the entry state with TxLog and gets an exception. This race prevents an 
> optimization when all entries, older than last successful vacuum version, are 
> considered as COMMITTED (see previous suggestion)
> We need to implement a special structure like visibility maps in PG to 
> iterate on updated data pages only and do not use cache data tree.



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