1. 26 Mar, 2001 1 commit
  2. 12 Dec, 2000 1 commit
    • Christopher James Lahey's avatar
      Made cache_sanity only be included if d(x) is defined as x. · c49f88cd
      Christopher James Lahey authored
      2000-12-12  Christopher James Lahey  <clahey@helixcode.com>
      
      	* wordindex.c (cache_sanity): Made cache_sanity only be included
      	if d(x) is defined as x.
      
      	* wordindexmem.c: Made node_sanity and cache_sanity only be
      	included if d(x) is defined as x or if MALLOC_CHECK is defined.
      	Made sync_value only be included if d(x) is defined as x.
      
      svn path=/trunk/; revision=6947
      c49f88cd
  3. 28 Nov, 2000 1 commit
    • Not Zed's avatar
      Turn off index stats by default. · ce490572
      Not Zed authored
      2000-11-28  Not Zed  <NotZed@HelixCode.com>
      
              * index.h: Turn off index stats by default.
      
              * ibex_block.c (ibex_save): And here.
              (ibex_close): Debug out printfs.
      
              * wordindexmem.c (ibex_create_word_index_mem): And here.
              (num): Made buf static.
      
              * block.c (ibex_block_cache_open): Debug out some printfs.
              (ibex_block_read): And here.
      
      svn path=/trunk/; revision=6691
      ce490572
  4. 27 Nov, 2000 1 commit
    • Not Zed's avatar
      If we have the namecache active, and there is no name there, we add it · 6c45c449
      Not Zed authored
      2000-11-17  Not Zed  <NotZed@HelixCode.com>
      
              * wordindexmem.c (add_list): If we have the namecache active, and
              there is no name there, we add it directly and dont look it up
              first.
      
              * testindex.c: Some performance testing & stat gathering stuff.
      
      svn path=/trunk/; revision=6677
      6c45c449
  5. 16 Nov, 2000 1 commit
    • Not Zed's avatar
      Initialise nameinit & namecache. (contains_name): On first call, load all · be8b8b1c
      Not Zed authored
      2000-11-16  Not Zed  <NotZed@HelixCode.com>
      
              * wordindexmem.c (ibex_create_word_index_mem): Initialise nameinit
              & namecache.
              (contains_name): On first call, load all names into memory.  We
              usually do a whole lot of lookups in a row, and this saves a lot
              of penalties on a big list, for not too much a memory hit.
              (find_name): If we have the namelist in memory do a quick
              short-circuit check to see if we have to do further processing.
              (unindex_name): Cross check the namecache, if it is active.
              Remove it there too/or exit (no work to do).
              (word_flush): If we have the namecache active, destroy it now, as
              it is not needed anymore (for now).
      
      svn path=/trunk/; revision=6591
      be8b8b1c
  6. 25 Oct, 2000 1 commit
    • Not Zed's avatar
      Bugfixes, performance improvemnts. Should scale up much better than · 9aae808c
      Not Zed authored
      before, and be more bugfree than ever!
      
      2000-10-25  Not Zed  <NotZed@HelixCode.com>
      
       	* ibex_internal.h (IBEX_VERSION): Bumped to another version.  The
       	file format hasn't changed, but earlier bugs may create invalid
       	files.
      
       	* block.c (ibex_block_read): Use the root data directly.
       	(ibex_block_cache_open): As well.
       	(ibex_block_get): And here too.
       	(ibex_block_cache_sync): Sync the root block directly here.
      
       	* block.h: Pad root block out to 1024 bytes.
       	Added root block to struct _memcache.
      
       	* disktail.c (tail_get): Dirty the root block.
       	(tail_get): Fix for changes to root access.
       	(disk_remove): And here too.
      
       	* wordindexmem.c (sync_cache_entry): Handle the case of not having
       	any files in the list, which can happen now.
       	(word_index_pre): Make sure we set the wordid on the new cache
       	entry.
      
       	* ibex_block.c (ibex_save): Sigh.  Pass the right argument to
       	index_post.
      
      	* block.c (ibex_block_cache_open): Create a word_index_mem for
       	indexing the words, rather than a word_index.
      
       	* ibex_block.c (ibex_index_buffer): If we haven't called index_pre
       	yet, do it before indexing anything.
       	(ibex_save): If wehave called index_pre previously, call
       	index_post.
       	(ibex_close): And same for here.
      
       	* index.h: Added a cursor class, and cursor retrieval function for
       	iterating through an index's keys.
      
       	* wordindexmem.c (ibex_create_word_index_mem): New word class,
       	similar to wordindex, but meant to be faster for updates.
       	(word_index_pre): Implement.  We load all keys into memory.
       	(word_index_post): Implement.  We sync and free all keys.
       	(find): Remove lru code, its no longer a cache, but a lookup
       	table.
       	(add_index_cache): Remove lru code here too.
       	(find_name): And here.
       	(word_flush): Flush the hashtable direct.
       	(word_close): Call flush to flush, rather than doing it ourselves.
       	(add_index_cache): If we are in an index state, we can assume a
       	cache miss == a new word.
       	(word_index_post): Maintain whether or not we are in an index
       	state, and the depth of the state.
       	(word_index_pre): Likewise.  Dont reread the index if we have
       	already.
       	(cache_sanity): Fixed for struct changes.
      
       	* wordindex.h (IBEXWordClass): Added functions to prepare/cleanup
       	for lots of indexing.  i.e. can be used to optimise indexing speed
       	at the cost of extra memory usage during the indexing process.
      
      	* hash.c (hash_cursor_create): Create a new cursor for iterating through a
       	hashtable.
       	(hash_cursor_close): 'close' the cursor. It is upto the
       	application to close any cursors it creates.
       	(hash_cursor_next): Goto the next key id.
       	(hash_cursor_next_key): Goto the next key, reutrn the key.
       	(hash_get_cursor): Return a cursor object.
      
      	* wordindex.c (word_index_post):
       	(word_index_pre): Added (empty) callbacks for pre/post functions.
      
      svn path=/trunk/; revision=6165
      9aae808c
  7. 24 Oct, 2000 1 commit
    • Not Zed's avatar
      Dumps the contents of indexs. · 04780422
      Not Zed authored
      2000-10-24  Not Zed  <NotZed@HelixCode.com>
      
              * dumpindex.c: Dumps the contents of indexs.
      
              * hash.c (ibex_hash_dump_rec): Also print the word count.
      
              * wordindex.c (unindex_name): Cross-check the cache as well.
      
      svn path=/trunk/; revision=6139
      04780422
  8. 12 Oct, 2000 1 commit
    • Not Zed's avatar
      Added some stat stuff. · 1deca02b
      Not Zed authored
      2000-10-12  Not Zed  <NotZed@HelixCode.com>
      
              * index.h: Added some stat stuff.
      
              * wordindex.c (struct _wordcache): Changed files[] to be a pointer
              to an allocated block/or an individual item.
              (find): Fix for changes to struct.
              (find_name):  "
              (sync_cache_entry): "
              (add): "
              (add_list): "
              (add_index_cache): Free the cache file array if it was created.
              (word_flush): And here.
              (word_close): And here too.
              (ibex_create_word_index): Double the size of the hashtables.
              (word_flush): Make sure we reset the wordcount to 0 if we remove
              the list items.  DOH.
              (add_index_cache): Use a slightly more sohpisticated aging
              algorithm to remove expired nodes.
      
      2000-10-10  Not Zed  <NotZed@HelixCode.com>
      
              * hash.c (hash_find):
              (hash_remove):
              (hash_insert):  Truncate key if it is too big to fit in a
              single block to MAX_KEYLEN bytes.
      
      svn path=/trunk/; revision=5882
      1deca02b
  9. 28 Sep, 2000 1 commit
    • Not Zed's avatar
      Make sure we map the 'free' block to a block number when unlinking a block · 315ea376
      Not Zed authored
      2000-09-28  Not Zed  <NotZed@HelixCode.com>
      
              * block.c (ibex_block_free): Make sure we map the 'free' block to
              a block number when unlinking a block (fixes a lot of assertion
              failures).
              (ibex_block_cache_open): Initialise sync flag on root block.  If
              it is not set on open then the index could be in an invalid state,
              and should be rescanned.
              (ibex_block_cache_sync): Sync root block last, and set the sync
              flag.
              (ibex_block_cache_open): Mirror root block flags in block_cache
              struct.
              (ibex_block_cache_sync): Likewise.
              (ibex_block_read): If we write a dirty block, then we clear the
              sync flag if its still set; we are no longer synced.
      
      svn path=/trunk/; revision=5613
      315ea376
  10. 19 Sep, 2000 1 commit