Terrific, thank you VERY much.

I think I have enough information now to design my architecture and start
prototyping!

JK

On Wed, Aug 12, 2009 at 10:00 AM, Aaron Smuts <asm...@yahoo.com> wrote:

> There were licensing issues.  I think BDBJE was LGPL.  I can't remember.
>  In any case, if you want to use it, you can simply write your own auxiliary
> and plug it into JCS.  JCS is extensible.  This wouldn't be hard.
>
> I've had much, much better performance using MySQL (4.something) running
> the MyISAM storage engine.  I run an instance on each remote cache box.  I
> often use a combination of mysql and indexed disk caches.
>
> JCS handles data expiration, notification, replication.  . . .
>
> Aaron
>
> --- On Tue, 8/11/09, Jeffrey Kesselman <jef...@gmail.com> wrote:
>
> > From: Jeffrey Kesselman <jef...@gmail.com>
> > Subject: Re: Some preliminary JCS questions
> > To: "JCS Users List" <jcs-users@jakarta.apache.org>
> > Date: Tuesday, August 11, 2009, 7:53 PM
> > Sorry Aaron (or anyone), one more
> > question....
> >
> > The Plugins page mentions a BerkleyDB JE auxiliary, but I
> > cant find it
> > mentioned anywhere else.
> >
> > What is it called and where do I find the docs on using
> > it?
> >
> > Thanks
> >
> > On Tue, Aug 11, 2009 at 10:47 AM, Aaron Smuts <asm...@yahoo.com>
> > wrote:
> >
> > >
> > > Dear Jeffrey,
> > >
> > > You might want to read the remote cache docs.
> > Some of you questions are
> > > answered there.
> > >
> > > 1.  Your description of what JCS can do is
> > somewhat right and somewhat off.
> > >  JCS doesn't have the concept of a master,
> > exactly. But you can configure it
> > > to look something like what you are interested in.
> > >
> > > You can chain remote cache servers.  In a high
> > get / low put situation you
> > > could have some clients connect to some set of the
> > remote servers.  This way
> > > you could distribute get traffic between the remote
> > servers.  This would
> > > allow you to scale quite a bit.  But it still
> > requires replicating the data.
> > >  So it's not the best way to scale for huge
> > installations.  I'll come back
> > > to that.
> > >
> > > In this configuration, let's say that you have 4
> > remote servers: A, B, C,
> > > and D.
> > >
> > > You configure A to have remote auxiliaries for B, C,
> > and D; B for A, C, and
> > > D . . .  Items that are put to A would also be
> > sent to B, C, and D. . . .
> > >
> > > You could then divide your clients among the
> > servers.  You can include a
> > > list of servers in your client configuration.
> > The remote client will try to
> > > connect to them in order.  The first in the list
> > will be considered the
> > > primary.  JCS will try to restore the connection
> > to the primary if it goes
> > > down.  In the meantime, it will connect to
> > failover.  It will go through the
> > > list looking for a working failover.
> > >
> > > Say you have 4 clients: 1, 2, 3, and 4.  You'd
> > configure 1 with a list like
> > > this: A,B,C,D; 2 with a list like this: B,C,D,A; 3
> > with a list like this:
> > > C,D,A,B . . .
> > >
> > > Client can register listeners or not.  You want
> > to register listeners if
> > > you want to receive notification about changes.
> > You need to do this if you
> > > store volitile data on the clients.  Otherwise,
> > don't.  It can create a lot
> > > of chatter if there are lots of puts.
> > >
> > > 2.  Remote servers do not replicate on
> > startup.  They will fetch data on
> > > demand.  If A goes down, client 1 will connect to
> > B.  When A comes back,
> > > client 1 will reconnect.  Depending on the data
> > store, A might be empty.  If
> > > so, if A is asked for an item that it doesn't have, it
> > will ask B.  If it
> > > gets the data from B, it will store it.
> > >
> > > 3.  JCS uses event queues througout.  There
> > are multiple places where you
> > > can configure the internal threadpools used by the
> > pooled queue type.  If
> > > you want, you can inject your own queue.  In one
> > installation, I do just
> > > this.  I have my own event queue that uses a
> > custom thread pool that copies
> > > thread local data.
> > >
> > > 4.  If you don't have the clients listening, then
> > you should be able to
> > > scale quite a bit.  The number of clients
> > connected isn't as important and
> > > the number listening.
> > >
> > > There is also an http remote client and server.
> > You could simply direct
> > > your clients through a load balancer that would spread
> > out the load without
> > > all the manual configuration. . . .
> > >
> > > I have a big installation that uses a different
> > strategy for handling a
> > > tremendous amount of data.  I partition the
> > data.  I have numerous pairs of
> > > remote servers that handle only a small subset of the
> > data.  I could scale
> > > it to the network limit and then partition the network
> > . . .
> > >
> > > Aaron
> > >
> > >
> > >
> > > --- On Mon, 8/10/09, Jeffrey Kesselman <jef...@gmail.com>
> > wrote:
> > >
> > > > From: Jeffrey Kesselman <jef...@gmail.com>
> > > > Subject: Some preliminary JCS questions
> > > > To: jcs-users@jakarta.apache.org
> > > > Date: Monday, August 10, 2009, 5:18 PM
> > > > Hi,
> > > >
> > > > Im looking at maybe using JCS as the guts of a
> > game
> > > > resource database
> > > > distribution scheme.  I need a couple of
> > questions
> > > > answered to determine ita
> > > > suitability.
> > > >
> > > > (1) I understand that JCS can have effectively
> > master
> > > > caches, to which thing
> > > > can be added, and remote caches that are read
> > only and get
> > > > updates friom the
> > > > master(s).  Am I correct that there can be
> > more then
> > > > one master and that
> > > > they can replicate updates to each other?
> > > >
> > > > (2) If a remote cache is disconnecetd or shut
> > down for some
> > > > period of time
> > > > and then brought abck online, will it sync with
> > its
> > > > masters' current
> > > > contents automatically?
> > > >
> > > > (3) Im looking at perhapse bulding the master
> > into a larger
> > > > framework that
> > > > already has a thread management model,  How
> > does JCS
> > > > use threads?  Does it
> > > > multi-thread? If so, can I get control over
> > therad
> > > > allocation opr is it
> > > > buried deep in the code base?
> > > >
> > > > (4) How does it scale in terms of connectind
> > remotes?
> > > > Updates I am
> > > > expecting to be infrequent, but I am expecting
> > thousands of
> > > > remoptes
> > > > connected to each master.  Do the remtoes
> > all have to
> > > > connect to one master
> > > > or can the remotes daisy chain?  If they can
> > daisy
> > > > chain, how do the
> > > > discover each iother and what do they do if their
> > parent in
> > > > the chain fails?
> > > >
> > > > Thanks
> > > >
> > > > --
> > > > ~~ Microsoft help desk says: reply hazy, ask
> > again later.
> > > > ~~
> > > >
> > >
> > >
> > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: jcs-users-unsubscr...@jakarta.apache.org
> > > For additional commands, e-mail: jcs-users-h...@jakarta.apache.org
> > >
> > >
> >
> >
> > --
> > ~~ Microsoft help desk says: reply hazy, ask again later.
> > ~~
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: jcs-users-unsubscr...@jakarta.apache.org
> For additional commands, e-mail: jcs-users-h...@jakarta.apache.org
>
>


-- 
~~ Microsoft help desk says: reply hazy, ask again later. ~~

Reply via email to