1. 04 1月, 2012 2 次提交
    • L
      Fixed a bug on the leader change protocol that would block all replicas if the... · b3e67b0f
      liquidsnake@sapo.pt 提交于
      Fixed a bug on the leader change protocol that would block all replicas if the delayed replica triggered again a leader change before the others finished the same protocol.
      
      Identified a bug on the method "send" of class NettyClientServerCommunicationSystemServerSide, but its cause remains misterious: if invoked 2 times for the same message (why it sometimes is invoked 2 times for the same message is not known), the client may not receive a reply on its end, and if no sufficent replies are received, the client blocks. If locks are used in this method, the problem seems to disappear.
      
      Removed various locks from the leader change protocol which were rendered useless in previous commits.
      
      The Proposed thread now  unlocks by this order: I am the leader -> the consensus as finished  -> I have message to order 
      b3e67b0f
    • M
      Changed Executable interface tree. · 72b3bbf6
      marcelmhs@gmail.com 提交于
      Now Executable is the top class. It has the executeUnordered method, as all executables can process readonly messages.
      There are two classes extending Executable.
      SingleExecutable has the executeOrdered method to process a sigle command.
      BatchExecutable has the executeBatch to process multiple commands.
      BatchExecutable was also changed to have a matrix of bytes as parameter, corresponding to an array of commands, having an array of bytes.
      Demo classes was changed to use the new Executable structure.
      ServiceReplica was also changed.
      72b3bbf6
  2. 14 12月, 2011 3 次提交
  3. 13 12月, 2011 1 次提交
    • L
      Fixed a bug on the state transfer protocol. It will now longer abort if the... · 9961ae8c
      liquidsnake@sapo.pt 提交于
      Fixed a bug on the state transfer protocol. It will now longer abort if the replica which should send the complete state remains mute; instead, it will re-initialize the protocol. This way, the system will no longer freeze when trying to add a replica to the group while the original leader is down (because there are not enough replicas to have a quorum during the first phase of the consensus algorithm).
      
      Also done a minor change in the implementation: upon a timeout, the computations will be passed to the CS thread, in a similar way in which is done with the leader change protocol.
      
      Some refractoring was also done.
      9961ae8c
  4. 10 12月, 2011 1 次提交
    • L
      Fixed a small bug that would render the state transfer protocol less... · a4c9a255
      liquidsnake@sapo.pt 提交于
      Fixed a small  bug that would render the state transfer protocol less efficient, although still functional. Found a small defect on the protocol, but not fixed yet (I want to discuss the issue first with Professor Bessani).
      
      Also, substituted a printstack trace  by a system out, which would be displayed when the CS couldn't connect to another replica. Since this was very periodic, it would make difficult to do debugging with such an excpetion constantly appearing.
      a4c9a255
  5. 08 12月, 2011 2 次提交
  6. 07 12月, 2011 1 次提交
  7. 06 12月, 2011 4 次提交
  8. 03 12月, 2011 1 次提交
  9. 02 12月, 2011 1 次提交
  10. 24 11月, 2011 2 次提交
  11. 19 11月, 2011 1 次提交
  12. 16 9月, 2011 11 次提交
  13. 15 9月, 2011 2 次提交
  14. 12 9月, 2011 1 次提交
  15. 05 9月, 2011 1 次提交
  16. 03 9月, 2011 1 次提交
  17. 02 9月, 2011 4 次提交
  18. 01 9月, 2011 1 次提交
    • B
      Another huge update! · 53fdcd13
      bessani@gmail.com 提交于
      Removed and refactored a lot of code, added new microbenchmarks and improved the parallelism between the delivery thread and server communication thread. Additionally, processing of out of context message changed a bit (done in the server communication thread, instead of the delivery thread).
      IMPORTANT: Service replica API changed!!!
      NOTE: currently achieving a zero-byte throughput of 151Kops/sec ;-)
      53fdcd13