MCS-låset är ett av de vanligaste kölåsen. Det ger rättvis schemaläggning och hög prestanda på massivt parallella system. MCS-låset ger dock en bring-your-owncontext policy: varje låsanvändare måste tillhandahålla ytterligare ett sammanhang (dvs. en kö nod) för att interagera med låset. I detta dokument föreslås MCSg, en variant av MCS-låset som slappnar av denna begränsning. Vår viktigaste observation är att inte alla låsanvändare skapas lika. Vi analyserade hur lås används i massivt parallella moderna system, såsom NUMA-medvetna operativsystem och databaser. Vi fann att sådana system ofta har ett litet antal "vanliga" kodvägar som går in i låset mycket ofta. Sådana kodvägar är den främsta mottagaren av MCS-låsens höga skalbarhet. Det finns dock också många "gästers" kodvägar som sällan går in i låset och inte behöver samma grad av rättvisa för att komma åt låset (t.ex. bakgrundsuppgifter som bara körs periodvis med lägre prioritet). Dessa gästanvändare, som vanligtvis är utspridda i olika moduler av programvaran, föredrar sammanhangsfria lås, såsom biljettlås. MCSg ger dessa gäster ett sammanhangsfritt gränssnitt medan vanliga användare fortfarande njuta av fördelarna med MCS. Det kan också användas som en drop-in ersättning av MCS för mer avancerade lås, såsom kohortlåsning. Vi föreslår också MCSg++, en utökad version av MCSg, som undviker gästsvält och icke-FIFO beteenden som kan hända med MCSg. Vår utvärdering med hjälp av mikrobenchmarks och TPC-C-databasen benchmark på en 16-socket, 240-kärn server visar att både MCSg och MCSg++ bevarar fördelarna med MCS för vanliga användare samtidigt som ett sammanhangsfritt gränssnitt för gäster.
MCSg REF tillåter vissa kodsökvägar att använda MCS-låset utan qnodes.
Be my guest: MCS lock now welcomes guests
{'venue': "PPoPP '16", 'journal': None, 'mag_field_of_study': ['Computer Science']}