In an attempt to throw the authorities off his trail, [EMAIL PROTECTED] (Alvaro Herrera) transmitted: > Simon Riggs wrote: > >> Some feedback from initial testing is that 2 queues probably isn't >> enough. If you have tables with 100s of blocks and tables with >> millions of blocks, the tables in the mid-range still lose out. So >> I'm thinking that a design with 3 queues based upon size ranges, >> plus the idea that when a queue is empty it will scan for tables >> slightly above/below its normal range. > > Yeah, eventually it occurred to me the fact that as soon as you have > 2 queues, you may as well want to have 3 or in fact any number. > Which in my proposal is very easily achieved.
Adding an extra attribute to reflect a different ordering or a different policy allows having as many queues in one queue table as you might need. >> Alvaro, have you completed your design? > > No, I haven't, and the part that's missing is precisely the queues > stuff. I think I've been delaying posting it for too long, and that > is harmful because it makes other people waste time thinking on > issues that I may already have resolved, and delays the bashing that > yet others will surely inflict on my proposal, which is never a good > thing ;-) So maybe I'll put in a stub about the "queues" stuff and > see how people like the whole thing. Seems like a good idea to me. Implementing multiple queues amounts to having different worker processes/threads that operate on the queue table using varying policies. -- output = reverse("gro.mca" "@" "enworbbc") http://linuxdatabases.info/info/lisp.html Rules of the Evil Overlord #60. "My five-year-old child advisor will also be asked to decipher any code I am thinking of using. If he breaks the code in under 30 seconds, it will not be used. Note: this also applies to passwords." <http://www.eviloverlord.com/> ---------------------------(end of broadcast)--------------------------- TIP 9: In versions below 8.0, the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match