Blame


1 a0d146ed 2005-07-12 devnull #include "stdinc.h"
2 a0d146ed 2005-07-12 devnull #include "dat.h"
3 a0d146ed 2005-07-12 devnull #include "fns.h"
4 a0d146ed 2005-07-12 devnull
5 a0d146ed 2005-07-12 devnull static int verbose;
6 a0d146ed 2005-07-12 devnull void
7 a0d146ed 2005-07-12 devnull usage(void)
8 a0d146ed 2005-07-12 devnull {
9 45ac814c 2007-10-29 rsc fprint(2, "usage: syncindex [-v] [-B blockcachesize] config\n");
10 a0d146ed 2005-07-12 devnull threadexitsall("usage");
11 a0d146ed 2005-07-12 devnull }
12 a0d146ed 2005-07-12 devnull
13 a0d146ed 2005-07-12 devnull Config conf;
14 a0d146ed 2005-07-12 devnull
15 a0d146ed 2005-07-12 devnull void
16 a0d146ed 2005-07-12 devnull threadmain(int argc, char *argv[])
17 a0d146ed 2005-07-12 devnull {
18 a0d146ed 2005-07-12 devnull u32int bcmem, icmem;
19 a0d146ed 2005-07-12 devnull
20 a0d146ed 2005-07-12 devnull bcmem = 0;
21 a0d146ed 2005-07-12 devnull icmem = 0;
22 a0d146ed 2005-07-12 devnull ARGBEGIN{
23 a0d146ed 2005-07-12 devnull case 'B':
24 a0d146ed 2005-07-12 devnull bcmem = unittoull(EARGF(usage()));
25 a0d146ed 2005-07-12 devnull break;
26 a0d146ed 2005-07-12 devnull case 'I':
27 a0d146ed 2005-07-12 devnull icmem = unittoull(EARGF(usage()));
28 a0d146ed 2005-07-12 devnull break;
29 a0d146ed 2005-07-12 devnull case 'v':
30 a0d146ed 2005-07-12 devnull verbose++;
31 a0d146ed 2005-07-12 devnull break;
32 a0d146ed 2005-07-12 devnull default:
33 a0d146ed 2005-07-12 devnull usage();
34 a0d146ed 2005-07-12 devnull break;
35 a0d146ed 2005-07-12 devnull }ARGEND
36 a0d146ed 2005-07-12 devnull
37 a0d146ed 2005-07-12 devnull if(argc != 1)
38 a0d146ed 2005-07-12 devnull usage();
39 a0d146ed 2005-07-12 devnull
40 d67cd5c3 2005-07-19 devnull ventifmtinstall();
41 a0d146ed 2005-07-12 devnull if(initventi(argv[0], &conf) < 0)
42 a0d146ed 2005-07-12 devnull sysfatal("can't init venti: %r");
43 28b49df3 2006-07-18 devnull if(mainindex->bloom && loadbloom(mainindex->bloom) < 0)
44 28b49df3 2006-07-18 devnull sysfatal("can't load bloom filter: %r");
45 a0d146ed 2005-07-12 devnull
46 a0d146ed 2005-07-12 devnull if(bcmem < maxblocksize * (mainindex->narenas + mainindex->nsects * 4 + 16))
47 a0d146ed 2005-07-12 devnull bcmem = maxblocksize * (mainindex->narenas + mainindex->nsects * 4 + 16);
48 a0d146ed 2005-07-12 devnull if(0) fprint(2, "initialize %d bytes of disk block cache\n", bcmem);
49 a0d146ed 2005-07-12 devnull initdcache(bcmem);
50 a0d146ed 2005-07-12 devnull initlumpcache(1*1024*1024, 1024/8);
51 7a400ee9 2007-09-25 rsc initicache(icmem);
52 a0d146ed 2005-07-12 devnull initicachewrite();
53 a0d146ed 2005-07-12 devnull if(mainindex->bloom)
54 a0d146ed 2005-07-12 devnull startbloomproc(mainindex->bloom);
55 a0d146ed 2005-07-12 devnull
56 a0d146ed 2005-07-12 devnull if(verbose)
57 a0d146ed 2005-07-12 devnull printindex(2, mainindex);
58 45ac814c 2007-10-29 rsc if(syncindex(mainindex) < 0)
59 f5a8ea6f 2011-06-02 rsc sysfatal("failed to sync index=%s: %r", mainindex->name);
60 45ac814c 2007-10-29 rsc flushicache();
61 45ac814c 2007-10-29 rsc flushdcache();
62 a0d146ed 2005-07-12 devnull
63 a0d146ed 2005-07-12 devnull threadexitsall(0);
64 a0d146ed 2005-07-12 devnull }