[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: Appropriate index for <= >= filter on generalizedTime



Roman Rybalko wrote:
I tried full GeneralizedTime format (with seconds, with fractions) but the
search works also slow.
Even the search
(|(logTime=20120920144001+0400)(logTime=20120920144008+0400))
that works less than second and returns 2 entries, when reformatted as
(&(logTime>=20120920144001+0400)(logTime<=20120920144008+0400))
works more than 50 seconds.

According to RFC4517 ( http://tools.ietf.org/html/rfc4517#section-3.3.13),
GeneraalizedTime has the syntax:

GeneralizedTime = century year month day hour
                            [ minute [ second / leap-second ] ]
                            [ fraction ]
                            g-time-zone

which means that minutes and seconds may be omitted. Probably that's not
implemented... no problem.

My mistake. Our generalizedTime validator handles those optional components.

openldap version 2.4.23

How may I optimize (&(>=)(<=)) searches?

Aside from the equality index, there's not much else to be done. I'd suggest you pull the code in RE24 and see how back-mdb performs with your data.

--
  -- Howard Chu
  CTO, Symas Corp.           http://www.symas.com
  Director, Highland Sun     http://highlandsun.com/hyc/
  Chief Architect, OpenLDAP  http://www.openldap.org/project/