From 3d0b0a68cebe28402efe4008c4a7cb809be41e09 Mon Sep 17 00:00:00 2001 From: Kirill Smelkov <kirr@nexedi.com> Date: Tue, 27 Nov 2018 21:00:10 +0300 Subject: [PATCH] . --- wcfs/wcfs.go | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/wcfs/wcfs.go b/wcfs/wcfs.go index 4e4ebfd..ce8f8fb 100644 --- a/wcfs/wcfs.go +++ b/wcfs/wcfs.go @@ -522,6 +522,9 @@ type BigFile struct { // zbf.Size(). It is constant during liftime of current transaction. zbfSize int64 + // change history of this file. + δFtail *ΔTailI64 // [](rev, []#blk) + // TODO -> δFtail // lastChange zodb.Tid // last change to whole bigfile as of .zconn.At view } @@ -839,6 +842,9 @@ func bigopen(ctx context.Context, zconn *ZConn, oid zodb.Oid) (_ *BigFile, err e zconn: zconn, zbf: zbf, zbfSize: zbfSize, + + // XXX this is needed only for head/ + δFtail: NewΔTailI64(), // XXX indicate we have coverage starting from zconn.at? }, nil } @@ -933,6 +939,7 @@ func (bfdata *BigFileData) Read(_ nodefs.File, dest []byte, off int64, fctx *fus // len(dest) == blksize. func (bfdata *BigFileData) readBlk(ctx context.Context, blk int64, dest []byte) error { // XXX errctx? + // XXX locking // check if someone else is already loading this block bfdata.loadMu.Lock() @@ -968,11 +975,12 @@ func (bfdata *BigFileData) readBlk(ctx context.Context, blk int64, dest []byte) close(loading.ready) // XXX before loading.ready? -/* - blkrevmax2 := max(δFtail.by(blk)) || min(rev for rev in δFtail) - - revmax = min(blkrevmax1, blkrevmax2) + blkrevmax2, _ := bfdata.bigfile.δFtail.LastRevOf(blk, zbf.PJar().At()) + //revmax := min(blkrevmax1, blkrevmax2) + revmax := blkrevmax2 + _ = revmax +/* // XXX remmapping // XXX -> own func? // XXX locking -- 2.30.9