File tree Expand file tree Collapse file tree 1 file changed +16
-0
lines changed Expand file tree Collapse file tree 1 file changed +16
-0
lines changed Original file line number Diff line number Diff line change @@ -36,6 +36,8 @@ var log = logging.Logger("coreunix")
36
36
// how many bytes of progress to wait before sending a progress update message
37
37
const progressReaderIncrement = 1024 * 256
38
38
39
+ var liveCacheSize = uint64 (256 << 10 )
40
+
39
41
type Link struct {
40
42
Name , Hash string
41
43
Size uint64
@@ -104,6 +106,7 @@ type Adder struct {
104
106
unlocker bs.Unlocker
105
107
tempRoot * cid.Cid
106
108
Prefix * cid.Prefix
109
+ liveNodes uint64
107
110
}
108
111
109
112
func (adder * Adder ) mfsRoot () (* mfs.Root , error ) {
@@ -422,6 +425,19 @@ func (adder *Adder) addFile(file files.File) error {
422
425
return err
423
426
}
424
427
428
+ if adder .liveNodes >= liveCacheSize {
429
+ // TODO: A smarter cache that uses some sort of lru cache with an eviction handler
430
+ mr , err := adder .mfsRoot ()
431
+ if err != nil {
432
+ return err
433
+ }
434
+ if err := mr .Flush (); err != nil {
435
+ return err
436
+ }
437
+ adder .liveNodes = 0
438
+ }
439
+ adder .liveNodes ++
440
+
425
441
if file .IsDirectory () {
426
442
return adder .addDir (file )
427
443
}
You can’t perform that action at this time.
0 commit comments