From e1712c8f5d4e9686832e5d07edcd5954c893f634 Mon Sep 17 00:00:00 2001 From: Dmytro Poperechnyy Date: Wed, 17 Feb 2021 10:27:38 -0600 Subject: [PATCH 01/12] Customer Group Limitations by Websites --- src/_data/toc/php-developer-guide.yml | 8 ++++---- ...dexer-batch.md => indexer-optimization.md} | 19 +++++++++++++++++++ .../advanced-setup.md | 6 ++++++ 3 files changed, 29 insertions(+), 4 deletions(-) rename src/guides/v2.4/extension-dev-guide/{indexer-batch.md => indexer-optimization.md} (82%) diff --git a/src/_data/toc/php-developer-guide.yml b/src/_data/toc/php-developer-guide.yml index c48762ad1b2..ef65baff106 100644 --- a/src/_data/toc/php-developer-guide.yml +++ b/src/_data/toc/php-developer-guide.yml @@ -122,7 +122,7 @@ pages: - label: Asynchronous/deferred operations url: /extension-dev-guide/async-operations.html - + - label: Service contracts url: /extension-dev-guide/service-contracts/service-contracts.html @@ -166,7 +166,7 @@ pages: url: /extension-dev-guide/indexing.html - label: Indexer optimization - url: /extension-dev-guide/indexer-batch.html + url: /extension-dev-guide/indexer-optimization.html - label: Adding a custom indexer url: /extension-dev-guide/indexing-custom.html @@ -214,7 +214,7 @@ pages: url: /extension-dev-guide/message-queues/implement-bulk.html - label: Handling outdated in-memory object states - url: /extension-dev-guide/message-queues/refresh-config.html + url: /extension-dev-guide/message-queues/refresh-config.html - label: Message queues overview url: /extension-dev-guide/message-queues/message-queues.html @@ -227,7 +227,7 @@ pages: - label: Adding extension attributes to entity url: /extension-dev-guide/extension_attributes/adding-attributes.html - + - label: Adding an admin grid url: /extension-dev-guide/admin-grid.html diff --git a/src/guides/v2.4/extension-dev-guide/indexer-batch.md b/src/guides/v2.4/extension-dev-guide/indexer-optimization.md similarity index 82% rename from src/guides/v2.4/extension-dev-guide/indexer-batch.md rename to src/guides/v2.4/extension-dev-guide/indexer-optimization.md index 04a305acbeb..10e40d605a2 100644 --- a/src/guides/v2.4/extension-dev-guide/indexer-batch.md +++ b/src/guides/v2.4/extension-dev-guide/indexer-optimization.md @@ -178,6 +178,25 @@ To determine whether any 3rd-party extensions are using the Product EAV indexer, To disable the Product EAV indexer in the Admin, go to **Stores** > Settings > **Configuration** > **Catalog** > **Catalog** > **Catalog Search** and set the value of **Enable EAV Indexer** to No. +## Customer group limitations by websites + +By default, all websites are assigned to a customer group. If there are a lot of products, websites and customer groups (shared catalogs), the indexation time of product price and catalog rule indexers can be heavily increased because websites, customer groups (shared catalogs) and product SKUs are multiplied in Product Price and Catalog Rule indexers related tables. + +It is possible to exclude websites from a customer group (shared catalog) on [customer group create or edit page](https://docs.magento.com/user-guide/customers/customer-groups.html#create-a-customer-group). It can decrease Product Price and Catalog Rule indexation time because excluded websites do not participate in indexation. + +When customer group with a new excluded website is saved, Product Price, Catalog Rule and Catalog Search indexes are invalidated. If you have many products, websites and customer groups, mind to pause your indexes reindex process for a while till all websites you need are excluded from customer groups. + +It is not possible to exclude websites from a shared catalog on a shared catalog create or edit page. It's possible to exclude websites from customer group that is created from shared catalog. + +{:.bs-callout-info} +No websites are excluded from a customer group or shared catalog by default. + +{:.bs-callout-info} +You cannot exclude websites from `NOT LOGGED IN` customer group. + +{:.bs-callout-warning} +When certain website is added to the excluded customer group, and the customer who belongs to this group is trying to login to the account on the excluded website, this user gets `"This website is excluded from customer's group."` warning. Customer is not allowed to login because there are no prices in index table for this user. + {:.ref-header} Related topics diff --git a/src/guides/v2.4/performance-best-practices/advanced-setup.md b/src/guides/v2.4/performance-best-practices/advanced-setup.md index dd711f662cb..cfb22c8eee5 100644 --- a/src/guides/v2.4/performance-best-practices/advanced-setup.md +++ b/src/guides/v2.4/performance-best-practices/advanced-setup.md @@ -27,6 +27,12 @@ For example, if you are running a profile similar to B2B Medium, you can overrid {:.bs-callout-info} We have not enabled batching for the catalog rules indexer. Merchants with a large number of catalog rules need to adjust their MySQL configuration to optimize indexing time. In this case, editing your MySQL configuration file and allocating more memory to the TMP_TABLE_SIZE and MAX_HEAP_TABLE_SIZE configuration values (the default is 16M for both) will improve performance for this indexer, but will result in MySQL consuming more RAM. +### Limit customer groups and shared catalogs by websites + +Big number of product SKUs, websites and customer groups or shared catalogs impacts indexation time of Product Price and Catalog Rule indexers because all websites are assigned to all customer groups (shared catalogs) by default. + +To decrease indexation time it's possible to [exclude certain websites from customer groups (shared catalogs)]({{page.baseurl}}/extension-dev-guide/indexer-optimization.html#customer-group-limitations-by-websites). + ## Set up Redis Sometimes one Redis instance is not enough to serve incoming requests. There are several solutions that we can recommend to address this situation. From 8177c89e00834475e1d3656510081b400fd2593f Mon Sep 17 00:00:00 2001 From: Dmytro Poperechnyy Date: Mon, 1 Mar 2021 10:51:20 -0600 Subject: [PATCH 02/12] Customer Group Limitations by Websites - Added documentations about customer account scope configuration; --- .../v2.4/extension-dev-guide/indexer-optimization.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/guides/v2.4/extension-dev-guide/indexer-optimization.md b/src/guides/v2.4/extension-dev-guide/indexer-optimization.md index 19707261620..fd029c9b613 100644 --- a/src/guides/v2.4/extension-dev-guide/indexer-optimization.md +++ b/src/guides/v2.4/extension-dev-guide/indexer-optimization.md @@ -193,11 +193,11 @@ To disable the Product EAV indexer in the Admin, go to **Stores** > Settings > * By default, all websites are assigned to a customer group. If there are a lot of products, websites and customer groups (shared catalogs), the indexation time of product price and catalog rule indexers can be heavily increased because websites, customer groups (shared catalogs) and product SKUs are multiplied in Product Price and Catalog Rule indexers related tables. -It is possible to exclude websites from a customer group (shared catalog) on [customer group create or edit page](https://docs.magento.com/user-guide/customers/customer-groups.html#create-a-customer-group). It can decrease Product Price and Catalog Rule indexation time because excluded websites do not participate in indexation. +It is possible to exclude websites from a customer group (shared catalog) on [customer group create/edit page](https://docs.magento.com/user-guide/customers/customer-groups.html#create-a-customer-group). It can decrease Product Price and Catalog Rule indexation time because excluded websites do not participate in indexation. When customer group with a new excluded website is saved, Product Price, Catalog Rule and Catalog Search indexes are invalidated. If you have many products, websites and customer groups, mind to pause your indexes reindex process for a while till all websites you need are excluded from customer groups. -It is not possible to exclude websites from a shared catalog on a shared catalog create or edit page. It's possible to exclude websites from customer group that is created from shared catalog. +It is not possible to exclude websites from a shared catalog on a shared catalog create/edit page. It's possible to exclude websites from customer group that is created from shared catalog. {:.bs-callout-info} No websites are excluded from a customer group or shared catalog by default. @@ -206,7 +206,8 @@ No websites are excluded from a customer group or shared catalog by default. You cannot exclude websites from `NOT LOGGED IN` customer group. {:.bs-callout-warning} -When certain website is added to the excluded customer group, and the customer who belongs to this group is trying to login to the account on the excluded website, this user gets `"This website is excluded from customer's group."` warning. Customer is not allowed to login because there are no prices in index table for this user. +When certain website is added to the excluded customer group, and the customer who belongs to this group is trying to login to the account on the excluded website, this user gets `"This website is excluded from customer's group."` warning. +Customer is not allowed to login to the website even if [the scope of customer accounts is shared with all websites](https://docs.magento.com/user-guide/customers/account-scope.html) because there are no prices in index table for this user. {:.ref-header} Related topics From 245f0c5e111b1255cde824438c14d83e86e0e641 Mon Sep 17 00:00:00 2001 From: Dmytro Poperechnyy Date: Wed, 10 Mar 2021 11:07:14 -0600 Subject: [PATCH 03/12] Update src/guides/v2.4/performance-best-practices/advanced-setup.md Co-authored-by: Barny Shergold --- src/guides/v2.4/performance-best-practices/advanced-setup.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/guides/v2.4/performance-best-practices/advanced-setup.md b/src/guides/v2.4/performance-best-practices/advanced-setup.md index cfb22c8eee5..6d693203baf 100644 --- a/src/guides/v2.4/performance-best-practices/advanced-setup.md +++ b/src/guides/v2.4/performance-best-practices/advanced-setup.md @@ -29,7 +29,7 @@ We have not enabled batching for the catalog rules indexer. Merchants with a lar ### Limit customer groups and shared catalogs by websites -Big number of product SKUs, websites and customer groups or shared catalogs impacts indexation time of Product Price and Catalog Rule indexers because all websites are assigned to all customer groups (shared catalogs) by default. +Large numbers of product SKUs, websites and customer groups or shared catalogs impacts the indexation time of Product Price and Catalog Rule indexers. This is because all websites are assigned to all customer groups (shared catalogs) by default. To decrease indexation time it's possible to [exclude certain websites from customer groups (shared catalogs)]({{page.baseurl}}/extension-dev-guide/indexer-optimization.html#customer-group-limitations-by-websites). From 87a5bad30c0c60706e30206db51888eed4f907c7 Mon Sep 17 00:00:00 2001 From: Dmytro Poperechnyy Date: Wed, 10 Mar 2021 11:13:06 -0600 Subject: [PATCH 04/12] Update src/guides/v2.4/extension-dev-guide/indexer-optimization.md Co-authored-by: Barny Shergold --- src/guides/v2.4/extension-dev-guide/indexer-optimization.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/guides/v2.4/extension-dev-guide/indexer-optimization.md b/src/guides/v2.4/extension-dev-guide/indexer-optimization.md index fd029c9b613..a93933c5b66 100644 --- a/src/guides/v2.4/extension-dev-guide/indexer-optimization.md +++ b/src/guides/v2.4/extension-dev-guide/indexer-optimization.md @@ -191,7 +191,7 @@ To disable the Product EAV indexer in the Admin, go to **Stores** > Settings > * ## Customer group limitations by websites -By default, all websites are assigned to a customer group. If there are a lot of products, websites and customer groups (shared catalogs), the indexation time of product price and catalog rule indexers can be heavily increased because websites, customer groups (shared catalogs) and product SKUs are multiplied in Product Price and Catalog Rule indexers related tables. +By default, all websites are assigned to a customer group. If there are a lot of products, websites and customer groups (shared catalogs), the indexation time of product price and catalog rule indexers can be heavily increased because websites, customer groups (shared catalogs) and product SKUs are multiplied in Product Price and Catalog Rule indexer related tables. It is possible to exclude websites from a customer group (shared catalog) on [customer group create/edit page](https://docs.magento.com/user-guide/customers/customer-groups.html#create-a-customer-group). It can decrease Product Price and Catalog Rule indexation time because excluded websites do not participate in indexation. From 2236e1c58f446bf1d7b81a2b2cebc0edcaab14d0 Mon Sep 17 00:00:00 2001 From: Dmytro Poperechnyy Date: Wed, 10 Mar 2021 11:13:16 -0600 Subject: [PATCH 05/12] Update src/guides/v2.4/extension-dev-guide/indexer-optimization.md Co-authored-by: Barny Shergold --- src/guides/v2.4/extension-dev-guide/indexer-optimization.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/guides/v2.4/extension-dev-guide/indexer-optimization.md b/src/guides/v2.4/extension-dev-guide/indexer-optimization.md index a93933c5b66..255be458c29 100644 --- a/src/guides/v2.4/extension-dev-guide/indexer-optimization.md +++ b/src/guides/v2.4/extension-dev-guide/indexer-optimization.md @@ -195,7 +195,7 @@ By default, all websites are assigned to a customer group. If there are a lot of It is possible to exclude websites from a customer group (shared catalog) on [customer group create/edit page](https://docs.magento.com/user-guide/customers/customer-groups.html#create-a-customer-group). It can decrease Product Price and Catalog Rule indexation time because excluded websites do not participate in indexation. -When customer group with a new excluded website is saved, Product Price, Catalog Rule and Catalog Search indexes are invalidated. If you have many products, websites and customer groups, mind to pause your indexes reindex process for a while till all websites you need are excluded from customer groups. +When a customer group with a new, excluded website is saved, Product Price, Catalog Rule and Catalog Search indexes are invalidated. If you have many products, websites and customer groups, it is recommended that you pause your reindex processes for a while until you have finished excluding websites from customer groups. It is not possible to exclude websites from a shared catalog on a shared catalog create/edit page. It's possible to exclude websites from customer group that is created from shared catalog. From 09068471abf4046a700437c76c65c4991a4ec808 Mon Sep 17 00:00:00 2001 From: Dmytro Poperechnyy Date: Wed, 10 Mar 2021 11:13:25 -0600 Subject: [PATCH 06/12] Update src/guides/v2.4/extension-dev-guide/indexer-optimization.md Co-authored-by: Barny Shergold --- src/guides/v2.4/extension-dev-guide/indexer-optimization.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/guides/v2.4/extension-dev-guide/indexer-optimization.md b/src/guides/v2.4/extension-dev-guide/indexer-optimization.md index 255be458c29..3fe031a4691 100644 --- a/src/guides/v2.4/extension-dev-guide/indexer-optimization.md +++ b/src/guides/v2.4/extension-dev-guide/indexer-optimization.md @@ -197,7 +197,7 @@ It is possible to exclude websites from a customer group (shared catalog) on [cu When a customer group with a new, excluded website is saved, Product Price, Catalog Rule and Catalog Search indexes are invalidated. If you have many products, websites and customer groups, it is recommended that you pause your reindex processes for a while until you have finished excluding websites from customer groups. -It is not possible to exclude websites from a shared catalog on a shared catalog create/edit page. It's possible to exclude websites from customer group that is created from shared catalog. +It is not possible to exclude websites from a shared catalog on a shared catalog create/edit page. It is possible to exclude websites from a customer group that is created from a shared catalog. {:.bs-callout-info} No websites are excluded from a customer group or shared catalog by default. From 4c2a9fbcbc1b1831530d36039dfd9668bd0426a8 Mon Sep 17 00:00:00 2001 From: Dmytro Poperechnyy Date: Wed, 10 Mar 2021 11:13:31 -0600 Subject: [PATCH 07/12] Update src/guides/v2.4/extension-dev-guide/indexer-optimization.md Co-authored-by: Barny Shergold --- src/guides/v2.4/extension-dev-guide/indexer-optimization.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/guides/v2.4/extension-dev-guide/indexer-optimization.md b/src/guides/v2.4/extension-dev-guide/indexer-optimization.md index 3fe031a4691..78eef278a1e 100644 --- a/src/guides/v2.4/extension-dev-guide/indexer-optimization.md +++ b/src/guides/v2.4/extension-dev-guide/indexer-optimization.md @@ -203,7 +203,7 @@ It is not possible to exclude websites from a shared catalog on a shared catalog No websites are excluded from a customer group or shared catalog by default. {:.bs-callout-info} -You cannot exclude websites from `NOT LOGGED IN` customer group. +You cannot exclude websites from the `NOT LOGGED IN` customer group. {:.bs-callout-warning} When certain website is added to the excluded customer group, and the customer who belongs to this group is trying to login to the account on the excluded website, this user gets `"This website is excluded from customer's group."` warning. From b2a26e3abaa9dee91f5a952dc842a20f8ccdbe17 Mon Sep 17 00:00:00 2001 From: Dmytro Poperechnyy Date: Wed, 10 Mar 2021 11:18:48 -0600 Subject: [PATCH 08/12] Update src/guides/v2.4/extension-dev-guide/indexer-optimization.md This warning comes from this observer: app/code/Magento/Customer/Observer/CustomerGroupAuthenticate.php Co-authored-by: Barny Shergold --- src/guides/v2.4/extension-dev-guide/indexer-optimization.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/guides/v2.4/extension-dev-guide/indexer-optimization.md b/src/guides/v2.4/extension-dev-guide/indexer-optimization.md index 78eef278a1e..e43cb73e27c 100644 --- a/src/guides/v2.4/extension-dev-guide/indexer-optimization.md +++ b/src/guides/v2.4/extension-dev-guide/indexer-optimization.md @@ -206,7 +206,7 @@ No websites are excluded from a customer group or shared catalog by default. You cannot exclude websites from the `NOT LOGGED IN` customer group. {:.bs-callout-warning} -When certain website is added to the excluded customer group, and the customer who belongs to this group is trying to login to the account on the excluded website, this user gets `"This website is excluded from customer's group."` warning. +When a website is added to the excluded customer group and a customer who belongs to this group is trying to login to their account on the excluded website, the customer gets the `"This website is excluded from customer's group."` warning. Customer is not allowed to login to the website even if [the scope of customer accounts is shared with all websites](https://docs.magento.com/user-guide/customers/account-scope.html) because there are no prices in index table for this user. {:.ref-header} From 3bd79268b7a010c51df50e2cf79ad211efe65caf Mon Sep 17 00:00:00 2001 From: Dmytro Poperechnyy Date: Wed, 10 Mar 2021 11:19:15 -0600 Subject: [PATCH 09/12] Update src/guides/v2.4/extension-dev-guide/indexer-optimization.md Co-authored-by: Barny Shergold --- src/guides/v2.4/extension-dev-guide/indexer-optimization.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/guides/v2.4/extension-dev-guide/indexer-optimization.md b/src/guides/v2.4/extension-dev-guide/indexer-optimization.md index e43cb73e27c..694d76cd8a9 100644 --- a/src/guides/v2.4/extension-dev-guide/indexer-optimization.md +++ b/src/guides/v2.4/extension-dev-guide/indexer-optimization.md @@ -193,7 +193,7 @@ To disable the Product EAV indexer in the Admin, go to **Stores** > Settings > * By default, all websites are assigned to a customer group. If there are a lot of products, websites and customer groups (shared catalogs), the indexation time of product price and catalog rule indexers can be heavily increased because websites, customer groups (shared catalogs) and product SKUs are multiplied in Product Price and Catalog Rule indexer related tables. -It is possible to exclude websites from a customer group (shared catalog) on [customer group create/edit page](https://docs.magento.com/user-guide/customers/customer-groups.html#create-a-customer-group). It can decrease Product Price and Catalog Rule indexation time because excluded websites do not participate in indexation. +It is possible to exclude websites from a customer group (shared catalog) on [customer group create/edit page](https://docs.magento.com/user-guide/customers/customer-groups.html#create-a-customer-group). This can decrease Product Price and Catalog Rule indexation time because excluded websites do not participate in indexation. When a customer group with a new, excluded website is saved, Product Price, Catalog Rule and Catalog Search indexes are invalidated. If you have many products, websites and customer groups, it is recommended that you pause your reindex processes for a while until you have finished excluding websites from customer groups. From c702e6371a80893711f0b5de2fcab0bb53517325 Mon Sep 17 00:00:00 2001 From: Dmytro Poperechnyy Date: Wed, 10 Mar 2021 11:19:24 -0600 Subject: [PATCH 10/12] Update src/guides/v2.4/extension-dev-guide/indexer-optimization.md Co-authored-by: Barny Shergold --- src/guides/v2.4/extension-dev-guide/indexer-optimization.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/guides/v2.4/extension-dev-guide/indexer-optimization.md b/src/guides/v2.4/extension-dev-guide/indexer-optimization.md index 694d76cd8a9..65b68c342fa 100644 --- a/src/guides/v2.4/extension-dev-guide/indexer-optimization.md +++ b/src/guides/v2.4/extension-dev-guide/indexer-optimization.md @@ -207,7 +207,7 @@ You cannot exclude websites from the `NOT LOGGED IN` customer group. {:.bs-callout-warning} When a website is added to the excluded customer group and a customer who belongs to this group is trying to login to their account on the excluded website, the customer gets the `"This website is excluded from customer's group."` warning. -Customer is not allowed to login to the website even if [the scope of customer accounts is shared with all websites](https://docs.magento.com/user-guide/customers/account-scope.html) because there are no prices in index table for this user. +Customers are not allowed to login to the website even if [the scope of customer accounts is shared with all websites](https://docs.magento.com/user-guide/customers/account-scope.html) because there are no prices in the index table for this user. {:.ref-header} Related topics From 56b17bc416daaaf4bcb29b50c042e475708c5f51 Mon Sep 17 00:00:00 2001 From: Dmytro Poperechnyy Date: Wed, 10 Mar 2021 18:06:34 -0600 Subject: [PATCH 11/12] Update src/guides/v2.4/extension-dev-guide/indexer-optimization.md Co-authored-by: Barny Shergold --- src/guides/v2.4/extension-dev-guide/indexer-optimization.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/guides/v2.4/extension-dev-guide/indexer-optimization.md b/src/guides/v2.4/extension-dev-guide/indexer-optimization.md index 65b68c342fa..e432e3b8698 100644 --- a/src/guides/v2.4/extension-dev-guide/indexer-optimization.md +++ b/src/guides/v2.4/extension-dev-guide/indexer-optimization.md @@ -193,7 +193,7 @@ To disable the Product EAV indexer in the Admin, go to **Stores** > Settings > * By default, all websites are assigned to a customer group. If there are a lot of products, websites and customer groups (shared catalogs), the indexation time of product price and catalog rule indexers can be heavily increased because websites, customer groups (shared catalogs) and product SKUs are multiplied in Product Price and Catalog Rule indexer related tables. -It is possible to exclude websites from a customer group (shared catalog) on [customer group create/edit page](https://docs.magento.com/user-guide/customers/customer-groups.html#create-a-customer-group). This can decrease Product Price and Catalog Rule indexation time because excluded websites do not participate in indexation. +It is possible to exclude websites from a customer group (shared catalog) on [customer group create/edit page](https://docs.magento.com/user-guide/customers/customer-groups.html#create-a-customer-group). This can decrease Product Price and Catalog Rule indexation time because excluded websites do not participate in indexation. When a customer group with a new, excluded website is saved, Product Price, Catalog Rule and Catalog Search indexes are invalidated. If you have many products, websites and customer groups, it is recommended that you pause your reindex processes for a while until you have finished excluding websites from customer groups. From f97dbc8192acc07b714d57e4527360911a4697b0 Mon Sep 17 00:00:00 2001 From: Dmytro Poperechnyy Date: Wed, 10 Mar 2021 18:12:52 -0600 Subject: [PATCH 12/12] Update src/guides/v2.4/extension-dev-guide/indexer-optimization.md with redirect url --- src/guides/v2.4/extension-dev-guide/indexer-optimization.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/guides/v2.4/extension-dev-guide/indexer-optimization.md b/src/guides/v2.4/extension-dev-guide/indexer-optimization.md index e432e3b8698..23c3a17ba65 100644 --- a/src/guides/v2.4/extension-dev-guide/indexer-optimization.md +++ b/src/guides/v2.4/extension-dev-guide/indexer-optimization.md @@ -1,6 +1,8 @@ --- group: php-developer-guide title: Indexer optimization +redirect_from: + - /guides/v2.4/extension-dev-guide/indexer-batch.html --- ## Indexer Batching