X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=index%2Frecords.c;h=ad11f22983bd6f97374e6e1867dfc0b93a9b7fe2;hb=0efcca9923da4586d3c1d1c10d4afa68c894f576;hp=c39ac40db368656e04bb78a5192947f92d5c2e8e;hpb=503ad800671bf46891e5a39c2a3a17544d577721;p=idzebra-moved-to-github.git diff --git a/index/records.c b/index/records.c index c39ac40..ad11f22 100644 --- a/index/records.c +++ b/index/records.c @@ -1,5 +1,5 @@ -/* $Id: records.c,v 1.3 2007-11-28 11:16:32 adam Exp $ - Copyright (C) 1995-2007 +/* $Id: records.c,v 1.4 2008-03-05 09:18:51 adam Exp $ + Copyright (C) 1995-2008 Index Data ApS This file is part of the Zebra server. @@ -69,6 +69,8 @@ struct records_info { int cache_cur; int cache_max; + int compression_chunk_size; + Zebra_mutex mutex; struct records_head { @@ -289,6 +291,7 @@ Records rec_open(BFiles bfs, int rw, int compression_method) p->rw = rw; p->tmp_size = 1024; p->tmp_buf = (char *) xmalloc(p->tmp_size); + p->compression_chunk_size = 0; p->recindex = recindex_open(bfs, rw, 0 /* 1=isamb for recindex */); r = recindex_read_head(p->recindex, p->tmp_buf); switch (r) @@ -336,6 +339,7 @@ Records rec_open(BFiles bfs, int rw, int compression_method) recindex_get_fname(p->recindex), version, REC_VERSION); ret = ZEBRA_FAIL; } + p->compression_chunk_size = 90000; /* good for BZIP2 */ break; } for (i = 0; isize[j]; } - if (used > 90000) + if (used > p->compression_chunk_size) ret = rec_cache_flush(p, 1); } assert(p->cache_cur < p->cache_max);