| time |
nick |
message |
13:02 |
<chirino_m> |
rajdavies: hey I was wrong about that xindice stuff. It seems decent.. I had made a small mistake in my test case. |
13:07 |
<chirino_m> |
it seemed like the xindice btree was faster had a more consistent insert/delete rate. |
13:10 |
<rajdavies> |
chirino_m: nice! |
13:10 |
<rajdavies> |
how big a test case ? |
13:10 |
<rajdavies> |
how about the search times ? |
13:11 |
<chirino_m> |
could you check the HashIndexBenchmark test.. make sure it's configured right / optimized right |
13:11 |
<rajdavies> |
will do |
13:11 |
<chirino_m> |
the work load was 1 thread creating records. and 1 thread looking for a record and then deleting the record. |
13:12 |
<chirino_m> |
you will find a similar test in https://svn.apache.org/repos/asf/activemq/sandbox/xindice-stripped |
13:12 |
<chirino_m> |
BTW their Hash impl also seemed better. |
13:13 |
<chirino_m> |
perhaps I had the kaha one mis configured. |
13:13 |
<rajdavies> |
yep - 12 bins is a little harsh |
13:14 |
<rajdavies> |
can you just use the default ? |
13:14 |
<chirino_m> |
sure. |
13:15 |
<chirino_m> |
I copied that from the other hash test.. |
13:15 |
<chirino_m> |
woot ok that looks much better |
13:16 |
<chirino_m> |
ok.. it's kicking ass now. |
13:20 |
<rajdavies> |
cool! |
13:25 |
<chirino_m> |
rajdavies: so you think it's worth doing the double buffering idea? |
13:25 |
<rajdavies> |
yeah! not sure how to do it though |
13:26 |
<chirino_m> |
I think the main thing we have to do is delay writing the pages to disk.. |
13:26 |
<chirino_m> |
and alocated about 100 pages at the front of the file for the double buffer. |
13:27 |
<rajdavies> |
ok! |
13:33 |
<chirino_m> |
ok so even if we avoid the partial page write problem.. we still have the missed updates problem. Which we can redo, using the log |
13:33 |
<chirino_m> |
but it would be nice if the index could tell me where in the log to start from. |
13:36 |
<rajdavies> |
yes - agreed - there needs to be more info in the kaha indexes |
13:37 |
<rajdavies> |
Also - a HashIndex - points to another index which points to the real data - so theirs a lot of room for optimization |
13:38 |
<rajdavies> |
there's - sry jstrachan for my bad english! |
13:38 |
<jstrachan> |
:) |
13:46 |
<chirino_m> |
so is the index only getting updated by the journal now? |
13:46 |
<rajdavies> |
in amqstore - yes |
13:47 |
<chirino_m> |
cool so in every page we could also record what the journal location was for that update.. |
13:47 |
<rajdavies> |
yes |
13:47 |
<chirino_m> |
and then we can just peak that the double buffer to see what was the last page updated. and get the last journal location. |
13:48 |
<rajdavies> |
yes |
13:48 |
<chirino_m> |
does each page also store it's id/offset |
13:48 |
<chirino_m> |
for the double buffer bit I think I need that. |
13:48 |
<rajdavies> |
its id is its offset |
13:49 |
<chirino_m> |
but is it stored in the page? |
13:49 |
<rajdavies> |
not at the moment |
13:50 |
<chirino_m> |
I may need to add that.. just so when I read the page from the double buffer, I know where it's real location should be. |
13:51 |
<chirino_m> |
also the next tricky bit is how do I now if the page in the double buffer had a partial page write or if the actual page had the partial page write? |
13:51 |
<chirino_m> |
s/now/know |
13:51 |
<rajdavies> |
I think we should do this as part of moving kaha into its own separate project |
13:51 |
<chirino_m> |
sure. |
13:51 |
<jstrachan> |
I get confused by this - is AMQDB the same thing as kaha - or is that considered something else? |
13:52 |
<jstrachan> |
is kaha the name for all the custom db stuff? or are there still 2 different beasties? |
13:53 |
<rajdavies> |
kaha is different - its used to store the indexes for AMQDB - but is a embeddable db in its own right |
13:53 |
<jstrachan> |
ah ok - so its just kaha that's be separate project right? the btree/db thingy |
13:54 |
<jstrachan> |
I guess AMQDB is AMQ specific stuff right? |
13:54 |
<rajdavies> |
yes - AMQDB is AMQ specific |
13:54 |
<jstrachan> |
messages + queue indices / durable topic subscriber stuff etc right? |
13:54 |
<rajdavies> |
yep |
13:59 |
<chirino_m> |
rajdavies: so lets spin the project then.. |
14:00 |
<chirino_m> |
where should we put it? |
14:02 |
<jstrachan> |
sub-project of AMQ first? |
14:03 |
<chirino_m> |
yeah |
14:03 |
<chirino_m> |
in sandbox until amq starts using it? |
14:04 |
<jstrachan> |
its tempting to pop it straight at activemq/kaha/trunk etc? |
14:04 |
<jstrachan> |
I guess we should vote first :) |
14:05 |
<chirino_m> |
rdavies: welcome back |
14:05 |
<rdavies> |
I be in favor of starting either a new package for kaha - and fix it there |
14:06 |
<rdavies> |
yeah - sry laptop frooze |
14:06 |
<chirino_m> |
rdavies: so where in svn do you want to put it? |
14:07 |
<chirino_m> |
ttps://svn.apache.org/repos/asf/activemq/kaha or ttps://svn.apache.org/repos/asf/activemq/sandbox/kaha |
14:07 |
<rdavies> |
ideally a new sub project |
14:07 |
<chirino_m> |
that might require a vote and stuff |
14:08 |
<rdavies> |
yeah! |
14:08 |
<rdavies> |
lets kick off a vote |
14:08 |
<chirino_m> |
how about we sping up in the sandbox for now.. and start discussing it on dev.. and agree to make it a sub project |
14:09 |
<rdavies> |
that works ok too |
14:09 |
<chirino_m> |
so kaha or kahadb ... |
14:09 |
<chirino_m> |
adding a db might hint folks to what it is. |
14:10 |
<rdavies> |
its going to take some work to do properly |
14:10 |
<chirino_m> |
yeah |
14:10 |
<rdavies> |
yeah - kahadb |
14:11 |
<chirino_m> |
you wana do the initial spike.. or should I? |
14:11 |
<chirino_m> |
should we change the package to org.apache.kahadb too? |
14:12 |
<rdavies> |
yes |
14:12 |
<rdavies> |
could be a good time to come up with a better name ;) |
14:12 |
<chirino_m> |
tired of kaha? |
14:13 |
<chirino_m> |
sonicdb ... lol |
14:17 |
<chirino_m> |
rdavies: you wana do the initial spike.. or should I? |
14:22 |
<rdavies> |
chirino_m: I'm on vacation - you can ;) |
14:24 |
<chirino_m> |
rdavies: oh did not know! |
14:24 |
<chirino_m> |
hope your enjoying it.! |
14:25 |
<rdavies> |
still packing - so glad to be out of the way! |
14:25 |
<jstrachan> |
in the spirit of berkeleydb, maybe it should be dublindb, londondb or tampadb? |
14:26 |
<rdavies> |
I guess LeightonBuzzardDB is a little long ? |
14:26 |
<rdavies> |
;) |
14:26 |
<chirino_m> |
lbdb |
14:26 |
<rdavies> |
like it! |
14:27 |
<rdavies> |
already exists though |
14:27 |
<rdavies> |
best stick with kaha - more descriptive |
14:27 |
<chirino_m> |
k |
14:32 |
<jstrachan> |
yeah |
15:43 |
<hadrian> |
chirino_m: i wiped out my m2 repo and i have a missing artifact: protobuf-java-2.0.0beta do you know where it's available from ? |
15:45 |
<jstrachan> |
its not available yet - but the activemq-protocol-buffer shouldn't be included in the build yet? |
15:46 |
<jstrachan> |
I built it locally as it needed a little patch |
15:46 |
<chirino_m> |
jstrachan: perahps move it to sandbox? |
15:46 |
<jstrachan> |
yeah |
15:47 |
<jstrachan> |
I was gonna make the dependency available in some repo |
15:47 |
<jstrachan> |
I guess its a big undertaking switching out openwire |
15:47 |
<jstrachan> |
I guess we could move it into the amq 6 branch :) |
15:47 |
<chirino_m> |
jstrachan: yeah |
15:48 |
<jstrachan> |
it'd be nice if we could refactor the broker soon to use some kinda abstract-ish interfaces that we could implement on top of current openwire or something else (e.g. protocol buffer) or whatever - to loosen the dependency between the current openwire command structures and the functionality of the broker |
15:50 |
<chirino_m> |
jstrachan: +1 |
15:50 |
<chirino_m> |
jstrachan: would require some serious surgery tho |
15:50 |
<jstrachan> |
yeah |
15:50 |
<chirino_m> |
I don't think even IDEA could handle that refactor :) |
15:51 |
<jstrachan> |
:) |
15:51 |
<chirino_m> |
well https://svn.apache.org/repos/asf/activemq/sandbox/kahadb is in. |
15:51 |
<jstrachan> |
coolio |
15:51 |
<jstrachan> |
its mostly all those broker/region/subscription classes |
15:51 |
<jstrachan> |
be nice to decouple a bit from the underlying wire protocol if we could |
15:51 |
<chirino_m> |
jstrachan: yeah |
15:51 |
<jstrachan> |
too scared to touch the code much though :) |
15:52 |
<chirino_m> |
me too! |
15:52 |
<jstrachan> |
might be better waiting for amq6 :) |
15:52 |
<chirino_m> |
jstrachan: if you want to experiment in a smaller broker.. |
15:52 |
<chirino_m> |
we have a little experimental one. |
15:52 |
<chirino_m> |
that easier to grok/test ideas on. |
15:53 |
<chirino_m> |
feel free to test the idea out on https://svn.apache.org/repos/asf/activemq/sandbox/activemq-router |
15:53 |
<jstrachan> |
coolio |
15:58 |
<chirino_m> |
btw that ZK code is hard to hack without chaning lots of stuff. |
15:58 |
<chirino_m> |
not alot of interfaces or use of DI |
16:06 |
<hadrian> |
jstrachan: commenting out activemq-protocol-buffer from the build worked |
16:07 |
<jstrachan> |
coolio |
16:07 |
<hadrian> |
shouldn't i ci this? other users will certainly hit this too |
16:07 |
<hadrian> |
until protobuf-java becomes available |
16:08 |
<jstrachan> |
yeah, commit it |
16:10 |
<chirino_m> |
I sent a note out to the ZK folks asking if they wouldn't mind making the project more DI. |
16:10 |
<hadrian> |
done |
21:05 |
<Ryan> |
is anyone familiar with activemq-admin stop? |