Roadmap Proposal

Hey all,

Gato visited the Portland Jive offices this past week from Argentina. Besides consuming many bottles of Oregon and Argentina wine we also spent some time discussing Pampero. Here’'s our proposal on how to move forward:

Phase 1: Get something simple but working in place

  • Create a very simple connection manager implementation using our existing I/O code from Jive Messenger. Connection managers will need to be manually configured to connect to a central Jive Messenger server.

  • Add support to Jive Messenger to allow connection manager connections. This basically means listening on a special port for CM connections and then assigning each session inside the server a CM id so that the server knows how to route packets.

  • We’'ll re-use the existing external component protocol with very minor tweaks.

Most likely, the majority of this work will be done by Gato. It’‘s hard to start from nothing and get to somewhere where people can experiment and contribute. Current estimate is that it’'s a couple weeks of solid work, but given all the other things going on at the moment, could be 6-8 weeks from now.

Phase 2: Experiment with different approaches to get high scalability

  • Use IP multi-cast so that connection managers can automatically find the Jive Messenger server to connect to. We could use multi-cast DNS (Apple Bonjour) or Jini.

  • Build a new connection manager that uses NIO for much improved scalability.

  • Try out different XML libraries than Dom4J in the hopes of finding something faster as well as something that supports binary XML. This has been discussed in some other threads.

  • Add statistics and management using JMX.

Some prototype work for Phase 2 can start now but we’‘ll want to wait until after Phase 1 before adding it in. We’'re hoping that many of the Phase 2 items can be driven by Noah, Conor, Iain, and others.

Phase 3: Polish

In phase 3 we’'ll setup the full load testing environment and make additional tweaks to get scalability to where we want it.

Some general scaling goals associated with each phase; if possible, we’'d like to test the system at each phase to see if we reach these goals:

Phase 1: 15K connections

Phase 2: 40K connections

Phase 3: 100K connections

Thanks,

Matt

That sounds like what we came to in this link http://www.jivesoftware.org/community/thread.jspa?threadID=16262&tstart=0thread[/link]

If Gato is swamped then I can help with the initial release. I’‘m actually ready to start, my JMX meter project is not tucked away and ready to use. It’'d be nice if you can share your design/intentions with the community so those that we can help out if we are able to do so. This would take the responsibility off of Gato for an initial release (unless he likes that sort of thing ;).

Just my 2c.

Noah

Hey Matt,this is a nice Roadmap,we will follow on the heels of Pampero.hopeful us can contribute some stuff to it.

–Tom

Thanks matt , this is very a nice of Roadmap ,but i think test it and provide bug report or add some function in Project Pampero !

  • zhuam