# US 2017/0255685 A1 · Dynamic data ingestion

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2017/0255685 A1
- Document ID: US20170255685A1
- Status: Published application
- Kind: A1
- Application number: 15/058,737
- Filed: 2016-03-02
- Published: 2017-09-07
- Earliest claimed: 2016-03-02
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Piotr P. Godowski; Artur Obrzut; Luigi Pichetti; Krzysztof Pienkowski
- Web page: https://patentgrep.com/patent/US20170255685A1

## CPC

- G06F 8/70: Software maintenance or management
- G06F 9/4411: {Configuring for operating with peripheral devices; Loading of device drivers}
- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 2009/45579: {I/O management, e.g. providing access to device drivers or storage}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A virtual scan group manager (VSGM) can receive a plurality of respective sets of data from a plurality of respective devices. The VSGM can allocate respective portions of the plurality of respective sets of data to respective virtual scan groups (VSGs). The VSGs can be processed by storing the data contained in each VSG in a data repository. Respective sets of data stored in the data repository can be catalogued in a VSGM logfile.

## Claims

### Claim 1

A method comprising:
receiving, at a virtual scan group manager (VSGM) stored on a software asset management (SAM) server, a plurality of respective device scans from a plurality of respective devices;
determining, for each respective device scan, a respective size of the respective device scan and a respective interval between a previous device scan and a current device scan for the respective device;
selecting respective device scans having a respective interval between a previous device scan and a current device scan above a time threshold;
compiling selected device scans in a plurality of respective virtual scan groups (VSGs);
processing the plurality of VSGs containing selected device scans by loading respective device scans of each respective VSG into a data repository stored on the SAM server; and
recording each processed device scan in a VSGM logfile stored in the VSGM.

### Claim 2 (depends on 1)

The method of claim 1, wherein each respective VSG is a similar size such that a difference in processing time between two respective VSGs of the plurality of VSGs is less than a predetermined percentage of a longest processing time of the two respective VSGs, and wherein the selected device scans are compiled in the plurality of VSGs based on respective sizes of the selected respective device scans.

### Claim 3 (depends on 1)

The method of claim 1, wherein recording each processed device scan in a VSGM logfile comprises recording a respective device identification, a respective scan size, and a respective date and time of each processed device scan.

### Claim 4 (depends on 1)

The method of claim 1, wherein compiling the selected device scans in the plurality of respective VSGs comprises a round-robin scheduling procedure.

### Claim 5 (depends on 4)

The method of claim 4, wherein the round-robin scheduling procedure further comprises:
calculating, for each respective device scan, a respective value representing a respective device number modulo the plurality of VSGs; and
compiling each respective device scan having a same respective value in a same VSG.

### Claim 6 (depends on 1)

The method of claim 1, wherein determining a respective size and a respective interval for each respective device scan further comprises determining a respective proportion of changed content of a current device scan relative to a previous device scan for each respective device; and
wherein the plurality of VSGs are processed in sequential order based on a proportion of changed content of respective device scans in each respective VSG such that respective VSGs having a higher proportion of changed content are processed before respective VSGs having a lower proportion of changed content.

### Claim 7 (depends on 1)

The method of claim 1, further comprising:
deferring respective device scans having a respective time interval between a previous device scan and a current device scan below the time threshold;
compiling one or more deferred device scans in one or more VSGs; and
processing the one or more VSGs containing deferred device scans after processing the plurality of VSGs containing selected device scans.

### Claim 8

A system comprising:
a software asset management (SAM) server containing a virtual scan group manager (VSGM) and a data repository, wherein the VSGM is communicatively coupled to a plurality of devices producing a plurality of respective device scans, wherein the VSGM comprises a processor and a memory storing a VSGM logfile, the processor configured to:
initiate an extract, transform, load (ETL) cycle to retrieve the plurality of respective device scans from the plurality of respective devices;
quantify a respective size of each respective device scan and a respective interval between a previous device scan and a current device scan for each respective device;
allocate each respective device scan having a respective interval above an interval threshold to a virtual scan group (VSG) of a plurality of VSGs;
load each respective VSG containing respective device scans having respective intervals above the interval threshold to the data repository; and
update the VSGM logfile with a respective instance for each respective device scan loaded to the data repository.

### Claim 9 (depends on 8)

The system of claim 8, wherein each respective instance of the VSGM logfile comprises a respective date and time, a respective device scan size, and a respective device identification.

### Claim 10 (depends on 8)

The system of claim 8, wherein each respective VSG is a same size, and wherein the plurality of VSGs is based on the respective sizes of the respective device scans.

### Claim 11 (depends on 8)

The system of claim 8, wherein the processor configured to allocate each respective device scan having a respective interval above an interval threshold to a respective VSG is further configured to allocate each respective device scan according to a round-robin scheduling procedure.

### Claim 12 (depends on 11)

The system of claim 11, wherein the round-robin scheduling procedure further comprises:
calculating, for each respective device scan, a respective value representing a respective device number modulo the plurality of VSGs; and
compiling each device scan having a same respective value in a same VSG.

### Claim 13 (depends on 8)

The system of claim 8, wherein to quantify a respective size and a respective interval for each respective device scan, the processor is further configured to quantify a respective proportion of changed content of a current device scan relative to a previous device scan for each respective device; and
wherein the processor configured to load each respective VSG containing respective device scans having respective intervals above the interval threshold is further configured to load respective VSGs in a sequential order based on a proportion of changed content of a plurality of device scans in each respective VSG such that respective VSGs having a higher proportion of changed content are processed before respective VSGs having a lower proportion of changed content.

### Claim 14 (depends on 8)

The system of claim 8, wherein the processor is further configured to:
defer respective device scans having a respective time interval between a previous device scan and a current device scan below the interval threshold;
allocate one or more deferred device scans in one or more VSGs; and
load each respective VSG containing device scans having an interval below the interval threshold after loading each respective VSG containing device scans having an interval above the interval threshold.

### Claim 15

A computer program product comprising a computer readable storage medium having program instructions embodied therewith, wherein the computer readable storage medium is not a transitory signal per se, the program instructions executable by a processor to cause the processor to:
extract respective sets of data from a plurality of devices;
determine, for each respective set of data, a respective size of the respective set of data and a respective interval between a last time the respective set of data was stored and a current time;
generate a plurality of virtual scan groups (VSGs) based on a quantity of respective sets of data, respective sizes of the respective sets of data, and respective intervals of the respective sets of data;
populate each respective VSG with a plurality of respective sets of data having a respective interval above an interval threshold;
process each respective VSG by storing the plurality of respective sets of data of each respective VSG in a database; and
write, to a virtual scan group manager (VSGM) logfile, information regarding each respective set of data that is stored in the database.

### Claim 16 (depends on 15)

The computer program product of claim 15, wherein to determine a respective interval the program instructions are further configured to further cause the processor to query a VSGM logfile, wherein the VSGM logfile contains, for each respective instance, a respective device identification, a respective size of a respective set of data, and a respective date when the respective set of data was stored in the database.

### Claim 17 (depends on 15)

The computer program product of claim 15, wherein the program instructions configured to cause the processor to populate each respective VSG are further configured to further cause the processor to:
calculate, for each respective set of data having an interval above the interval threshold, a respective value representing a respective device number modulo the plurality of VSGs; and
compile each respective set of data having a same respective value in a same VSG.

### Claim 18 (depends on 15)

The computer program product of claim 15, wherein the program instructions configured to cause the processor to determine a respective size and a respective interval for each respective set of data are further configured to further cause the processor to determine a respective proportion of changed content of a current set of data relative to a previous set of data for each respective set of data; and
wherein the program instructions configured to cause the processor to process each respective VSG are further configured to further cause the processor to process each respective VSG in a sequential order based on a proportion of changed content of respective sets of data in each respective VSG such that respective VSGs having a higher proportion of changed content are processed before respective VSGs having a lower proportion of changed content.

### Claim 19 (depends on 15)

The computer program product of claim 15, wherein the program instructions are further configured to further cause the processor to:
defer respective sets of data having a respective interval below the interval threshold;
populate one or more deferred VSGs with one or more deferred sets of data; and
process, in response to processing the one or more VSGs containing respective sets of data having an interval above the interval threshold, the one or more deferred VSGs.

### Claim 20 (depends on 15)

The computer program product of claim 15, wherein each respective VSG is a same size such that a respective VSG of a set of VSGs processes its data within 25% of a longest time a respective VSG of the set of VSGs processes its data.
