Example #1
0
static int
get_percentage(const char *url)
{
    void *db = metadb_get();
    int remain, done;
    int rval;
    if(db == NULL)
        return 0;

    remain = count_items(db,
                         "SELECT count(*) "
                         "FROM item "
                         "WHERE url LIKE ?1 "
                         "AND contenttype = 1 "
                         "AND indexstatus == 0",
                         url);
    if(remain) {
        done = count_items(db,
                           "SELECT count(*) "
                           "FROM item "
                           "WHERE url LIKE ?1 "
                           "AND contenttype = 1 "
                           "AND indexstatus > 1",
                           url);
        rval = MIN(done * 100 / (done+remain), 100);
    } else {
        rval = 100;
    }
    metadb_close(db);
    return rval;
}
void run_test(int nargs, char* args[]) {
    if (nargs < 2) {
        return;
    }

    (void) myreaddir;

    char* dbname = args[1];

    struct MetaDB mdb;

    printf("metadb_init return value %d\n",
           metadb_init(&mdb, dbname, NULL, 0, 51));

    listmdb(&mdb);

    /*
    int dir_id = 1;
    int partition_id = 1;
    num_print_entries = 0;
    myreaddir(mdb, dir_id, partition_id);
    printf("After myreaddir %d \n", num_print_entries);
    struct stat statbuf;
    printf("%d\n", metadb_lookup(mdb, dir_id, partition_id,
           "h0.giga.ycsb.marmot.pdl.cmu.local_p5369_f34", &statbuf));
    */

    metadb_close(&mdb);
}
Example #3
0
static void *
bmdb_thread(void *aux)
{
    bmdb_t *b = aux;
    void *db = metadb_get();
    bmdb_query_exec(db, b);
    metadb_close(db);
    bmdb_destroy(b);
    return NULL;
}
void run_test(int nargs, char* args[]) {
    if (nargs < 2) {
        return;
    }
    struct timespec start, end;
    char* dbname = args[1];
    drop_buffer_cache();

    trace_loader_t loader;
    load_trace(&loader, args[2], atoi(args[3]));

    struct MetaDB mdb;
    metadb_init(&mdb, dbname);

    enable_monitor_thread(&mdb);
    clock_gettime(CLOCK_MONOTONIC, &start);

    get_metric();

    if (strcmp(args[4], "create") == 0) {
      run_create(mdb, &loader, atoi(args[5]));
    } else {
      run_query(mdb, &loader, atoi(args[5]), atoi(args[6]), atoi(args[7]));
    }
    clock_gettime(CLOCK_MONOTONIC, &end);
    disable_monitor_thread();
    metadb_close(mdb);

    get_metric();

    uint64_t timeElapsed = timespecDiff(&end, &start);
    timeElapsed = timespecDiff(&end, &start);
    printf("%s.%d %d  %.1f \n", args[4], num_test,
                   (int) time(NULL), timeElapsed/1.0);

    destroy_trace_loader(&loader);
    drop_buffer_cache();
}
Example #5
0
static void
file_open_file(prop_t *page, const char *url, fa_stat_t *fs)
{
  char errbuf[200];
  metadata_t *md;

  void *db = metadb_get();
  md = metadb_metadata_get(db, url, fs->fs_mtime);
  metadb_close(db);

  if(md == NULL)
    md = fa_probe_metadata(url, errbuf, sizeof(errbuf), NULL);

  if(md == NULL) {
    nav_open_errorf(page, _("Unable to open file: %s"), errbuf);
    return;
  }

  if(md->md_redirect != NULL)
    url = md->md_redirect;

  prop_t *meta = prop_create_root("metadata");

  metadata_to_proptree(md, meta, 0);

  switch(md->md_contenttype) {
  case CONTENT_ARCHIVE:
  case CONTENT_ALBUM:
    file_open_browse(page, url, fs->fs_mtime);
    break;

  case CONTENT_AUDIO:
    if(!file_open_audio(page, url)) {
      break;
    }
    playqueue_play(url, meta, 0);
    playqueue_open(page);
    meta = NULL;
    break;

  case CONTENT_VIDEO:
  case CONTENT_DVD:
    backend_open_video(page, url, 0);
    break;

  case CONTENT_IMAGE:
    file_open_image(page, meta);
    meta = NULL;
    break;

  case CONTENT_PLUGIN:
    plugin_open_file(page, url);
    break;

  default:
    nav_open_errorf(page, _("Can't handle content type %d"),
		    md->md_contenttype);
    break;
  }
  prop_destroy(meta);
  metadata_destroy(md);
}