You are viewing a plain text version of this content. The canonical link for it is here.
Posted to xindice-dev@xml.apache.org by James Bates <ja...@amplexor.com> on 2002/11/25 17:39:15 UTC
Xindice internals
I've been looking closely at some of the core code in Xindice, that handles
filing, collection organization, querying etc... and in order to do some real
"core" development, I feal some kind of documentation explaining HOW Xindice
works internally would be a useful, if not necessary addition.
I have therefore started a "Xindice internals" guide in the Forrest
documentation tree that should explain these various aspects. I was not
involved in the initial core design, so some of the things I'm assuming may
not be true, but only an original core developer (Kimbro? Tom?) would know
how to correct them.
An outline of table of contents is included, as are the first few chapters.
I'm still working on the rest.
I've been reading up in some database-theory books as to how we might start
tackling true transactioning, coupled with failure recovery. There's quite a
bit of work still starting from thye current state of Xindice, but after my
internals guide is finished, it should become more clear how to proceed...
Comments are, as always, welcome.
The file is in src/documentation/content/xdocs/dev/guide-internals.xml btw,
and a link to it exists in the book.xml file in dev/ (as I don't know how to
tell Forrest to render the file if it's not referenced).
James
Re: Xindice internals
Posted by Gianugo Rabellino <gi...@apache.org>.
James Bates wrote:
> I've been looking closely at some of the core code in Xindice, that
> handles
> filing, collection organization, querying etc... and in order to do
> some real
> "core" development, I feal some kind of documentation explaining HOW
> Xindice
> works internally would be a useful, if not necessary addition.
>
> I have therefore started a "Xindice internals" guide in the Forrest
> documentation tree that should explain these various aspects.
YES! This is great news, James. Looks like we are in sync: I've just
started to look at some core optimizations and possible improvements (in
speed & scalability & document size and so on). I just came back from
ApacheCon where everyone was talking about Xindice with almost nobody
using it in production due to its current limitations, so I feel this is
a very good time to start thinking about 2.0.
I hope that Tom will join us in this effort: I'm currently reading
papers about storage of semi-structured data (take a look at
http://www-db.stanford.edu/lore/pubs/index.html) and I have a few ideas
about new filers and indexes. Time to start again? I will have a good
amount of time to devote to OSS again in a short while, and I'm willing
to tackle Xindice seriously. Ready to start? :-)
Oh, and great kudos to Vladimir for the impressive work being done on
the docs: I will start contributing shortly, expect some RT Real Soon Now.
Ciao,
--
Gianugo Rabellino
Re: Xindice internals
Posted by "Vladimir R. Bossicard" <vl...@apache.org>.
James,
> Comments are, as always, welcome.
Wouah! I can't wait to print it and read it!
I would even promote the guide into the main documentation. But that's
another story.
Once again, very nice job.
-Vladimir
--
Vladimir R. Bossicard
Apache Xindice - http://xml.apache.org/xindice
SysSymbols
Posted by Lixin Meng <lx...@yahoo.com>.
I the 1.1b on Win2K, and tried to run
java/test/src/org.apache.xindice.IntegrationEmbedTests.java
All 34 test cases were succeed.
I noticed that the master test suite calls CollectionTest.java, which
creates and drops collections. However, after above the unit test, I wrote
some code to exam all collections and found the db/system/SysSymbols is not
empty (as below). I would assume that after dropping a collection, all those
symbols associated with the collection should be dropped too.
Did I miss anything here?
Lixin
------------------ output of my code ------
---------- collections : ------system
---------- collections : ------SysConfig
---------- docs : ------database.xml
---------- collections : ------SysSymbols
---------- docs : ------system_SysConfig
---------- docs : ------testing
---------- docs : ------testing_current
---------- docs : ------testing_current_child1
---------- docs : ------testing_current_child2
---------- docs : ------testing_current_childcol
---------- docs : ------testing_current_colcount
---------- docs : ------testing_current_count
---------- docs : ------testing_current_droptwice
---------- docs : ------testing_current_duplicate
---------- docs : ------testing_current_getname
---------- docs : ------testing_current_nested
---------- docs : ------testing_current_nested_child2
---------- docs : ------testing_current_nested_child3
--------------------------------------------
----------------- my code ----------------
// starts with 'db'
private void iterateCollections(XmlDbClient client, String parent) {
try {
iterateDocuments(client, parent);
String [] collections = client.listCollections(parent);
for (int i = 0; i < collections.length; i++) {
System.out.println("---------- collections : ------" + collections[i]);
String childPath = parent + "/" + collections[i];
iterateCollections(client, childPath);
}
} catch (Exception e) {
e.printStackTrace();
}
}
private void iterateDocuments(XmlDbClient client, String path) {
try {
String [] docs = client.listDocuments(path);
for (int i = 0; i < docs.length; i++) {
System.out.println("---------- docs : ------" + docs[i]);
}
} catch (Exception e) {
// ignore it, especially for 'db' and 'db/system'
}
}
------------------------------------------