public static void usage() {
    System.err.println(
        "usage: "
            + RepConfig.progname
            + " -h home -l host:port [-CM][-r host:port][-R host:port]\n"
            + "  [-a all|quorum][-b][-n nsites][-p priority][-v]");

    System.err.println(
        "\t -h home (required; h stands for home directory)\n"
            + "\t -l host:port (required; l stands for local)\n"
            + "\t -C or -M (optional; start up as client or master)\n"
            + "\t -r host:port (optional; r stands for remote; any number "
            + "of these\n"
            + "\t    may be specified)\n"
            + "\t -R host:port (optional; R stands for remote peer; only "
            + "one of\n"
            + "\t    these may be specified)\n"
            + "\t -a all|quorum (optional; a stands for ack policy)\n"
            + "\t -b (optional; b stands for bulk)\n"
            + "\t -n nsites (optional; number of sites in replication "
            + "group; defaults\n"
            + "\t    to 0 to try to dynamically compute nsites)\n"
            + "\t -p priority (optional; defaults to 100)\n"
            + "\t -v (optional; v stands for verbose)\n");

    System.exit(1);
  }
 private static void usage() {
   System.err.println(
       "usage: TpcbExample [-fiv] [-a accounts] [-b branches]\n"
           + "                   [-c cachesize] [-h home] [-n transactions]\n"
           + "                   [-T threads] [-S seed] [-s history] [-t tellers]");
   System.exit(1);
 }
 public static void errExit(Exception err, String s) {
   System.err.print(progname + ": ");
   if (s != null) {
     System.err.print(s + ": ");
   }
   System.err.println(err.toString());
   System.exit(1);
 }
  public void populateTable(Database dbp, int start_id, int balance, int nrecs, String msg) {
    Defrec drec = new Defrec();

    DatabaseEntry kdbt = new DatabaseEntry(drec.data);
    kdbt.setSize(4); // sizeof(int)
    DatabaseEntry ddbt = new DatabaseEntry(drec.data);
    ddbt.setSize(drec.data.length); // uses whole array

    try {
      for (int i = 0; i < nrecs; i++) {
        kdbt.setRecordNumber(start_id + (int) i);
        drec.set_balance(balance);
        dbp.putNoOverwrite(null, kdbt, ddbt);
      }
    } catch (DatabaseException dbe) {
      System.err.println("Failure initializing " + msg + " file: " + dbe.toString());
      System.exit(1);
    }
  }
Exemple #5
0
  public static void start(Database std, String filename) {

    // build hash tables
    long starttime;
    long performance = 0; // For measuring performance
    Database secDB = null;
    Database tDB = null;
    try {
      starttime = System.currentTimeMillis();
      System.out.print("Building <user>,<songs,ratings> secondary table...");
      secDB = buildsecondary(std);
      performance = System.currentTimeMillis() - starttime;
      System.out.println(" Complete! " + performance + "ms");

    } catch (Exception e) {
      System.out.println(e.getMessage());
    }
    try {
      starttime = System.currentTimeMillis();
      System.out.print("Building <song>,<users> tertiary table...");
      tDB = buildtertiary(std);
      performance = System.currentTimeMillis() - starttime;
      System.out.println(" Complete! " + performance + "ms");

    } catch (Exception e) {
      System.out.println("Error building secondary tables.");
      System.out.println(e.getMessage());
    }

    // QUERIES //
    // use hash tables to query fast!
    PrintStream writer = io.writer("indexedanswers.txt", false);
    BufferedReader qreader = io.reader(filename);
    String line, send;
    long max = 0;
    long min = Integer.MAX_VALUE;
    long total = 0;
    long count = 0;
    long avg = 0;
    try {

      while ((line = qreader.readLine()) != null) {
        line = line.trim();
        if (line.equals("")) continue;
        if (!line.equals("")) {
          System.out.print("Indexed... ");
          starttime = System.currentTimeMillis();
          send = top3(line, secDB, tDB);
          if (send != null) writer.println(send);
          else System.out.println("Error from ranking search function");
          performance = System.currentTimeMillis() - starttime;
          System.out.println(" Complete! " + performance + "ms");
        }
        if (performance > max) max = performance;
        if (performance < min) min = performance;
        total += performance;
        count += 1;
      }
      avg = total / count;
    } catch (IOException ioe) {
      System.out.println(ioe.getMessage());
    } catch (Exception e) {
      System.out.println("error querying for top 3 songs");
      System.out.println(e.getMessage());
    }

    System.out.println(
        "Total querying time: "
            + Long.toString(total)
            + " ms (average: "
            + Long.toString(avg)
            + " ms/query). Fastest query: "
            + Long.toString(min)
            + " ms.  Slowest query: "
            + Long.toString(max)
            + " ms.");
    writer.close();
  }
  public static void main(String[] argv) throws java.io.IOException {
    File home = new File("TESTDIR");
    int accounts = ACCOUNTS;
    int branches = BRANCHES;
    int tellers = TELLERS;
    int history = HISTORY;
    int threads = 1;
    int mpool = 0;
    int ntxns = 0;
    boolean iflag = false;
    boolean txn_no_sync = false;
    long seed = (new GregorianCalendar()).get(Calendar.SECOND);

    for (int i = 0; i < argv.length; ++i) {
      if (argv[i].equals("-a")) {
        // Number of account records
        if ((accounts = Integer.parseInt(argv[++i])) <= 0) invarg(argv[i]);
      } else if (argv[i].equals("-b")) {
        // Number of branch records
        if ((branches = Integer.parseInt(argv[++i])) <= 0) invarg(argv[i]);
      } else if (argv[i].equals("-c")) {
        // Cachesize in bytes
        if ((mpool = Integer.parseInt(argv[++i])) <= 0) invarg(argv[i]);
      } else if (argv[i].equals("-f")) {
        // Fast mode: no txn sync.
        txn_no_sync = true;
      } else if (argv[i].equals("-h")) {
        // DB  home.
        home = new File(argv[++i]);
      } else if (argv[i].equals("-i")) {
        // Initialize the test.
        iflag = true;
      } else if (argv[i].equals("-n")) {
        // Number of transactions
        if ((ntxns = Integer.parseInt(argv[++i])) <= 0) invarg(argv[i]);
      } else if (argv[i].equals("-S")) {
        // Random number seed.
        seed = Long.parseLong(argv[++i]);
        if (seed <= 0) invarg(argv[i]);
      } else if (argv[i].equals("-s")) {
        // Number of history records
        if ((history = Integer.parseInt(argv[++i])) <= 0) invarg(argv[i]);
      } else if (argv[i].equals("-T")) {
        // Number of threads
        if ((threads = Integer.parseInt(argv[++i])) <= 0) invarg(argv[i]);
      } else if (argv[i].equals("-t")) {
        // Number of teller records
        if ((tellers = Integer.parseInt(argv[++i])) <= 0) invarg(argv[i]);
      } else if (argv[i].equals("-v")) {
        // Verbose option.
        verbose = true;
      } else {
        usage();
      }
    }

    rand.setSeed((int) seed);

    // Initialize the database environment.
    // Must be done in within a try block.
    //
    TpcbExample app = null;
    try {
      app =
          new TpcbExample(home, accounts, branches, tellers, history, mpool, iflag || txn_no_sync);
    } catch (Exception e1) {
      errExit(e1, "initializing environment failed");
    }

    if (verbose)
      System.out.println(
          (long) accounts
              + " Accounts, "
              + String.valueOf(branches)
              + " Branches, "
              + String.valueOf(tellers)
              + " Tellers, "
              + String.valueOf(history)
              + " History");

    if (iflag) {
      if (ntxns != 0) usage();
      app.populate();
    } else {
      if (ntxns == 0) usage();
      app.run(ntxns, threads);
    }

    // Shut down the application.

    try {
      app.close();
    } catch (DatabaseException dbe2) {
      errExit(dbe2, "appexit failed");
    }

    System.exit(0);
  }
 private static void invarg(String str) {
   System.err.println("TpcbExample: invalid argument: " + str);
   System.exit(1);
 }