Update of /cvsroot/monetdb/MonetDB5/src/mal
In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv19240

Modified Files:
        mal_recycle.mx 
Log Message:

use BBPquickdesc ipv BATdescriptor (reduces need for locks)



Index: mal_recycle.mx
===================================================================
RCS file: /cvsroot/monetdb/MonetDB5/src/mal/mal_recycle.mx,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -d -r1.25 -r1.26
--- mal_recycle.mx      10 Mar 2008 16:07:14 -0000      1.25
+++ mal_recycle.mx      10 Mar 2008 19:32:49 -0000      1.26
@@ -365,34 +365,27 @@
                                        nbid=getVarConstant(recycleBlk, 
getArg(q,0)).val.bval; 
                                        if( bid == -1){
                                                bid = nbid;
-                                               pc= i;
-                                               b1= BATdescriptor(bid);
-                                               BBPkeepref(bid);
+                                               pc = i;
 #ifdef _DEBUG_RECYCLE_
-                                       printf("counts %d -> %d \n", bid, 
(int)BATcount(b1));
+       b1= BBPquickdesc(bid, FALSE);
+       printf("counts %d -> %d \n", bid, (int)BATcount(b1));
 #endif
                                        } else {
-                                               b1= BATdescriptor(bid);
-                                               b2= BATdescriptor(nbid);
+                                               b1 = BBPquickdesc(bid, FALSE);
+                                               b2 = BBPquickdesc(nbid, FALSE);
 
 #ifdef _DEBUG_RECYCLE_
-                                               printf("counts %d -> %d %d -> 
%d\n", 
-                                                       bid, (int)BATcount(b1), 
nbid, (int)BATcount(b2));
+       printf("counts %d -> %d %d -> %d\n", 
+               bid, (int)BATcount(b1), nbid, (int)BATcount(b2));
 #endif
-                                               if( BATcount(b1) > 
BATcount(b2)){
-                                                       BBPreleaseref(bid);
-                                                       BBPreleaseref(bid);
-                                                       BBPkeepref(nbid);
-                                                       bid= nbid;
-                                                       pc= i;
-                                               } else {
-                                                       BBPreleaseref(bid);
-                                                       BBPreleaseref(nbid);
+                                               if (BATcount(b1) > 
BATcount(b2)){
+                                                       bid = nbid;
+                                                       pc = i;
                                                }
                                        }
 #ifdef _DEBUG_RECYCLE_
-                                       printf("Inclusive range bid=%d\n", bid);
-                                       printInstruction(GDKout,recycleBlk,q, 
LIST_MAL_ALL);
+       printf("Inclusive range bid=%d\n", bid);
+               printInstruction(GDKout,recycleBlk,q, LIST_MAL_ALL);
 #endif
                                }
                        }
@@ -423,6 +416,7 @@
        if( bid >=0){
                /* replace selection argument */
                s->stk[getArg(p,1)].val.bval= bid;
+               BBPincref(bid, TRUE);
                recycleBlk->profiler[pc].counter++;
        }
        return 0;


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Monetdb-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-checkins

Reply via email to