This is an automated email from the ASF dual-hosted git repository. kmiller pushed a commit to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git
The following commit(s) were added to refs/heads/develop by this push: new cff010f GEODE-3701 Emphasize performance penalty of hash indexes in docs (#949) cff010f is described below commit cff010f4fd058079846ea0023e581a83e65a0fea Author: Karen Miller <karensmolermil...@users.noreply.github.com> AuthorDate: Wed Oct 18 16:44:59 2017 -0700 GEODE-3701 Emphasize performance penalty of hash indexes in docs (#949) * GEODE-3701 Emphasize performance penalty of hash indexes in docs * GEODE-3701 Revise wording on hash indexes per review --- .../query_index/creating_hash_indexes.html.md.erb | 28 +++++++++++++--------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/geode-docs/developing/query_index/creating_hash_indexes.html.md.erb b/geode-docs/developing/query_index/creating_hash_indexes.html.md.erb index 49b9596..e785749 100644 --- a/geode-docs/developing/query_index/creating_hash_indexes.html.md.erb +++ b/geode-docs/developing/query_index/creating_hash_indexes.html.md.erb @@ -19,25 +19,31 @@ See the License for the specific language governing permissions and limitations under the License. --> -<%=vars.product_name%> supports the creation of hash indexes for the purposes of performing equality-based queries. +<%=vars.product_name%> supports the creation of hash indexes for the purpose of performing equality-based queries. -## <a id="concept_5C7614F71F394C62ACA1BDC5684A7AC4__section_8A927DFB29364DA7856E7FE122FC1654" class="no-quick-link"></a>Why Create a HashIndex - -By creating a hash index, you can improve the memory usage of your index. If you are doing equality-based queries, your indexing footprint is significantly reduced. As an example, previously when you created an index that contained string fields, copies of the strings were included in the index. By using hash indexes, indexed expressions are canonicalized and stored in the index as pointers to the objects lying in the region. Improvements in the 30% range are expected, depending on the k [...] - -**Note:** -Your performance results may vary depending on the keys and data being indexed. - -## <a id="concept_5C7614F71F394C62ACA1BDC5684A7AC4__section_2EF23A54378E44FFBF1BEB32E41ABD61" class="no-quick-link"></a>Performance Considerations +## <a id="concept_5C7614F71F394C62ACA1BDC5684A7AC4__section_8A927DFB29364DA7856E7FE122FC1654" class="no-quick-link"></a>Hash Index Performance The performance of put operations and recovery time when using a hash index will be worse than a range index. Queries are expected to be slower due to the implementation -of hash index and the cost of recalculating the key on request, -which is the trade-off for the space savings that using a hash index provides. +of the hash index and the cost of recalculating the key on request. +A hash index can improve the memory usage of the index. +So, the trade-off of the hash index space savings must be weighed against the +performance penalty it imposes. If memory usage is not a concern, a range index is recommended. +Consider the memory usage when an index contains string fields. +Copies of the strings are included in the index. +With hash indexes, indexed expressions are canonicalized and stored in the index +as pointers to the objects residing in the region, +thereby using less memory. +Tests achieved as high as a 30% reduction in memory footprint, +but the savings depend on the keys and data being used. + +## <a id="concept_5C7614F71F394C62ACA1BDC5684A7AC4__section_2EF23A54378E44FFBF1BEB32E41ABD61" class="no-quick-link"></a>Performance Considerations + + ## <a id="concept_5C7614F71F394C62ACA1BDC5684A7AC4__section_800401C53E5841269F389329B8A4CDF3" class="no-quick-link"></a>Limitations The following limitations must be considered when creating hash indexes: -- To stop receiving notification emails like this one, please contact ['"commits@geode.apache.org" <commits@geode.apache.org>'].