From 404cfc36c68275885a63f9f547acec3de8342b61 Mon Sep 17 00:00:00 2001 From: Vinoth Date: Fri, 28 Aug 2020 23:21:55 +0800 Subject: [PATCH] Fix MOT replay in async commit mode --- src/gausskernel/storage/mot/core/src/mot.conf | 2 +- .../asynchronous_redo_log/asynchronous_redo_log_handler.cpp | 2 ++ .../storage/mot/core/src/system/transaction_logger/redo_log.cpp | 1 + .../mot/core/src/system/transaction_logger/redo_log_buffer.h | 2 +- 4 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/gausskernel/storage/mot/core/src/mot.conf b/src/gausskernel/storage/mot/core/src/mot.conf index a29765d545..6c29180d83 100644 --- a/src/gausskernel/storage/mot/core/src/mot.conf +++ b/src/gausskernel/storage/mot/core/src/mot.conf @@ -13,7 +13,7 @@ # you need to reload the server. # # This file is read ONLY on server startup. If you edit the file on a running system, -# you have reload the server for the changes to take effect. +# you have to reload the server for the changes to take effect. # # Memory units: KB = kilobytes # MB = megabytes diff --git a/src/gausskernel/storage/mot/core/src/system/transaction_logger/asynchronous_redo_log/asynchronous_redo_log_handler.cpp b/src/gausskernel/storage/mot/core/src/system/transaction_logger/asynchronous_redo_log/asynchronous_redo_log_handler.cpp index 25d24c612d..ceb124f05e 100644 --- a/src/gausskernel/storage/mot/core/src/system/transaction_logger/asynchronous_redo_log/asynchronous_redo_log_handler.cpp +++ b/src/gausskernel/storage/mot/core/src/system/transaction_logger/asynchronous_redo_log/asynchronous_redo_log_handler.cpp @@ -74,6 +74,7 @@ RedoLogBuffer* AsyncRedoLogHandler::CreateBuffer() void AsyncRedoLogHandler::DestroyBuffer(RedoLogBuffer* buffer) { + buffer->Reset(); m_bufferPool.Free(buffer); } @@ -131,6 +132,7 @@ bool AsyncRedoLogHandler::TrySwitchBuffers(int index) void AsyncRedoLogHandler::FreeBuffers(RedoLogBufferArray& bufferArray) { for (uint32_t i = 0; i < bufferArray.Size(); i++) { + bufferArray[i]->Reset(); m_bufferPool.Free(bufferArray[i]); } } diff --git a/src/gausskernel/storage/mot/core/src/system/transaction_logger/redo_log.cpp b/src/gausskernel/storage/mot/core/src/system/transaction_logger/redo_log.cpp index 7044e6d4f0..9015b2cb06 100644 --- a/src/gausskernel/storage/mot/core/src/system/transaction_logger/redo_log.cpp +++ b/src/gausskernel/storage/mot/core/src/system/transaction_logger/redo_log.cpp @@ -56,6 +56,7 @@ bool RedoLog::Init() } if (m_redoBuffer == nullptr) return false; + ResetBuffer(); } return true; } diff --git a/src/gausskernel/storage/mot/core/src/system/transaction_logger/redo_log_buffer.h b/src/gausskernel/storage/mot/core/src/system/transaction_logger/redo_log_buffer.h index 7ad0a397b9..10f56dbf6f 100644 --- a/src/gausskernel/storage/mot/core/src/system/transaction_logger/redo_log_buffer.h +++ b/src/gausskernel/storage/mot/core/src/system/transaction_logger/redo_log_buffer.h @@ -336,7 +336,7 @@ public: } private: - /** @var Next write offset. */ + /** @var Buffer size. */ uint32_t m_bufferSize; /** @var Next write offset. */ -- Gitee