Gå med är en viktig databas operation. När datorarkitekturer utvecklas, kan den bästa gå algoritmen ändra hand. Denna tidning omprövar två populära gå algoritmer - hash gå med och sortera-sammanslagning gå - för att avgöra om de senaste trenderna dator arkitektur skiftar tidvattnet som har gynnat hash gå med i många år. För en rättvis jämförelse implementerade vi den mest optimerade parallella versionen av båda algoritmerna på den senaste Intel Core i7-plattformen. Båda implementeringarna skalas väl med antalet kärnor i systemet och dra nytta av de senaste processorfunktionerna för prestanda. Vår hash-baserade implementation uppnår mer än 100M tuples per sekund som är 17X snabbare än den bästa rapporterade prestandan på processorer och 8X snabbare än vad som rapporterats för GPUs. Dessutom, prestandan av vår hash gå med i genomförandet är konsekvent över ett brett spektrum av inmatningsdata storlekar från 64K till 128M tuples och påverkas inte av data skew. Vi jämför denna implementation med vår högt optimerade sorteringsbaserade implementation som uppnår 47M till 80M tuples per sekund. Vi utvecklade analytiska modeller för att studera hur båda algoritmerna skulle skala med kommande processorarkitekturtrender. Vår analys projekt att nuvarande arkitektoniska trender av bredare SIMD, fler kärnor, och mindre minnesbandbredd per kärna innebär bättre skalbarhet potential för sortering-sammanslagning gå. Följaktligen, sort-sammanfogning är sannolikt att överträffa hash gå på kommande chip multiprocessorer. Sammanfattningsvis erbjuder vi multicore implementationer av hash-medlemskap och sortering-sammanslagning som konsekvent överträffar alla tidigare rapporterade resultat. Vi drar vidare slutsatsen att tidvattnet som gynnar hash gå algoritmen har inte förändrats ännu, men förändringen är precis runt hörnet.
I REF utvärderades parallell hash-koppling och sortering-sammanfogning som utnyttjade både SIMD-instruktioner och flera trådar.
Sort vs. Hash Revisited: Fast Join Implementation on Modern Multi-Core CPUs
{'venue': 'PVLDB', 'journal': 'PVLDB', 'mag_field_of_study': ['Computer Science']}