@@ -147,23 +147,34 @@ def canDelete(self, walFile):
147
147
if self .lastVer != - 1 and ret :
148
148
# first wal file ignore
149
149
if walFile .startVer == self .firstVer :
150
- tdLog .info (f" { walFile .pathFile } can del , but is first. snapVer={ self .snapVer } firstVer={ self .firstVer } " )
150
+ tdLog .info (f" can del { walFile .pathFile } , but is first. snapVer={ self .snapVer } firstVer={ self .firstVer } " )
151
151
return False
152
152
153
153
# ver in stay range
154
154
smallVer = self .snapVer - self .walStayRange - 1
155
155
if walFile .startVer >= smallVer :
156
- tdLog .info (f" { walFile .pathFile } can del , but range not arrived. snapVer={ self .snapVer } smallVer={ smallVer } " )
156
+ tdLog .info (f" can del { walFile .pathFile } , but range not arrived. snapVer={ self .snapVer } smallVer={ smallVer } " )
157
157
return False
158
158
159
159
return ret
160
160
161
161
# get log size
162
162
def getWalsSize (self ):
163
163
size = 0
164
+ lastSize = 0
165
+ max = - 1
164
166
for walFile in self .walFiles :
165
- size += walFile .fsize
167
+ if self .canDelete (walFile ) == False :
168
+ tdLog .info (f" calc vnode size { walFile .pathFile } size={ walFile .fsize } startVer={ walFile .startVer } " )
169
+ size += walFile .fsize
170
+ if max < walFile .startVer :
171
+ max = walFile .startVer
172
+ lastSize = walFile .fsize
173
+
166
174
175
+ if lastSize > 0 :
176
+ tdLog .info (f" last file size need reduct . lastSize={ lastSize } " )
177
+ size -= lastSize
167
178
return size
168
179
169
180
# vnode
@@ -183,7 +194,7 @@ def check_retention(self):
183
194
delTs = delTsLine .timestamp ()
184
195
for walFile in self .walFiles :
185
196
mt = datetime .fromtimestamp (walFile .mtime )
186
- info = f" { walFile .pathFile } mt={ mt } line={ delTsLine } start={ walFile .startVer } snap={ self .snapVer } end= { walFile .endVer } "
197
+ info = f" { walFile .pathFile } size= { walFile . fsize } mt={ mt } line={ delTsLine } start={ walFile .startVer } snap={ self .snapVer } end= { walFile .endVer } "
187
198
tdLog .info (info )
188
199
if walFile .mtime < delTs and self .canDelete (walFile ):
189
200
# wait a moment then check file exist
@@ -199,25 +210,16 @@ def check_retention(self):
199
210
if self .walSize == 0 :
200
211
return True
201
212
213
+ time .sleep (2 )
202
214
vnodeSize = self .getWalsSize ()
203
- if vnodeSize < self .walSize :
204
- tdLog .info (f" wal size valid. { self .path } real = { vnodeSize } set = { self .walSize } " )
215
+ # need over 20%
216
+ if vnodeSize < self .walSize * 1.2 :
217
+ tdLog .info (f" wal size valid. { self .path } real = { vnodeSize } set = { self .walSize } . allow over 20%." )
205
218
return True
206
219
207
- # check valid
208
- tdLog .info (f" wal size over set. { self .path } real = { vnodeSize } set = { self .walSize } " )
209
- for walFile in self .walFiles :
210
- if self .canDelete (walFile ):
211
- # wait a moment then check file exist
212
- time .sleep (1 )
213
- if os .path .exists (walFile .pathFile ):
214
- tdLog .exit (f" wal file size over .\
215
- \n wal file = { walFile .pathFile } \
216
- \n snapVer = { self .snapVer } \
217
- \n real = { vnodeSize } bytes\
218
- \n set = { self .walSize } bytes" )
219
- return False
220
- return True
220
+ # check over
221
+ tdLog .exit (f" wal size over set. { self .path } real = { vnodeSize } set = { self .walSize } " )
222
+ return False
221
223
222
224
223
225
# insert by async
0 commit comments