Browse Source
Merge pull request #375 from hxiaodon/master
Merge pull request #375 from hxiaodon/master
supplemental data between compacting and commit compactingpull/378/head
Chris Lu
8 years ago
committed by
GitHub
4 changed files with 214 additions and 9 deletions
-
3weed/storage/volume.go
-
1weed/storage/volume_checking.go
-
154weed/storage/volume_vacuum.go
-
55weed/storage/volume_vacuum_test.go
@ -0,0 +1,55 @@ |
|||
package storage |
|||
|
|||
import ( |
|||
"testing" |
|||
) |
|||
|
|||
/* |
|||
makediff test steps |
|||
1. launch weed server at your local/dev environment, (option |
|||
"garbageThreshold" for master and option "max" for volume should be set with specific value which would let |
|||
preparing test prerequisite easier ) |
|||
a) ./weed master -garbageThreshold=0.99 -mdir=./m |
|||
b) ./weed volume -dir=./data -max=1 -mserver=localhost:9333 -port=8080 |
|||
2. upload 4 different files, you could call dir/assign to get 4 different fids |
|||
a) upload file A with fid a |
|||
b) upload file B with fid b |
|||
c) upload file C with fid c |
|||
d) upload file D with fid d |
|||
3. update file A and C |
|||
a) modify file A and upload file A with fid a |
|||
b) modify file C and upload file C with fid c |
|||
c) record the current 1.idx's file size(lastCompactIndexOffset value) |
|||
4. Compacting the data file |
|||
a) run curl http://localhost:8080/admin/vacuum/compact?volumeId=1
|
|||
b) verify the 1.cpd and 1.cpx is created under volume directory |
|||
5. update file B and delete file D |
|||
a) modify file B and upload file B with fid b |
|||
d) delete file B with fid b |
|||
6. Now you could run the following UT case, the case should be run successfully |
|||
7. Compact commit manually |
|||
a) mv 1.cpd 1.dat |
|||
b) mv 1.cpx 1.idx |
|||
8. Restart Volume Server |
|||
9. Now you should get updated file A,B,C |
|||
*/ |
|||
|
|||
func TestMakeDiff(t *testing.T) { |
|||
|
|||
v := new(Volume) |
|||
//lastCompactIndexOffset value is the index file size before step 4
|
|||
v.lastCompactIndexOffset = 96 |
|||
v.SuperBlock.version = 0x2 |
|||
/* |
|||
err := v.makeupDiff( |
|||
"/yourpath/1.cpd", |
|||
"/yourpath/1.cpx", |
|||
"/yourpath/1.dat", |
|||
"/yourpath/1.idx") |
|||
if err != nil { |
|||
t.Errorf("makeupDiff err is %v", err) |
|||
} else { |
|||
t.Log("makeupDiff Succeeded") |
|||
} |
|||
*/ |
|||
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue