Avoid unnecessary lseek() calls by cleanups in md.c. mdfd_lstbcnt was
not being consulted anywhere, so remove it and remove the _mdnblocks() calls that were used to set it. Change smgrextend interface to pass in the target block number (ie, current file length) --- the caller always knows this already, having already done smgrnblocks(), so it's silly to do it over again inside mdextend. Net result: extension of a file now takes one lseek(SEEK_END) and a write(), not three lseeks and a write.
Showing
- src/backend/commands/sequence.c 2 additions, 2 deletionssrc/backend/commands/sequence.c
- src/backend/storage/buffer/bufmgr.c 29 additions, 23 deletionssrc/backend/storage/buffer/bufmgr.c
- src/backend/storage/smgr/md.c 75 additions, 65 deletionssrc/backend/storage/smgr/md.c
- src/backend/storage/smgr/mm.c 2 additions, 2 deletionssrc/backend/storage/smgr/mm.c
- src/backend/storage/smgr/smgr.c 14 additions, 8 deletionssrc/backend/storage/smgr/smgr.c
- src/include/storage/smgr.h 5 additions, 4 deletionssrc/include/storage/smgr.h
Loading
Please register or sign in to comment