-
Notifications
You must be signed in to change notification settings - Fork 125
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[CBRD-25779] Refactor Temp File Memory Buffer to Use FILEIO_PAGE Structure #5764
base: feature/temp_file
Are you sure you want to change the base?
Conversation
@@ -162,7 +162,8 @@ typedef enum | |||
PAGE_LOG, /* NONE - log page (unused) */ | |||
PAGE_DROPPED_FILES, /* Dropped files page. */ | |||
PAGE_VACUUM_DATA, /* Vacuum data. */ | |||
PAGE_LAST = PAGE_VACUUM_DATA | |||
PAGE_MEMORY, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
perf_monitor.h의 typedef enum PERF_PAGE_TYPE;에 추가 및 관련 로직 검토 필요할 것 같습니다.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
PAGE_TYPE
의 관리 일관성을 유지하기 위해 PERF_PAGE_TYPE
에 PERF_PAGE_MEMORY
를 추가하는 것에 동의합니다.
PERF_PAGE_TYPE
에 새로운 타입을 추가하는 것 외에 관련 로직을 검토해야 한다는 의견도 주셨습니다.
PERF_PAGE_TYPE
은 페이지 버퍼에서 관리하는 페이지에 접근할 때,
PGBUF_FIX_PERF
에 포함된 정보를 페이지 타입별로 나누어 관리하기 위해 사용되는 것으로 보입니다.
PAGE_MEMORY
타입은 페이지 버퍼에서 사용되지 않는 페이지를 구분하기 위한 목적으로 추가하고 있습니다.
따라서 PAGE_MEMORY
타입의 페이지는 페이지 버퍼에서 관리하는 페이지가 아니며,
PGBUF_FIX_PERF
에 포함된 정보는 페이지 버퍼를 통해 필요한 페이지를 찾을 때만 의미가 있으므로,
관련 로직을 추가하거나 변경할 필요는 없다고 생각합니다.
PERF_PAGE_TYPE
에만 PERF_PAGE_MEMORY
를 추가하는 것으로 이 의견에 대한 변경을 마무리해도 괜찮은지
다시 한 번 의견을 주시면 감사하겠습니다.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
넵. 확인 후 회신주셔서 감사합니다. PERF_PAGE_MEMORY 추가 시 관련 정보도 주석으로 남겨주시면, 추후 유지보수함에 있어서 의미있는 정보가 될 것 같습니다.
http://jira.cubrid.org/browse/CBRD-25779
Change the page structure for the temp file memory buffer to use
FILEIO_PAGE
.PAGE_MEMORY
) using the page type (ptype
) inFILEIO_PAGE_RESERVED
.Removed
enum qmgr_page_type
,QMGR_PAGE_TYPE
qmgr_get_page_type
qfile_set_dirty_page
,qfile_set_dirty_page_and_skip_logging
qmgr_set_dirty_page
.qfile_get_first_page
ENABLE_UNUSED_FUNCTION
.Added
PAGE_MEMORY
toenum PAGE_TYPE
.PAGE_QRESULT
andPAGE_MEMORY
do not coexist.Changed
CAST_PGPTR_TO_IOPGPTR
andCAST_IOPGPTR_TO_PGPTR
macro definitions fromsrc/storage/page_buffer.c
topage_buffer.h
.QMGR_TEMP_FILE
pointer from the parameter lists of:qmgr_free_old_page
qmgr_set_dirty_page
qmgr_free_old_page_and_init
qmgr_free_old_page_and_init
macro to uppercase.qmgr_get_page_type
for determining page type:qmgr_free_old_page
qmgr_set_dirty_page
qmgr_allocate_tempfile_with_buffer
:IO_PAGESIZE
instead ofDB_PAGESIZE
.membuf
inQMGR_TEMP_FILE
topage
inFILEIO_PAGE
.qmgr_get_new_page
:FILEIO_PAGE
fields (FILEIO_PAGE_RESERVED
,FILEIO_PAGE_WATERMARK
) by callingfileio_initialize_res
.(FILEIO_PAGE *)->prv.ptype
toPAGE_MEMORY
.