uniqueMember index

2019-04-25 Thread Sergey Mikhno
Dear Users,

I have a specific question about uniqueMember AT.

We have a hierarchy of groups and permissions with several group levels.

To be able to fetch all permissions which belong to hierarchical structure
of groups we are using a following query

*(**&*
*(*objectclass*=*groupOfUniqueNames*)*
*(*uniqueMember*=*cn=group1*)*
)

and so on until we get the lowest hierarchy level.

Each request with such a query takes approx. 0.5 seconds, we have several
levels and the performance is far from perfect.

Our idea was to create an index for the field uniqueMember to able to
accelerate the query.
Unfortunately after creation of the index the before mentioned query brings
empty result.

I found the following mailing list entry
https://users.directory.apache.narkive.com/YsRnb95m/apacheds-2-0-0-m7-index-problem
with
a similar problem, it looks like the problem is still not fixed or we are
doing something wrong.

Could anyone please help us with this question?

Best regards,

Sergey Mikhno
Software Developer
Galexis AG


-- 
Sergey Mikhno


uniqueMember Index

2019-04-30 Thread Sergey Mikhno
Dear Emmanuel,

I spent now more than a week trying to understand why uniqueMember index
doesn't work and still have no progress in understanding the problem.

With a defined index on uniqueMember my query brings empty result

*(**&*

*(*objectclass*=*groupOfUniqueNames*)*

*(**|*

*(*uniqueMember*=*cn=galexisLoginPOS*)*

*(*uniqueMember*=*cn=customerGalexis*)*

*(*uniqueMember*=*cn=customerAlloga*)*

*(*uniqueMember*=*cn=isDemo*)*

*)*

*)*



Without index the query brings correct results but is slow, 300ms.
Is there any description about how to define an index on uniqueMember.

We have several other non-standard indexed attributes and all of them are
working.
As I understand it should be possible to define an index on both member and
uniqieMember.

So I have 2 questions:
1. Is it correct that this query is slow because there is no index?
2. How should I define such an index?

Below is the current index definition
dn:
ads-indexAttributeId=uniqueMember,ou=indexes,ads-partitionId=system,ou=parti
 tions,ads-directoryServiceId=default,ou=config
ads-indexHasReverse: FALSE
entryCSN: 20190430090357.476000Z#00#001#00
objectClass: ads-index
objectClass: top
objectClass: ads-jdbmIndex
objectClass: ads-base
createTimestamp: 20190430090357.476Z
creatorsName: 0.9.2342.19200300.100.1.1=admin,2.5.4.11=system
ads-indexAttributeId: uniqueMember
ads-enabled: TRUE
entryUUID: dcd2fa31-5ee0-48fb-9d3e-30487957045a
entryParentId: fdf6f3a6-dfaf-4b1a-962c-faa14328d1ae

Could you please advice?

-- 
Sergey Mikhno


Re: uniqueMember index

2019-04-25 Thread Emmanuel Lecharny
Hi,

The bug was in 2.0.0-M7, which is nearly 7 years old... have you tried with
a newer version ?

Le jeu. 25 avr. 2019 à 17:45, Sergey Mikhno  a
écrit :

> Dear Users,
>
> I have a specific question about uniqueMember AT.
>
> We have a hierarchy of groups and permissions with several group levels.
>
> To be able to fetch all permissions which belong to hierarchical structure
> of groups we are using a following query
>
> *(**&*
> *(*objectclass*=*groupOfUniqueNames*)*
> *(*uniqueMember*=*cn=group1*)*
> )
>
> and so on until we get the lowest hierarchy level.
>
> Each request with such a query takes approx. 0.5 seconds, we have several
> levels and the performance is far from perfect.
>
> Our idea was to create an index for the field uniqueMember to able to
> accelerate the query.
> Unfortunately after creation of the index the before mentioned query brings
> empty result.
>
> I found the following mailing list entry
>
> https://users.directory.apache.narkive.com/YsRnb95m/apacheds-2-0-0-m7-index-problem
> with
> a similar problem, it looks like the problem is still not fixed or we are
> doing something wrong.
>
> Could anyone please help us with this question?
>
> Best regards,
>
> Sergey Mikhno
> Software Developer
> Galexis AG
>
>
> --
> Sergey Mikhno
>
-- 
Regards,
Cordialement,
Emmanuel Lécharny
www.iktek.com


Re: uniqueMember index

2019-04-25 Thread Sergey Mikhno
Hi Emmanuel,

Thank you for your answer,
Yes we are using 2.0.0-M24 now, the bug is only an example of our problem.
Bit the behavior described is very similar to what we have now in 2.0.0-M24

I have also tried to repair the Apacheds using apacheds.sh repair, but it
didn’t help.

Thank you again

Sergey Mikhno

On Thu, 25 Apr 2019 at 17:51, Emmanuel Lecharny 
wrote:

> Hi,
>
> The bug was in 2.0.0-M7, which is nearly 7 years old... have you tried with
> a newer version ?
>
> Le jeu. 25 avr. 2019 à 17:45, Sergey Mikhno  a
> écrit :
>
> > Dear Users,
> >
> > I have a specific question about uniqueMember AT.
> >
> > We have a hierarchy of groups and permissions with several group levels.
> >
> > To be able to fetch all permissions which belong to hierarchical
> structure
> > of groups we are using a following query
> >
> > *(**&*
> > *(*objectclass*=*groupOfUniqueNames*)*
> > *(*uniqueMember*=*cn=group1*)*
> > )
> >
> > and so on until we get the lowest hierarchy level.
> >
> > Each request with such a query takes approx. 0.5 seconds, we have several
> > levels and the performance is far from perfect.
> >
> > Our idea was to create an index for the field uniqueMember to able to
> > accelerate the query.
> > Unfortunately after creation of the index the before mentioned query
> brings
> > empty result.
> >
> > I found the following mailing list entry
> >
> >
> https://users.directory.apache.narkive.com/YsRnb95m/apacheds-2-0-0-m7-index-problem
> > with
> > a similar problem, it looks like the problem is still not fixed or we are
> > doing something wrong.
> >
> > Could anyone please help us with this question?
> >
> > Best regards,
> >
> > Sergey Mikhno
> > Software Developer
> > Galexis AG
> >
> >
> > --
> > Sergey Mikhno
> >
> --
> Regards,
> Cordialement,
> Emmanuel Lécharny
> www.iktek.com
>
-- 
Sergey Mikhno


Re: uniqueMember index

2019-04-26 Thread Sergey Mikhno
Hi Emmanuel,

Today I tried to use GroupOfNames and member field for group membership and
created an index for "member", that index looks to be working properly.
Could you please tell me if there is still a bug with the uniqueMember
Index? If there is no bug how can I create such an index and keep all my
queries working.

If there is a bug, perhaps I could convert all my groups into GroupOfNames,
is there any simple way to do so?

Thank you

Best regards

Sergey Mikhno
Software Developer
Galexis AG

On Thu, Apr 25, 2019 at 5:57 PM Sergey Mikhno 
wrote:

> Hi Emmanuel,
>
> Thank you for your answer,
> Yes we are using 2.0.0-M24 now, the bug is only an example of our problem.
> Bit the behavior described is very similar to what we have now in 2.0.0-M24
>
> I have also tried to repair the Apacheds using apacheds.sh repair, but it
> didn’t help.
>
> Thank you again
>
> Sergey Mikhno
>
> On Thu, 25 Apr 2019 at 17:51, Emmanuel Lecharny 
> wrote:
>
>> Hi,
>>
>> The bug was in 2.0.0-M7, which is nearly 7 years old... have you tried
>> with
>> a newer version ?
>>
>> Le jeu. 25 avr. 2019 à 17:45, Sergey Mikhno  a
>> écrit :
>>
>> > Dear Users,
>> >
>> > I have a specific question about uniqueMember AT.
>> >
>> > We have a hierarchy of groups and permissions with several group levels.
>> >
>> > To be able to fetch all permissions which belong to hierarchical
>> structure
>> > of groups we are using a following query
>> >
>> > *(**&*
>> > *(*objectclass*=*groupOfUniqueNames*)*
>> > *(*uniqueMember*=*cn=group1*)*
>> > )
>> >
>> > and so on until we get the lowest hierarchy level.
>> >
>> > Each request with such a query takes approx. 0.5 seconds, we have
>> several
>> > levels and the performance is far from perfect.
>> >
>> > Our idea was to create an index for the field uniqueMember to able to
>> > accelerate the query.
>> > Unfortunately after creation of the index the before mentioned query
>> brings
>> > empty result.
>> >
>> > I found the following mailing list entry
>> >
>> >
>> https://users.directory.apache.narkive.com/YsRnb95m/apacheds-2-0-0-m7-index-problem
>> > with
>> > a similar problem, it looks like the problem is still not fixed or we
>> are
>> > doing something wrong.
>> >
>> > Could anyone please help us with this question?
>> >
>> > Best regards,
>> >
>> > Sergey Mikhno
>> > Software Developer
>> > Galexis AG
>> >
>> >
>> > --
>> > Sergey Mikhno
>> >
>> --
>> Regards,
>> Cordialement,
>> Emmanuel Lécharny
>> www.iktek.com
>>
> --
> Sergey Mikhno
>


-- 
Sergey Mikhno


Re: uniqueMember Index

2019-04-30 Thread Emmanuel Lécharny

Hi Sergey,


I can positively confirm that there is a problem. I'm able to reproduce 
the issue you are facing in a unit test.


I'm currently debugging the server, and hope to come with a quick answer 
(and hopefully a fix).



On 30/04/2019 11:33, Sergey Mikhno wrote:

Dear Emmanuel,

I spent now more than a week trying to understand why uniqueMember index
doesn't work and still have no progress in understanding the problem.

With a defined index on uniqueMember my query brings empty result

*(**&*

 *(*objectclass*=*groupOfUniqueNames*)*

 *(**|*

 *(*uniqueMember*=*cn=galexisLoginPOS*)*

 *(*uniqueMember*=*cn=customerGalexis*)*

 *(*uniqueMember*=*cn=customerAlloga*)*

 *(*uniqueMember*=*cn=isDemo*)*

 *)*

*)*



Without index the query brings correct results but is slow, 300ms.
Is there any description about how to define an index on uniqueMember.

We have several other non-standard indexed attributes and all of them are
working.
As I understand it should be possible to define an index on both member and
uniqieMember.

So I have 2 questions:
1. Is it correct that this query is slow because there is no index?
2. How should I define such an index?

Below is the current index definition
dn:
ads-indexAttributeId=uniqueMember,ou=indexes,ads-partitionId=system,ou=parti
  tions,ads-directoryServiceId=default,ou=config
ads-indexHasReverse: FALSE
entryCSN: 20190430090357.476000Z#00#001#00
objectClass: ads-index
objectClass: top
objectClass: ads-jdbmIndex
objectClass: ads-base
createTimestamp: 20190430090357.476Z
creatorsName: 0.9.2342.19200300.100.1.1=admin,2.5.4.11=system
ads-indexAttributeId: uniqueMember
ads-enabled: TRUE
entryUUID: dcd2fa31-5ee0-48fb-9d3e-30487957045a
entryParentId: fdf6f3a6-dfaf-4b1a-962c-faa14328d1ae

Could you please advice?



Re: uniqueMember Index

2019-04-30 Thread Sergey Mikhno
Hi Emmanuel,

Thank you very much for your quick response,
Please let me know if you need more information.

Best regards

Sergey Mikhno
Software Developer
Galexis AG


On Tue, Apr 30, 2019 at 3:59 PM Emmanuel Lécharny 
wrote:

> Hi Sergey,
>
>
> I can positively confirm that there is a problem. I'm able to reproduce
> the issue you are facing in a unit test.
>
> I'm currently debugging the server, and hope to come with a quick answer
> (and hopefully a fix).
>
>
> On 30/04/2019 11:33, Sergey Mikhno wrote:
> > Dear Emmanuel,
> >
> > I spent now more than a week trying to understand why uniqueMember index
> > doesn't work and still have no progress in understanding the problem.
> >
> > With a defined index on uniqueMember my query brings empty result
> >
> > *(**&*
> >
> >  *(*objectclass*=*groupOfUniqueNames*)*
> >
> >  *(**|*
> >
> >  *(*uniqueMember*=*cn=galexisLoginPOS*)*
> >
> >  *(*uniqueMember*=*cn=customerGalexis*)*
> >
> >  *(*uniqueMember*=*cn=customerAlloga*)*
> >
> >  *(*uniqueMember*=*cn=isDemo*)*
> >
> >  *)*
> >
> > *)*
> >
> >
> >
> > Without index the query brings correct results but is slow, 300ms.
> > Is there any description about how to define an index on uniqueMember.
> >
> > We have several other non-standard indexed attributes and all of them are
> > working.
> > As I understand it should be possible to define an index on both member
> and
> > uniqieMember.
> >
> > So I have 2 questions:
> > 1. Is it correct that this query is slow because there is no index?
> > 2. How should I define such an index?
> >
> > Below is the current index definition
> > dn:
> >
> ads-indexAttributeId=uniqueMember,ou=indexes,ads-partitionId=system,ou=parti
> >   tions,ads-directoryServiceId=default,ou=config
> > ads-indexHasReverse: FALSE
> > entryCSN: 20190430090357.476000Z#00#001#00
> > objectClass: ads-index
> > objectClass: top
> > objectClass: ads-jdbmIndex
> > objectClass: ads-base
> > createTimestamp: 20190430090357.476Z
> > creatorsName: 0.9.2342.19200300.100.1.1=admin,2.5.4.11=system
> > ads-indexAttributeId: uniqueMember
> > ads-enabled: TRUE
> > entryUUID: dcd2fa31-5ee0-48fb-9d3e-30487957045a
> > entryParentId: fdf6f3a6-dfaf-4b1a-962c-faa14328d1ae
> >
> > Could you please advice?
> >
>


-- 
Sergey Mikhno


Re: uniqueMember Index

2019-04-30 Thread Emmanuel Lécharny
Ok, this a clear bug. The UniqueMemberComparator.compare() method is 
badly implemented, and returns either 0 or -1, which means we can't 
browse the index, as we never get a +1 (ie, provided uniqueMember is 
superior to the stored one).


I'll get that fixed.

On 30/04/2019 15:59, Emmanuel Lécharny wrote:

Hi Sergey,


I can positively confirm that there is a problem. I'm able to 
reproduce the issue you are facing in a unit test.


I'm currently debugging the server, and hope to come with a quick 
answer (and hopefully a fix).



On 30/04/2019 11:33, Sergey Mikhno wrote:

Dear Emmanuel,

I spent now more than a week trying to understand why uniqueMember index
doesn't work and still have no progress in understanding the problem.

With a defined index on uniqueMember my query brings empty result

*(**&*

 *(*objectclass*=*groupOfUniqueNames*)*

 *(**|*

 *(*uniqueMember*=*cn=galexisLoginPOS*)*

 *(*uniqueMember*=*cn=customerGalexis*)*

 *(*uniqueMember*=*cn=customerAlloga*)*

 *(*uniqueMember*=*cn=isDemo*)*

 *)*

*)*



Without index the query brings correct results but is slow, 300ms.
Is there any description about how to define an index on uniqueMember.

We have several other non-standard indexed attributes and all of them 
are

working.
As I understand it should be possible to define an index on both 
member and

uniqieMember.

So I have 2 questions:
1. Is it correct that this query is slow because there is no index?
2. How should I define such an index?

Below is the current index definition
dn:
ads-indexAttributeId=uniqueMember,ou=indexes,ads-partitionId=system,ou=parti 


  tions,ads-directoryServiceId=default,ou=config
ads-indexHasReverse: FALSE
entryCSN: 20190430090357.476000Z#00#001#00
objectClass: ads-index
objectClass: top
objectClass: ads-jdbmIndex
objectClass: ads-base
createTimestamp: 20190430090357.476Z
creatorsName: 0.9.2342.19200300.100.1.1=admin,2.5.4.11=system
ads-indexAttributeId: uniqueMember
ads-enabled: TRUE
entryUUID: dcd2fa31-5ee0-48fb-9d3e-30487957045a
entryParentId: fdf6f3a6-dfaf-4b1a-962c-faa14328d1ae

Could you please advice?



Re: uniqueMember Index

2019-04-30 Thread Sergey Mikhno
Thank you again,

Is it possible to get a fix for this issue, how should we go about it?
It would be great to be able to test a bugfix in our environment.

Best Regards

Sergey


On Tue, Apr 30, 2019 at 4:24 PM Emmanuel Lécharny 
wrote:

> Ok, this a clear bug. The UniqueMemberComparator.compare() method is
> badly implemented, and returns either 0 or -1, which means we can't
> browse the index, as we never get a +1 (ie, provided uniqueMember is
> superior to the stored one).
>
> I'll get that fixed.
>
> On 30/04/2019 15:59, Emmanuel Lécharny wrote:
> > Hi Sergey,
> >
> >
> > I can positively confirm that there is a problem. I'm able to
> > reproduce the issue you are facing in a unit test.
> >
> > I'm currently debugging the server, and hope to come with a quick
> > answer (and hopefully a fix).
> >
> >
> > On 30/04/2019 11:33, Sergey Mikhno wrote:
> >> Dear Emmanuel,
> >>
> >> I spent now more than a week trying to understand why uniqueMember index
> >> doesn't work and still have no progress in understanding the problem.
> >>
> >> With a defined index on uniqueMember my query brings empty result
> >>
> >> *(**&*
> >>
> >>  *(*objectclass*=*groupOfUniqueNames*)*
> >>
> >>  *(**|*
> >>
> >>  *(*uniqueMember*=*cn=galexisLoginPOS*)*
> >>
> >>  *(*uniqueMember*=*cn=customerGalexis*)*
> >>
> >>  *(*uniqueMember*=*cn=customerAlloga*)*
> >>
> >>  *(*uniqueMember*=*cn=isDemo*)*
> >>
> >>  *)*
> >>
> >> *)*
> >>
> >>
> >>
> >> Without index the query brings correct results but is slow, 300ms.
> >> Is there any description about how to define an index on uniqueMember.
> >>
> >> We have several other non-standard indexed attributes and all of them
> >> are
> >> working.
> >> As I understand it should be possible to define an index on both
> >> member and
> >> uniqieMember.
> >>
> >> So I have 2 questions:
> >> 1. Is it correct that this query is slow because there is no index?
> >> 2. How should I define such an index?
> >>
> >> Below is the current index definition
> >> dn:
> >>
> ads-indexAttributeId=uniqueMember,ou=indexes,ads-partitionId=system,ou=parti
>
> >>
> >>   tions,ads-directoryServiceId=default,ou=config
> >> ads-indexHasReverse: FALSE
> >> entryCSN: 20190430090357.476000Z#00#001#00
> >> objectClass: ads-index
> >> objectClass: top
> >> objectClass: ads-jdbmIndex
> >> objectClass: ads-base
> >> createTimestamp: 20190430090357.476Z
> >> creatorsName: 0.9.2342.19200300.100.1.1=admin,2.5.4.11=system
> >> ads-indexAttributeId: uniqueMember
> >> ads-enabled: TRUE
> >> entryUUID: dcd2fa31-5ee0-48fb-9d3e-30487957045a
> >> entryParentId: fdf6f3a6-dfaf-4b1a-962c-faa14328d1ae
> >>
> >> Could you please advice?
> >>
>


-- 
Sergey Mikhno


Re: uniqueMember Index

2019-04-30 Thread Emmanuel Lécharny
I have created a JIRA ticket for this issue: 
https://issues.apache.org/jira/browse/DIRAPI-340


Incidentally, I also have a fix that I'm going to test and apply asap. 
(the fix is pretty straightforward)



On 30/04/2019 16:29, Sergey Mikhno wrote:

Thank you again,

Is it possible to get a fix for this issue, how should we go about it?
It would be great to be able to test a bugfix in our environment.

Best Regards

Sergey


On Tue, Apr 30, 2019 at 4:24 PM Emmanuel Lécharny 
wrote:


Ok, this a clear bug. The UniqueMemberComparator.compare() method is
badly implemented, and returns either 0 or -1, which means we can't
browse the index, as we never get a +1 (ie, provided uniqueMember is
superior to the stored one).

I'll get that fixed.

On 30/04/2019 15:59, Emmanuel Lécharny wrote:

Hi Sergey,


I can positively confirm that there is a problem. I'm able to
reproduce the issue you are facing in a unit test.

I'm currently debugging the server, and hope to come with a quick
answer (and hopefully a fix).


On 30/04/2019 11:33, Sergey Mikhno wrote:

Dear Emmanuel,

I spent now more than a week trying to understand why uniqueMember index
doesn't work and still have no progress in understanding the problem.

With a defined index on uniqueMember my query brings empty result

*(**&*

  *(*objectclass*=*groupOfUniqueNames*)*

  *(**|*

  *(*uniqueMember*=*cn=galexisLoginPOS*)*

  *(*uniqueMember*=*cn=customerGalexis*)*

  *(*uniqueMember*=*cn=customerAlloga*)*

  *(*uniqueMember*=*cn=isDemo*)*

  *)*

*)*



Without index the query brings correct results but is slow, 300ms.
Is there any description about how to define an index on uniqueMember.

We have several other non-standard indexed attributes and all of them
are
working.
As I understand it should be possible to define an index on both
member and
uniqieMember.

So I have 2 questions:
1. Is it correct that this query is slow because there is no index?
2. How should I define such an index?

Below is the current index definition
dn:


ads-indexAttributeId=uniqueMember,ou=indexes,ads-partitionId=system,ou=parti


   tions,ads-directoryServiceId=default,ou=config
ads-indexHasReverse: FALSE
entryCSN: 20190430090357.476000Z#00#001#00
objectClass: ads-index
objectClass: top
objectClass: ads-jdbmIndex
objectClass: ads-base
createTimestamp: 20190430090357.476Z
creatorsName: 0.9.2342.19200300.100.1.1=admin,2.5.4.11=system
ads-indexAttributeId: uniqueMember
ads-enabled: TRUE
entryUUID: dcd2fa31-5ee0-48fb-9d3e-30487957045a
entryParentId: fdf6f3a6-dfaf-4b1a-962c-faa14328d1ae

Could you please advice?





Re: uniqueMember Index

2019-05-01 Thread Sergey Mikhno
Hi Emmanuel,

I can see now that you have already fixed the problem.
We have M24 running now, how can I use your fix in our environment?
Or otherwise how can I build the latest snapshot to be able to verify it?

Best regards

Sergey Mikhno
Software Developer
Galexis AG


On Tue, Apr 30, 2019 at 4:40 PM Emmanuel Lécharny 
wrote:

> I have created a JIRA ticket for this issue:
> https://issues.apache.org/jira/browse/DIRAPI-340
>
> Incidentally, I also have a fix that I'm going to test and apply asap.
> (the fix is pretty straightforward)
>
>
> On 30/04/2019 16:29, Sergey Mikhno wrote:
> > Thank you again,
> >
> > Is it possible to get a fix for this issue, how should we go about it?
> > It would be great to be able to test a bugfix in our environment.
> >
> > Best Regards
> >
> > Sergey
> >
> >
> > On Tue, Apr 30, 2019 at 4:24 PM Emmanuel Lécharny 
> > wrote:
> >
> >> Ok, this a clear bug. The UniqueMemberComparator.compare() method is
> >> badly implemented, and returns either 0 or -1, which means we can't
> >> browse the index, as we never get a +1 (ie, provided uniqueMember is
> >> superior to the stored one).
> >>
> >> I'll get that fixed.
> >>
> >> On 30/04/2019 15:59, Emmanuel Lécharny wrote:
> >>> Hi Sergey,
> >>>
> >>>
> >>> I can positively confirm that there is a problem. I'm able to
> >>> reproduce the issue you are facing in a unit test.
> >>>
> >>> I'm currently debugging the server, and hope to come with a quick
> >>> answer (and hopefully a fix).
> >>>
> >>>
> >>> On 30/04/2019 11:33, Sergey Mikhno wrote:
> >>>> Dear Emmanuel,
> >>>>
> >>>> I spent now more than a week trying to understand why uniqueMember
> index
> >>>> doesn't work and still have no progress in understanding the problem.
> >>>>
> >>>> With a defined index on uniqueMember my query brings empty result
> >>>>
> >>>> *(**&*
> >>>>
> >>>>   *(*objectclass*=*groupOfUniqueNames*)*
> >>>>
> >>>>   *(**|*
> >>>>
> >>>>   *(*uniqueMember*=*cn=galexisLoginPOS*)*
> >>>>
> >>>>   *(*uniqueMember*=*cn=customerGalexis*)*
> >>>>
> >>>>   *(*uniqueMember*=*cn=customerAlloga*)*
> >>>>
> >>>>   *(*uniqueMember*=*cn=isDemo*)*
> >>>>
> >>>>   *)*
> >>>>
> >>>> *)*
> >>>>
> >>>>
> >>>>
> >>>> Without index the query brings correct results but is slow, 300ms.
> >>>> Is there any description about how to define an index on uniqueMember.
> >>>>
> >>>> We have several other non-standard indexed attributes and all of them
> >>>> are
> >>>> working.
> >>>> As I understand it should be possible to define an index on both
> >>>> member and
> >>>> uniqieMember.
> >>>>
> >>>> So I have 2 questions:
> >>>> 1. Is it correct that this query is slow because there is no index?
> >>>> 2. How should I define such an index?
> >>>>
> >>>> Below is the current index definition
> >>>> dn:
> >>>>
> >>
> ads-indexAttributeId=uniqueMember,ou=indexes,ads-partitionId=system,ou=parti
> >>
> >>>>tions,ads-directoryServiceId=default,ou=config
> >>>> ads-indexHasReverse: FALSE
> >>>> entryCSN: 20190430090357.476000Z#00#001#00
> >>>> objectClass: ads-index
> >>>> objectClass: top
> >>>> objectClass: ads-jdbmIndex
> >>>> objectClass: ads-base
> >>>> createTimestamp: 20190430090357.476Z
> >>>> creatorsName: 0.9.2342.19200300.100.1.1=admin,2.5.4.11=system
> >>>> ads-indexAttributeId: uniqueMember
> >>>> ads-enabled: TRUE
> >>>> entryUUID: dcd2fa31-5ee0-48fb-9d3e-30487957045a
> >>>> entryParentId: fdf6f3a6-dfaf-4b1a-962c-faa14328d1ae
> >>>>
> >>>> Could you please advice?
> >>>>
> >
>


-- 
Sergey Mikhno


Re: uniqueMember Index

2019-05-02 Thread Sergey Mikhno
Hi Emmanuel,

We built the trunk today and the results are as follows: UniqueMember query
without index has become faster, the same query with the index gives empty
result back.
Is it possible that our index definition is wrong?
We are defining the index in Apache Directory Studio.

The Comparator looks to be correct. What can be the problem?

Best regards

Sergey Mikhno
Software Developer
Galexis AG


On Wed, May 1, 2019 at 3:01 PM Sergey Mikhno 
wrote:

> Hi Emmanuel,
>
> I can see now that you have already fixed the problem.
> We have M24 running now, how can I use your fix in our environment?
> Or otherwise how can I build the latest snapshot to be able to verify it?
>
> Best regards
>
> Sergey Mikhno
> Software Developer
> Galexis AG
>
>
> On Tue, Apr 30, 2019 at 4:40 PM Emmanuel Lécharny 
> wrote:
>
>> I have created a JIRA ticket for this issue:
>> https://issues.apache.org/jira/browse/DIRAPI-340
>>
>> Incidentally, I also have a fix that I'm going to test and apply asap.
>> (the fix is pretty straightforward)
>>
>>
>> On 30/04/2019 16:29, Sergey Mikhno wrote:
>> > Thank you again,
>> >
>> > Is it possible to get a fix for this issue, how should we go about it?
>> > It would be great to be able to test a bugfix in our environment.
>> >
>> > Best Regards
>> >
>> > Sergey
>> >
>> >
>> > On Tue, Apr 30, 2019 at 4:24 PM Emmanuel Lécharny 
>> > wrote:
>> >
>> >> Ok, this a clear bug. The UniqueMemberComparator.compare() method is
>> >> badly implemented, and returns either 0 or -1, which means we can't
>> >> browse the index, as we never get a +1 (ie, provided uniqueMember is
>> >> superior to the stored one).
>> >>
>> >> I'll get that fixed.
>> >>
>> >> On 30/04/2019 15:59, Emmanuel Lécharny wrote:
>> >>> Hi Sergey,
>> >>>
>> >>>
>> >>> I can positively confirm that there is a problem. I'm able to
>> >>> reproduce the issue you are facing in a unit test.
>> >>>
>> >>> I'm currently debugging the server, and hope to come with a quick
>> >>> answer (and hopefully a fix).
>> >>>
>> >>>
>> >>> On 30/04/2019 11:33, Sergey Mikhno wrote:
>> >>>> Dear Emmanuel,
>> >>>>
>> >>>> I spent now more than a week trying to understand why uniqueMember
>> index
>> >>>> doesn't work and still have no progress in understanding the problem.
>> >>>>
>> >>>> With a defined index on uniqueMember my query brings empty result
>> >>>>
>> >>>> *(**&*
>> >>>>
>> >>>>   *(*objectclass*=*groupOfUniqueNames*)*
>> >>>>
>> >>>>   *(**|*
>> >>>>
>> >>>>   *(*uniqueMember*=*cn=galexisLoginPOS*)*
>> >>>>
>> >>>>   *(*uniqueMember*=*cn=customerGalexis*)*
>> >>>>
>> >>>>   *(*uniqueMember*=*cn=customerAlloga*)*
>> >>>>
>> >>>>   *(*uniqueMember*=*cn=isDemo*)*
>> >>>>
>> >>>>   *)*
>> >>>>
>> >>>> *)*
>> >>>>
>> >>>>
>> >>>>
>> >>>> Without index the query brings correct results but is slow, 300ms.
>> >>>> Is there any description about how to define an index on
>> uniqueMember.
>> >>>>
>> >>>> We have several other non-standard indexed attributes and all of them
>> >>>> are
>> >>>> working.
>> >>>> As I understand it should be possible to define an index on both
>> >>>> member and
>> >>>> uniqieMember.
>> >>>>
>> >>>> So I have 2 questions:
>> >>>> 1. Is it correct that this query is slow because there is no index?
>> >>>> 2. How should I define such an index?
>> >>>>
>> >>>> Below is the current index definition
>> >>>> dn:
>> >>>>
>> >>
>> ads-indexAttributeId=uniqueMember,ou=indexes,ads-partitionId=system,ou=parti
>> >>
>> >>>>tions,ads-directoryServiceId=default,ou=config
>> >>>> ads-indexHasReverse: FALSE
>> >>>> entryCSN: 20190430090357.476000Z#00#001#00
>> >>>> objectClass: ads-index
>> >>>> objectClass: top
>> >>>> objectClass: ads-jdbmIndex
>> >>>> objectClass: ads-base
>> >>>> createTimestamp: 20190430090357.476Z
>> >>>> creatorsName: 0.9.2342.19200300.100.1.1=admin,2.5.4.11=system
>> >>>> ads-indexAttributeId: uniqueMember
>> >>>> ads-enabled: TRUE
>> >>>> entryUUID: dcd2fa31-5ee0-48fb-9d3e-30487957045a
>> >>>> entryParentId: fdf6f3a6-dfaf-4b1a-962c-faa14328d1ae
>> >>>>
>> >>>> Could you please advice?
>> >>>>
>> >
>>
>
>
> --
> Sergey Mikhno
>


-- 
Sergey Mikhno


Re: uniqueMember Index

2019-05-03 Thread Sergey Mikhno
Hi Emmanuel,

I wanted to inform you what are the results of our testing.
1. Starting the Release AM25 throws an Exception (ClassNotFounfException
DeepTrimCachingNormalizingComparator)
2. AM25-SNAPSHOT starts normally but we cannot use uniqueMember index,
because the query brings empty result.
3. M24 works OK with 2 changes - your commit
f995af78cca156071ab30f00a6615bd82911c4a1
and one more fix (compareTo method from 2.0.0AM2), we can use uniqueMember
index.
4. directory-server build has Test problems: Failed tests:
NullPointerException
  UberJarMainTest.repairTest:208
  UberJarMainTest.serviceInstanceTest:184

Could you please advice, what could be wrong?


Sergey Mikhno
Software Developer
Galexis AG


On Tue, Apr 30, 2019 at 11:33 AM Sergey Mikhno 
wrote:

> Dear Emmanuel,
>
> I spent now more than a week trying to understand why uniqueMember index
> doesn't work and still have no progress in understanding the problem.
>
> With a defined index on uniqueMember my query brings empty result
>
> *(**&*
>
> *(*objectclass*=*groupOfUniqueNames*)*
>
> *(**|*
>
> *(*uniqueMember*=*cn=galexisLoginPOS*)*
>
> *(*uniqueMember*=*cn=customerGalexis*)*
>
> *(*uniqueMember*=*cn=customerAlloga*)*
>
> *(*uniqueMember*=*cn=isDemo*)*
>
> *)*
>
> *)*
>
>
>
> Without index the query brings correct results but is slow, 300ms.
> Is there any description about how to define an index on uniqueMember.
>
> We have several other non-standard indexed attributes and all of them are
> working.
> As I understand it should be possible to define an index on both member
> and uniqieMember.
>
> So I have 2 questions:
> 1. Is it correct that this query is slow because there is no index?
> 2. How should I define such an index?
>
> Below is the current index definition
> dn:
> ads-indexAttributeId=uniqueMember,ou=indexes,ads-partitionId=system,ou=parti
>  tions,ads-directoryServiceId=default,ou=config
> ads-indexHasReverse: FALSE
> entryCSN: 20190430090357.476000Z#00#001#00
> objectClass: ads-index
> objectClass: top
> objectClass: ads-jdbmIndex
> objectClass: ads-base
> createTimestamp: 20190430090357.476Z
> creatorsName: 0.9.2342.19200300.100.1.1=admin,2.5.4.11=system
> ads-indexAttributeId: uniqueMember
> ads-enabled: TRUE
> entryUUID: dcd2fa31-5ee0-48fb-9d3e-30487957045a
> entryParentId: fdf6f3a6-dfaf-4b1a-962c-faa14328d1ae
>
> Could you please advice?
>
> --
> Sergey Mikhno
>


-- 
Sergey Mikhno


Re: uniqueMember Index

2019-05-07 Thread Sergey Mikhno
Hi Emmanuel,

Could you please give me some feedback on my questions.

1. Why do we have a ClassNotFounfException DeepTr
imCachingNormalizingComparator when starting our ApacheDS server with AM25
Release jar. (
https://www-eu.apache.org/dist//directory/apacheds/dist/2.0.0.AM25/apacheds-2.0.0.AM25.zip
)
2. Is it important that we have one failing test UberJarMainTest.repairTest,
I did some debugging and found that server sends INSUFFICIENT_ACCESS_RIGHTS
Response, that is why NullPointerException occurs.

Best Regards

Sergey Mikhno
Software Developer
Galexis AG


On Fri, May 3, 2019 at 3:08 PM Sergey Mikhno 
wrote:

> Hi Emmanuel,
>
> I wanted to inform you what are the results of our testing.
> 1. Starting the Release AM25 throws an Exception (ClassNotFounfException
> DeepTrimCachingNormalizingComparator)
> 2. AM25-SNAPSHOT starts normally but we cannot use uniqueMember index,
> because the query brings empty result.
> 3. M24 works OK with 2 changes - your commit 
> f995af78cca156071ab30f00a6615bd82911c4a1
> and one more fix (compareTo method from 2.0.0AM2), we can use
> uniqueMember index.
> 4. directory-server build has Test problems: Failed tests:
> NullPointerException
>   UberJarMainTest.repairTest:208
>   UberJarMainTest.serviceInstanceTest:184
>
> Could you please advice, what could be wrong?
>
>
> Sergey Mikhno
> Software Developer
> Galexis AG
>
>
> On Tue, Apr 30, 2019 at 11:33 AM Sergey Mikhno 
> wrote:
>
>> Dear Emmanuel,
>>
>> I spent now more than a week trying to understand why uniqueMember index
>> doesn't work and still have no progress in understanding the problem.
>>
>> With a defined index on uniqueMember my query brings empty result
>>
>> *(**&*
>>
>> *(*objectclass*=*groupOfUniqueNames*)*
>>
>> *(**|*
>>
>> *(*uniqueMember*=*cn=galexisLoginPOS*)*
>>
>> *(*uniqueMember*=*cn=customerGalexis*)*
>>
>> *(*uniqueMember*=*cn=customerAlloga*)*
>>
>> *(*uniqueMember*=*cn=isDemo*)*
>>
>> *)*
>>
>> *)*
>>
>>
>>
>> Without index the query brings correct results but is slow, 300ms.
>> Is there any description about how to define an index on uniqueMember.
>>
>> We have several other non-standard indexed attributes and all of them are
>> working.
>> As I understand it should be possible to define an index on both member
>> and uniqieMember.
>>
>> So I have 2 questions:
>> 1. Is it correct that this query is slow because there is no index?
>> 2. How should I define such an index?
>>
>> Below is the current index definition
>> dn:
>> ads-indexAttributeId=uniqueMember,ou=indexes,ads-partitionId=system,ou=parti
>>  tions,ads-directoryServiceId=default,ou=config
>> ads-indexHasReverse: FALSE
>> entryCSN: 20190430090357.476000Z#00#001#00
>> objectClass: ads-index
>> objectClass: top
>> objectClass: ads-jdbmIndex
>> objectClass: ads-base
>> createTimestamp: 20190430090357.476Z
>> creatorsName: 0.9.2342.19200300.100.1.1=admin,2.5.4.11=system
>> ads-indexAttributeId: uniqueMember
>> ads-enabled: TRUE
>> entryUUID: dcd2fa31-5ee0-48fb-9d3e-30487957045a
>> entryParentId: fdf6f3a6-dfaf-4b1a-962c-faa14328d1ae
>>
>> Could you please advice?
>>
>> --
>> Sergey Mikhno
>>
>
>
> --
> Sergey Mikhno
>


-- 
Sergey Mikhno


Re: uniqueMember Index

2019-05-07 Thread Emmanuel Lecharny
Sorry, was busy on something else. Will have a look at your issue tonite.

Le mar. 7 mai 2019 à 13:51, Sergey Mikhno  a
écrit :

> Hi Emmanuel,
>
> Could you please give me some feedback on my questions.
>
> 1. Why do we have a ClassNotFounfException DeepTr
> imCachingNormalizingComparator when starting our ApacheDS server with
> AM25 Release jar. (
> https://www-eu.apache.org/dist//directory/apacheds/dist/2.0.0.AM25/apacheds-2.0.0.AM25.zip
> )
> 2. Is it important that we have one failing test UberJarMainTest.repairTest,
> I did some debugging and found that server sends INSUFFICIENT_ACCESS_RIGHTS
> Response, that is why NullPointerException occurs.
>
> Best Regards
>
> Sergey Mikhno
> Software Developer
> Galexis AG
>
>
> On Fri, May 3, 2019 at 3:08 PM Sergey Mikhno 
> wrote:
>
>> Hi Emmanuel,
>>
>> I wanted to inform you what are the results of our testing.
>> 1. Starting the Release AM25 throws an Exception (ClassNotFounfException
>> DeepTrimCachingNormalizingComparator)
>> 2. AM25-SNAPSHOT starts normally but we cannot use uniqueMember index,
>> because the query brings empty result.
>> 3. M24 works OK with 2 changes - your commit 
>> f995af78cca156071ab30f00a6615bd82911c4a1
>> and one more fix (compareTo method from 2.0.0AM2), we can use
>> uniqueMember index.
>> 4. directory-server build has Test problems: Failed tests:
>> NullPointerException
>>   UberJarMainTest.repairTest:208
>>   UberJarMainTest.serviceInstanceTest:184
>>
>> Could you please advice, what could be wrong?
>>
>>
>> Sergey Mikhno
>> Software Developer
>> Galexis AG
>>
>>
>> On Tue, Apr 30, 2019 at 11:33 AM Sergey Mikhno 
>> wrote:
>>
>>> Dear Emmanuel,
>>>
>>> I spent now more than a week trying to understand why uniqueMember index
>>> doesn't work and still have no progress in understanding the problem.
>>>
>>> With a defined index on uniqueMember my query brings empty result
>>>
>>> *(**&*
>>>
>>> *(*objectclass*=*groupOfUniqueNames*)*
>>>
>>> *(**|*
>>>
>>> *(*uniqueMember*=*cn=galexisLoginPOS*)*
>>>
>>> *(*uniqueMember*=*cn=customerGalexis*)*
>>>
>>> *(*uniqueMember*=*cn=customerAlloga*)*
>>>
>>> *(*uniqueMember*=*cn=isDemo*)*
>>>
>>> *)*
>>>
>>> *)*
>>>
>>>
>>>
>>> Without index the query brings correct results but is slow, 300ms.
>>> Is there any description about how to define an index on uniqueMember.
>>>
>>> We have several other non-standard indexed attributes and all of them
>>> are working.
>>> As I understand it should be possible to define an index on both member
>>> and uniqieMember.
>>>
>>> So I have 2 questions:
>>> 1. Is it correct that this query is slow because there is no index?
>>> 2. How should I define such an index?
>>>
>>> Below is the current index definition
>>> dn:
>>> ads-indexAttributeId=uniqueMember,ou=indexes,ads-partitionId=system,ou=parti
>>>  tions,ads-directoryServiceId=default,ou=config
>>> ads-indexHasReverse: FALSE
>>> entryCSN: 20190430090357.476000Z#00#001#00
>>> objectClass: ads-index
>>> objectClass: top
>>> objectClass: ads-jdbmIndex
>>> objectClass: ads-base
>>> createTimestamp: 20190430090357.476Z
>>> creatorsName: 0.9.2342.19200300.100.1.1=admin,2.5.4.11=system
>>> ads-indexAttributeId: uniqueMember
>>> ads-enabled: TRUE
>>> entryUUID: dcd2fa31-5ee0-48fb-9d3e-30487957045a
>>> entryParentId: fdf6f3a6-dfaf-4b1a-962c-faa14328d1ae
>>>
>>> Could you please advice?
>>>
>>> --
>>> Sergey Mikhno
>>>
>>
>>
>> --
>> Sergey Mikhno
>>
>
>
> --
> Sergey Mikhno
>
-- 
Regards,
Cordialement,
Emmanuel Lécharny
www.iktek.com


Re: uniqueMember Index

2019-05-07 Thread Emmanuel Lécharny



On 07/05/2019 13:51, Sergey Mikhno wrote:

Hi Emmanuel,

Could you please give me some feedback on my questions.

1. Why do we have a ClassNotFounfException 
DeepTrimCachingNormalizingComparator when starting our ApacheDS server 
with AM25 Release jar. 
(https://www-eu.apache.org/dist//directory/apacheds/dist/2.0.0.AM25/apacheds-2.0.0.AM25.zip)



This is a LDAP API 1.0 class, it has been removed in LDAP API 2.0, which 
is used by apacheds 2.0.0-AM25.



That means you are using the old schema, which is stored on disk 
(comparator are loaded using reflection, based on the content of the 
schema files, which are stored in ldif files:


version: 1
dn: m-oid=1.3.6.1.4.1.4203.1.2.1,ou=comparators,cn=nis,ou=schema
m-oid: 1.3.6.1.4.1.4203.1.2.1
m-fqcn: 
org.apache.directory.api.ldap.model.schema.comparators.DeepTrimCachingNormalizingComparator

objectclass: metaComparator
objectclass: metaTop
objectclass: top
creatorsname: uid=admin,ou=system)

You should remove everything you have in the cn=schema directory before 
starting the server.



2. Is it important that we have one failing test 
UberJarMainTest.repairTest, I did some debugging and found that server 
sends INSUFFICIENT_ACCESS_RIGHTS Response, that is why 
NullPointerException occurs.


Best Regards

Sergey Mikhno
Software Developer
Galexis AG


On Fri, May 3, 2019 at 3:08 PM Sergey Mikhno <mailto:sergey.mik...@gmail.com>> wrote:


Hi Emmanuel,

I wanted to inform you what are the results of our testing.
1. Starting the Release AM25 throws an Exception
(ClassNotFounfException DeepTrimCachingNormalizingComparator)
2. AM25-SNAPSHOT starts normally but we cannot use uniqueMember
index, because the query brings empty result.
3. M24 works OK with 2 changes - your commit
f995af78cca156071ab30f00a6615bd82911c4a1 and one more fix
(compareTo method from 2.0.0AM2), we can use uniqueMember index.
4. directory-server build has Test problems: Failed tests:
NullPointerException
UberJarMainTest.repairTest:208
UberJarMainTest.serviceInstanceTest:184
Could you please advice, what could be wrong?


Sergey Mikhno
Software Developer
Galexis AG


On Tue, Apr 30, 2019 at 11:33 AM Sergey Mikhno
mailto:sergey.mik...@gmail.com>> wrote:

Dear Emmanuel,

I spent now more than a week trying to understand why
    uniqueMember index doesn't work and still have no progress in
understanding the problem.

With a defined index on uniqueMember my query brings empty result

*(**&*

*(*objectclass*=*groupOfUniqueNames*)*

*(**|*

*(*uniqueMember*=*cn=galexisLoginPOS*)*

*(*uniqueMember*=*cn=customerGalexis*)*

*(*uniqueMember*=*cn=customerAlloga*)*

*(*uniqueMember*=*cn=isDemo*)*

*)*

*)*



Without index the query brings correct results but is slow,
300ms.
Is there any description about how to define an index on
uniqueMember.

We have several other non-standard indexed attributes and all
of them are working.
As I understand it should be possible to define an index on
both member and uniqieMember.

So I have 2 questions:
1. Is it correct that this query is slow because there is no
index?
2. How should I define such an index?

Below is the current index definition
dn:

ads-indexAttributeId=uniqueMember,ou=indexes,ads-partitionId=system,ou=parti
 tions,ads-directoryServiceId=default,ou=config
ads-indexHasReverse: FALSE
entryCSN: 20190430090357.476000Z#00#001#00
objectClass: ads-index
objectClass: top
objectClass: ads-jdbmIndex
objectClass: ads-base
createTimestamp: 20190430090357.476Z
creatorsName: 0.9.2342.19200300.100.1.1=admin,2.5.4.11=system
ads-indexAttributeId: uniqueMember
ads-enabled: TRUE
entryUUID: dcd2fa31-5ee0-48fb-9d3e-30487957045a
entryParentId: fdf6f3a6-dfaf-4b1a-962c-faa14328d1ae

Could you please advice?

-- 
Sergey Mikhno




-- 
Sergey Mikhno




--
Sergey Mikhno