diff --git a/build/bin/unit_test b/build/bin/unit_test
index 76bde90326ee56c74518c800fcc8d4e475f4e976..d7ca1ff73c4ddf16f7d167481e5f2303efc3fabb 100755
Binary files a/build/bin/unit_test and b/build/bin/unit_test differ
diff --git a/build/lib/librecord.a b/build/lib/librecord.a
index bfa06be28540b43ed07071a4418e3a5306e28042..02678c9ddf8326d0f47502a58cb07daa83b07e05 100644
Binary files a/build/lib/librecord.a and b/build/lib/librecord.a differ
diff --git a/build/lib/librecovery.a b/build/lib/librecovery.a
index b30f77500384a85e64ec96fdb6647ced43fd8f6d..a6053374a8131559e18f73eb4aa0221ee3cd6b58 100644
Binary files a/build/lib/librecovery.a and b/build/lib/librecovery.a differ
diff --git a/build/lib/libsystem.a b/build/lib/libsystem.a
index 519fcae9ce128c9976891ba596459221bb4076dc..7aaf78f9c98b0148ddd31c41f3f2e81cb4778097 100644
Binary files a/build/lib/libsystem.a and b/build/lib/libsystem.a differ
diff --git a/build/lib/libtransaction.a b/build/lib/libtransaction.a
index c638ba9c7db85f28821f141f024a6c03a9d3ea58..a862e712af61f40aee793ba5be055259abfaf9b3 100644
Binary files a/build/lib/libtransaction.a and b/build/lib/libtransaction.a differ
diff --git a/build/src/CMakeFiles/unit_test.dir/unit_test.cpp.o b/build/src/CMakeFiles/unit_test.dir/unit_test.cpp.o
index 08fa1471311fa5d253bf315500c92a37f74a9e45..9927de5df392126ff8455a6e92b552e5bc750403 100644
Binary files a/build/src/CMakeFiles/unit_test.dir/unit_test.cpp.o and b/build/src/CMakeFiles/unit_test.dir/unit_test.cpp.o differ
diff --git a/build/src/CMakeFiles/unit_test.dir/unit_test.cpp.o.d b/build/src/CMakeFiles/unit_test.dir/unit_test.cpp.o.d
index f13848fbb69d607c9c126167d6670184da0f3059..46cd557d8904ccb1be7a4df1c46272c68f0ae507 100644
--- a/build/src/CMakeFiles/unit_test.dir/unit_test.cpp.o.d
+++ b/build/src/CMakeFiles/unit_test.dir/unit_test.cpp.o.d
@@ -1,9 +1,9 @@
 src/CMakeFiles/unit_test.dir/unit_test.cpp.o: \
  /home/mc/DB/db2025/rmdb/src/unit_test.cpp /usr/include/stdc-predef.h \
- /home/mc/DB/db2025/rmdb/src/record/rm.h \
- /home/mc/DB/db2025/rmdb/src/record/rm_scan.h \
- /home/mc/DB/db2025/rmdb/src/record/rm_defs.h \
- /home/mc/DB/db2025/rmdb/src/record/../defs.h \
+ /home/mc/DB/db2025/rmdb/src/../src/record/rm.h \
+ /home/mc/DB/db2025/rmdb/src/../src/record/rm_scan.h \
+ /home/mc/DB/db2025/rmdb/src/../src/record/rm_defs.h \
+ /home/mc/DB/db2025/rmdb/src/../src/record/../defs.h \
  /usr/include/c++/13/iostream /usr/include/c++/13/bits/requires_hosted.h \
  /usr/include/x86_64-linux-gnu/c++/13/bits/c++config.h \
  /usr/include/x86_64-linux-gnu/c++/13/bits/os_defines.h \
@@ -159,7 +159,7 @@ src/CMakeFiles/unit_test.dir/unit_test.cpp.o: \
  /usr/include/c++/13/bits/stl_map.h \
  /usr/include/c++/13/bits/stl_multimap.h \
  /usr/include/c++/13/bits/erase_if.h \
- /home/mc/DB/db2025/rmdb/src/record/../storage/buffer_pool_manager.h \
+ /home/mc/DB/db2025/rmdb/src/../src/record/../storage/buffer_pool_manager.h \
  /usr/include/fcntl.h /usr/include/x86_64-linux-gnu/bits/fcntl.h \
  /usr/include/x86_64-linux-gnu/bits/fcntl-linux.h \
  /usr/include/x86_64-linux-gnu/bits/types/struct_iovec.h \
@@ -184,7 +184,7 @@ src/CMakeFiles/unit_test.dir/unit_test.cpp.o: \
  /usr/include/c++/13/bits/stl_vector.h \
  /usr/include/c++/13/bits/stl_bvector.h \
  /usr/include/c++/13/bits/vector.tcc \
- /home/mc/DB/db2025/rmdb/src/record/../storage/disk_manager.h \
+ /home/mc/DB/db2025/rmdb/src/../src/record/../storage/disk_manager.h \
  /usr/include/x86_64-linux-gnu/sys/stat.h \
  /usr/include/x86_64-linux-gnu/bits/statx.h /usr/include/linux/stat.h \
  /usr/include/linux/types.h /usr/include/x86_64-linux-gnu/asm/types.h \
@@ -207,22 +207,22 @@ src/CMakeFiles/unit_test.dir/unit_test.cpp.o: \
  /usr/include/x86_64-linux-gnu/c++/13/bits/basic_file.h \
  /usr/include/x86_64-linux-gnu/c++/13/bits/c++io.h \
  /usr/include/c++/13/bits/fstream.tcc \
- /home/mc/DB/db2025/rmdb/src/record/../storage/../common/config.h \
+ /home/mc/DB/db2025/rmdb/src/../src/record/../storage/../common/config.h \
  /usr/include/c++/13/chrono /usr/include/c++/13/bits/chrono.h \
  /usr/include/c++/13/ratio /usr/include/c++/13/cstdint \
  /usr/include/c++/13/limits /usr/include/c++/13/ctime \
  /usr/include/c++/13/bits/parse_numbers.h \
- /home/mc/DB/db2025/rmdb/src/record/../storage/../errors.h \
+ /home/mc/DB/db2025/rmdb/src/../src/record/../storage/../errors.h \
  /usr/include/c++/13/cstring /usr/include/string.h /usr/include/strings.h \
- /home/mc/DB/db2025/rmdb/src/record/../storage/page.h \
- /home/mc/DB/db2025/rmdb/src/record/../storage/../replacer/lru_replacer.h \
+ /home/mc/DB/db2025/rmdb/src/../src/record/../storage/page.h \
+ /home/mc/DB/db2025/rmdb/src/../src/record/../storage/../replacer/lru_replacer.h \
  /usr/include/c++/13/mutex /usr/include/c++/13/bits/std_mutex.h \
  /usr/include/c++/13/bits/unique_lock.h \
- /home/mc/DB/db2025/rmdb/src/record/../storage/../replacer/../replacer/replacer.h \
- /home/mc/DB/db2025/rmdb/src/record/rm_manager.h \
- /home/mc/DB/db2025/rmdb/src/record/bitmap.h \
+ /home/mc/DB/db2025/rmdb/src/../src/record/../storage/../replacer/../replacer/replacer.h \
+ /home/mc/DB/db2025/rmdb/src/../src/record/rm_manager.h \
+ /home/mc/DB/db2025/rmdb/src/../src/record/bitmap.h \
  /usr/include/c++/13/cinttypes /usr/include/inttypes.h \
- /home/mc/DB/db2025/rmdb/src/record/rm_file_handle.h \
+ /home/mc/DB/db2025/rmdb/src/../src/record/rm_file_handle.h \
  /usr/include/c++/13/memory /usr/include/c++/13/bits/stl_tempbuf.h \
  /usr/include/c++/13/bits/stl_raw_storage_iter.h \
  /usr/include/c++/13/bits/align.h /usr/include/c++/13/bits/unique_ptr.h \
@@ -233,20 +233,20 @@ src/CMakeFiles/unit_test.dir/unit_test.cpp.o: \
  /usr/include/c++/13/backward/auto_ptr.h \
  /usr/include/c++/13/pstl/glue_memory_defs.h \
  /usr/include/c++/13/pstl/execution_defs.h \
- /home/mc/DB/db2025/rmdb/src/common/context.h \
- /home/mc/DB/db2025/rmdb/src/common/../transaction/transaction.h \
+ /home/mc/DB/db2025/rmdb/src/../src/record/../common/context.h \
+ /home/mc/DB/db2025/rmdb/src/../src/record/../common/../transaction/transaction.h \
  /usr/include/c++/13/deque /usr/include/c++/13/bits/stl_deque.h \
  /usr/include/c++/13/bits/deque.tcc /usr/include/c++/13/thread \
  /usr/include/c++/13/bits/std_thread.h \
  /usr/include/c++/13/bits/this_thread_sleep.h \
  /usr/include/c++/13/unordered_set \
  /usr/include/c++/13/bits/unordered_set.h \
- /home/mc/DB/db2025/rmdb/src/common/../transaction/../common/common.h \
- /home/mc/DB/db2025/rmdb/src/common/../transaction/../transaction/txn_defs.h \
- /home/mc/DB/db2025/rmdb/src/common/../transaction/concurrency/lock_manager.h \
+ /home/mc/DB/db2025/rmdb/src/../src/record/../common/../transaction/../common/common.h \
+ /home/mc/DB/db2025/rmdb/src/../src/record/../common/../transaction/../transaction/txn_defs.h \
+ /home/mc/DB/db2025/rmdb/src/../src/record/../common/../transaction/concurrency/lock_manager.h \
  /usr/include/c++/13/condition_variable \
- /home/mc/DB/db2025/rmdb/src/common/../recovery/log_manager.h \
- /home/mc/DB/db2025/rmdb/src/common/../recovery/log_defs.h \
+ /home/mc/DB/db2025/rmdb/src/../src/record/../common/../recovery/log_manager.h \
+ /home/mc/DB/db2025/rmdb/src/../src/record/../common/../recovery/log_defs.h \
  /usr/include/c++/13/algorithm /usr/include/c++/13/bits/stl_algo.h \
  /usr/include/c++/13/bits/algorithmfwd.h \
  /usr/include/c++/13/bits/stl_heap.h \
diff --git a/build/src/record/CMakeFiles/record.dir/rm_file_handle.cpp.o b/build/src/record/CMakeFiles/record.dir/rm_file_handle.cpp.o
index 55fd6654e717eeae3de07c10b483b16ef91e0648..0fd8344b1a6e5daea77861a0c0eb624400d86804 100644
Binary files a/build/src/record/CMakeFiles/record.dir/rm_file_handle.cpp.o and b/build/src/record/CMakeFiles/record.dir/rm_file_handle.cpp.o differ
diff --git a/build/src/record/CMakeFiles/record.dir/rm_file_handle.cpp.o.d b/build/src/record/CMakeFiles/record.dir/rm_file_handle.cpp.o.d
index f1b05aae1d0e44000082a2360889c56ace34cff7..aec36065b2aae1c41c4904687cb96ec2ec60feb1 100644
--- a/build/src/record/CMakeFiles/record.dir/rm_file_handle.cpp.o.d
+++ b/build/src/record/CMakeFiles/record.dir/rm_file_handle.cpp.o.d
@@ -121,8 +121,8 @@ src/record/CMakeFiles/record.dir/rm_file_handle.cpp.o: \
  /usr/include/c++/13/cinttypes /usr/include/c++/13/cstdint \
  /usr/include/inttypes.h /usr/include/c++/13/cstring \
  /usr/include/string.h /usr/include/strings.h \
- /home/mc/DB/db2025/rmdb/src/common/context.h \
- /home/mc/DB/db2025/rmdb/src/common/../transaction/transaction.h \
+ /home/mc/DB/db2025/rmdb/src/record/../common/context.h \
+ /home/mc/DB/db2025/rmdb/src/record/../common/../transaction/transaction.h \
  /usr/include/c++/13/atomic /usr/include/c++/13/deque \
  /usr/include/c++/13/bits/stl_deque.h \
  /usr/include/c++/13/initializer_list \
@@ -177,9 +177,9 @@ src/record/CMakeFiles/record.dir/rm_file_handle.cpp.o: \
  /usr/include/c++/13/bits/stl_vector.h \
  /usr/include/c++/13/bits/stl_bvector.h \
  /usr/include/c++/13/bits/vector.tcc \
- /home/mc/DB/db2025/rmdb/src/common/../transaction/../common/common.h \
+ /home/mc/DB/db2025/rmdb/src/record/../common/../transaction/../common/common.h \
  /usr/include/c++/13/cassert \
- /home/mc/DB/db2025/rmdb/src/common/../transaction/../common/../defs.h \
+ /home/mc/DB/db2025/rmdb/src/record/../common/../transaction/../common/../defs.h \
  /usr/include/c++/13/iostream /usr/include/c++/13/ostream \
  /usr/include/c++/13/ios /usr/include/c++/13/bits/ios_base.h \
  /usr/include/c++/13/bits/locale_classes.h \
@@ -200,8 +200,8 @@ src/record/CMakeFiles/record.dir/rm_file_handle.cpp.o: \
  /usr/include/c++/13/bits/istream.tcc /usr/include/c++/13/map \
  /usr/include/c++/13/bits/stl_tree.h /usr/include/c++/13/bits/stl_map.h \
  /usr/include/c++/13/bits/stl_multimap.h \
- /home/mc/DB/db2025/rmdb/src/common/../transaction/../common/../record/rm_defs.h \
- /home/mc/DB/db2025/rmdb/src/common/../transaction/../common/../record/../storage/buffer_pool_manager.h \
+ /home/mc/DB/db2025/rmdb/src/record/../common/../transaction/../common/../record/rm_defs.h \
+ /home/mc/DB/db2025/rmdb/src/record/../common/../transaction/../common/../record/../storage/buffer_pool_manager.h \
  /usr/include/fcntl.h /usr/include/x86_64-linux-gnu/bits/fcntl.h \
  /usr/include/x86_64-linux-gnu/bits/fcntl-linux.h \
  /usr/include/x86_64-linux-gnu/bits/types/struct_iovec.h \
@@ -217,7 +217,7 @@ src/record/CMakeFiles/record.dir/rm_file_handle.cpp.o: \
  /usr/include/c++/13/bits/stl_list.h /usr/include/c++/13/bits/list.tcc \
  /usr/include/c++/13/unordered_map \
  /usr/include/c++/13/bits/unordered_map.h \
- /home/mc/DB/db2025/rmdb/src/common/../transaction/../common/../record/../storage/disk_manager.h \
+ /home/mc/DB/db2025/rmdb/src/record/../common/../transaction/../common/../record/../storage/disk_manager.h \
  /usr/include/x86_64-linux-gnu/sys/stat.h \
  /usr/include/x86_64-linux-gnu/bits/statx.h /usr/include/linux/stat.h \
  /usr/include/linux/types.h /usr/include/x86_64-linux-gnu/asm/types.h \
@@ -235,16 +235,16 @@ src/record/CMakeFiles/record.dir/rm_file_handle.cpp.o: \
  /usr/include/x86_64-linux-gnu/c++/13/bits/basic_file.h \
  /usr/include/x86_64-linux-gnu/c++/13/bits/c++io.h \
  /usr/include/c++/13/bits/fstream.tcc \
- /home/mc/DB/db2025/rmdb/src/common/../transaction/../common/../record/../storage/../common/config.h \
+ /home/mc/DB/db2025/rmdb/src/record/../common/../transaction/../common/../record/../storage/../common/config.h \
  /usr/include/c++/13/chrono \
- /home/mc/DB/db2025/rmdb/src/common/../transaction/../common/../record/../storage/../errors.h \
- /home/mc/DB/db2025/rmdb/src/common/../transaction/../common/../record/../storage/page.h \
- /home/mc/DB/db2025/rmdb/src/common/../transaction/../common/../record/../storage/../replacer/lru_replacer.h \
+ /home/mc/DB/db2025/rmdb/src/record/../common/../transaction/../common/../record/../storage/../errors.h \
+ /home/mc/DB/db2025/rmdb/src/record/../common/../transaction/../common/../record/../storage/page.h \
+ /home/mc/DB/db2025/rmdb/src/record/../common/../transaction/../common/../record/../storage/../replacer/lru_replacer.h \
  /usr/include/c++/13/mutex /usr/include/c++/13/bits/std_mutex.h \
  /usr/include/c++/13/bits/unique_lock.h \
- /home/mc/DB/db2025/rmdb/src/common/../transaction/../common/../record/../storage/../replacer/../replacer/replacer.h \
- /home/mc/DB/db2025/rmdb/src/common/../transaction/../transaction/txn_defs.h \
- /home/mc/DB/db2025/rmdb/src/common/../transaction/concurrency/lock_manager.h \
+ /home/mc/DB/db2025/rmdb/src/record/../common/../transaction/../common/../record/../storage/../replacer/../replacer/replacer.h \
+ /home/mc/DB/db2025/rmdb/src/record/../common/../transaction/../transaction/txn_defs.h \
+ /home/mc/DB/db2025/rmdb/src/record/../common/../transaction/concurrency/lock_manager.h \
  /usr/include/c++/13/condition_variable \
- /home/mc/DB/db2025/rmdb/src/common/../recovery/log_manager.h \
- /home/mc/DB/db2025/rmdb/src/common/../recovery/log_defs.h
+ /home/mc/DB/db2025/rmdb/src/record/../common/../recovery/log_manager.h \
+ /home/mc/DB/db2025/rmdb/src/record/../common/../recovery/log_defs.h
diff --git a/build/src/record/CMakeFiles/record.dir/rm_scan.cpp.o b/build/src/record/CMakeFiles/record.dir/rm_scan.cpp.o
index b4c60d254cac2ae77b4c29d2dd1ac8db0be20c18..cdf5f86e18d0eeced13ae16973011f460e6ac1d6 100644
Binary files a/build/src/record/CMakeFiles/record.dir/rm_scan.cpp.o and b/build/src/record/CMakeFiles/record.dir/rm_scan.cpp.o differ
diff --git a/build/src/record/CMakeFiles/record.dir/rm_scan.cpp.o.d b/build/src/record/CMakeFiles/record.dir/rm_scan.cpp.o.d
index d1a4ad8b7b27d983d3e449392b9c2a52792949ca..1cdacbfc1dfe62fa0e17f43d2a34400ce9509c3a 100644
--- a/build/src/record/CMakeFiles/record.dir/rm_scan.cpp.o.d
+++ b/build/src/record/CMakeFiles/record.dir/rm_scan.cpp.o.d
@@ -231,17 +231,17 @@ src/record/CMakeFiles/record.dir/rm_scan.cpp.o: \
  /usr/include/c++/13/pstl/execution_defs.h \
  /home/mc/DB/db2025/rmdb/src/record/bitmap.h \
  /usr/include/c++/13/cinttypes /usr/include/inttypes.h \
- /home/mc/DB/db2025/rmdb/src/common/context.h \
- /home/mc/DB/db2025/rmdb/src/common/../transaction/transaction.h \
+ /home/mc/DB/db2025/rmdb/src/record/../common/context.h \
+ /home/mc/DB/db2025/rmdb/src/record/../common/../transaction/transaction.h \
  /usr/include/c++/13/deque /usr/include/c++/13/bits/stl_deque.h \
  /usr/include/c++/13/bits/deque.tcc /usr/include/c++/13/thread \
  /usr/include/c++/13/bits/std_thread.h \
  /usr/include/c++/13/bits/this_thread_sleep.h \
  /usr/include/c++/13/unordered_set \
  /usr/include/c++/13/bits/unordered_set.h \
- /home/mc/DB/db2025/rmdb/src/common/../transaction/../common/common.h \
- /home/mc/DB/db2025/rmdb/src/common/../transaction/../transaction/txn_defs.h \
- /home/mc/DB/db2025/rmdb/src/common/../transaction/concurrency/lock_manager.h \
+ /home/mc/DB/db2025/rmdb/src/record/../common/../transaction/../common/common.h \
+ /home/mc/DB/db2025/rmdb/src/record/../common/../transaction/../transaction/txn_defs.h \
+ /home/mc/DB/db2025/rmdb/src/record/../common/../transaction/concurrency/lock_manager.h \
  /usr/include/c++/13/condition_variable \
- /home/mc/DB/db2025/rmdb/src/common/../recovery/log_manager.h \
- /home/mc/DB/db2025/rmdb/src/common/../recovery/log_defs.h
+ /home/mc/DB/db2025/rmdb/src/record/../common/../recovery/log_manager.h \
+ /home/mc/DB/db2025/rmdb/src/record/../common/../recovery/log_defs.h
diff --git a/build/src/recovery/CMakeFiles/recovery.dir/compiler_depend.internal b/build/src/recovery/CMakeFiles/recovery.dir/compiler_depend.internal
index 53a7acb401a797d75e7f9a6391e0aecfc9ca14a6..de97b2d4d5da16c48b84746b64b73fa8b175c2eb 100644
--- a/build/src/recovery/CMakeFiles/recovery.dir/compiler_depend.internal
+++ b/build/src/recovery/CMakeFiles/recovery.dir/compiler_depend.internal
@@ -282,13 +282,13 @@ src/recovery/CMakeFiles/recovery.dir/log_manager.cpp.o
 
 src/recovery/CMakeFiles/recovery.dir/log_recovery.cpp.o
  /home/mc/DB/db2025/rmdb/src/recovery/log_recovery.cpp
- /home/mc/DB/db2025/rmdb/src/transaction/concurrency/lock_manager.h
- /home/mc/DB/db2025/rmdb/src/common/context.h
  /home/mc/DB/db2025/rmdb/src/index/ix.h
  /home/mc/DB/db2025/rmdb/src/index/ix_defs.h
  /home/mc/DB/db2025/rmdb/src/index/ix_index_handle.h
  /home/mc/DB/db2025/rmdb/src/index/ix_manager.h
  /home/mc/DB/db2025/rmdb/src/index/ix_scan.h
+ /home/mc/DB/db2025/rmdb/src/transaction/concurrency/lock_manager.h
+ /home/mc/DB/db2025/rmdb/src/common/context.h
  /home/mc/DB/db2025/rmdb/src/record/bitmap.h
  /home/mc/DB/db2025/rmdb/src/record/rm_file_handle.h
  /home/mc/DB/db2025/rmdb/src/defs.h
diff --git a/build/src/recovery/CMakeFiles/recovery.dir/compiler_depend.make b/build/src/recovery/CMakeFiles/recovery.dir/compiler_depend.make
index b0dfcad876affa3ed8dafe66027616766110192d..0ed7e6c74603b8a1ec0ef1c596e4e9038c579ef4 100644
--- a/build/src/recovery/CMakeFiles/recovery.dir/compiler_depend.make
+++ b/build/src/recovery/CMakeFiles/recovery.dir/compiler_depend.make
@@ -280,13 +280,13 @@ src/recovery/CMakeFiles/recovery.dir/log_manager.cpp.o: /home/mc/DB/db2025/rmdb/
   /usr/lib/gcc/x86_64-linux-gnu/13/include/stdint.h
 
 src/recovery/CMakeFiles/recovery.dir/log_recovery.cpp.o: /home/mc/DB/db2025/rmdb/src/recovery/log_recovery.cpp \
-  /home/mc/DB/db2025/rmdb/src/transaction/concurrency/lock_manager.h \
-  /home/mc/DB/db2025/rmdb/src/common/context.h \
   /home/mc/DB/db2025/rmdb/src/index/ix.h \
   /home/mc/DB/db2025/rmdb/src/index/ix_defs.h \
   /home/mc/DB/db2025/rmdb/src/index/ix_index_handle.h \
   /home/mc/DB/db2025/rmdb/src/index/ix_manager.h \
   /home/mc/DB/db2025/rmdb/src/index/ix_scan.h \
+  /home/mc/DB/db2025/rmdb/src/transaction/concurrency/lock_manager.h \
+  /home/mc/DB/db2025/rmdb/src/common/context.h \
   /home/mc/DB/db2025/rmdb/src/record/bitmap.h \
   /home/mc/DB/db2025/rmdb/src/record/rm_file_handle.h \
   /home/mc/DB/db2025/rmdb/src/defs.h \
@@ -657,6 +657,8 @@ src/recovery/CMakeFiles/recovery.dir/log_recovery.cpp.o: /home/mc/DB/db2025/rmdb
 
 /home/mc/DB/db2025/rmdb/src/record/bitmap.h:
 
+/home/mc/DB/db2025/rmdb/src/transaction/concurrency/lock_manager.h:
+
 /home/mc/DB/db2025/rmdb/src/index/ix_scan.h:
 
 /home/mc/DB/db2025/rmdb/src/index/ix_manager.h:
@@ -667,8 +669,6 @@ src/recovery/CMakeFiles/recovery.dir/log_recovery.cpp.o: /home/mc/DB/db2025/rmdb
 
 /home/mc/DB/db2025/rmdb/src/index/ix_defs.h:
 
-/home/mc/DB/db2025/rmdb/src/transaction/concurrency/lock_manager.h:
-
 /home/mc/DB/db2025/rmdb/src/recovery/log_recovery.cpp:
 
 /usr/lib/gcc/x86_64-linux-gnu/13/include/stdint.h:
diff --git a/build/src/recovery/CMakeFiles/recovery.dir/log_recovery.cpp.o b/build/src/recovery/CMakeFiles/recovery.dir/log_recovery.cpp.o
index 5bd2d1f4aa69754ec50c63de7d3cf802d5540ccd..85b8912d3343994c38758217bf8d599483a62591 100644
Binary files a/build/src/recovery/CMakeFiles/recovery.dir/log_recovery.cpp.o and b/build/src/recovery/CMakeFiles/recovery.dir/log_recovery.cpp.o differ
diff --git a/build/src/recovery/CMakeFiles/recovery.dir/log_recovery.cpp.o.d b/build/src/recovery/CMakeFiles/recovery.dir/log_recovery.cpp.o.d
index 3a6b8c672d2a4c4273c4e6c2fbe1136bc2320572..1756236c30e3c4e52e93bcae2c83db23c97f57ae 100644
--- a/build/src/recovery/CMakeFiles/recovery.dir/log_recovery.cpp.o.d
+++ b/build/src/recovery/CMakeFiles/recovery.dir/log_recovery.cpp.o.d
@@ -257,6 +257,6 @@ src/recovery/CMakeFiles/recovery.dir/log_recovery.cpp.o: \
  /home/mc/DB/db2025/rmdb/src/record/rm_file_handle.h \
  /home/mc/DB/db2025/rmdb/src/record/bitmap.h \
  /usr/include/c++/13/cinttypes /usr/include/inttypes.h \
- /home/mc/DB/db2025/rmdb/src/common/context.h \
- /home/mc/DB/db2025/rmdb/src/common/../transaction/concurrency/lock_manager.h \
+ /home/mc/DB/db2025/rmdb/src/record/../common/context.h \
+ /home/mc/DB/db2025/rmdb/src/record/../common/../transaction/concurrency/lock_manager.h \
  /usr/include/c++/13/condition_variable
diff --git a/build/src/system/CMakeFiles/system.dir/compiler_depend.internal b/build/src/system/CMakeFiles/system.dir/compiler_depend.internal
index 63567a1ffdb7e8475eee5773dab27434a5bed64b..90ac63972e34f9dd273baf4e94b91d4b4a0e0a12 100644
--- a/build/src/system/CMakeFiles/system.dir/compiler_depend.internal
+++ b/build/src/system/CMakeFiles/system.dir/compiler_depend.internal
@@ -3,16 +3,16 @@
 
 src/system/CMakeFiles/system.dir/sm_manager.cpp.o
  /home/mc/DB/db2025/rmdb/src/system/sm_manager.cpp
- /home/mc/DB/db2025/rmdb/src/recovery/log_defs.h
- /home/mc/DB/db2025/rmdb/src/recovery/log_manager.h
- /home/mc/DB/db2025/rmdb/src/transaction/concurrency/lock_manager.h
- /home/mc/DB/db2025/rmdb/src/common/context.h
  /home/mc/DB/db2025/rmdb/src/defs.h
  /home/mc/DB/db2025/rmdb/src/index/ix.h
  /home/mc/DB/db2025/rmdb/src/index/ix_defs.h
  /home/mc/DB/db2025/rmdb/src/index/ix_index_handle.h
  /home/mc/DB/db2025/rmdb/src/index/ix_manager.h
  /home/mc/DB/db2025/rmdb/src/index/ix_scan.h
+ /home/mc/DB/db2025/rmdb/src/recovery/log_defs.h
+ /home/mc/DB/db2025/rmdb/src/recovery/log_manager.h
+ /home/mc/DB/db2025/rmdb/src/transaction/concurrency/lock_manager.h
+ /home/mc/DB/db2025/rmdb/src/common/context.h
  /home/mc/DB/db2025/rmdb/src/record/bitmap.h
  /home/mc/DB/db2025/rmdb/src/record/rm.h
  /home/mc/DB/db2025/rmdb/src/record/rm_file_handle.h
diff --git a/build/src/system/CMakeFiles/system.dir/compiler_depend.make b/build/src/system/CMakeFiles/system.dir/compiler_depend.make
index 54df0edb712cd59987818ef4db2a56958caf5b87..da24e6e9c4dc91d24f6d423b00753ea634ae55c5 100644
--- a/build/src/system/CMakeFiles/system.dir/compiler_depend.make
+++ b/build/src/system/CMakeFiles/system.dir/compiler_depend.make
@@ -2,16 +2,16 @@
 # Generated by "Unix Makefiles" Generator, CMake Version 3.28
 
 src/system/CMakeFiles/system.dir/sm_manager.cpp.o: /home/mc/DB/db2025/rmdb/src/system/sm_manager.cpp \
-  /home/mc/DB/db2025/rmdb/src/recovery/log_defs.h \
-  /home/mc/DB/db2025/rmdb/src/recovery/log_manager.h \
-  /home/mc/DB/db2025/rmdb/src/transaction/concurrency/lock_manager.h \
-  /home/mc/DB/db2025/rmdb/src/common/context.h \
   /home/mc/DB/db2025/rmdb/src/defs.h \
   /home/mc/DB/db2025/rmdb/src/index/ix.h \
   /home/mc/DB/db2025/rmdb/src/index/ix_defs.h \
   /home/mc/DB/db2025/rmdb/src/index/ix_index_handle.h \
   /home/mc/DB/db2025/rmdb/src/index/ix_manager.h \
   /home/mc/DB/db2025/rmdb/src/index/ix_scan.h \
+  /home/mc/DB/db2025/rmdb/src/recovery/log_defs.h \
+  /home/mc/DB/db2025/rmdb/src/recovery/log_manager.h \
+  /home/mc/DB/db2025/rmdb/src/transaction/concurrency/lock_manager.h \
+  /home/mc/DB/db2025/rmdb/src/common/context.h \
   /home/mc/DB/db2025/rmdb/src/record/bitmap.h \
   /home/mc/DB/db2025/rmdb/src/record/rm.h \
   /home/mc/DB/db2025/rmdb/src/record/rm_file_handle.h \
@@ -609,22 +609,6 @@ src/system/CMakeFiles/system.dir/sm_manager.cpp.o: /home/mc/DB/db2025/rmdb/src/s
 
 /home/mc/DB/db2025/rmdb/src/record/rm_file_handle.h:
 
-/home/mc/DB/db2025/rmdb/src/transaction/concurrency/lock_manager.h:
-
-/home/mc/DB/db2025/rmdb/src/index/ix_defs.h:
-
-/home/mc/DB/db2025/rmdb/src/recovery/log_manager.h:
-
-/usr/include/c++/13/iostream:
-
-/usr/include/c++/13/backward/binders.h:
-
-/usr/include/x86_64-linux-gnu/c++/13/bits/error_constants.h:
-
-/home/mc/DB/db2025/rmdb/src/common/context.h:
-
-/home/mc/DB/db2025/rmdb/src/transaction/transaction.h:
-
 /usr/include/c++/13/bits/hash_bytes.h:
 
 /usr/include/c++/13/bits/stl_iterator_base_funcs.h:
@@ -635,10 +619,16 @@ src/system/CMakeFiles/system.dir/sm_manager.cpp.o: /home/mc/DB/db2025/rmdb/src/s
 
 /usr/include/x86_64-linux-gnu/bits/cpu-set.h:
 
+/home/mc/DB/db2025/rmdb/src/index/ix_defs.h:
+
 /home/mc/DB/db2025/rmdb/src/common/common.h:
 
 /usr/include/c++/13/bits/shared_ptr.h:
 
+/home/mc/DB/db2025/rmdb/src/index/ix_scan.h:
+
+/usr/include/c++/13/backward/auto_ptr.h:
+
 /usr/include/linux/posix_types.h:
 
 /usr/include/c++/13/bits/ptr_traits.h:
@@ -649,9 +639,7 @@ src/system/CMakeFiles/system.dir/sm_manager.cpp.o: /home/mc/DB/db2025/rmdb/src/s
 
 /home/mc/DB/db2025/rmdb/src/recovery/log_defs.h:
 
-/home/mc/DB/db2025/rmdb/src/index/ix_scan.h:
-
-/usr/include/c++/13/backward/auto_ptr.h:
+/home/mc/DB/db2025/rmdb/src/transaction/concurrency/lock_manager.h:
 
 /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h:
 
@@ -693,6 +681,18 @@ src/system/CMakeFiles/system.dir/sm_manager.cpp.o: /home/mc/DB/db2025/rmdb/src/s
 
 /usr/include/c++/13/bits/alloc_traits.h:
 
+/home/mc/DB/db2025/rmdb/src/recovery/log_manager.h:
+
+/usr/include/c++/13/iostream:
+
+/usr/include/c++/13/backward/binders.h:
+
+/usr/include/x86_64-linux-gnu/c++/13/bits/error_constants.h:
+
+/home/mc/DB/db2025/rmdb/src/common/context.h:
+
+/home/mc/DB/db2025/rmdb/src/transaction/transaction.h:
+
 /usr/include/c++/13/bits/locale_facets.h:
 
 /home/mc/DB/db2025/rmdb/src/index/ix.h:
diff --git a/build/src/system/CMakeFiles/system.dir/sm_manager.cpp.o b/build/src/system/CMakeFiles/system.dir/sm_manager.cpp.o
index 60972d5963bd888064acc894af6a95fa58475825..9da8cf6a8a11ee88f8ad9bc3f3001fae48c87d75 100644
Binary files a/build/src/system/CMakeFiles/system.dir/sm_manager.cpp.o and b/build/src/system/CMakeFiles/system.dir/sm_manager.cpp.o differ
diff --git a/build/src/system/CMakeFiles/system.dir/sm_manager.cpp.o.d b/build/src/system/CMakeFiles/system.dir/sm_manager.cpp.o.d
index 8046965028feb867f8b1f25c592746dfc632d9da..f5be7dd6265de0ebcee62b0503752416c270499f 100644
--- a/build/src/system/CMakeFiles/system.dir/sm_manager.cpp.o.d
+++ b/build/src/system/CMakeFiles/system.dir/sm_manager.cpp.o.d
@@ -252,11 +252,11 @@ src/system/CMakeFiles/system.dir/sm_manager.cpp.o: \
  /home/mc/DB/db2025/rmdb/src/record/rm_file_handle.h \
  /home/mc/DB/db2025/rmdb/src/record/bitmap.h \
  /usr/include/c++/13/cinttypes /usr/include/inttypes.h \
- /home/mc/DB/db2025/rmdb/src/common/context.h \
- /home/mc/DB/db2025/rmdb/src/common/../transaction/concurrency/lock_manager.h \
+ /home/mc/DB/db2025/rmdb/src/record/../common/context.h \
+ /home/mc/DB/db2025/rmdb/src/record/../common/../transaction/concurrency/lock_manager.h \
  /usr/include/c++/13/condition_variable \
- /home/mc/DB/db2025/rmdb/src/common/../recovery/log_manager.h \
- /home/mc/DB/db2025/rmdb/src/common/../recovery/log_defs.h \
+ /home/mc/DB/db2025/rmdb/src/record/../common/../recovery/log_manager.h \
+ /home/mc/DB/db2025/rmdb/src/record/../common/../recovery/log_defs.h \
  /home/mc/DB/db2025/rmdb/src/record/rm.h \
  /home/mc/DB/db2025/rmdb/src/record/rm_scan.h \
  /home/mc/DB/db2025/rmdb/src/record/rm_manager.h \
diff --git a/build/src/transaction/CMakeFiles/transaction.dir/compiler_depend.internal b/build/src/transaction/CMakeFiles/transaction.dir/compiler_depend.internal
index 139e43b8412097dff9d9024fad6ef1696e99ff84..033ec96338f3aa5425342e281653bcf4ce54f613 100644
--- a/build/src/transaction/CMakeFiles/transaction.dir/compiler_depend.internal
+++ b/build/src/transaction/CMakeFiles/transaction.dir/compiler_depend.internal
@@ -305,13 +305,13 @@ src/transaction/CMakeFiles/transaction.dir/concurrency/lock_manager.cpp.o
 
 src/transaction/CMakeFiles/transaction.dir/transaction_manager.cpp.o
  /home/mc/DB/db2025/rmdb/src/transaction/transaction_manager.cpp
- /home/mc/DB/db2025/rmdb/src/common/context.h
  /home/mc/DB/db2025/rmdb/src/common/exception.h
  /home/mc/DB/db2025/rmdb/src/index/ix.h
  /home/mc/DB/db2025/rmdb/src/index/ix_defs.h
  /home/mc/DB/db2025/rmdb/src/index/ix_index_handle.h
  /home/mc/DB/db2025/rmdb/src/index/ix_manager.h
  /home/mc/DB/db2025/rmdb/src/index/ix_scan.h
+ /home/mc/DB/db2025/rmdb/src/common/context.h
  /home/mc/DB/db2025/rmdb/src/record/bitmap.h
  /home/mc/DB/db2025/rmdb/src/record/rm_file_handle.h
  /home/mc/DB/db2025/rmdb/src/recovery/log_defs.h
diff --git a/build/src/transaction/CMakeFiles/transaction.dir/compiler_depend.make b/build/src/transaction/CMakeFiles/transaction.dir/compiler_depend.make
index b4d954e15317b908359efd258398f415269cee2c..a1e786a193e9ed4c3ffbc1bce89ec60528a8b924 100644
--- a/build/src/transaction/CMakeFiles/transaction.dir/compiler_depend.make
+++ b/build/src/transaction/CMakeFiles/transaction.dir/compiler_depend.make
@@ -303,13 +303,13 @@ src/transaction/CMakeFiles/transaction.dir/concurrency/lock_manager.cpp.o: /home
   /usr/lib/gcc/x86_64-linux-gnu/13/include/stdint.h
 
 src/transaction/CMakeFiles/transaction.dir/transaction_manager.cpp.o: /home/mc/DB/db2025/rmdb/src/transaction/transaction_manager.cpp \
-  /home/mc/DB/db2025/rmdb/src/common/context.h \
   /home/mc/DB/db2025/rmdb/src/common/exception.h \
   /home/mc/DB/db2025/rmdb/src/index/ix.h \
   /home/mc/DB/db2025/rmdb/src/index/ix_defs.h \
   /home/mc/DB/db2025/rmdb/src/index/ix_index_handle.h \
   /home/mc/DB/db2025/rmdb/src/index/ix_manager.h \
   /home/mc/DB/db2025/rmdb/src/index/ix_scan.h \
+  /home/mc/DB/db2025/rmdb/src/common/context.h \
   /home/mc/DB/db2025/rmdb/src/record/bitmap.h \
   /home/mc/DB/db2025/rmdb/src/record/rm_file_handle.h \
   /home/mc/DB/db2025/rmdb/src/recovery/log_defs.h \
diff --git a/build/src/transaction/CMakeFiles/transaction.dir/transaction_manager.cpp.o b/build/src/transaction/CMakeFiles/transaction.dir/transaction_manager.cpp.o
index 227bac8d6f6feeb847440d5a4b29d77cad03af44..b53cd16972af6a2c5f9174ed738d8222084d207c 100644
Binary files a/build/src/transaction/CMakeFiles/transaction.dir/transaction_manager.cpp.o and b/build/src/transaction/CMakeFiles/transaction.dir/transaction_manager.cpp.o differ
diff --git a/build/src/transaction/CMakeFiles/transaction.dir/transaction_manager.cpp.o.d b/build/src/transaction/CMakeFiles/transaction.dir/transaction_manager.cpp.o.d
index d26046d717f1e9a651af6a023ce63b201ae05c60..cd4bb28e03bee0648d8bfce7ded7f523ae569e06 100644
--- a/build/src/transaction/CMakeFiles/transaction.dir/transaction_manager.cpp.o.d
+++ b/build/src/transaction/CMakeFiles/transaction.dir/transaction_manager.cpp.o.d
@@ -261,5 +261,5 @@ src/transaction/CMakeFiles/transaction.dir/transaction_manager.cpp.o: \
  /home/mc/DB/db2025/rmdb/src/record/rm_file_handle.h \
  /home/mc/DB/db2025/rmdb/src/record/bitmap.h \
  /usr/include/c++/13/cinttypes /usr/include/inttypes.h \
- /home/mc/DB/db2025/rmdb/src/common/context.h \
+ /home/mc/DB/db2025/rmdb/src/record/../common/context.h \
  /home/mc/DB/db2025/rmdb/src/common/exception.h
diff --git a/src/record/rm_file_handle.h b/src/record/rm_file_handle.h
index f9bb1d011ef9b5499debedf2c7add67d2aff3bba..92dbac4d4507d4a49f56d7597d96400b9a7f269c 100644
--- a/src/record/rm_file_handle.h
+++ b/src/record/rm_file_handle.h
@@ -15,7 +15,7 @@ See the Mulan PSL v2 for more details. */
 #include <memory>
 
 #include "bitmap.h"
-#include "/home/mc/DB/db2025/rmdb/src/common/context.h"
+#include "../common/context.h"
 #include "rm_defs.h"
 
 class RmManager;
diff --git a/src/unit_test.cpp b/src/unit_test.cpp
index 374b002cd8c06a4326c4d9d9632c7c9bb4285424..f6324288adad7118787c35eb1317d82ed9cadbe9 100644
--- a/src/unit_test.cpp
+++ b/src/unit_test.cpp
@@ -12,7 +12,7 @@ See the Mulan PSL v2 for more details. */
 
 #define private public
 
-#include "/home/mc/DB/db2025/rmdb/src/record/rm.h"
+#include "../src/record/rm.h"
 #include "storage/buffer_pool_manager.h"
 
 #undef private