How are messages served now.. I *think* they’re served based on message ID and sequence and served with the lowest ID first. Which is why a map works..but it means that I can’t re-implement this using just a queue sorted by priorities and a comparator.
I spent about 5 minutes looking at how KahaDB implements it and it looks like it’s just using the btree and that the cursor implements the priority support. On Mon, Apr 6, 2015 at 2:38 PM, Timothy Bish <tabish...@gmail.com> wrote: > On 04/06/2015 05:05 PM, Kevin Burton wrote: > > So I’m torn between two implementations of a new MemoryStore using JMS > > priority. > > > > I could do it the FAST way, and use just a regular queue object, which > > would include support for priorities, BUT would be slower for certain > > operations like remove, get, and maybe size. > > > > It would just use a PriorityBlockingQueue > > > > OR > > > > I could do it the SLOW (and somewhat ugly) way but make it more > compatible > > with what works now. Basically I would use a ReentrantReadWriteLock > around > > both a map and a queue. The queue would be used or (obvious) queue > > operations but the map would be used for getMessage and remove() … It > would > > also work with topics. > > > > The FAST way above wouldn’t work well with getMessage… because I would > have > > to iterate over the whole queue and then compare each message. > > > > I guess maybe the best way to go is to be conservative/pragmatic here and > > move to a ReentrantReadWrite lock model and use both a map and a queue. > > This would prevent any weird behavior that I don’t anticipate in exchange > > for speed. It would also mean it would work well for topics too. > I'd go with the second option as you still want to management operations > to perform in a reasonable fashion even with the memory store. > > -- > Tim Bish > Sr Software Engineer | RedHat Inc. > tim.b...@redhat.com | www.redhat.com > twitter: @tabish121 > blog: http://timbish.blogspot.com/ > > -- Founder/CEO Spinn3r.com Location: *San Francisco, CA* blog: http://burtonator.wordpress.com … or check out my Google+ profile <https://plus.google.com/102718274791889610666/posts> <http://spinn3r.com>