[
https://issues.apache.org/jira/browse/IGNITE-15547?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17424359#comment-17424359
]
Maksim Timonin edited comment on IGNITE-15547 at 10/5/21, 8:40 AM:
-------------------------------------------------------------------
[~andrian.boscanean] hi! This patch looks good to me, I've put some minor
comments on the PR page, please have a look.
[~andrian.boscanean] , changes your suggest will work. But I do have concerns
about performance of using enums in indexes. Using POJO (enum will be
considered as POJO) in indexes is possible, but there are tread offs, and the
main one is speed of comparison of equal elements (yes, comparison of non-equal
elements is pretty fast, but in case of equality of POJO items in index there
are additional checks and they aren't optimal). As I understand there are a lot
of equal elements in your case, as you want use enum. So, I'd suggest you to
test performance of your case. If results won't be OK, it may be faster to use
INT instead of ENUM.
was (Author: timonin.maksim):
[~andrian.boscanean] hi! This patch looks good to me, I've put some minor
comments on the PR page, please have a look.
[~andrian.boscanean] , changes your suggest will work. But I do have concerns
about performance of using enums in indexes. Using POJO (enum will be
considered as POJO) in indexes is possible, but there are tread offs, and the
main one is speed of comparison of equal elements (yes, comparison of non-equal
elements is pretty fast, but in case of equality of POJO items in index there
are additional checks and they aren't optimal). As I understand there are a lot
of equal elements in your case, as you want use enum. So, I'd suggest you to
test performance of your case. If results won't be OK, it will be much faster
to store INT instead of ENUM.
> QueryTypeDescriptorImpl: Accept Classes/Enums extending an Interface which is
> used as cache indexed field
> ---------------------------------------------------------------------------------------------------------
>
> Key: IGNITE-15547
> URL: https://issues.apache.org/jira/browse/IGNITE-15547
> Project: Ignite
> Issue Type: Improvement
> Affects Versions: 2.10
> Reporter: Andrian Boscanean
> Assignee: Andrian Boscanean
> Priority: Major
> Fix For: 2.12
>
> Time Spent: 50m
> Remaining Estimate: 0h
>
> Currently Classes/Enums that extend an interface which is used as Indexed
> field are not allowed.
> Example
> @QuerySqlField(index = true)
> private TestInterface testInterface;
> ------
> enum TestEnum1 implements TestInterface
> { VALUE_1, VALUE_2, VALUE_3 }
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)