Databasprocesser måste vara cache-effektiva för att effektivt kunna använda modern hårdvara. I detta papper analyserar vi betydelsen av temporal lokalitet och det resulterande cachebeteendet i schemaläggning av databasoperatörer för in-minne, blockorienterad frågebehandling. Vi visar hur den totala arbetsbelastningen hos flera databasoperatörer är starkt beroende av hur de kopplas samman med varandra. Längre tids skivor i kombination med temporal lokalisering inom en operatör amortera effekterna av de initiala obligatoriska cache missar som behövs för att ladda operatörens tillstånd, såsom en hash tabell, i cache. Även om köra en operatör att slutföra över alla sina indata resulterar i den största avskrivningar av cache missar, Detta är typiskt omöjligt på grund av den stora mellanliggande lagringskrav för att materialisera alla inmatning tuples till en operatör. Vi visar experimentellt att bra cacheprestanda kan uppnås med mindre buffertar vars storlek bestäms vid körning. Vi demonstrerar en låg-overhead metod för körning cache miss provtagning med hjälp av hårdvara prestanda räknare. Vår utvärdering behandlar två gemensamma databasoperatörer med tillstånd: aggregering och hash gå. Provtagning visar operatören tidslokalitet och cache miss beteende, och vi använder dessa egenskaper för att välja en lämplig ingång buffert / block storlek. Den beräknade buffertstorleken balanserar cache miss avskrivningar med buffertminneskrav.
Cache performance of in-memory och block orienterad aggregatverksamhet studeras av Cieslewicz et al. Hoppa över det.
Cache-conscious buffering for database operators with state
{'venue': "DaMoN '09", 'journal': None, 'mag_field_of_study': ['Computer Science']}