Sat, 07 Feb 2009 18:01:18 +0000 |
mas01mc |
This fix plugs a minor memory leak introduced in caching file references.
multiprobeLSH
|
Sat, 07 Feb 2009 16:59:31 +0000 |
mas01mc |
Added file caching for sparse datum reads. This required making a new type called adb_fd_cache_t and modifying the read methods audiodb_track_id_datum() and audiodb_insert_create_datum() to use the cache struct if one is provided by the user.
multiprobeLSH
|
Sat, 07 Feb 2009 12:12:46 +0000 |
mas01mc |
Fixed time-stamp option off-by-one error in new sparse scattered I/O. This probably isn't used by anyone at the moment and time-stamping needs to be tested properly anyway.
multiprobeLSH
|
Sat, 07 Feb 2009 01:20:05 +0000 |
mas01mc |
Optimized the query_loop_points inner loop for memcpy and I/O efficiency. Uses sparse seeks and reads to perform scattered reads across data set. Current version does not cache fid between open calls to the same trackID.
multiprobeLSH
|
Fri, 06 Feb 2009 21:08:35 +0000 |
mas01mc |
Added back single-query point I/O behaviour from pre API-inversion. Thus only those query vectors required are loaded when using query-from-file. Tests 0006 and 0007 fail silently with this change.
multiprobeLSH
|
Fri, 06 Feb 2009 17:08:21 +0000 |
mas01mc |
Removed obsolete dbH header pointer dereferences in audioDB.cpp. Replaced with the API adb->header type calls. The dbH calls were causing segfaults when attempting to index an empty database or during batch inserts in some rare cases.
|
Wed, 04 Feb 2009 13:47:02 +0000 |
mas01cr |
Use upper_bound rather than lower_bound in audiodb_index_to_track_id()
|
Wed, 04 Feb 2009 11:37:07 +0000 |
mas01cr |
Compile fix for previous revision
|
Wed, 04 Feb 2009 10:45:57 +0000 |
mas01mc |
Removed LSH_N_POINT_BITS coding for LSH index. Now uses binay search via STL lower_bound to locate tracks and positions from global pointID searching over cumulative track lengths. MERGE of branches/multiprobeLSH -r 819:821 onto trunk. This is a non backward-compatible change; WARNING generated on attempt to use INDEXING with older audioDB databases. Only INDEXES are broken, not ADB instances.
|
Tue, 03 Feb 2009 02:04:06 +0000 |
mas01mc |
Added warning about deprecated LSH_N_POINT_BITS coding. Only affects indexes built prior to rev 820
multiprobeLSH
|
Mon, 02 Feb 2009 17:41:02 +0000 |
mas01mc |
DELETED LSH_N_POINT_BITS coding. Tracks and points are now identified with a binary search, std::lower_bound(), on *adb->track_offsets return from LSH retrieval.
multiprobeLSH
|
Sat, 31 Jan 2009 16:25:30 +0000 |
mas01mc |
Removed redundant memcpy calls from query_loop_queue(). This changed the order of some memory allocation and de-allocation calls for loaded database data.
multiprobeLSH
|
Fri, 30 Jan 2009 19:44:51 +0000 |
mas01mc |
Completed audiodb_datum_qpointers_partial(), fixed bug that was scribbling over pre-computed l2norms when points arrived in original less<PointPair> order, switched to greater<PointPair> order and all is fixed.
multiprobeLSH
|
Fri, 30 Jan 2009 14:58:35 +0000 |
mas01mc |
Fixed a problem with inserting into exact_evaluation_queue, duplicate pairs were being inserted when querying multiple hashtables. That is now fixed by adding a unique constraint using set<PointPair> inserts and testing. This should speed things up quite a bit (like, 10-fold with default num tables).
multiprobeLSH
|
Thu, 29 Jan 2009 13:44:47 +0000 |
mas01mc |
Added audiodb_datum_qpointers_partial() to make exact evaluation of LSH results more efficient. This routine calculates partial sums only for those vectors needed.
multiprobeLSH
|
Wed, 28 Jan 2009 18:55:46 +0000 |
mas01mc |
Added more debugging information: report numPairs returned from LSH bucket retrieval (pre-distance computation), entry/exit from audiodb_query_spec_qpointers(...)
multiprobeLSH
|
Wed, 28 Jan 2009 17:54:18 +0000 |
mas01mc |
Set ADB_FIXME_DEFAULT_LSH_N_POINT_BITS to 15 so we can get about 20k vectors per file in the LSH point encoding. This pain and suffering will go away soon, I promise.
multiprobeLSH
|
Wed, 28 Jan 2009 17:18:58 +0000 |
mas01mc |
_LSH_DEBUG_ option now reports correct point counts per hashtable read.
multiprobeLSH
|
Wed, 28 Jan 2009 16:02:17 +0000 |
mas01mc |
Fixed a bug in LSH hashtable writing to disk that doesn't always sort the t2 entries into strict weak ordering. Now it does. Lots of debugging informational code inserted.
multiprobeLSH
|
Wed, 28 Jan 2009 05:18:14 +0000 |
mas01mc |
insert some statistics gathering for hash tables, add _LSH_DEBUG_ macro to output LSH statistics on INDEX and QUERY
multiprobeLSH
|
Tue, 27 Jan 2009 14:52:28 +0000 |
mas01mc |
Fixed upper-limit (T) boundary error in MultiProbe::generatePerturbationSets(x, T). Setting this too high spins algorithm1 into infinite heap allocations without possiblity of terminating. This is now silently capped at --lsh_k * 2; the algorithm halts up to this threshold.
multiprobeLSH
|
Tue, 27 Jan 2009 03:49:19 +0000 |
mas01mc |
Working version of multiprobe LSH. Passes tests. But needs testing vis-a-vis TP improvement. In the process, found a bug in hash function projections on rare occasions admitting negative values. This only shows for large datasets and was fatal for multiprobe.
multiprobeLSH
|
Mon, 26 Jan 2009 13:19:09 +0000 |
mas01mc |
Fixed boundary {-1,+1} order, array syntax in generate_multiprobe_keys(), boundary error in MultiProbe::valid()
multiprobeLSH
|
Mon, 26 Jan 2009 05:42:15 +0000 |
mas01mc |
lshlib MultiProbe glue added. Compiles and links against audioDB. Fails LSH tests at the moment.
multiprobeLSH
|