My name is Peter Gagan. This talk is called SORT versus HACC, the duality. I work for VMware. I work on Postgres. I'm known probably mostly as the person that is the primary author of UPSERT, but I'm also well known as someone that works on sorting, which somewhat inspired this talk. I should also mention at this point, you actually can't see it here because it's been cut off, but you can barely see it. The intention here is that you go, if you are so inclined, at least to this URL down on the slides, because there are citations and stuff like that that you may want to have a look at in your own time. That doesn't seem at all visible, and it won't become more visible at any point, so I guess that didn't really work out. But I can give you that if you want. You can ask me for that. The intent is that you could, if you were so inclined, for that. Okay. First of all, I'm going to talk about nested loop join, which is the, you could say, the most elementary of join algorithms. I'm going to sort of discuss how it's important, why it's important. So here we see an image of a B-tree index. This is actually a fairly small index, but it appears here twice. This is the full extent of the B-tree, whereas this is zooming in on the root here. So there's only one root page, and there's, I believe, approximately 20 leaf pages. So it's a fairly small index. There's an enormous fan out here. If we were to, that's what we're actually focusing in on there at the bottom, that's to scale. If we were to display the entire B-tree, we would need an additional, I believe, 10 projectors, so you can, if you think of it intuitively, it would be certainly wider than this entire room at that scale. So extremely, extremely wide, a lot of fan out. I sort of tend to emphasize that because I think it's something that's often lost. A B-tree is certainly not like a binary search tree. It's characterized by this enormous fan out, and that's important for reasons we'll discuss in the context of this join algorithm in particular. So I think that's actually 240 kilobytes in size, or 30 blocks, including one meta page. So nested loop join itself, I called it the kind of universal join algorithm usable in principle to implement any join that can be expressed from SQL. It is literally a nested loop, a for loop within a for loop on the inner side, typically an index scan, such as a B-tree index scan, typically a B-tree index scan. So the output from the inner side is sort of plugged in to the outer side. This is your OLTP queries. Most of your queries really are probably going to be pretty nest loop heavy. So it tends to be that OLTP is an awful lot of this sort of query and less of the other two. That is sort merge join and hash join, which are the sort of primary topic under discussion here today. Now I'm going to illustrate how in practice a nested loop join works under the hood. So here we're joining sales against coupons. Here's our join output. So on the left hand, the sales table in this example is sort of the outer side. So it's the first for loop, if you will, whereas this one is the second one, whose first value is at this point in time, still in determinant. So we're going to go to the B-tree, scan a value, we obtain what that value is, and that's fed in. So it's plugged in effectively. Let's do the next one. It's repeated. Again, we start from the root. It's a totally different part of B-tree in this case, which is not at all untypical. Again, we can obtain a value. That value is once again plugged in and so on. So if we're doing this at all, it's very effective if we only have a fairly small number of things we're ultimately inputting, because those indexed grants are possibly completely random in nature. It's very effective if we've got a relatively small amount of data to process all told. So here's an actual visible explain output. In fact, this example is lifted from the documentation directly, so you could potentially do this at home if you were so inclined. So we're joining this one table against this other table. We've got a predicate here. We also see various costs displayed in terms of the generic cost units that things are costed in terms of. So we can actually do a little bit of math here and determine how those costs sort of percolate up and how, in general, nested loop joins their cost is a function of how many rows you're processing quite directly with a tiny little bit of additional overhead, which is why the total summation here is not quite the same. But it's essentially the cost of executing this and then for each input, plugging in this and then getting. So the costs are multiplicative in that sense. So I already said low latency OLTP queries. This is the whole reason or pretty much the major reason why it's possible in general for us to have really well performing OLTP queries. You've got like seven joins and it takes less than 10 milliseconds. This is the main reason why. Nothing will scale as well as this but a logarithmic lookup for index scans in terms of the number of page accesses in general and you're never going to, nothing will ever scale as well as this will. This is in some sense special because it will be the thing that will continue to scale extremely well as you get more and more data and as less and less of it can be stored in shared buffers. So sort merge join hash when in competition if you will with this particular join algorithm. They're more in competition with each other. It makes sense to compare them to each other but this is a sort of stepping off point for even discussing that. So this is a quote from a guy called Goods Grefa, a database researcher that I'm known to follow quite closely and he essentially formally says what I just said, kind of a bold claim he makes here effectively independent. That's not quite true of course there's a logarithmic growth factor in terms of number of levels you'll have to descend but it is practically the case that the overall size of the beetry once it passes a fairly small point will effectively never add another level or theoretically of course it will but the next point that another level is added is so far off as to be not worth considering so far off that you could never possibly have a table that big in Postgres it would come against fundamental limits that the system has in that general area. This is only for point scans though as I said when you're accessing relatively few things. Anyway he continues that the real sort of trick with OLTP certainly is to have things characterised by looking stuff up as opposed to characterised by computing. So you don't want to be searching through and computing against a whole bunch of data. I think that's something that probably many of you have an intuition for already. In general the main cost tends to be just accessing data itself and if we can, by using desolute joins and by having good query plans from a good optimiser it's often possible for us to have things such that we're mostly just doing lookups and it's very, very fast and we'll tend to continue to be very, very fast even as data grows by quite a large amount. Okay. That's all I have to say on Nest Loop Join today. I'm going to be taking questions throughout I feel that's a better format for this kind of presentation than Nest Loop Join at this point if anyone cares to ask them. Okay. No. All right. I'll continue to the main topic under discussion. That is the duality itself. What is a duality? So mathematics it's a general term that refers to a relationship between two things that is somehow symmetric. This is perhaps best illustrated by this image you see here where on the left we have a cube frame with an octahedron dual inside of it. So the frame itself is, this is the cube this is something whereas here we have an octahedron frame with a cube inside and you get from the cube to the octahedron by way of drawing in the middle of every polygon or plane you draw a dot and you join them. But in fact you actually do exactly the same thing over here to get back to where you started. So as with this kind of illustrative example trying to convey the high level message that you can sort of understand hash join and merge join in terms of each other almost. In fact you could say that hash join was a response to merge join which was in general available earlier I'm not really talking about history history of Postgres so much as the history of relational databases in general right now. I'll tend to without acknowledging it jump from one to the other so I'm taking a small amount of artistic license in this area. Anyway so that's the big picture here perhaps that seems a little abstract to this point hopefully it'll make more sense towards the end. Okay let's start with an explanation of hash join. Hash join first we build a hash table on what is almost certainly the smaller of the two relations input tables. The hash table consists of the join attribute and the hash key for each row alongside the row itself. So we also having built the hash table we must then scan the larger table and we perform probes of the hash table lookups of this ad hoc hash table which was created just for the purposes of this one query and as we it might be that there's no in fact it often will be perhaps that there's no thing found in the hash table because if it's a join there just wasn't anything found on that particular value that you're joining those particular pair of attributes so you continue and then sometimes of course you will find things to join and then you'll output see that again in a minute. There's only sports equity joins for the simple reason that well that's how hashing works you know you can only use it for equality so this works particularly well when input is smaller so it's a lookup table now I've already said I've already said that it's not necessarily the case that you're joining on sometimes I'll say you're joining together two relations, two tables but in fact with hash join it's probably more realistic to imagine joining table A which has the tuples fed in in the first place using say a bitmap index scan or map heap scan which is sort of like halfway between an index scan and a sequential scan you might say so it's actually a little bit of a little bit of A and a little bit of B the output of each A might be a lot larger than B and so the join could be very poorly it could be that there's a very selective condition, join condition and thus most of the hash probes would would determine that you shouldn't join for that tuple and this is actually one case where hash join tends to do very well because there's no reason why the subset that you're initially taking up from table A should be at all correlated with table B in general there's no reason to think that and often there isn't depending on the exact details of the querying there's also this capability it has around spilling in the event of having not sufficient work to continue without so you can spilt a disk you can use temp files because of a lack of available working memory obviously you prefer not to do that because that will be slower but it can happen you'll see that in explain and analyze output so I'm going to go on to an example of this again this is from the same explain introductory chapter of the postgres talks so once again you could easily do this yourself if you're so inclined so this is actually very similar to the nestflip joint example the difference only being that before we saw unique one was less than 10 and now it's less than 100 so it happens to be that it's less selective so we're doing the expensive thing up front and building a hash table on a smaller side and then reusing it so we cannot start returning stuff until we're done here sorry, excuse me I misspoke okay there's a little bit of math here as possible as well and this illustrates how hash joint is in some way similar to nested loop joint except the index if you will you're using is one that you've created on a hot basis by building your own hash table there and then as opposed to a pre-existing index vitri index that you've explicitly created it's like you're creating your own index for that one query that one time which is actually quite a lot different but there is that similarity so we can we can see here there is some additional math showing some additional simple extrapolation of what the cost would have been had instead the optimizer to determine that we ought to have used nested loop joint it would have been more expensive actually that's an only approximate value probably higher than that but it certainly so we can see how the optimizer might have converged on that plan we can imagine what it might have been like had we forced it to use a nested loop joint perhaps by way of the you know we could for example used set enable nested loop joint equals off which would have had the effect of forcing us to use a different plan which might have been or sorry I meant to say hash joint off so we could see then perhaps the would be the would be nested loop plan which would have been similar to the first one except it would have been more expensive than this which is of course why the optimizer determined that it shouldn't do that okay I'm going to talk about merge joins now so merge joins expect sorted input on both sides so an actual sort node may appear on at least one side of the join sometimes both the input is again it's possible that if you've got a sort node it can spill the disk so it's a little bit like the situation with hash join except it's not exactly a given that you would use a sort although it is somewhat common I'm going to give you a similar example now for for merge join this is obviously a contrived example if it was things are really this small just by virtue of the fact that the start of cost would be significant this wouldn't actually happen so this is obviously a toy example for the purposes of illustration although the query plans you've seen those are not toy examples those are actually real examples so okay so we start with some input okay there should be a sort step for for that and rejoining against cities okay so they're both sorted and having having done that which is of course the major cost assuming an actual sort rather than an index scan that's ordered uses a total ordering of the underlying attributes the sort would be the major cost if we're imagining that these would use an explicit sort step in both cases in both sides of the join so again we've got a join output we're showing here and we go through we sort of have this merge reconciliation process we've got two pointers part of the sort of input the general rule is that we always move the pointer that's pointing to the strictly smaller value so I'm going to continue so going through the strictly smaller value goes down that's not equal so continue now 3 is equal to 3 of course so we output a single output and we proceed again smaller value and so on so we actually have skipped some things because the join was not indicated in a couple of the tuples that we went through okay so merge join more flexible than hash join in some ways it's not limited to an equity join and it is so you can have like range so it's not as the things that are the semantics that you could conceivably get a merge join for are not as limited okay another explain from the docs this is a different table 1k rather than 10 k 2 so this is similar number of tuples in this join this is why we see a merge join because there's the inputs on both sides are similar in the total amount of data being processed so there's unlike a hash join the hash join we saw before where there was a clear disparity it's a fairly similar number and though same merge join is indicated as the cheapest plan in the universe of possible plans to the optimizer we're doing the expensive things up front again so in that sense the sorts in this actually there's one sort here and one index again the sort itself would be done up front so we're doing an expensive computation of front which is bound in size by work amount so there's a similarity there okay anyone have any questions on hash join yes I'm getting to that I'm getting to that it's that's like about two thirds of the way through you're not necessarily expected to sort of grok that yet hopefully it becomes clearer okay so we're talking about the introduction and popularization of hash join a bit of a history lesson this image here of a deck alpha from early 90s sort of the first super scale processor I think it was also the first 64 bit processor this image just intended to illustrate the times and how they were changing at you know around the early 90s which is approximately when hash join became popular hashing of course is a technique for implementing a dictionary abstract data type for example it's been around basically forever it wasn't until much later that it became practical to use it to implement joins in relational databases and in general this is why but a quick jumping off point again let's go back 20 years to say the 70s now memory size is a major consideration this image you see here is from Donald Coon of the Art of Computer Programming it's a pull out section volume 3 sorting and searching it shows the scheduling of something called polyphase merge actually only one of them is polyphase merge they're I think it's the one in the middle and it's showing you how when we don't have enough memory to sort and you certainly wouldn't have in the 70s most of the time if you were doing a merge join you do sort of a small amount of stuff and then you spill that out and then you continue and you sort of that and so on and so forth until at the end you merge them all together now because you got so little memory at this point in time you then end up with you then it's probably infeasible for you to merge them all at once because you only have enough memory you need at a minimum to have enough memory to store one tuple from every run which is what these little piles of sorted bits are clearly you'd need at least one from each out of time in order to merge them using a heap or something like that and certainly at this time that would have been a limiting factor much of the time so this illustrates in respect of various different algorithms each represented by a different different row how the scheduling would occur such that I'm going to merge this set of them and then that set of them I'm going to merge those together and those together this is just showing how that would work out in practice for illustrative examples so stuff is kind of as old as the hills memory size then a major consideration so this is actually kind of this very old school Knuth himself sort of admits it in so far as he says let's pretend we're in the 70s so I'm not telling you this because I'm romanticizing this or anything like that I'm getting to a point I I'm not one of those people that goes to I mean nothing against them goes to a computer history museum or anything like that so that's not kind of where I'm going with this in case you were worried it's more like isn't it interesting in illustrative and even relevant that history is perhaps repeating itself so at the time we had a limited number of tape drives we couldn't have as many tape drives as we had runs I also mentioned we couldn't have as much memory we could in general have enough memory to be assured that we could do everything in one pass and then scheduling becomes important we need to use what little memory we have optimally across the various stages of the sort such that things are well balanced throughout these days though it's it's not like we've it's certainly still very possible to have to do a external sort you're never going to have enough memory or you're never going to care to budget enough memory such that in the very worst case you'll still get an internal sort it's actually not a great reason to anyway especially these days some of the work I've been doing on sorting external sorting it's probably better off using that for shared buffers or whatever so the reason why we don't have to care about the scheduling stuff at all really these days is because we may not have enough memory but we certainly have enough memory such that we can be assured that at the end we'll have no more runs than we would we won't have enough runs that we won't be able to do everything in one pass we'll certainly be able to easily exceed the amount of memory for our sort that that's practically assured it's not actually assured it could still happen but it's not really worth considering cases where you don't have even that much memory it's just too marginal these days with memory capacity being what it is in fact that's been the case for some time so this is like the last 20 years really or it's certainly 10 and this is because every time memory capacity doubles obviously the size of runs doubles with it but what also doubles is the amount of memory you've got for your merge so effectively your capacity for doing things in one pass quadruples as the capacity doubles so it's doubled a lot of time since the 70s and here we are I should also mention that grace joins hybrid hash joins didn't have any equivalent to this their cost function looked quite a lot different so you know we did tend to see there was no plausible alternative for when you had very little memory you wanted to do hash you just you couldn't really do anything that was good enough because you had so little memory relative to your input that it was infeasible it only makes sense to do some amount of spilling to disk with hash join when it's not that far off from being feasible to do everything in memory certainly you know not orders of magnitude okay so as I said hash join introduced because of trends in particular the trend around main memory scaling the increased main memory capacities and then hybrid hash joins have a plausible and good enough spilling mechanism that the performance penalty when you don't have you know tens or even hundreds of runs it's not going to happen it's going to resume and thus hashing is on a much more competitive footing with word join it becomes feasible it becomes possible I want to mention here specific optimizations to hash joins what are the authors in the audience actually that's Thomas so this was basically around clever management of memory to avoid cache misses use of memory chunks there's also an optimization called Robin Hood hashing in Postgres 10 and then there's parallel hash join patch Postgres 10 it might get in the next number of days but I wouldn't count on it it's just we didn't we got out of time for that one okay so sorting did actually benefit as well of course it was still the case that sorting was necessary we would still have some inputs that were more or less equi-sized and very large and so on so and very not selective so we would have to actually ultimately join most everything against most everything else on the other side so it's not like merge join is obsolete it makes come back this is an illustration from a paper that greatly owns my work on sorting called AlphaSort just showing you I didn't work in 9.6 on on sorting I made it so that the quicksort algorithm was used even for external sorts and not just for internal sorts part of that there was a replacement selection algorithm was used which uses a heap even for the generation of runs with a view to maximizing the size of runs on average it'll manage to make them twice as large as available memory by sort of juggling them for this juggling incurred quite a lot of cash misses misses and that has a very significant and at this stage in history growing penalty so here the authors argue well this is really cash inefficient particularly if things are not you're jumping around all the time and there's no way this could possibly pay for itself with increasing cash miss penalties memory latency becomes a major consideration starts to become major consideration around this time so sort performance has to weigh cash performance to a great degree to address this bottleneck and does and has when one of those methods is as I said quicksort there are others they're all in that sort of general vein of let's address memory latency bottleneck let's look at where the cash misses are and make them not happen using various techniques so memory capacity is not the first concern I already said no one really cares about that you know multiple paths polyphase merge stuff anymore elegance not the first consideration so we're kind of it's kind of brutal as to where we're focusing on really simple code with really tight loops we're not worried about complicated elegant algorithms that isn't where the gains are to be had this is another image from that same paper this is from 1994 and even here we see it's kind of acute picture I dare say some of you have seen similar things on the web this is an early example of let's use an analogy to illustrate the relative costs of memory main memory access cash access etc so I'm just putting it there for illustrative purposes it's not especially pertinent what those details are to get the idea so some stuff I'm sorting in 9596 abbreviated keys this idea that you take the first little bit of a string and you so when you're sorting in Postgres you're sorting something like say an index tuple or heap tuple or something like that and you need to follow a pointer so you're sorting sort tuples they're called which is a fixed size structure that has a pointer to potentially a heap tuple or something like that so what we're doing here is instead of necessarily doing that every time if it's a pass by value type such as text we are instead ahead of time as we're bringing that stuff into temporary memory ahead of sort we're generating at that same time an abbreviated value say the first few bytes and that is stored in line alongside the pointer and this would have happened anyway if we were sorting integers or something because those can fit there but text can be arbitrarily wide or almost arbitrarily wide so it generally pays to take the first few bytes and store those there and then attempt to get away with having most comparisons resolved at that level and if and only if we can't manage that for comparison only then do we do the pointer chasing and that's all we need to do so that was again another sort of example of memory latency memory bandwidth or really what we need to focus on it's not a very elegant technique certainly but it's just what we need to do okay I worked on parallel creating extra Postgres 10 that's not going to get in there might be some more discussion on that but I think in the same vein in that it turns out that parallelism and optimizing for the memory hierarchy are very much interrelated problems we cannot address one without first addressing the other there's also something called unique joins I don't want to get into that too much it's something that's going into the optimizer it's probably going to get committed to Postgres 10 concerns realizing that one side of a join can be a merge join can have a unique path and thus we can know that once we we don't have to go back up which is currently necessary and so we can that realization can result in more efficient plans that we're here for not possible that's actually a little bit abstract but I'm mostly putting it there for reference purposes by the way you should ask me at the end if you'd care what that actually you cannot see you can't make that at URL out but ask me if you want what that is and I'll read it out for people okay so now I'm talking now I'm entering a more speculative phase of the talk about you know my I guess you could say prognostications based on readings of papers and things like that where am I going with all this okay so this image you see here is from the stream website stream was a a benchmark I think to do with Postgres in particular but it's a benchmark for establishing the memory bandwidth of computers and this little image which is a log scale illustrates how this memory bandwidth bottleneck has become extremely acute over over the years CPU speed has increased enormously DRAM speed has not kept pace and this basically justifies my total emphasis of cache misses the difference is so enormous that it couldn't possibly not be the right place to look almost all of the time certainly as far as sorting goes and possibly also hashing multi-core error problems have their own challenges parallelism of course very important these days we all know this but then there is to some degree as a consequence of that and to some degree it's the other way pursuing parallelism as you know the CPU architecture community pursuing parallelism is to some degree as much as anything else an attempt to address that bottleneck which is not intuitive or it's not something that people tend to talk about as much as the simple idea that you're getting more things to happen at once so I've already sort of mentioned the context of sorting that I think main memory scaling the increase in the size of main memory as much as anything else and probably more than anything else the kind of transformative technology of the last 30 years it isn't SSDs or whatever people tend to talk about that stuff and it's fine but I don't think it has the same significance as the simple and boring fact that main memory capacities have increased as much as they have however this trend seems to have stalled because of power management issues it seems now that we're not going to reliably continue to get larger and larger memory capacities every year there are problems with the refresh rate of memory and so this seems to be a situation that cannot be sustained barring any kind of major innovation which certainly is possible but certainly cannot be relied on so core counts are going up but we don't see we don't necessarily see it's a matter of dispute to accept this is true a sort of concomitant increase in memory bandwidth per core so if you consider things in terms of serial execution performance it's possible then that you upgrade your server a slower execution of your query which is of course precisely what the opposite outcome to the one that you spent money trying to get so as much as anything else parallelism is justified by the memory bandwidth bottleneck the only way the CPU people were able to increase the amount of aggregate memory bandwidth was through parallelism so that's really probably more than anything else what's driving it so and the the implication for me say as a performance orientated postgres hacker is this needs to be the first thing almost I'm considering even with parallelism they're very interrelated it's tricky I also I didn't mention I didn't read it off the analogy has been made before it's like driving a Ferrari in New York City that's apt so parallel query it's a big thing now there's a talk I think tomorrow from Robert Haas about that and where it's going you might get a go to that as well so parallel join becomes more important than ever simply to avoid regressing performance or at least we can imagine that being possible if it isn't already that's a plausible thing that could happen even if it hasn't been directly observed as yet I'm not aware that it has but I'm also not aware that it has not been so I mentioned already CPU vendors have some ideas but it's not clear that they'll ever be able to over overcome the challenges I guess we'll find out so anyway and you asked me about the duality I'm sort of getting almost edging back towards that topic so sort versus merge could there be a merge join resurgence this is a speculation obviously so the meta observation the high level observations I made about the relative merits sort merge join hash join may need to be revisited in light of this new bottleneck that's become more and more of a problem if it was the case before that we had a relatively small amount of memory and a lot of disk which was slow it might now be that you know if caches the new memory then the implication perhaps is that memory is the new disk and thus it might further be the case that in light of that you know some of the relative importance at least of sort merge join might once again it might once again be that it becomes more and more important to query performance in general and that it sort of it's something that perhaps requires re-examination in light of these various trends obviously this is not to say that that there will ever be you know I'm not for a minute supposing that we will ever reach the stage where one will be the winner that will be absurd because of their fundamental properties that's ever going to be something that could be disregarded but the relative shift could actually occur it's in the realm of possibility to what degree I'm unsure what I do know is in principle if you extrapolate into the future not that you necessarily ought to but if you do it follows then that if you take it to an extreme enough degree it must be true that the if this isn't too abstract that the finally you end up at a place where sort merge join becomes much much more important well then that'll happen again I don't know but it's a reasonable speculation and many have speculated just that there's a link here to a paper discussing that there's a number of papers this whole question has been one that the database research community has at various times visited and then re-visited there's also other avenues for improving sort of performance that may at one point be evaluated for post-gres SIMD is something that could plausibly be applied to sorting but not really to hashing owing to the fundamental nature of how both of these two things work how am I for time? okay but we'll have to be quick sort I mean you can plausibly have a sort of you can structure things such that there's an accumulation of work with sorting you cannot really do that with hashing and thus if we extrapolate far into the future which is perhaps not you know I'm not supposing I'm not necessarily asserting that that will happen but logically we can imagine a time where that becomes the overwhelming absolute consideration to the extent that the fact is that it's inherently there are inherently more cache misses required for hash join trying to wrap it up now getting back to the duality aspect so here we see an image similar to the one earlier in the talk it's just that we have more complicated polyhedra here than we saw it the first time around but the principle is the same so when I say there's a duality I think more than anything else I would sum that up by saying that for sort there is a physical division and logical combination whereas for hash there's a logical division but physical combination this is the fundamental truth that I keep returning to without necessarily being obvious that's the intuition driving all this stuff if that makes sense so that's the big picture here it's less clear of course what the practical implications will be we'll see I suppose that's where I'm going with all of this and that's the overarching kind of theme if you will of my talk in summary locality, locality, locality memory locality, cache misses it's really important stuff external sorts degrade slowly under predictable rates whereas hash joins will tend to degrade as memory becomes less and less available either because the input increases or the amount of memory decreases it's much faster a rate of decrease so going back to what I was saying about the history of those two things it shows if you have a one pass sort in PostgreSQL depending on there's a lot of variables but there's certainly cases where that'll only be a little bit slower than doing it all in memory even though you might only have one tenth of the memory in fact I've even seen cases for various obscure reasons it'll be faster it's actually not that uncommon probably in the latest version of PostgreSQL you'll see more of it that is what I actually need is PostgreSQL 10 which is not out yet we're joined it works with low selectivity joint qualifications where it is inherently necessary for us to join most of A against most of B there's no getting around it so the overhead per tuple joined is much lower but there's a huge startup cost there's you know huge cost in general because the join is just inherently expensive and there's no way around it obviously we'd prefer to avoid it by for example reordering the joins within the optimizer but when that doesn't work out when we really do have to do a really expensive join with a lot of input on both sides that's roughly equal that's when we use merged one okay also with the final on the fly merge step of a sort merged or rather a sort that's having to spill a disk in PostgreSQL we can produce our first output before we've actually finished the sort because the merge itself of course is doing some out of sorting at the end so sometimes that'll make the startup cost lesser than even an internal sort which could as I've suggested already lead to us getting a faster overall performance even though intuitively that shouldn't be the case it just so happens what with all these various different considerations there are in fact cases where these days at least it just so happens that the external sort could be faster and not even possibly by more than 10% I've seen cases it's not that infeasible okay hash join okay gotta wrap it up quickly hash join works best with low carton alley attribute joined from the smaller table so you could have a lot of the same value again and again as I said earlier you could have a highly selective join qualification it could be what would work best so mostly joining some random already excluded the other values of table A so it could be like a it could be a bitmap heap scan that you're actually getting both sides of the join from and it could be that the it turns out that most of the hash table probes don't indicate that there should be any value joined because value not found could happen again and again now you might generally imagine that it would be far so that couldn't happen but of course you've already excluded before you even built the hash table perhaps much of the rest of the table so there's no you know because it's a random perhaps a random subset on each side it could be that it wasn't all selective when you went to do your hash probes your hash table that's where you really do well and also when one side of the join input is just smaller overall and it doesn't you know it's very sort of random the memory locations you're accessing and that is an inherent property of how hashing works for the reason I think are relatively obvious and that's all I got anyone got any questions oh okay well worked out yes I personally would not be inclined to because I'm busy but someone has there are theoretical models that support that contention that you could if you look at the slides there's make sure to write down on the pdf and don't use the web thing because it's better the popular links work only in the pdf so I'll read that out for anyone that's interested so it's speaker.com slash peter g slash sort dash hash dash pgconf us dash 2017 so you can review their thoughts on it I think it's obviously speculative but it's I would say at least an interesting speculation so I'm obviously a practitioner that's thinking ahead but I can only think ahead so far given my constraints on time and stuff like that that's where I see myself going with it if anywhere at all that's the only kind of frontier that is remains okay thank you thanks


Hi, I'm Rusty Komori and this is Beyond the Lines. Today is very significant because it's my 50th episode and I want to thank you for all your support in allowing me to feature such a wide range of truly amazing guests who inspire all of us to find our greatness. We are broadcasting live from the beautiful Think Tech Hawaii TV studio in the Pioneer Plaza in downtown Honolulu. This show is based on my book which is also titled Beyond the Lines and it's about leadership, creating a superior culture of excellence and finding greatness. Today's special guest is an award-winning, Grammy-nominated singer-songwriter who is one of the most popular, most successful musicians in Hawaii for decades. He is the legendary Henry Capono and today we are going beyond music. Hey, Henry. Awesome to see you. Congratulations, 50th. 50 episodes. That's a lot. That is. Now, Henry, we have a lot to talk about today but I want to know when did you first start singing? In church, in choirs, in a children's choir. And I was good at singing with other people because you couldn't hear my voice that well. How old were you? I think I was like five or six. Took a long time for me to get to sing by myself. Really? And get used to my voice. And sometimes you hear your voice going, no, I don't like it. I like it now. So what was your first instrument that you started playing? Ukulele. My dad used to come home from work and he'd sit in his chair and pick up his ukulele and start playing. And then I asked him if he could teach me how to play. So he taught me a few chords and that got me started on Ukulele. Then when I saw a friend of mine playing a guitar, it sounded so good, you know, I just got attracted to the guitar. And he actually said, here, I'm trying to play it. I didn't know anything about it. They showed me one chord and it was it. From that, then I wanted to play guitar. Nice. Now I've always wondered this, Henry. What is the meaning of your name, Capono? Capono means the righteous. I was named after my mom's brother. And then, you know, a lot of times, you know, your dad, the names of the first child after him, junior, but my, or his third son got the name, Kala, junior. And I'm kind of glad I got Capono, you know? I've grown to really understand the name and love the name and have a lot of respect for it. Well, righteous. I mean, that's absolutely perfect. Yeah, you know, as long as you take it in the right direction. Yeah. Now I heard that you played football back in the day. I did. That was actually what I always wanted to be. It was a professional football player. And so I got to play football once I got a scholarship to Punahou for baseball. And they said, well, we have an intermediate football team. And I went, I'm in.  I couldn't play Bantam at the same time because I was too young. So I had to sit out. So I went to baseball. I had some good friends in the neighborhood that took me in and taught me how to play baseball. And I got pretty good at it. So how serious were you about playing football? Very serious. You know, it was what I wanted to do as a profession. And I think God had a different thing prepared for me. So a lot of things happened to get me from football to music. So speaking of music, what artists were you influenced by? Definitely The Beatles, Rolling Stones, Jimmy Hendrix, Cosby Stills, National Young, Boggs and Messina, James Taylor, and then some of the old time blues players. And I just loved music. Yeah, that's awesome. Now, how did your professional music career officially begin? I guess when I went to Vietnam that cut me off from football and everything else. I got a friend of mine came in and said, oh, you want to go on tour in Southern grade, Singapore, Hong Kong, Malaysia, Thailand, all these great places in six weeks, I'll be back for football. Two years later, I got home. I had to work my way back. So what happened during? Well, everything changed. It was a beautiful one-way ticket to this great place, these great places. I'd never seen any of them except for Thailand and Vietnam. But everything changed once we got there. Management company went down, went under and sent us to Vietnam. By the time they sent us over, they had closed their business. They were stranded there basically with these two girls from Chicago called the Twin Sisters. And they didn't make it, they didn't get there. So we just had enough to get them back to Thailand. And then they had to work their way back to Chicago. Yeah, so what did you learn through that experience? I learned a lot of things. I grew up real fast. You know, I learned how to be strong. I learned how to believe in myself and trust in myself and to try to make the best choices I can.  And then after all of that and all of your other experiences, you are a Grammy nominee. And how did it feel going with your wife Leslie to the Grammys? Oh, it was, you know, it was exciting. And mainly because of the project that it got nominated for, which is totally off the wall. You know, my wife woke me up one day and I didn't even know she submitted me for that. Grammy, she woke me up one day, she said, all excited, said, you made it, you made the finals. I went, what finals? She goes, Grammy, I go, you submitted me? And she said, yeah, you made it. That was really exciting. Yeah.  Yeah, that's awesome. Yeah. That's amazing. Yeah, it is. You produced the songs of C&K CD last year in partnership with First Hawaiian Bank. Yes. How is that doing? It's doing awesome. You know, it's been a really refreshing project, an exciting project to work with the younger artists that grew up listening to C&K. Yeah. You know, and when I called them up, you know, when we decided this is the project we wanted to do and First Hawaiian Bank was all for it. Great. Then I started calling all the artists and the artists that I knew of and artists that I researched, artists that I've heard about. And I called them up and said, and if they wanted to be a part of it. And then I said, do you guys know of C&K? Yeah, of course. And I said, well, what's your favorite song? And they all picked a different song. Great. Yeah. So, Henry, tell me about this artist to artist concerts with the next generation songs of C&K artists that's coming. Well, we've been doing these series with the icons, you know, like Kaila Beamer, Jerry Santos, and the late Milani Bill Yu. And it's been very successful. And then working with these groups, this younger audience, we just decided, well, let's, you know, maybe people want to know about them. You know, I mean, they don't really have a history yet, you know, but they do have, they grew up into it. So there was a story there. And they all had a story about the songs that they picked. So that's basically what artists to artists is about is getting to know the artists, getting to know why they write, the way they do what the, you know, what music means to them, their passion. Yeah. Well, they got to be so excited to be able to perform with you.  Yeah, you know, I'm just really blessed and grateful that, you know, I have, I'm in a position where I can help. Yeah. And you have a new CD called Welcome to My Paradise. And I just watched your video of the song Celebrate. Right. It's awesome. I love it. Thank you. Thank you very much. Yeah, it was kind of like we just went to the beach and then this guy had a drone and he just got it and he wanted to play around with it and he just came out. Yeah. You know, the song is really about appreciating all the things that we have in our, that surround us, you know, Mother Earth, the ocean. We're so lucky to have to be living in paradise, you know. And so the song was really about when I was young, I took for granted what we had, you know, until I realized after being in LA and going through all of that touring and all that going around the world, that this place is really something special. So it made me think about, you know, where would I be happier, you know, and is that how valuable is that to me?  No, and Henry, I like that, you know, in the video, you're standing in the ocean performing. And I like when you're in doing your video standing in the ocean. Yeah, it seems like the last couple of videos I've been in the ocean. I love the, I love Hawaii.  Yeah, you're connected. Yeah. So Henry, you have the Henry Capone Foundation. What's new with your foundation now? Well, the new thing is that its foundation is a new project, and to understand it and to make the best of it, and that it really helps the mission of helping musicians and artists to grow, and also to be able to contribute to other organizations that we've worked with, like, you know, March of the, no. You have a ton, you have a ton.  Yeah.  We can really help people the way we want to help. Yeah, totally agree, I love that. And you're gonna be, there's something special happening this May Day, right? What's happening? Yeah, we're playing on Maikiki Beach. Nice.  Yeah. You know, I used to go surfing all the time down there, and I got to know the Beach Boys through my father. Awesome. And I think this is all about celebrating the Beach Boys, you know, because they really were the instrumental in bringing their Lord to the world. Because, you know, when the world came to Hawaii, they took care of them. They showed them how to, how we live. They took them to the Luau's, you know, I mean, it was special at that time.  So they're actually the ambassadors of the law, and they're the one reason I think that Hawaii is their law state. Yeah. So who's gonna be performing with you on this May Day? Well, we got Alec Kalkami. I've been working with, you know, also Kaila Beamer, we've done some work together, and it'll be fun, you know. Of course. I love the fact that I can work with different people, and I learn a lot, you know.  So it's important to me to learn. I had Alec's Kalkami on my show a few months ago. I mean, I know Alec's from a long time ago when I taught tennis to him. But he told me on the show that you're mentoring and helping him. So, I mean, he's so talented, he's amazing. How is it working with him? He is real talented. He's really, you know, he's got a really good head on the shoulder. You know, he knows the business. He went to LA and went through the grind and saw what it was like. So, you know, he has a better understanding of what it's like to be a musician and artist in this time. You know, he's really talented and very passionate about this music. And he's a great songwriter, you know. You know, when I was on tour, you know, I called him up and asked him to come join me on a song. And he was just about ready to throw in the towel and say, you know, I had enough of this. But he came and he just blew everybody away, you know, even myself. And I went, this kid came prepared, you know. You can call an artist and if they're not prepared, you know, it's not gonna work out. But he came prepared and people just loved him.  And have somebody else come in and sing it while I'm there, you know. I was real proud of him. Yeah, I remember when he came back because he was feeling really down and you really saved him. I mean, you got his mind on track and now he's soaring. Yeah, now he's, you know, he's really a unique artist. And he needs to be in unique opportunities. And we try to find those places for him, you know. Nice. I mean, we all play the bars before. Because, you know, sometimes then it comes time we have to move on and find different areas. Places to play and things to do. Totally. And we're gonna take a quick break and when we come back, we're gonna continue going beyond music. Awesome. You are watching Beyond the Lines on Think Tech Hawaii with my special guest, Henry Caponell. We will be back in 60 seconds. Aloha. This is Winston Welch. I am your host of Out and About where every other week, Mondays at 3, we explore a variety of topics in our city, state, nation and world. And events, organizations, the people that fuel them. It's a really interesting show. We welcome you to tune in and we welcome your suggestions for shows. You got a lot of them out there and we have an awesome studio here where we can get your ideas out as well. So I look forward to you tuning in every other week where we've got some great guests and great topics. You're gonna learn a lot. You're gonna come away inspired like I do. So I'll see you every other week here at 3 o'clock on Monday afternoon. Aloha. Aloha, I'm Gwen Harris, the host here at Think Tech Hawaii, a digital media company serving the people of Hawaii. We provide a video platform for citizen journalists to raise public awareness in Hawaii. We are a Hawaii nonprofit that depends on the generosity of the supporters to keep on going. We'd be grateful if you'd go to thinktechhawaii.com and make a donation to support us now. Thanks so much. Welcome back to Beyond the Lines on Think Tech Hawaii. My special guest today is an award-winning Grammy-nominated singer-songwriter. He is the legendary Henry Capono and today we are going beyond music. Henry, I wanna ask you what inspires you to write all these amazing songs and CDs and how many CDs do you have now? Actually, welcome to my paradise is my 20th solo CD and then I have another 12 with C and K. Geez. I think what inspires me is everything. I can't close myself up to just being brought here to one thing. There's so much in this world to think about and understand. I think I try to live the songs that I write and I'm inspired by people. I'm inspired by things that I do. And then I listen. I'm a good listening listener to what's going on. That helps me to know where I am. Yeah. When you write a song, do you know if it's gonna be like a hit song or do you think every song is gonna be a hit song or what are your thoughts? Well, I don't write songs for it to be a hit anymore. And I never did. I just wrote songs because I loved writing and I love singing and I love music. And every song has a certain meaning for me. The stories, those songs have content of those stories really means a lot to me. So I own it, it becomes a part of me. And yeah, I don't write to be on radio or I just write to be happy, to make people happy. And I think that's more really important to me that I'm making people feel good about where they are and who they are and that makes me feel good. Well, I'm happy when I listen to your songs.  Now, in my book Beyond the Lines, I talk about achieving and sustaining success and you obviously have achieved and sustained success. How have you sustained success for all these decades? I think you gotta keep growing. You gotta keep learning, you gotta keep growing and you gotta keep being present and understanding where you are in just time period as everything progresses and understand how your music and in inspiring and impact people's lives.  Yeah, you can't be complacent. Yeah, you know, I don't see myself like that, you know? So, and I'm learning every day, you know? Like a young artist, they've taught me a lot, you know? And a lot of things that I kind of like put on the side, you know, and now I go, yeah, you know, those things really bend a lot, who I am right now. Also in my book, I talk about empathy, purpose and fulfillment and I wanna know, Henry, what gives you fulfillment? Family, Hawaii, friends. Just, you know, the goodness of living and being surrounded by love and also giving love, you know? So that makes me happy and I see my kids every day and be a part of the, part of life in general. Oh, that makes sense, I like that. And let's go on the other side now. What was your greatest adversity that you had to overcome in your life? Oh, well, I think once I got it, actually, I went to Vietnam as a musician, played with a power trio and it was like I was dumped into there for a reason. I didn't understand it at the time but then I was there and I started to think. I started to read and I started to grow. I was in the most dangerous place I could ever think of being as a civilian and I either had to be afraid of being there or be courageous of being there and I took the better part to say, you know, I'm here for a reason, you know? And if I make it through, I make it through for a reason, so there's a reason to everything and you just have to go with your feeling, your heart and you just gotta be a part of life, you know? How was that challenge for you?  How was it for you? Well, that was another stepping stone, you know? And I took it, you know, I started to look at we were having so much fun. Everybody was, people were loving us and we loved the music, we loved playing and it got to the point where, you know, I had a family and I needed to really think of how I'm, I have to be the provider, you know? And then I can be a musician and just do what musicians do but then I said, I have to learn the business because all the people that were doing business were doing very well, you know?  Which is the best part of being an artist, you know? But I had to learn the business, you know? To get ahead and, you know, they say 80% is business, 20% is art and I couldn't understand that but then I realized, you know, that's what it takes. So that 20% is very precious, you know? Oh yeah, for sure. And so how you treat it and how you become a part of it is most important, you know?  How to be me. Yeah? Yeah. It's not easy being an artist, you know? I mean, in this industry, it's surrounded by people.  A lot of people say, you don't know how big you are. I said, fine, you know? I know who I am though, that's the main thing. Yeah, you're right though, like being true to yourself. I mean, that's not easy.  I think everybody has to learn that, you know? You get to a point in your life where you're going, what am I doing? You know, am I wasting my time or am I making use of my time? Yeah. You know, I got to that point and I, you know, I get to certain points in my life where I go, okay, now it's new, you know? And then you just take the risk and then do what you need to do to accomplish that goal, you know, you have to have a goal.  Well, you know, I have to take everything into consideration that why do people, why are they inspired by my music? Why am I here? How did I get here? What is going on in the world today? How does it affect me? Yeah. How does it affect my music? What good can I do with my music? Because my music really, I haven't, music is so powerful that if you use it in the right way, you can make, you can change things, you know, you can make things better for other people, you know? And so I'm constantly thinking about, you know, how do I impact somebody's life in a good way? Yeah. How do I, how do I change their lives or change the world for good of all mankind, you know? And I have to think, you know, unconscious, maybe unconsciously, I just kind of like, it's embedded in me when I write. Yeah. What, Henry, what is the biggest difference you see in yourself today versus yourself 30 years ago?  I'm really proud of where I am, you know? 30 years I had to define myself, define who I am and become who I am right now. So, you know, a lot of things could have happened that it changed my whole, my whole life now. But I, you know, I stayed conscious of who I am, where I'm going, what I'm doing, and am I growing and am I doing something good? Yeah. And staying healthy. And staying healthy, healthy is very important. Yeah. So what's, what's next for Henry Capono in these coming years? You know, I've had, I keep thinking, I keep thinking that at a certain point in my life, I'd like to paint, I'd like to start writing books, writing these books, children's books, or just a book.  Not enough time. So, you know, I just let myself go with the flow and find the direction I need to go. Yeah. No, that sounds good. Yeah, that makes me grow. Yeah. No, I love hearing all of your insights today, Henry. It was such a pleasure having you on the show today. And I really want to thank you. Congratulations on your book and your show and, you know. Oh. You know, it's a great show. I love it. Thank you, Henry. Thank you. Thank you, Rusty. And thank you for watching Beyond the Lines on Think Tech Hawaii and a special thank you to my clothing sponsor, Ilani Incorporated. For more information, please visit RustyKamori.com and my book is available on Amazon, Barnes & Noble and all Costco stores in Hawaii. I hope that Henry and I will inspire you to create your own superior culture of excellence and to find your greatness and help others find theirs. Aloha.


The movie has a great cast. What would you say is your funniest or most memorable moments in filming?  We spent our birthday together. I feel like I was acting like such trash. I said something that totally alienated your friends, but anyway. Oh no, they were really good a lot. I was just a little mortified. It's okay. What did you do to celebrate your 50th? What did I do? We went to dinner. We went to dinner. And I worked, it was my first day. Oh, no, no! You hadn't seen the latest episode of Game of Thrones. This was a year ago. And like the last Sunday's episode, so we were trying to talk about Game of Thrones without giving away any spoilers from the previous episode, which was very difficult. So there was lots of like, and the thing when the thing, and he, and the, yeah, and Blake was like, I swear to God, it's my birthday.  You must be hyped for the new series coming up. You are. I was so excited. We loved your chemistry. How did you go about building that on set? Well, I think you either have it or you don't. Yeah, just hours of staring into each other. Just forcing the chemistry. We're like, oh, I really don't get you, but let's try to make this work. Between Blake and Anna, you're just, you know, you laugh a lot because they're both such funny people. I mean, we've seen Anna do comedy before and Blake, I just, I didn't know she was as funny as she is. And she would just pull out some of these lines and surprise me with some extra insults or something that she added to the character and just like, oh, okay, there it goes. And then with Anna, you just never expect kind of what physically she's gonna do with the role. Like, let's try it more awkward this time. And then she just pulls out the funniest hand gestures and just performance. They're really just masterful. When we first got there, we all had dinner together and they just had the greatest time.  They met each other at a few parties before I had cast them over the years and they both just admired each other. Remember when I told Blake that Anna was gonna begin? She wrote back, I love Anna. She's a warrior and I was like, awesome. There were a few sex scenes in the movie. What is the reality like of filming those? No, it's great. I should really go into porn. I'm so good at it. Like, I know like normally people talk about how awkward it is and the crew's just standing around and I was like, this is not awkward. Everybody here is getting the vibe. It's going great. My friend's husband, she actually like, he read the script and he read the character wrong.  And she was like, well, first of all, that's not even my character.  He's like, well, I don't know how it works because he's not an actor.  I'm so disturbed. I'm never less comfortable than when I have to film these sex scenes. So actually I have to laugh. Like if you watch my movies closely, you'll notice it's hardly ever a sex scene in my movies. But when they are, it always starts wide and we just slowly push it on somebody's face. And that's it. And then I'm like, okay, we got it. Let's get out of here. Was it quite awkward? I try to keep it to a minimum just because I'm so uncomfortable. And I also like, you know, it's so workman-like. You know, it seems romantic, but it's not.  So I try to get people through it as fast as I can. But when you work with great actors, they just muster it up and you're just like, wow, that looks real to me. Anna, you also did a rap scene in the movie. If there's a sequel, can we expect more songs brought into the mix? I really enjoy Stephanie singing in the car. I think that's her best self. There was supposed to be a scene where I'm like on the way to Dennis Nylons and I'm like singing a power ballad that, thank God, got cut because the whole thing was like, I'm like confident.  So I'm very grateful that's not in the movie. Anna also did a rap scene in the movie. Did Anna break into any dance or song or two on set? Not spontaneously, but we had, we actually shot two different songs for that because we weren't sure which one we could clear.  But then I had the other one, this anti-up song, which I like because when she does it, it's a very celebratory moment for her. Anna Kendrick singing, rapping, the greatest thing ever. I know she knew the song, but I gave it to her a few days in advance and she, you know, she learned it, but you know, because that wasn't easy. That's kind of a difficult rap in that one. But the Rihanna song she knew right out the gate. Was there any karaoke? Off the set? No, no. It was a pretty, we had fun, but then we all kind of just took our, took our leave of each other at the end of the day. I don't want to give away any spoilers, but how did you go about shooting that scene on the lake? You know, Blake just really wanted to make sure that played very real. And so she put a lot of work into how she was going to pull that off. But again, it's all spoilers. I'm sorry, I can't tell you anything. There was a lot of great twists. What was your reaction to them? When the script first got sent to me, I mean, I always, as a director, you know, once you get into the project, it's so easy to lose sight of what drew you to it.  So I have to remember that. Every time as I got further into the movie, go like, wait, no, the first time I read that, I was so surprised because if you lose that, then you can start to lose some of the surprises that were so appealing. The twists and turns, they were all nice and thrilling. We just had to keep track of how heavier lifting was just making the script sort of like fun and like playful. So it was just like a lot of improv and making it more, I don't know, over the top. Yeah. Right? Blake, how did you find shooting the scenes where you have to swim in front of the children? Oh, we would have the children removed. Yeah, because there were a lot of alts and each one was sort of worse than the next. So we would do the scene, the wider shots with the children, and then say, get the kids out of here. And then it would just be me and Anna and we would sort of go back and forth and just come up with just the worst things we could possibly say.  It's terrible. Don't tell my mom.


Now, as gunshots echo across the windswept snow-covered reaches of the Wild Northwest, Quaker Pop Wheat, and Quaker Pop Rice, the breakfast cereal shot from guns, present the challenge of the Yukon. It's Yukon King, swiftness and strongest lead dog of the Northwest, blazing the trail for Sergeant Preston of the Northwest Monument Police in his relentless pursuit of lawbreakers. Quaker Pop Wheat and Quaker Pop Rice bring you the adventures of Sergeant Preston and his Wonder Dog Yukon King as they meet the challenge of the Yukon. That's the way Quaker Pop Wheat or Quaker Pop Rice disappears at breakfast time. These ready-to-serve cereals hit the spot from first to last delicious spoonful. Yes, wheat or rice shot from guns is exploded up to eight times normal size to make it crisp and tender. Tomorrow morning, fill a bowl with Quaker Pop Wheat or Quaker Pop Rice, topped with fruit, like, say, sliced bananas, and milk and sugar, trying to make it crisp and tender. Tomorrow morning, fill a bowl with Quaker Pop Wheat or Quaker Pop Rice, topped with fruit, like, say, sliced bananas, and milk and sugar. Talk about swell tasting. Say, just you watch it disappear, but fast. The town of Chelywa consisted of a few houses, a dance hall, a couple of cafes, and the bank which served the prospectors in the surrounding hills. Martin Garner, owner of the bank, looked out the window just in time to see an old man leaning into the wind with a small dog at his side. Joe, you'd better get out the scales. Look who's coming. Oh, old Toby Dixon. I didn't know he'd return from that stream that he's been panning up on the side of Whiteface. I heard he was back in town. He got back several days ago. He'd be precious little profit in the banking business if our customers were all like Toby. Come on, Blackie, come on in. Hello, Mr. Garner. Hello, Toby. Hi, Mr. Thorn. Glad to see you too. Hello, Dixon.  Blackie! Oh, now, Mr. Garner, Blackie, don't do no harm. It's powerful cold outside for a little fella like him. I suppose you have a couple of ounces of dust to be weighed. That's right, Mr. Garner. And if you don't mind, I'd like to change it for folding money. Folding money? You must have quite a bit of it by this time. Yes, sir. I've panned old Whiteface stream all these years. I've been fighting this Yukon weather and saving for today when I'd have enough cash to go back to the States. And now, by ginger, I've got it. Here's my poke. We'll have that dust on and pay me off and folding money. Go ahead, Joe. Yes, sir. It's none of my business, Toby, but you're taking a big chance keeping so much money in your house. Some pretty rough characters in Chilicar. Living alone, as you do, at the edge of town with no protection. No protection? Well, Blackie's the best dad-rated watchdog that ever brought bread. Maybe he's old and small, but just let anyone try to get near my house and Blackie will make the welcome ring. Yes, sir. Won't you, Blackie? Then I'll blaze away with this year's six-gun. Why, would Blackie and this six-gun protecting my cash? No one but a fool will try to rob me. All right, suit yourself. And anyway, I'll tell you something, Mr. Garner. I've got to be mighty confidential about this. Then I needn't whisper. There's no one in the bank. Well, you're clerical. Joe Thorne wouldn't be working for me unless he could be trusted. Well, I was just going to say that no one can get my cash till they find it, and they'll never find it. No. Look, you see this shirt? It's made double. What about it? Well, this year's shirt is my bank. Every time I get some folding money, I make a little slit in the lining of this year's shirt and sew the cash inside. My cash is always with me. Here's your folding money, Toby. Oh, thanks, Mr. Thorne. Now I'll be getting on my way. Come on, Blackie. Take care of yourself, Toby. Don't you worry about me, Mr. Garner. Not while I've got my gun and Blackie. Good day to you, Mr. Thorne. Good day. It was early morning about a week later when Sergeant Preston and his great dog, King, came into Chilliwaw. As they neared a small well-kept house, the door opened and Doc Brady called. Hey there. Hi, Sergeant Preston. Doc Brady, hello. Sure will. Come on, King. Let's say hello to our friends. Just happen to see you coming. Come in. Come in. Come on, King. It's hard walking on that ice.  Come over by the fire. Well, I can't stay long, Doc. Just passing through. I'm doing white horse tomorrow. Have to appear at a trial. That's too bad. I hope you'd stay for at least a few days. Any particular reason? There's trouble brewing. Trouble? You know Toby Dixon, don't you? Toby Dixon, let me think. Old sourdough. He's been panning mountain streams for some time. He lives north of here at the edge of town. Oh, yes, I remember, Toby. Well, when he came back from his last trip about 10 days ago, he let it be known all over town that he had all the cash he needed. He said he was going back to the States. He shouldn't talk so freely. And he found that out. Someone got into his house while he was in the cafe. The places ransacked from top to bottom. That was night before last. There was a prowl around his house in the middle of the night. His dog started barking and woke the old man up. Scared the prowler away. Anything happened last night? I haven't heard. Hey, Doc! Sounds like Jake Tabor. Hey, Doc, you better come quickly. Where? I'm out of here. Hey, hey, that dog. Don't let him get away. Take off her shirt. Quiet, Jake. Who's her, Jake? Old Toby Dixon sent me to get you, Doc. My bag's right there. Take it, Jake, while I get into my coat.   I'm ready. I'll go with you. Come on, King. It took but a few minutes to reach the small one-room cabin where Toby Dixon lived with his dog, Blankey. Doc Brady opened the door with Sergeant Preston and Jake Tabor and King close behind. Old Toby knelt beside his small dog who lay motionless on the bunk. What is it, Toby? What's the matter? Oh, Doc, it's Blankey. Take a look at the poor little critter. Your dog? Yes. Steady, King. Oh, Sergeant Preston. Thanks a lot, Sergeant, but I'm glad you're here. Toby, this looks like a knife wound. That's what it is, Doc. When I found Blankey, he was laying in the snow and the knife was sticking into him. I carried him in here and put him on the bunk. Doc, he ain't moved. Toby, I'm sorry. The dog is dead. I thought as much, but Doc, who would do it? Who's honored enough to do a thing like this? Why, it's murder. Sergeant Preston, you've got to find the killer. Do you have the knife? Yes, right there on the floor. Oh, yes, I see it. Oh, poor fellow, Doc, gone. Doc, gone, Toby, I'm sorry about that. I know what that dog meant to you. He was my pal, that's what he was. He's been with me for nine years. Have you any idea who did this, Toby? No. Where'd you find him, Toby? Out front, laying on the ice. The ice won't show footprints. You know who owns this knife? No, Sergeant. I never saw it before. Hey, that looks like Bart Weaver's knife. Bart Weaver? He's new in town. He works in the cafe. This is his knife or one just like it. Was Blackie friendly with Bart Weaver? Blackie was friendly with everyone, Sergeant. Bart Weaver, Jake here. He was friends with everyone. Anyone could have knifed him while he was saying good morning. But he barked at the prowler who was here the night before last. Prowler? Oh, you know about that? I told him, Toby. Well, he'd bark at anyone who comes sneaking up during the night. Just the same as he'd be friends with anyone who'd come up to pat him during the day. Toby, I think your dog was killed by the man or men who were trying to steal your money. Yeah, dog gone right, Sergeant. He found out he couldn't do it with Blackie on guard so he killed Blackie. But he won't get away with it, no sirree. You'll get the killer, won't you, Sergeant Preston? You and King will get on his tail and stay on it until you get him. The ice doesn't show any trail, Toby. And a lot of people have walked over the street, so King couldn't follow his scent.  Will it? Toby, I've got to leave Chilliwa in less than an hour. I've got to be in Whitehorse tomorrow. No, sir. I've got to be there to appear at a trial, but I'll come back here as soon as I can. And we'll see what we can do to find the man who killed your dog. I'll give a reward, Sergeant Preston. Look, I've got all my savings right here in paper money. It's sold inside my shirt. Inside your shirt? I'll give every dollar of it as a reward. Toby, don't tell people where your money's hidden. I can trust you and Doc and Jake here. Well, don't tell anyone else. Now listen, Toby, there might be another attempt to steal your money, so I'm going to leave King with you. You're going to leave your dog? Yes. I'll keep him with you every minute of the day and night till I get back. And then we'll see what we can do. Before I leave, we'll talk to Bart Weaver and see what he has to say about this knife. Doc returned to his office, and Jake remained a very blackie. While Sergeant Preston, accompanied by Toby and King, found Bart Weaver in the cafe. Bart looked at the knife. That's my knife, all right. I lost it a couple of weeks ago. Where'd you get it, Sergeant? I found it.  No, you don't say. Say, Toby, I'm sorry to hear that. I'm mighty sorry. I know how much you thought of blackie.  And in the limited time at his command, Sergeant Preston could go no further in the investigation. He and King returned to Toby's house. I'll give you my word, Toby. I'll return from White Horse as soon as possible. All right, Sergeant. Now, remember what I told you about King. And you, King, you ought to take care of Toby. Understand, boy? Get King a good meal at supper time, Toby. I'll take care of him, Sergeant. You can bet on that. I've got a section of caribou hanging out back. He'll eat all right. You too should become great friends while I'm away. And you needn't worry about anyone getting close to your house. I won't worry. I reckon King's is just as good a watchdog as blackie was. Bye, Toby. Bye, Sergeant. Bye, King. Now behave yourself, fella. Don't eat any strange food. Don't you worry, Sergeant. Like I said, I've got plenty of that caribou hanging out back. He'll be well fed. All right, Toby. See you soon. That night at supper time, Toby cut off a good-sized slab of the caribou meat that hung behind his house and gave King a hearty meal. As for himself, the old man had no appetite. He turned in earlier than usual and tossed restlessly for some time before he finally fell asleep. It was the middle of the night when a figure crept stealthily to the cabin door opened it to the winning side. There was no alarm from King who lay motionless near the foot of Toby's bunk. The great dog was at that very moment more nearly dead than alive. A victim of poison the intruder had put on the caribou meat that hung behind the cabin. Then Toby awakened. What's going on? I hear someone. Who are you? What are you doing in here? The man's hand holding a pistol rose and fell. The weapons barrel thundered against poor Toby's head with stunning force. We'll continue our story in just a moment. Say, supposing you're an inventor, yep, and you set out to invent a ready-to-eat breakfast cereal. Well, sir, how about it? Would you want a jaw-breaking cereal that made you think you were chewing nails? No, you wouldn't want a cereal that's tough to chew, is that? Most certainly not. And when you add milk or cream, you wouldn't want that cereal to go soft and flat on you like a bicycle tire. Nope, what you'd probably be looking for most of all is a cereal that's crisp and tender as nuts in November. Well, if that's the kind you want, that's what you get in a delicious cereal shot from guns. The original, the one and only Quaker Pop Wheat and Quaker Pop Rice. Yes, Quaker Pop Wheat and Quaker Pop Rice are crisp and tender, just right. What's more, wheat and rice shot from guns are loaded with bang-up nut-like flavor. And good for you too. That's because Quaker Pop Wheat and Quaker Pop Rice furnish restored natural-grade amounts of vitamin B1, niacin, and niacin. Take a tip. Ask mom to look for those famous big red-and-blue Quaker packages. Tomorrow, get delicious Quaker Pop Wheat and Quaker Pop Rice shot from guns. And now to continue our story. It was late afternoon when Sergeant Preston moved with swinging strides over the icy trail on his return from White Horse. The trip had been a lonely one. But now he missed the companionship of his great dog, King. Throughout the trip, he had frequently thought of Toby Dixon. What if someone killed King as Old Toby's dog had been killed? He could fully understand the old man's heart-sickness and his eagerness to find and punish the one who had been responsible. In a few minutes now, Sergeant Preston would reach Old Toby's cabin. He would rejoin King. Suddenly at the edge of town, the mountain heard a shout. Hey, Sergeant! Sergeant Preston! It was Bart Weaver, owner of the knife that had killed Blackie. Sergeant Preston! Yes, Weaver? I've got something to tell you. What is it, Bart? I'm in a hurry. They told me you'd be in White Horse today. I was there early this morning.  But I've got an alibi for last night. What about last night? Someone knocked on Old Toby and made off with all his money. He was sewn inside his shirt. But I left King to guard Old Toby. The dog was poisoned. What? The dog's brain is still at Toby's house, even there's some sound. Sergeant Preston didn't wait to hear the rest. He sat under the run, covering the remaining distance of Toby Dixon's house in the shortest possible time. Sergeant Preston! Bart! I heard about King. King. Oh, what have they done to you? Look at him, weak as a kitten. He's passed a crisis and out of danger. You can thank Toby for saving his life. Toby. Oh, forgive me. I was so concerned about King. How are you? I'm all right, Sergeant. What happened last night? Well, I can't tell you much. I fed King some of the caribou that I had hanging out back. Yes? And I didn't have none more on self as I weren't hungry. Well, we turned in and sometime during the night I woke up. I heard the floor creaking from someone moving inside the house. Could you see who it was? No, it was too dark and something hit me on the head. I was knocked out. Come to and then struck a light. Then I saw King stretched out on the floor. His legs as stiff as Ramrod's and he was shaking like 60. What'd you do for him? Well, I knew it was poison, Sergeant. I'd seen it work before. I melted down some tallow and forced it down the dog's throat. He got rid of some of the poison. Then I gave him some more hot tallow and kept it up until daybreak. It just happened to drop in this morning. I've been here ever since. Did King eat anything except that caribou? Not a thing, Sergeant. I examined the caribou. Someone had poisoned the meat. King, poor old fella. I've been afraid something like this might happen. That's why I've trained you to eat only food that's furnished by people we trust. But even with all of our precautions someone nearly got you. Dog, you sure he'll be all right? Yes, after a few days' rest he'll be as good as new. Toby, I can't begin to thank you for what you've done.  King was carefully moved to Brady's home where Sergeant Preston was to stay for the next few days. Then during those days while the dog regained his strength the Mountie put forth every effort to find evidence against the man who had ram-sacked Dixon's home, stabbed his dog, poisoned King and stolen old Toby's money. But his efforts led nowhere. It was evening when he sat with a doctor in front of the fireplace. King lay on the floor nearby. King seemed quite lively when he went for a walk tonight, Dog. He's nearly back to his normal strength. Perhaps he can go with me tomorrow. Yes, I think he can. Good. Hear that, King? I guess he'd be glad to be back in harness. Tell me, Preston, have you any idea as to the poisoners' identity? Yes, I have. You have? I'm pretty sure I know who he is. But that doesn't mean a thing. Besides, King's reaction doesn't back up my suspicion. I don't understand. Dog, you remember the first attempt to get Toby's money? Yes, someone ram-sacked his house while he was out. The thief didn't know where the cash was hidden, but the Night King was poisoned. The thief knew just where to go for the cash. He slugged Toby and stripped off his shirt. At that time, not many people knew where Toby kept his cash. The banker knew it, and so did his clerk. Toby told both of them. Yes, but they knew about it before the house was ram-sacked. If either Garner or Joe Thorne had turned thief, they'd have known where to go for the cash. That's good logic. They wouldn't have searched through the house while Toby was out. Now, when the thief actually got the cash, he knew where to look for it. He slugged Toby and stripped off his shirt. That means that the thief is a man who learned about that shirt on the day of the robbery. Yeah, that narrows it down. To one man, Jake Tabor, who was with us when Toby told about his shirt. Jake Tabor, and he's just the type. Preston, I think he's your man. I can't find a shred of evidence to back that suspicion, Doc. I'm trying to think of a way to trap Jake Tabor, make him show his hand. I think I have a way, but I'll need your help, Doc. I don't have it. Now, here's my plan. You've got to call on Toby tonight. Tell him he's to become ill, very ill. Then go to the cafe and tell Bart Weaver and a few others that you're very concerned. Hint that Toby might be coming down with a very serious fever. It was one hour later when Doc Brady visited the cafe. Yes, indeed, Bart. I just came from Toby's place, and, frankly, I am very, very worried. Poor old Toby. His luck is sure-running money, eh? Hey, Doc, what's that about old Toby? Oh, hello, Jake. Toby got more trouble? He's sick, Jake, and I'm afraid he might be very bad. I know better in the morning. What's the matter with him? Looks like the fever. Fever? Very, very dangerous fever. As bad as smallpox. Did I hear some mention of smallpox? Yes, you did, Thorn. Doc was just saying that Toby's got a fever that's worse than smallpox. No, no, I'm not sure, mind you. I'll see what develops in the morning. Worse than smallpox. Gosh, Doc, is that catching? Yeah, is it? If Toby has the fever I'm thinking of, we'll have to put a guard at his house to be sure no one gets close to him. I, uh, suppose you can cure Toby. I'll do my best. I'll hurry over to White Horse and get a special medicine. The only thing that will prevent or cure such a disease. Prevent it, you say? Uh-huh. It would protect a man who had been exposed to it. Can't you get enough of that medicine to supply the folks here in town, Doc? Just so none of us would catch it? Oh, no, Bob, that would be out of the question. As a matter of fact, I'll have to do a lot of persuading to get the doctor in White Horse to give me enough for Toby. There's very little of that medicine in the Yukon territory. Nowhere near enough to supply people who are in audio. A little hope for the best. I'll be seeing you, boys. After Doc had left the cafe, the news spread rapidly. By the following morning, the whole town was buzzing with talk about old Toby's mysterious ailment. When a guard was placed at Toby's door, the worst fears were confirmed. Ah, Toby's in a bad way. Poor old critter. I'm sorry for him. Did you hear what Doc said last night about a special medicine? Yeah, Toby's had a lot of hard luck. Sergeant Preston heard snatches of conversation from the curious onlookers. Then the doctor came out of the house dressed for travel. Ready, Doc? Yes, sir. How's our plan working? First raid so far. Sorry you have to take a trip to White Horse. Oh, I don't mind. It'll do me good. Now, let me see. I should be there by noon and back here some time in the late afternoon. And while you're there, you'll pick up a bottle of medicine with Dr. Jackson's name on it. Leave that to me. I'll keep an eye on Jake. At least as guilty as I think he is. He'll be very worried about the shirt in his possession. I've dropped a few remarks, heading that Toby Stolen's shirt might carry the fever dream. Don't make an attempt to wail at you in the back trail. Take the medicine away from him. And if he comes out to meet me, you'll be following him. That's right. King and I will follow him and I hope we'll finish this day with a confession. As the day passed, Jake went about his normal pursuits with Sergeant Preston watching. Mid-afternoon found Jake still in town, engaged in a poker game in the cafe. Sergeant Preston and King were waiting outside. King? Jake intends to intercept the doctor. It's time for him to leave town. The minutes dragged into an hour. It was time for Dr. Brady to be back. And Jake still lingered at the card game. King sensed his master's restlessness. He saw Sergeant Preston glancing at his watch with increasing frequency as another hour dragged by. Then Jake came out of the cafe. Happy time tonight to give you boys a chance to get back your losses. Oh, hello, Sergeant. Howdy, King. How'd you make out, Jake? I want to tidy certain the boys. They're all skittish about the chances of catching Toby's fever. Your mind's in on the game. I see. I don't want enough to buy me some new clothes. I'm on my way to spend it before I get into another card game. Well, I'll see you again. King certainly doesn't act like the guilty man. Once more, the mountain he looked at his watch. Dr. Brady should have been back here an hour ago, eh? I wonder if they're going to go out and meet him. Come on, King. King thrilled to the summons. It was good to be back on the trail trotting at his master's side. Sergeant Preston had traveled less than one mile after leaving the town when he saw Dr. Brady. Mark, come on, boy. There was something wrong. Doc's hat was gone. And he walked with dragging steps, weaving from side to side. Preston! Mark, what's the matter with you? What happened? You said you'd watch. Here, take my arm. No. No, I'll be all right in a few minutes. How did Jake get away from me? He didn't. He's in town right now. Someone slugged me from behind. I don't know who. I was unconscious. When I came to, the bottle of medicine was gone. I was pretty unsteady on my feet for a time, but I'm better now. Don't worry about me. I'll be all right. Can you take me back to that spot on the trail? Yes. The ground's frozen too hard to show footprints. We don't need footprints. King's back on the job. He'll get the scent. Let's go, King. It was only a couple of hundred yards to the place where Doc had fallen. And there, the great dog King reacted violently. He found and recognized a scent he hated. He remembered a prowler in the night, a man who had hurt old Toby at the time when he, King, lay helpless. He looked up at his master. He wanted desperately to follow that trail. All right, King. Take the lead, fellow. On King! Follow us, Doc. All right, honey. King streaked across the ice and hard-packed snow, angling off the trail. Then he cut back in the direction of town and went directly to a small house. He snarled and barked and clawed at the door until his master caught up. All right, King. We're going in, boy. Open up. I want to talk to you. The door was opened by Joe Thorn, clerk in Garner's Bank. That door! Get down! Come on, King. What's the matter with him? He hates crooks, Thorn. Crooks? You knocked Dr. Brady down. No, I don't. Don't lie about it. King has a scent he followed you. I think a search of this house will reveal the bottle of medicine you took from Dr. Brady. He's on the way here and will identify it. And the search might reveal Toby Dixon's shirt.  He's on the track or something.  Get away from that bed! Get away from that bed! Call him something.  I'll take that gun. Go on. Get over there. See what King's trying to pull out from under that mattress. Freshman! Freshman! This is Thorn's house. Yes, and come here, doc. Look what King found. Toby Dixon's shirt. Then Thorn is the one. That dog, that confounded Thorn. Yes, the dog you tried to poison. I admit it, Preston. I guess you win. You tried to frame Bart Weaver for the stabbing of Blackie. I found this knife. I meant to return it to him, but I didn't get around to it. And when I learned that old Toby had money, Toby had money, well, you know the answers. All the answers but one. I can't understand why you ransacked the house on the first night you tried to steal the money. It wasn't me the first night, President. Oh? I was my boss. The banker? Yeah, Garner himself. He was afraid someone would rob Toby. So he went to the house and messed things up a little, hoping to frighten the old man into putting his money in the bank. And I'll be doggone. He was sure someone would get the cash that's inside that shirt. And so was I. And I thought I might as well be the lucky one. I'm telling you all this because I'm done for it. I've been handling that germ-laden shirt so much I'm ready to catch the fever. In fact, I've hit the beginning out already. And what about that medicine you took from me? I was just going to take it when that dog came barking at the door. It won't matter, Thorne, because you see, there is no fever. No fever? Oh, Toby, just as well as I am. No. And that medicine is nothing but ordinary bitters. Frick, don't get all the way. And all because of a door. Yes, King. Thanks to you, boy. This case is closed. The dog barks. In just a moment, Sergeant Preston will give you a preview of Monday's program. Say, don't be missing out. Get next to the breakfast treat that's so popular with many He-Man Hollywood movie stars. Yes, you guessed it. It's well-tasting Quakerpuff wheat or Quakerpuff rice with milk and fruit. Check up right now. Make sure to have a good supply of both delicious kinds on hand for this coming weekend. And don't forget, wheat or rice shop from guns is never sold in bags or bulk. Always buy the big Quaker red and blue package. That's your guarantee you're getting the original crisp, fresh Quakerpuff rice and Quakerpuff wheat. These radio dramas, a feature of the challenge of the Yukon Incorporated, are created and produced by George W. Tremble and directed by Fred Flower Day. This story was written by Fran Stryker. The part of Sergeant Preston is played by Paul Sutton. They are brought to you every Monday, Wednesday, and Friday at the same time by Quakerpuff wheat and Quakerpuff rice, the breakfast cereal shop from guns. Listen Monday when Sergeant Preston and Yukon King meet the challenge of the Yukon in the adventure of the Samaritan of the Trail. The Samaritan was known as Father John. We knew that the last years of his life had been devoted to the service of his fellow men. But his life before that time was a closed book. Then one day, King and I learned the grim secret of his past. That was the beginning of an exciting manhunt with death as a milestone. Be sure to hear this exciting story Monday. Till then, this is J. Michael wishing you good bye, good luck, and good health from Quakerpuff wheat and Quakerpuff rice. So long. For a delicious hot breakfast, eat Quaker oats. The giant of the cereals is Quaker oats. Yes, the giant of the cereals is Quaker oats. Delicious, nutritious, makes you feel ambitious. The giant of the cereals is Quaker oats. Say, boys and girls, do you want to be a star someday in sports and activities? Then start on good Quaker oats breakfast tomorrow. Because nourishing oatmeal gives you more growth and endurance than any other whole grain cereal. Still less than one penny is serving. Quaker and Mother's Oats are the same. This is ABC, the American Broadcasting Company.


Well, we're getting all the equipment from Third Brigade off of these vessels and loading it out here onto the port so we can push it onto Poland in order to support Third Brigade operations to really increase our presence in the European front. So I serve as the Company Unit Movement Officer. I'm in charge of making sure all of our equipment gets put on the trains, which have been back at Fort Carson. Then they moved to Beaumont, Texas. And from Beaumont, Texas, they got loaded onto these vessels here. Then from Beaumont, Texas, here to Brumman-Hawvin, they're going to be unloaded here at the port and pushed to the railhead here and then all the way to the port. So I mostly am a charge mechanic, which is the title that I work on, 88s and Beaumont 3s. And like I said, I'm cross trained on wheel vehicles as well. And pretty much why I roll in all this is just to make sure that our vehicles are eight of, like they run the way they're supposed to. They're not going to break down on a field problem or no work. We're trying to show that we've got some of the best equipment in the world, so we don't want to take something off the boat that just blows up. Everything just shuts down. It's not working. So far, what I've seen is that our equipment is, I mean, it took a lot of work and there's some rough patches, but our equipment is going out here that are really good. Everything's starting the way it's supposed to. Everything's running the way it's supposed to. The boat weather's not too good for the equipment right now. It's a lot different climate over here. But our vehicles are accommodating to it and they're running the way they're supposed to.


Good afternoon, everyone and welcome. This is Melissa Armel. I'm going to start swishing and reviewing here a gap down today, a bearish gap down in car. Take a look at it. Let's look here in the previous evening in the clothes. The stock closed at $29.99. Boom! Drop down this morning and open at $24.90. Nice bearish gap. Good gap here. A gap to short. How do you know this? How would anyone know this? Well, if you took my golden gap class, you would get up in the morning and you would rate the gap. If the gap rates 20 points or more for the 26-point rating system, you short the gap in the direction of the gap. Okay? And in the case of going long, if it was a gap up, you'd buy the gap in the direction of the gap. Now, let's go here and look at this. Where was the setup today? If you wanted to short this today, it was right here. Boom. Look at that. A really nice, beautiful, beautiful stock. And this is the kind of thing I look for, particularly in this price point. I'm telling you the best, best moves and things. I mean, look at this thing. I mean, usually I like to be done quickly in the morning, but if you actually held this all the way down to the dream crazy target today, it was almost three dollars. Anyways, getting back to what I'm saying, it really I found that the best things that I love to trade the most of all the stock prices, if I had to pick a range, is between, I'd say $15 and 25 bucks. $15 to 30 bucks. That range. That range provides good entries, stops, and big moves. I mean, huge moves in some cases. This is a really big move for the stock, actually. And to have this happen today against the market proves exactly the whole thing. Exactly what I'm saying and have settled along. The market is strong today rallying. I'll do another video on this next. But the bottom line is, do you see what car did today? And do you see what the spy did today? Complete another opposite. So therefore, one has nothing to do with the other. You have to have a method to find what stock to train in what direction to trade it that has nothing to do with the market. Otherwise, you're screwed. Anybody get the market right? And I knew the market would rally today. I've been saying that all along, but I'm saying a lot of people probably thought the market was lower today. Why? Because the market did get down today. But the fact is, you have to look for stuff that's independent on its own to day train without the market because the market's challenging to read. And even I don't get it right every day. But I do get it right a lot because I'm usually reading the gaps in the market. Not usually. I mean, I am because the market gaps almost every day unlike stocks. Okay. Anyways, the golden gap classes this weekend, beautiful day to short car. And if you're interested in learning how to do this, email me at the list at the stocks wish.com. Have a fantastic night. Everyone classes this weekend Saturday with live trading gap analysis of Monday classes Saturday and Sunday this time around. Have a wonderful, wonderful, wonderful evening and email me at my list at the stocks wish.com if you'd like more information. Thanks.