@@ -344,18 +344,34 @@ fn main() -> Result<()> {
344
344
345
345
let mut page_offset: Option < PointId > = None ;
346
346
let mut total: usize = 0 ;
347
+ let mut retry: usize = 0 ;
347
348
loop {
348
349
let now = utils:: now ( ) ;
349
- let scroll_results = qdrant_client
350
+ let scroll_results = match qdrant_client
350
351
. scroll ( & ScrollPoints {
351
352
collection_name : ds. qdrant_collection ( ) ,
352
353
with_vectors : Some ( true . into ( ) ) ,
353
354
with_payload : Some ( true . into ( ) ) ,
354
355
limit : Some ( points_per_request as u32 ) ,
355
- offset : page_offset,
356
+ offset : page_offset. clone ( ) ,
356
357
..Default :: default ( )
357
358
} )
358
- . await ?;
359
+ . await
360
+ {
361
+ Ok ( r) => r,
362
+ Err ( e) => {
363
+ if retry < 3 {
364
+ retry += 1 ;
365
+ utils:: error ( & format ! (
366
+ "Error migrating points (read): retry={} error={:?}" ,
367
+ retry, e
368
+ ) ) ;
369
+ continue ;
370
+ } else {
371
+ Err ( e) ?
372
+ }
373
+ }
374
+ } ;
359
375
360
376
let count = scroll_results. result . len ( ) ;
361
377
@@ -371,9 +387,24 @@ fn main() -> Result<()> {
371
387
} )
372
388
. collect :: < Vec < _ > > ( ) ;
373
389
374
- shadow_write_qdrant_client
390
+ match shadow_write_qdrant_client
375
391
. upsert_points ( ds. qdrant_collection ( ) , points, None )
376
- . await ?;
392
+ . await
393
+ {
394
+ Ok ( _) => ( ) ,
395
+ Err ( e) => {
396
+ if retry < 3 {
397
+ retry += 1 ;
398
+ utils:: error ( & format ! (
399
+ "Error migrating points (write): retry={} error={:?}" ,
400
+ retry, e
401
+ ) ) ;
402
+ continue ;
403
+ } else {
404
+ Err ( e) ?
405
+ }
406
+ }
407
+ }
377
408
378
409
total += count;
379
410
utils:: info ( & format ! (
@@ -387,6 +418,7 @@ fn main() -> Result<()> {
387
418
if page_offset. is_none ( ) {
388
419
break ;
389
420
}
421
+ retry = 0 ;
390
422
}
391
423
392
424
utils:: info ( & format ! ( "Done migrating: total={}" , total) ) ;
0 commit comments