{"push_id":932319704,"size":1,"distinct_size":1,"ref":"refs/heads/foyzur-resilientjoin","head":"c80edf46dd0bde0933ba3f933cc6435731526907","before":"f565412392ed97aeab35774572a034486270f3b2","commits":[{"sha":"c80edf46dd0bde0933ba3f933cc6435731526907","author":{"email":"18986ad59aa59ecb3c31d4ba5a3909a6ff32ffbd@gopivotal.com","name":"Foyzur Rahman"},"message":"Resilient join is the next generation Greenplum join operator. It has the following advantages over existing join operators:\n\n1. Support for multiple join algorithms; currently supports hash join and nested loop join and has provision for implementation of other algorithms in the future\n2. Better memory management and memory quota compliance even if there is data skew\n3. Robust handling of inaccurate stats\n4. Spilling as few tuples as possible, maximizing memory utilization\n5. Dynamic hash functions to handle skew better\n6. Runtime stat derivation and selection of best applicable join algorithm using heuristics and runtime stats\n7. Dynamic switching of join sides, if permitted (role reversal)\n8. Join as many spilled partitions as can be fit in the memory (partition tuning)\n9. Support for different join algorithms for different sets of spilled partitions\n\nThis is the very initial commit of Resilient Join. While dedicated tests for this feature is virtually non-existent at this moment, the code does pass all the\ninstallcheck-good. Given that join is ubiquitous and heavily exercised during installcheck-good, this gives quite a bit of test coverage.","distinct":true,"url":"https://api.github.com/repos/foyzur/gpdb/commits/c80edf46dd0bde0933ba3f933cc6435731526907"}]}