SE540908C2

Distributed data set storage and retrieval

Abstract

An apparatus includes a processor component caused to: retrieve metadata of organization of data within a data set, and map data of organization of data blocks within a data file; receive indications of which node devices are available to perform a processing task with a data set portion; and in response to the data set including partitioned data, compare the quantities of available node devices and of the node devices last involved in storing the data set. In response to a match, for each map data map entry: retrieve a hashed identifier for a data sub-block, and a size for each of the data sub-blocks within the corresponding data block; divide the hashed identifier by the quantity of available node devices; compare the modulo value to a designation assigned to each of the available node devices; and provide a pointer to the available node device assigned the matching designation.

SE540908C2, drawing sheet 1
Sheet 1 of 41

Term

No projected expiry on record.

  1. Priority
  2. Filed
  3. Granted
  4. Today

12 claims: 3 independent, 9 dependent

  1. 1
    CLAIMS LAGRING OCH HÄMTNING AV DISTRIBUERAD DATAMÄNGD 1. A computer-implemented method implemented using a processor component (1550) of a control device (1500), the method comprising:PATENTKRAV 1. Datorimplementerat förfarande som implementeras med en processorkomponent (1550) hos en styrenhet (1500), varvid förfarandet innefattar: hämtning av, från en eller flera lagringsenheter (1100) genom ett nätverk (1999), metadata (1335) som indikerar organiseringen av data inom en datamängd (1330) och mappningsdata (1510) som indikerar organiseringen av flertalet datablock inom en datafil (1110) som upprätthålls av nämnda en eller flera lagringsenheter (1100), varvid: retrieving, from one or more storage devices (1100) through a network (1999), metadata (1335) indicative of organization of data within a data set (1330), and map data (1510) indicative of organization of multiple data blocks within a data file (1110) maintained by the one or more storage devices (1100), wherein: nämnda mappningsdata (1510) innefattar flera mappningsposter;och varvid varje mappningspost av nämnda flertalet mappningsposter motsvarar ett eller flera datablock av nämnda flertalet datablock;the map data (1510) comprises multiple map entries;and each map entry of the multiple map entries corresponds to one or more data blocks of the multiple data blocks;mottagning av, från flertalet nodenheter (1700), indikationer om vilka nodenheter (1700) bland nämnda flertalet nodenheter (1700) som är tillgängliga nodenheter (1700) och som var och en är i stånd till att utföra en bearbetningsuppgifi med åtminstone en datamängdsdel (1732) av nämnda en eller flera datamängdsdelar (1732);och som svar på en indikation inom nämnda metadata (1335) eller nämnda mappningsdata (1510) att datamängden (1330) innefattar partitionerad data, varvid nämnda data inom datamängden (1330) är organiserad i ett flertal partitioner som var och en är distribuerbar till en enda nodenhet (1700), och varvid varje mappningspost motsvarar ett enda datablock: receiving, from multiple node devices (1700), indications of which node devices (1700) among the multiple node devices (1700) are available node devices (1700) that are each able to perform a processing task with at least one data set portion (1732) of the one or more data set portions (1732);and in response to an indication within the metadata (1335) or the map data (1510) that the data set (1330) comprises partitioned data wherein the data within the data set (1330) is organized into multiple partitions that are each distributable to a single node device (1700), and each map entry corresponds to a single data block: bestämning av en första mängd av de tillgängliga nodenhetema (1700) baserat på indikationerna om vilka nodenheter (1700) som är tillgängliga nodenheter (1700);determining a first quantity of the available node devices (1700) based on the indications of which node devices (1700) are available node devices (1700);540 908 hämtning av en andra mängd av nodenheter (1700) som sist var involverade i lagring av datamängden (1330) inuti datafilen (1110) från nämnda metadata (1335) eller nämnda mappningsdata (1510);retrieving a second quantity of node devices (1700) last involved in storage of the data set (1330) within the data file (1110) from the metadata (1335) or the map data (1510);comparing the first and second quantities of node devices (1700) to detect a match between the first and second quantities;and assigning each of the available node devices (1700) one of a series of positive integer values as a designation value, wherein the series extends from an integer value of 0 to a positive integer value equal to the first quantity minus the integer value of 1;and in response to detection of a match between the first and second quantities, for each map entry of the map data (1510): jämförelse av den första och andra mängden av nodenheter (1700) för att detektera en matchning mellan de första och andra mängderna;och tilldelning av var och en av de tillgängliga nodenhetema (1700) en av en serie av positiva heltalsvärden som ett beteckningsvärde, varvid serien sträcker sig från ett heltalsvärde av 0 till ett positivt heltalsvärde lika med den första mängden minus heltalsvärdet av 1;och som svar på detektionen av en matchning mellan de första och andra mängderna, för vatje mappningspost hos nämnda mappningsdata (1510): 540 908 retrieving, from the map entry, a hashed identifier for one data sub-block indicated in the map entry as within the corresponding data block, and a data sub-block size for each of the data sub-blocks indicated in the map entry as within the corresponding data block, wherein: hämtning av, från mappningsposten, en hashad identifierare för ett datadelblock indikerad i mappningsposten som inom det motsvarande datablocket, och en storlek av datadelblocket för var och en av datadelblocken indikerade i mappningsposten som inom det motsvarande datablocket, varvid: den hashade identifieraren är härledd från en partitionsetikett hos en partition hos nämnda flertalet partitioner;och datadelblocket innefattar en datamängddel (1732) av nämnda en eller flera datamängddelar (1732);the hashed identifier is derived from a partition label of a partition of the multiple partitions;and the data sub-block comprises a data set portion (1732) of the one or more data set portions (1732);bestämning av en plats för det motsvarande datablocket inom datafilen (1110);determining a location of the corresponding data block within the data file (1110);dividering av den hashade identifieraren med den första mängden för att erhålla ett modulovärde;dividing the hashed identifier by the first quantity to obtain a modulo value;comparing the modulo value to the designation value assigned to each of the available node devices (1700) to identify an available node device (1700) assigned a designation value that matches the modulo value;and providing a pointer to the available node device (1700) assigned the designation value that matches the modulo value, the pointer comprising: jämförelse av modulo värdet med beteckningsvärdet som tilldelats var och en av de tillgängliga nodenhetema (1700) för att identifiera en tillgänglig nodenhet (1700) tilldelad ett beteckningsvärde som matchar modulo värdet;och tillhandahållning av en pekare till den tillgängliga nodenheten (1700) tilldelad beteckningsvärdet som matchar modulovärdet, varvid pekaren innefattar: en indikation av platsen för det motsvarande datablocket;och en summa av storlekarna av alla datadelblocken inom det motsvarande datablocket. 540 908 an indication of the location of the corresponding data block;and a sum of the data sub-block sizes of all of the data sub-blocks within the corresponding data block.
  2. 11
    Datorprogramprodukt konkret förkroppsligad i ett icke-transient maskinläsligt lagringsmedium, varvid datorprogramprodukten innefattar instruktioner för att framkalla en processorkomponent att utföra det datorimplementerade förfarandet enligt någotdera av patentkraven 1 till 10. 540 908 11. A computer-program product tangibly embodied in a non-transitory machinereadable storage medium, the computer-program product including instructions operable to cause a processor component to perform the computer implemented method according to any of claims 1 to 10.
  3. 12
    Anordning innefattande en processorkomponent och en lagringskomponent för att lagra instruktioner som, när de exekveras av processorkomponenten, framkallar processorkomponenten att utföra det datorimplementerade förfarandet enligt någotdera 5 av patentkraven 1 till 10. 12. An apparatus comprising a processor component and a storage to store instructions that, when executed by the processor component, cause the processor component to perform the computer implemented method according to any of claims 1 to 10.