incubator-lucy-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Marvin Humphrey <>
Subject Re: Porting the Lucene benchmarking suite
Date Sat, 14 Mar 2009 00:03:21 GMT
Hello Andreas,

Welcome.  :)

> First thank you Marvin for taking the time and giving me some good
> options to start supporting Lucy.

To put this in context, Andreas asked me off-list about options for
contributing to Lucy and/or KinoSearch.  (He's new to the library and doesn't
have any particular itches yet.)  I mentioned porting the KS test suite and
the Lucene benchmarking suite and recommended that we discuss the matter on

> Probably the porting of the Lucene benchmark suite would be a good
> starting point.  This way I will get a good overview of the project and
> as a little bonus KinoSearch will also benefit from the work.

Being able to benchmark Lucy (eventually) and KinoSearch would be very handy.
Just this week the discussion on Matcher ran into problems because we lack
search-time benchmarking capabilities.

However, please be aware that taking on the benchmarker is a bit of an
ambitious task, particularly since KinoSearch and Lucene have many API

Might you also be interested in starting off with a pure-Perl test case to
verify that the pluggable deletions apparatus works as it should?  If so, I'll
try to write up the necessary docs.

> I will focus mainly on this task and port the classes
> org.apache.lucene.benchmark.* to C and get them to work with
> Lucy/KinoSearch.

FYI, I had intended to use Perl, because this is mostly a scripting task and I
wanted to get things done reasonably quickly.  C would give us the advantage
of being able to test multiple bindings, but it's a lot of work up front.

If we do go with C, I think we should only worry about GCC on modern Unixen
for the time being.  

> But I'll also spend some time porting the test suite from Perl to C.  I will
> probably get back about this soon with a few questions.  I was already taking
> a look about the work done and what is still there to be done.                      

Core tests live in trunk/core/KinoSearch/Test/ and generate TAP output like
ordinary Perl tests. [1]

The testing infrastructure lives in trunk/charmonizer/src/Charmonizer/Test.*
and trunk/core/KinoSearch/Test.bp.  Documentation is lacking; however, there's
not that much to it.  (Writing a simple TAP-producing test harness isn't very

To run a core test using the Perl bindings, you need an entry in
trunk/perl/lib/KinoSearch/ and an individual test file a la

Marvin Humphrey

[1] Test Anything Protocol: <>

View raw message