Package depskys.clouds

Examples of depskys.clouds.CloudRepliesControlSet


  }

  private boolean canReleaseAndReturn(CloudReply mdreply) {
    /*required in the case where we are waiting for n - f metadata replies and already have the value*/
    try {
      CloudRepliesControlSet rcs = depskys.replies.get(mdreply.sequence);

      if(rcs != null){
        if (mdreply.reg.cloudVersions.size() >= depskys.N - depskys.F
            && rcs.replies.size() > depskys.F
            && mdreply.reg.isPVSS()) {
View Full Code Here


  public synchronized byte[] readMatching(DepSkySDataUnit reg, byte[] hashMatching) throws Exception{


    parallelRequests = true;
    lastMetadataReplies = null;
    CloudRepliesControlSet rcs = null;

    try{

      int seq = getNextSequence();
      rcs = new CloudRepliesControlSet(N, seq);
      //broadcast to all clouds to get the metadata file and after the version requested
      broadcastGetMetadata(seq, reg,
          DepSkySManager.READ_PROTO, hashMatching);
      replies.put(seq, rcs);
      int nullResponses = 0;
View Full Code Here

   */
  public synchronized byte[] read(DepSkySDataUnit reg) throws Exception {

    parallelRequests = true;
    lastMetadataReplies = null;
    CloudRepliesControlSet rcs = null;

    try{
      int seq = getNextSequence();
      rcs = new CloudRepliesControlSet(N, seq);
      //broadcast to all clouds to get the metadata file and after the version requested
      broadcastGetMetadata(seq, reg,
          DepSkySManager.READ_PROTO, null);
      replies.put(seq, rcs);
      int nullResponses = 0;
View Full Code Here

   *
   * @param reg - Data Unit
   */
  public void deleteContainer(DepSkySDataUnit reg) throws Exception{

    CloudRepliesControlSet rcs = null;
    try {
      int seq = getNextSequence();
      rcs = new CloudRepliesControlSet(N, seq);
      replies.put(seq, rcs);
      broadcastGetMetadata(seq, reg, DepSkySManager.DELETE_ALL, null);
      rcs.waitReplies.acquire();
      lastMetadataReplies = rcs.replies;

View Full Code Here

   * @return the hash of the value written
   *
   */
  public synchronized byte[] write(DepSkySDataUnit reg, byte[] value) throws Exception {

    CloudRepliesControlSet rcs = null, wrcs = null;

    try{
      int seq = getNextSequence();
      rcs = new CloudRepliesControlSet(N, seq);
      replies.put(seq, rcs);
      //broadcast to all clouds to get the Metadata associated with this dataUnit
      broadcastGetMetadata(seq, reg,
          DepSkySManager.WRITE_PROTO, null);
      rcs.waitReplies.acquire(); //blocks until the semaphore is released
      lastMetadataReplies = rcs.replies;
      //process replies and actualize version
      int nullCounter = 0;
      long maxVersionFound = -1;

      //proccess metadata replies
      for (int i = 0; i < rcs.replies.size(); i++) {
        CloudReply r = rcs.replies.get(i);
        if (r.response == null || r.type != DepSkySCloudManager.GET_DATA
            || r.vNumber == null) {
          nullCounter++;
          continue;
        } else {
          long version = Long.parseLong(r.vNumber);
          if (version > maxVersionFound) {
            maxVersionFound = version;
          }
        }
      }

      //when is the first write for this dataUnit (none version was found)
      if (nullCounter > F) {
        maxVersionFound = 0;
      }

      //calcule the name of the version to be written
      long nextVersion = maxVersionFound + DepSkySManager.MAX_CLIENTS + clientId;

      seq = getNextSequence();
      wrcs = new CloudRepliesControlSet(N, seq);
      replies.put(seq, wrcs);
      byte[] allDataHash = generateSHA1Hash(value);


      //do the broadcast depending on the protocol selected for use (CA, A, only erasure codes or only secret sharing)
View Full Code Here

  /**
   * NOT SUPORTED YET (waiting that all clouds support ACLs by container)
   */
  public void setAcl(DepSkySDataUnit reg, String permission, LinkedList<Pair<String, String>> cannonicalIds) throws Exception {

    CloudRepliesControlSet rcs = null, wrcs = null;

    try{
      //      int seq = getNextSequence();
      //      rcs = new CloudRepliesControlSet(N, seq);
      //      replies.put(seq, rcs);
      //      broadcastGetMetadata(seq, reg,
      //          DepSkySManager.ACL_PROTO, null);
      //      rcs.waitReplies.acquire();
      //      lastMetadataReplies = rcs.replies;
      //      //process replies and actualize version
      //      int nullCounter = 0;
      //      long maxVersionFound = -1;
      //      for (int i = 0; i < rcs.replies.size(); i++) {
      //        CloudReply r = rcs.replies.get(i);
      //        if (r.response == null || r.type != DepSkySCloudManager.GET_DATA
      //            || r.vNumber == null) {
      //          nullCounter++;
      //          continue;
      //        } else {
      //          long version = Long.parseLong(r.vNumber);
      //          if (version > maxVersionFound) {
      //            maxVersionFound = version;
      //          }
      //        }
      //      }
      //      if(nullCounter > F){
      //        //fazer qualquer coisa
      //      }

      int seq = getNextSequence();
      wrcs = new CloudRepliesControlSet(N, seq);
      replies.put(seq, wrcs);
      broadcastSetContainersACL(seq, reg, DepSkySManager.ACL_PROTO, 0, permission, cannonicalIds);

      wrcs.waitReplies.acquire();
      lastReadReplies = wrcs.replies;
View Full Code Here

      //System.out.println("NOTE: sequence " + reply.sequence
      //  + " replies already removed - " + reply);
      return;
    }

    CloudRepliesControlSet rcs = replies.get(reply.sequence);

    if (rcs != null) {
      rcs.replies.add(reply);
    } else {
      return;
View Full Code Here

   */
  private boolean startDrivers(){
    System.out.println("starting drivers...");

    int seq = getNextSequence();
    CloudRepliesControlSet rcs = new CloudRepliesControlSet(N, seq);
    replies.put(seq, rcs);
    for(int i = 0; i < 4; i++)
      manager.driversManagers[i].doRequest(
          new CloudRequest(DepSkySCloudManager.INIT_SESS, seq, null,
              null, null, null, new Properties(), null, -1, false, null));
View Full Code Here

  }

  //to be utilized by the lock algorithm
  private void writeQuorum(DepSkySDataUnit reg, byte[] value, String filename){

    CloudRepliesControlSet rcs = null;
    try{
      int seq = getNextSequence();
      rcs = new CloudRepliesControlSet(N, seq);
      replies.put(seq, rcs);

      for (int i = 0; i < drivers.length; i++) {
        CloudRequest r = new CloudRequest(DepSkySCloudManager.NEW_DATA, sequence,
            drivers[i].getSessionKey(), reg.getContainerId(drivers[i].getDriverId()),
View Full Code Here

  }

  //to be utilized by the lock algorithm
  private LinkedList<byte[]> readQuorum(DepSkySDataUnit reg, String filename){

    CloudRepliesControlSet rcs = null;
    try{
      int seq = getNextSequence();
      rcs = new CloudRepliesControlSet(N, seq);
      replies.put(seq, rcs);

      for (int i = 0; i < drivers.length; i++) {
        CloudRequest r = new CloudRequest(DepSkySCloudManager.GET_DATA, sequence,
            drivers[i].getSessionKey(), reg.getContainerId(drivers[i].getDriverId()),
View Full Code Here

TOP

Related Classes of depskys.clouds.CloudRepliesControlSet

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.