pombreda / appscale

Automatically exported from code.google.com/p/appscale
0 stars 0 forks source link

More than one PBServer causes inconsistency issues #72

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
Databases that use more than one PBServer no longer get IDs consistently.
Three remedies have been proposed:

1) Use a single PBServer on the head node. Is less scalable but is a quick
hack.

2) Use many PBServers and one UserAppServer on the head node. When a new ID
is needed, the PBServer contacts the UAServer, who is a central repository
for IDs. Is more scalable on high-read apps and like (1), the head node is
a central point of failure.

3) Use ZooKeeper or Paxos to have all nodes agree on a new ID before using
it. Requires more messages to be sent and may bog the system down under
high traffic. Also requires more time to implement.

Have reverted to solution 1 for now. Raj is working on implementing (2) and
Soo Hwan is investigating how much work is involved in implementing (3).

Will eventually implement all three and see the performance differences
over different apps. We also plan to switch between the different modes
statically via a command line arg or yaml file indicating what nodes run
what servers.

Original issue reported on code.google.com by shattere...@gmail.com on 22 Jun 2009 at 8:52

GoogleCodeExporter commented 9 years ago
Fixed for now. Soo Hwan is looking into using ZooKeeper for option (3) and we 
will
return to this at a later time.

Original comment by shattere...@gmail.com on 2 Jul 2009 at 3:03