changeset 191:b7400fabbb94 no-big-mmap

mmap dataBuf for the remaining cases * -L after insertion; * pointQuery; We'll fix these later.
author mas01cr
date Mon, 19 Nov 2007 17:19:46 +0000
parents f56c530750da
children 5f3d260ba71d
files audioDB.cpp
diffstat 1 files changed, 12 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/audioDB.cpp	Fri Nov 16 18:21:37 2007 +0000
+++ b/audioDB.cpp	Mon Nov 19 17:19:46 2007 +0000
@@ -493,7 +493,16 @@
     }
     CHECKED_MMAP(char *, fileTable, dbH->fileTableOffset, fileTableLength);
     CHECKED_MMAP(unsigned *, trackTable, dbH->trackTableOffset, trackTableLength);
-    CHECKED_MMAP(double *, dataBuf, dbH->dataOffset, dataBufLength);
+    /*
+     * No more mmap() for dataBuf
+     *
+     * FIXME: Actually we do do the mmap() in the two cases where it's
+     * still "needed": in pointQuery and in l2norm if dbH->length is
+     * non-zero.  Removing those cases too (and deleting the dataBuf
+     * variable completely) would be cool.  -- CSR, 2007-11-19
+     *
+     * CHECKED_MMAP(double *, dataBuf, dbH->dataOffset, dataBufLength);
+     */
     CHECKED_MMAP(double *, timesTable, dbH->timesTableOffset, timesTableLength);
     CHECKED_MMAP(double *, l2normTable, dbH->l2normTableOffset, l2normTableLength);
   }
@@ -1041,6 +1050,7 @@
   initTables(dbName, 0);
   if(dbH->length>0){
     unsigned numVectors = dbH->length/(sizeof(double)*dbH->dim);
+    CHECKED_MMAP(double *, dataBuf, dbH->dataOffset, dataBufLength);
     unitNormAndInsertL2(dataBuf, dbH->dim, numVectors, 0); // No append
   }
   // Update database flags
@@ -1087,6 +1097,7 @@
   unsigned numVectors = (statbuf.st_size-sizeof(int))/(sizeof(double)*dbH->dim);
 
   double* query = (double*)(indata+sizeof(int));
+  CHECKED_MMAP(double *, dataBuf, dbH->dataOffset, dataBufLength);
   double* data = dataBuf;
   double* queryCopy = 0;