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

Ignite TC Bot commented on IGNITE-20697:
----------------------------------------

{panel:title=Branch: [pull/11024/head] Base: [master] : No blockers 
found!|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}{panel}
{panel:title=Branch: [pull/11024/head] Base: [master] : New Tests 
(13)|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}
{color:#00008b}Disk Page Compressions 1{color} [[tests 
6|https://ci2.ignite.apache.org/viewLog.html?buildId=8301820]]
* {color:#013220}IgnitePdsCompressionTestSuite: 
IgnitePdsCheckpointRecoveryWithCompressionTest.testRecoverFromCheckpointRecoveryFiles[encrypt=false]
 - PASSED{color}
* {color:#013220}IgnitePdsCompressionTestSuite: 
IgnitePdsCheckpointRecoveryWithCompressionTest.testRecoverFromCheckpointRecoveryFiles[encrypt=true]
 - PASSED{color}
* {color:#013220}IgnitePdsCompressionTestSuite: 
IgnitePdsCheckpointRecoveryWithCompressionTest.testFailureOnCheckpointRecoveryFilesWrite[encrypt=true]
 - PASSED{color}
* {color:#013220}IgnitePdsCompressionTestSuite: 
IgnitePdsCheckpointRecoveryWithCompressionTest.testFailToRecoverFromSpoiledCheckpointRecoveryFiles[encrypt=true]
 - PASSED{color}
* {color:#013220}IgnitePdsCompressionTestSuite: 
IgnitePdsCheckpointRecoveryWithCompressionTest.testFailureOnCheckpointRecoveryFilesWrite[encrypt=false]
 - PASSED{color}
* {color:#013220}IgnitePdsCompressionTestSuite: 
IgnitePdsCheckpointRecoveryWithCompressionTest.testFailToRecoverFromSpoiledCheckpointRecoveryFiles[encrypt=false]
 - PASSED{color}

{color:#00008b}PDS 8{color} [[tests 
6|https://ci2.ignite.apache.org/viewLog.html?buildId=8301684]]
* {color:#013220}IgnitePdsTestSuite8: 
IgnitePdsCheckpointRecoveryTest.testFailureOnCheckpointRecoveryFilesWrite[encrypt=false]
 - PASSED{color}
* {color:#013220}IgnitePdsTestSuite8: 
IgnitePdsCheckpointRecoveryTest.testFailToRecoverFromSpoiledCheckpointRecoveryFiles[encrypt=false]
 - PASSED{color}
* {color:#013220}IgnitePdsTestSuite8: 
IgnitePdsCheckpointRecoveryTest.testFailureOnCheckpointRecoveryFilesWrite[encrypt=true]
 - PASSED{color}
* {color:#013220}IgnitePdsTestSuite8: 
IgnitePdsCheckpointRecoveryTest.testFailToRecoverFromSpoiledCheckpointRecoveryFiles[encrypt=true]
 - PASSED{color}
* {color:#013220}IgnitePdsTestSuite8: 
IgnitePdsCheckpointRecoveryTest.testRecoverFromCheckpointRecoveryFiles[encrypt=false]
 - PASSED{color}
* {color:#013220}IgnitePdsTestSuite8: 
IgnitePdsCheckpointRecoveryTest.testRecoverFromCheckpointRecoveryFiles[encrypt=true]
 - PASSED{color}

{color:#00008b}PDS (Unit Tests){color} [[tests 
1|https://ci2.ignite.apache.org/viewLog.html?buildId=8297944]]
* {color:#013220}IgnitePdsUnitTestSuite: 
IgniteThrottlingUnitTest.testFillRateBasedCheckpointBufferProtection - 
PASSED{color}

{panel}
[TeamCity *--> Run :: All* 
Results|https://ci2.ignite.apache.org/viewLog.html?buildId=8297991&buildTypeId=IgniteTests24Java8_RunAll]

> Move physical records from WAL to another storage 
> --------------------------------------------------
>
>                 Key: IGNITE-20697
>                 URL: https://issues.apache.org/jira/browse/IGNITE-20697
>             Project: Ignite
>          Issue Type: Improvement
>            Reporter: Aleksey Plekhanov
>            Assignee: Aleksey Plekhanov
>            Priority: Major
>              Labels: iep-113, ise
>          Time Spent: 3h 20m
>  Remaining Estimate: 0h
>
> Currently, physycal records take most of the WAL size. But physical records 
> in WAL files required only for crash recovery and these records are useful 
> only for a short period of time (since last checkpoint). 
> Size of physical records during checkpoint is more than size of all modified 
> pages between checkpoints, since we need to store page snapshot record for 
> each modified page and page delta records, if page is modified more than once 
> between checkpoints.
> We process WAL file several times in stable workflow (without crashes and 
> rebalances):
>  # We write records to WAL files
>  # We copy WAL files to archive
>  # We compact WAL files (remove phisical records + compress)
> So, totally we write all physical records twice and read physical records at 
> least twice.
> To reduce disc workload we can move physical records to another storage and 
> don't write them to WAL files. To provide the same crash recovery guarantees 
> we can write modified pages twice during checkpoint. First time to some delta 
> file and second time to the page storage. In this case we can recover any 
> page if we crash during write to page storage from delta file (instead of 
> WAL, as we do now).
> This proposal has pros and cons.
> Pros:
>  - Less size of stored data (we don't store page delta files, only final 
> state of the page)
>  - Reduced disc workload (we write all modified pages once instead of 2 
> writes and 2 reads of larger amount of data)
>  - Potentially reduced latency (instead of writing physical records 
> synchronously during data modification we write to WAL only logical records 
> and physical pages will be written by checkpointer threads)
> Cons:
>  - Increased checkpoint duration (we should write doubled amount of data 
> during checkpoint)
> Let's try to implement it and benchmark.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to