HCL Commerce Version 9.1.11.0 or later

The indexing build summary report

An indexing build status report is created at the end of each full re-indexing Ingest operation. You can use this report to optimize the different stages of the index process, and troubleshoot issues such as longer-than-expected processing times.

How the report is generated

Each time you perform an indexing run, a runId is generated for the process. For example, consider the following indexing query.
https://ingest-server:port/connectors/auth.reindex/run?storeId=11&envType=auth
The process returns an identifying runId JSON token pair. For example:
{
    "runId": "05abc9b9-6b1c-4215-a300-b4e9adae586a"
}
You can call the indexing build report by inputting this runId value in a call to the /status endpoint of the auth.reindex process.
https://ingest.demoqa.hclcomdev4.com/connectors/auth.reindex/runs/05abc9b9-6b1c-4215-a300-b4e9adae586a/status

The response is an extensive report that includes process information, database calls, and the duration of each subprocess. You can review the Sample index build status report. The sections, values and measures used for each are presented below.

Interpreting the indexing build summary report

The report is a single document containing three sections:
  • A summary of messages collected during the run.
  • An overall description of the Ingest operation.
  • Statistics collected at each stage,such as SQL response times, number of documents processed, and elapsed times for the different parts of the run.

Summary

The first section of the report contains the start and end time according to standard GMT, then the unique run identifier for the process. After that it contains any parameters that were passed in to this ingest operation. This is important information collected out of the run for the given Store and Catalog.
{
	"start": "2023-02-08T03:27:15.627Z",
	"end": "2023-02-08T03:50:27.339Z",
	"run": "i-1a282ccf-dc44-4844-97ba-74a9b546f912",
	"parameters": {
		"connector": "auth.reindex",
		"store": "1"
	},

Messages

The second section of the report contains an overall status of each message type (Informational, Warning, Error), a brief description of each encountered message code and the location where they were found.
	"attributes": {
		"supported.catalog": "10502, 10001, 10501",
		"supported.language": "-5, -2, -1",
		"master.catalog": "10001",
		"default.catalog": "10502",
		"default.language": "-1",
		"default.contract": "10005",
		"default.currency": "USD",
		"flow.database.listagg": "true",
		"flow.language.fallback": "true",
		"flow.version": "9112"
	},
	"severities": {
		"I": "16"
	},
	"codes": {
		"DI0002I": "14",
		"DI0003I": "2"
	},
	"messages": {
		"DI0002I": "Successfully initialized {0} index schema",
		"DI0003I": "Run {0} of connector {1} for catalog {2} in store {3} have been processed successfully in {4} seconds"
	},
	"locations": {
		"info": {
			"Others": "14",
			"Terminal Stage": "2"
		}
	},

Elapsed time and processing speed

The report includes several sections that can help you determine execution times for various processes.

elapsed
This section contains the overall absolute ingest times (in milliseconds) and its corresponding stage level breakdown, as well as the cumulative elapsed time (in milliseconds from all processing threads) spent at each stage. It includes a rollup total (in milliseconds) for each index type.
The bulk elapsed time is a cumulative elapsed time (in milliseconds, from all processing threads) spent inside of the Bulk Service of each index type. This cumulative elapsed time should not be interpreted as the absolute elapsed time spent at that stage.
"elapsed": {
		"absolute": {
			"connector": "1391712",
			"stages": {
				"Attribute Stage 1a (Database)": "388719",
				"Attribute Stage 1b (Database)": "392137",
				"Catalog Stage 1a (Database)": "23977",
				"Catalog Stage 1b (Database)": "3752",
				"Category Stage 1a (Database)": "23913",
				"Category Stage 1b (Database)": "8550",
				"Category Stage 1d (Database)": "15985",
				"Price Stage 1a (Database)": "389369",
				"Price Stage 1b (Database)": "368857",
				"Price Stage 2": "363395",
				"Product Stage 1a (Database)": "398499",
				"Product Stage 1b (Database)": "359561",
				"Product Stage 1e (Database)": "367804",
				"Product Stage 1h (Database)": "360557",
				"Product Stage 1i (Database)": "362583",
				"URL Stage 1a (Database)": "375215",
				"URL Stage 1b (Database)": "372985",
				"URL Stage 1c (Database)": "357129",
				"URL Stage 1e (Database)": "357906",
				"URL Stage 1f (Database)": "373172"
			}
		},
		"cumulative": {
			"summary": {
				"Attribute Pipeline": "30354",
				"Catalog Pipeline": "56444",
				"Category Pipeline": "149355",
				"Price Pipeline": "44645",
				"Product Pipeline": "178951",
				"Store Pipeline": "2516831",
				"URL Pipeline": "215828"
			},
			"stages": {
				"Attribute Stage 1a (Database)": "14001",
				"Attribute Stage 1b (Database)": "16353",
				"Catalog Stage 1a (Database)": "51404",
				"Catalog Stage 1b (Database)": "5040",
				"Category Stage 1a (Database)": "52158",
				"Category Stage 1b (Database)": "85888",
				"Category Stage 1d (Database)": "11309",
				"Price Stage 1a (Database)": "30089",
				"Price Stage 1b (Database)": "14556",
				"Product Stage 1a (Database)": "24165",
				"Product Stage 1b (Database)": "47434",
				"Product Stage 1e (Database)": "40016",
				"Product Stage 1h (Database)": "35144",
				"Product Stage 1i (Database)": "32192",
				"Store Stage 1 (Database)": "2516831",
				"URL Stage 1a (Database)": "95107",
				"URL Stage 1b (Database)": "43613",
				"URL Stage 1c (Database)": "46775",
				"URL Stage 1e (Database)": "16549",
				"URL Stage 1f (Database)": "13784"
			},
			"bulk": {
				"Attribute Stage 1a (Database)": "5882",
				"Attribute Stage 1b (Database)": "6113",
				"Catalog Stage 1a (Database)": "26680",
				"Category Stage 1a (Database)": "18708",
				"Category Stage 1b (Database)": "16279",
				"Category Stage 1d (Database)": "5338",
				"Price Stage 1a (Database)": "19485",
				"Price Stage 1b (Database)": "5834",
				"Product Stage 1a (Database)": "11655",
				"Product Stage 1b (Database)": "16584",
				"Product Stage 1e (Database)": "13505",
				"Product Stage 1h (Database)": "18351",
				"Product Stage 1i (Database)": "16888",
				"Store Stage 1 (Database)": "2953",
				"URL Stage 1a (Database)": "31512",
				"URL Stage 1b (Database)": "25061",
				"URL Stage 1c (Database)": "15489",
				"URL Stage 1e (Database)": "3783",
				"URL Stage 1f (Database)": "5523"
			}
		}
	},
processed
This section provides a total of all successfully completed index document creation and update operations. It includes the total number of bytes written to Elasticsearch from each of the listed stages.
"processed": {
		"created": {
			"Attribute Stage 1a (Database)": "194",
			"Catalog Stage 1a (Database)": "1",
			"Category Stage 1a (Database)": "56",
			"Product Stage 1a (Database)": "3921",
			"Store Stage 1 (Database)": "12",
			"URL Stage 1a (Database)": "112",
			"URL Stage 1b (Database)": "7836",
			"URL Stage 1f (Database)": "11"
		},
		"updated": {
			"Attribute Stage 1b (Database)": "143",
			"Category Stage 1b (Database)": "56",
			"Category Stage 1d (Database)": "111",
			"Price Stage 1a (Database)": "3918",
			"Price Stage 1b (Database)": "2",
			"Product Stage 1b (Database)": "2930",
			"Product Stage 1e (Database)": "3916",
			"Product Stage 1h (Database)": "3926",
			"Product Stage 1i (Database)": "3921",
			"STA Stage 1 (Database)": "0",
			"Store Stage 1 (Database)": "3",
			"URL Stage 1c (Database)": "45",
			"URL Stage 1e (Database)": "2"
		},
		"failures": {
			"Attribute Stage 1a (Database)": "0",
			"Attribute Stage 1b (Database)": "0",
			"Catalog Stage 1a (Database)": "0",
			"Category Stage 1a (Database)": "0",
			"Category Stage 1b (Database)": "0",
			"Category Stage 1d (Database)": "0",
			"Price Stage 1a (Database)": "0",
			"Price Stage 1b (Database)": "0",
			"Product Stage 1a (Database)": "0",
			"Product Stage 1b (Database)": "0",
			"Product Stage 1e (Database)": "0",
			"Product Stage 1h (Database)": "0",
			"Product Stage 1i (Database)": "0",
			"Store Stage 1 (Database)": "0",
			"URL Stage 1a (Database)": "0",
			"URL Stage 1b (Database)": "0",
			"URL Stage 1c (Database)": "0",
			"URL Stage 1e (Database)": "0",
			"URL Stage 1f (Database)": "0"
		},
		"sizes": {
			"Attribute Stage 1a (Database)": "489675",
			"Attribute Stage 1b (Database)": "598803",
			"Catalog Stage 1a (Database)": "5913",
			"Category Stage 1a (Database)": "309371",
			"Category Stage 1b (Database)": "330336",
			"Category Stage 1d (Database)": "78642",
			"Price Stage 1a (Database)": "3313032",
			"Price Stage 1b (Database)": "1695",
			"Product Stage 1a (Database)": "15419202",
			"Product Stage 1b (Database)": "2259834",
			"Product Stage 1e (Database)": "66356979",
			"Product Stage 1h (Database)": "3964626",
			"Product Stage 1i (Database)": "5908305",
			"Store Stage 1 (Database)": "9789",
			"URL Stage 1a (Database)": "432404",
			"URL Stage 1b (Database)": "17249612",
			"URL Stage 1c (Database)": "61830",
			"URL Stage 1e (Database)": "1022",
			"URL Stage 1f (Database)": "27831"
		},
		"speed": {
			"Attribute Stage 1a (Database)": "1.00",
			"Attribute Stage 1b (Database)": "1.00",
			"Catalog Stage 1a (Database)": "0.00",
			"Category Stage 1a (Database)": "12.00",
			"Category Stage 1b (Database)": "38.00",
			"Category Stage 1d (Database)": "4.00",
			"Price Stage 1a (Database)": "8.00",
			"Price Stage 1b (Database)": "0.00",
			"Product Stage 1a (Database)": "38.00",
			"Product Stage 1b (Database)": "6.00",
			"Product Stage 1e (Database)": "180.00",
			"Product Stage 1h (Database)": "10.00",
			"Product Stage 1i (Database)": "16.00",
			"URL Stage 1a (Database)": "1.00",
			"URL Stage 1b (Database)": "46.00",
			"URL Stage 1c (Database)": "0.00",
			"URL Stage 1e (Database)": "0.00",
			"URL Stage 1f (Database)": "0.00"
		}
	},
The speed section provides a stage level summary of the overall average throughput in documents per second.
sql
The final subsection reports the cumulative total SQL execution time and SQL fetch time for each of the listed stages. SQL execution time is the time taken for the database to optimize and run the SQL, while the fetch time is the elapsed time for each batch of data to be returned from the query result-set in the database.
"sql": {
		"execution": {
			"Attribute Stage 1a (Database)": "387",
			"Attribute Stage 1b (Database)": "1071",
			"Catalog Stage 1a (Database)": "238",
			"Catalog Stage 1b (Database)": "108",
			"Category Stage 1a (Database)": "1631",
			"Category Stage 1b (Database)": "2123",
			"Price Stage 1a (Database)": "3500",
			"Price Stage 1b (Database)": "586",
			"Product Stage 1a (Database)": "8720",
			"Product Stage 1b (Database)": "407",
			"Product Stage 1e (Database)": "4456",
			"Product Stage 1h (Database)": "153",
			"Product Stage 1i (Database)": "284",
			"Store Stage 1 (Database)": "29",
			"URL Stage 1a (Database)": "6543",
			"URL Stage 1b (Database)": "956",
			"URL Stage 1c (Database)": "582",
			"URL Stage 1e (Database)": "197",
			"URL Stage 1f (Database)": "460"
		},
		"fetch": {
			"Attribute Stage 1a (Database)": "28",
			"Attribute Stage 1b (Database)": "32",
			"Catalog Stage 1a (Database)": "23",
			"Catalog Stage 1b (Database)": "6",
			"Category Stage 1a (Database)": "52",
			"Category Stage 1b (Database)": "28",
			"Price Stage 1a (Database)": "140",
			"Price Stage 1b (Database)": "3",
			"Product Stage 1a (Database)": "382",
			"Product Stage 1b (Database)": "3",
			"Product Stage 1e (Database)": "967",
			"Product Stage 1h (Database)": "53",
			"Product Stage 1i (Database)": "95",
			"Store Stage 1 (Database)": "6",
			"URL Stage 1a (Database)": "24",
			"URL Stage 1b (Database)": "566",
			"URL Stage 1c (Database)": "10",
			"URL Stage 1e (Database)": "2",
			"URL Stage 1f (Database)": "7"
		}
	}
}
HCL Commerce Version 9.1.15.0 or later

Tuning parameters to improve performance

concurrentTasks
This parameter controls the number of tasks that should be concurrently scheduled for the main processor of a stage. If a stage needs to process a large amount of data, then increasing the number of concurrent tasks may improve performance.
"concurrentTasks": { 
            "Store Stage 1 (Store Document)": 1, 
            "Store Stage 1 (Supported Languages)": 1, 
            "Store Stage 1 (Supported Catalogs)": 1, 
            "Store Stage 1 (Configurations)": 1, 
            "Store Stage 1 (Store Locations)": 1, 
            "STA Stage 1 (STA)": 1, 
            "Catalog Stage 1a (Catalog Document)": 1, 
            "Category Stage 1a (Category Document)": 1, 
            "STA Stage 2 (External STA)": 1, 
            "Category Stage 1d (Hierarchy)": 1, 
            "Attribute Stage 1a (Attribute Document)": 1, 
            "Category Stage 1b (Facets)": 2, 
            "Attribute Stage 1b (Attribute Values)": 8, 
            "Product Stage 1a (Product Document)": 8, 
            "Product Stage 1h (Child Items)": 4, 
            "Product Stage 1i (Parent Category)": 4, 
            "Product Stage 1b (Enrich Document - Overrides)": 4, 
            "Product Stage 1b (Enrich Document - Entitlements)": 4, 
            "Product Stage 1b (Enrich Document - Associations)": 4, 
            "Product Stage 1b (Enrich Document - Attachments)": 4, 
            "Product Stage 1e (Find Attributes)": 8, 
            "Price Stage 1a (Product Prices)": 8, 
            "Price Stage 1b (Bundle Prices)": 4, 
            "Price Stage 1c (Copy Prices From ES)": 1, 
            "Inventory Stage 1 (Product Inventory)": 8, 
            "Page Stage 1 (Page Document)": 1, 
            "Category Stage 1c (Long Descriptions)": 4, 
            "Product Stage 1g (Long Descriptions)": 4 
        },
bucketSize
This section shows the maximum number of rows per flow file. If you increase the bucket size, there will be fewer flow files but each flow file will contain more data to process. If you decrease the bucket size, each flow file contains less data to process but there will be more flow files.
Note: The number of business objects contained in the flow file is half of the bucket size, because each business object uses two rows. For example, the bucket size for Product Stage 1a is 200 by default. This means that each file contains at most 100 catalog entries.
"bucketSize": { 
            "STA Stage 1 (STA)": 1500, 
            "Catalog Stage 1a (Catalog Document)": 1500, 
            "Category Stage 1a (Category Document)": 1000, 
            "Category Stage 1d (Hierarchy)": 1000, 
            "Attribute Stage 1a (Attribute Document)": 1000, 
            "Category Stage 1b (Facets)": 1000, 
            "Attribute Stage 1b (Attribute Values)": 1000, 
            "Product Stage 1a (Product Document)": 200, 
            "Product Stage 1h (Child Items)": 200, 
            "Product Stage 1i (Parent Category)": 200, 
            "Product Stage 1b (Enrich Document - Overrides)": 200, 
            "Product Stage 1b (Enrich Document - Entitlements)": 200, 
            "Product Stage 1b (Enrich Document - Associations)": 200, 
            "Product Stage 1b (Enrich Document - Attachments)": 200, 
            "Product Stage 1e (Find Attributes)": 200, 
            "Price Stage 1a (Product Prices)": 200, 
            "Price Stage 1b (Bundle Prices)": 200, 
            "Price Stage 1c (Copy Prices From ES)": 200, 
            "Inventory Stage 1 (Product Inventory)": 200, 
            "Page Stage 1 (Page Document)": 2000, 
            "Category Stage 1c (Long Descriptions)": 15000, 
            "Product Stage 1g (Long Descriptions)": 2000 
        }, 
pageSize
The Page size parameter limits the number of rows returned by an SQL query execution (FETCH NEXT n ROWS ONLY). If the number of rows returned exceeds the page size, then the SQL will be executed multiple times and each time only return the maximum number of rows specified by the page size.
Note that not all stages’ SQL use the pageSize parameter. It is useful when the stage will process a large amount of data. Some stages, such as Catalog Stage 1a, do not typically use enough data to cause pageSize to be invoked even if it is included.
"pageSize": { 
            "Category Stage 1a (Category Document)": 10000, 
            "Category Stage 1d (Hierarchy)": 10000, 
            "Attribute Stage 1a (Attribute Document)": 1000000, 
            "Category Stage 1b (Facets)": 10000, 
            "Attribute Stage 1b (Attribute Values)": 1000000, 
            "Product Stage 1a (Product Document)": 100000, 
            "Product Stage 1h (Child Items)": 100000, 
            "Product Stage 1i (Parent Category)": 100000, 
            "Product Stage 1b (Enrich Document - Overrides)": 100000, 
            "Product Stage 1b (Enrich Document - Entitlements)": 100000, 
            "Product Stage 1b (Enrich Document - Associations)": 100000, 
            "Product Stage 1b (Enrich Document - Attachments)": 100000, 
            "Product Stage 1e (Find Attributes)": 100000, 
            "Price Stage 1a (Product Prices)": 100000, 
            "Price Stage 1b (Bundle Prices)": 100000, 
            "Price Stage 1c (Copy Prices From ES)": 100000, 
            "Inventory Stage 1 (Product Inventory)": 100000, 
            "Category Stage 1c (Long Descriptions)": 1000000, 
            "Product Stage 1g (Long Descriptions)": 1000000 
        } 
counter
Each Ingest stage includes a calculation of the average dataflow payload and average bulk ingest processing time. This metric is called the Total Flowfile Count and each ingest stage has one such counter.
"counter": { 
           "Attribute Stage la (Database) ": "1", 
           "Attribute Stage 1b (Database) ": "1", 
           "Catalog Stage la (Database) ": "1", 
           "Catalog Stage 1b (Database) ": "1", 
           "Category Stage la (Database) ": "1", 
           "Category Stage 1b (Database) ": "1", 
           "Category Stage Ic (Database) ": "1", 
           "Category Stage Id (Database) ": "1", 
           "Inventory Stage la (Database) ": "1", 
           "Inventory Stage 1b (Database) ": "2", 
           "Inventory Stage 2": "2", 
           "NLP Service": "2"
           "Price Stage la (Database) ": "4",
           "Price Stage 1b (Database) ": "1", 
           "Product Stage la (Database) ": "2", 
           "Product Stage 1b (Database) ": "1", 
           "Product Stage le (Attributes) " : "20",
           "Product Stage Ig (Database) ": "2", 
           "Product Stage Ih (Database) ": "18", 
           "Product Stage Ii (Database) ": "2", 
           "STA Stage 1 (Database) ": "15", 
           "Store Stage 1 (Database) ": "1", 
           "URL Stage 1a (Database)": "1"
           "URL Stage 1b (Database)": "2"
           "URL Stage 1c (Database)": "1"
           "URL Stage 1f (Database)": "1"
}
database
You can use the database parameter to help you review catalog data in the Summary. The database data contains information about the size of store, catalog, attribute, inventory, contract in the database. Note that this applies to the entire database rather than any specific store.
"database": { 
            "total.allowed.attribute.values": "975", 
            "total.allowed.value.attributes": "137", 
            "total.assigned.attribute.values": "2146", 
            "total.assigned.value.attributes": "80", 
            "total.attribute.values": "3131", 
            "total.attributes": "217", 
            "total.b2b.storefront.asset.stores": "3", 
            "total.b2b.stores": "5", 
            "total.b2c.storefront.asset.stores": "3", 
            "total.b2c.stores": "5", 
            "total.catalog.asset.stores": "2", 
            "total.catalogs": "6", 
            "total.categories": "75", 
            "total.catentries": "4248", 
            "total.catentry.attributes": "12613", 
            "total.catentry.defining.attributes": "9883", 
            "total.catentry.descriptive.attributes": "2730", 
            "total.contracts": "46", 
            "total.facetable.attributes": "15", 
            "total.inventories": "870160", 
            "total.items": "3519", 
            "total.master.catalogs": "2", 
            "total.offer.pricelists": "12", 
            "total.offerprices": "8476", 
            "total.offers": "8476", 
            "total.other.catenties": "12", 
            "total.pricelists": "25", 
            "total.products": "717", 
            "total.stores": "23", 
            "total.supported.languages": "1" 
        }, 
These parameters are defined as follows:
total.allowed.attribute.values
Total number of allowed attribute values in the ATTRVAL table with value usage of “1” or “2”.
total.allowed.value.attributes
Total number of allowed value attributes in the ATTR table with ATTRUSAGE as 1
total.assigned.attribute.values
Total number of assigned attribute values in the ATTRVAL table with value usage as null.
total.assigned.value.attributes
Total number of assigned value attributes in the ATTR table with ATTRUSAGE as 2 or null.
total.attribute.values
Total number of attribute values in the ATTRVAL table.
total.attributes
Total number of attributes in the ATTR table.
total.b2b.storefront.asset.stores
Total number of b2b storefront asset stores with store type of “BMP”.
total.b2b.stores
Total number of b2b stores with store type of “BMH”.
total.b2c.storefront.asset.stores
Total number of b2b storefront asset stores with store type of “MPS”.
total.b2c.stores
Total number of b2b storefront asset stores with store type of “MHS”.
total.catalog.asset.stores
Total number of catalog asset stores with store type of “CPS”.
total.catalogs
Total number of catalogs in the STORECAT table.
total.categories
Total number of all categories in database.
total.catentries
Total number of all catalog entries in database.
total.catentry.attributes
Total number of catalog entry attributes (CATENTATTR table).
total.catentry.defining.attributes
Total number of catalog entry defining attributes (CATENTATTR table with usage of “1”).
total.catentry.descriptive.attributes
Total number of catalog entry descriptive attributes (CATENTATTR table with usage of “2”).
total.contracts
Total number of active contracts (CONTRACT table with state of “3”).
total.facetable.attributes
Total number of facetable attributes.
total.inventories
Total number of inventories (INVENTORY table).
total.items
Total number of items, including product items and category level items.
total.master.catalogs
Total number of master catalogs.
total.offer.pricelists
Total number of default offer price lists.
total.offerprices
Total number of prices in OFFERPRICE table.
total.offers
Total number of valid offers in OFFER table.
total.other.catenties
Total number of other catalog entries except products and product items.
total.pricelists
Total number of price lists in TRADEPOSCN table.
total.products
Total number of products.
total.stores
Total number of all stores.
total.supported.languages
Total number of supported languages in all extended site stores.