Alex Karasulu wrote:
Hi all,
Thanks to Kiran and Emmanuel we were able to get the big bang branch (bbb)
compiling and passing all unit tests and integration tests over the course
of the last week. A job well done thanks to some great collaboration.
Man, you did almost everything with Kiran !
The bbb now holds a version of ApacheDS which uses Cursors instead of
NamingEnumerations to carry the results of list() and search() operations.
Also the JDBM store and partition implementation was revamped with various
new optimizations along with an additional system index.
I gonna play my own little performance test on bbb to give you a first
feedback.
Search has been
considerably altered and simplified as a result of these changes. Note that
we decided to use our own Cursor interface instead of the JNDI
NamingEnumerations because of a few reasons:
(1) Cursors can be positioned after creation.
- This prevents many problems and opens the door for some new
features in the server. NamingEnumeration creation requests
to
the search engine must specify direction.
- Extraction of search from Partitions will now be possible
which is
needed to be able to implement virtualization.
(2) Cursors decouple advances (i.e. next()) from object lookups (get()).
- Allows for lazy candidate evaluation which enables us to add
filters for entries after creation without missing entries due
to
prefetch operations used NamingEnumerations. NEs need unlike
Cursors need to prefetch entries since they must return
entries
on next() operations.
(3) Cursors support element positioning and bi-directional traversal.
(4) Remove the JNDI dependency for NamingEnumeration and it's
limitations.
Also note that the current implementation is way easier to debug and
understand !
Now we have some options. We can continue removing JNDI constructs and
workarounds introduced to handle it's shortcommings. This can finish the
rest of Phase III in the big bang effort. Hopefully at this point we can
(with some other changes on our roadmap) release (1.5.4) the big bang after
promoting it to the trunk. Until then we can release 1.5.3 which is siting
in the trunk now.
We could merge what's been altered in the trunk into the bbb and just
release 1.5.3 after Phase III but I personally think we should just release
1.5.3 ASAP.
Thoughts?
Let's release a 1.5.3 quickly. It brings some new features, and also
some bug fixes. We can release a 1.5.4 with bigbang later. Consider that
if we remove more JNDI from the server, this can be the last step before
1.5.4, and we will be able to ditch bigbang.
We are working on bigband since last november, AFAIR, and it's time to
get back to trunk. Bigbang, as a branch, is not visible, and makes it
difficult for those who are not involved into this refactoring to help
us. We knew it when we started bigbang, but it can last forever !
Thanks a lot guys !
Thanks,
Alex
--
--
cordialement, regards,
Emmanuel Lécharny
www.iktek.com
directory.apache.org