Package com.oltpbenchmark.benchmarks.auctionmark

Source Code of com.oltpbenchmark.benchmarks.auctionmark.TestAuctionMarkWorker

package com.oltpbenchmark.benchmarks.auctionmark;

import java.util.HashSet;
import java.util.Set;
import java.util.TreeSet;

import com.oltpbenchmark.api.AbstractTestWorker;
import com.oltpbenchmark.api.Worker;
import com.oltpbenchmark.benchmarks.auctionmark.util.UserId;

public class TestAuctionMarkWorker extends AbstractTestWorker<AuctionMarkBenchmark> {
  
    static {
        org.apache.log4j.PropertyConfigurator.configure("/home/pavlo/Documents/OLTPBenchmark/OLTPBenchmark/log4j.properties");
    }
   
    @Override
    protected void setUp() throws Exception {
        super.setUp(AuctionMarkBenchmark.class, TestAuctionMarkBenchmark.PROC_CLASSES);
        AuctionMarkProfile.clearCachedProfile();
        AuctionMarkConstants.CLOSE_AUCTIONS_ENABLE = false;
    }
   
    /**
     * testUniqueSellers
     */
    public void testUniqueSellers() throws Exception {
        int num_workers = 200;
        this.workConf.setScaleFactor(0.1);
        this.workConf.setTerminals(num_workers);
        this.benchmark.createDatabase();
        this.benchmark.loadDatabase();
       
        // Make a bunch of workers and then loop through all of them to
        // make sure that they don't generate a seller id that was
        // generated from another worker
        this.workers = this.benchmark.makeWorkers(false);
        assertNotNull(this.workers);
        assertEquals(num_workers, this.workers.size());
       
        Set<UserId> all_users = new HashSet<UserId>();
        Set<UserId> worker_users = new TreeSet<UserId>();
        Integer last_num_users = null;
        for (Worker w : this.workers) {
            AuctionMarkWorker worker = (AuctionMarkWorker)w;
            assertNotNull(w);
           
            // Get the uninitialized profile
            AuctionMarkProfile profile = worker.getProfile();
            assertNotNull(profile);
            assertTrue(profile.users_per_itemCount.isEmpty());
           
            // Then try to initialize it
            profile.loadProfile(worker);
            assertFalse(profile.users_per_itemCount.isEmpty());
            int num_users = profile.users_per_itemCount.getSampleCount();
            if (last_num_users != null)
                assertEquals(last_num_users.intValue(), num_users);
            else {
                System.err.println("Number of Users: " + num_users);
            }
           
            worker_users.clear();
            for (int i = 0; i < num_users; i++) {
                UserId user_id = profile.getRandomSellerId(worker.getId());
                assertNotNull(user_id);
                assertFalse(worker.getId() + " -> " + user_id.toString() + " / " + user_id.encode(),
                            all_users.contains(user_id));
                worker_users.add(user_id);
            } // FOR
            assertFalse(worker_users.isEmpty());
            all_users.addAll(worker_users);
            last_num_users = num_users;
           
//            System.err.println(String.format("Worker %03d: %d", worker.getId(), worker_users.size()));
        } // FOR
    }
   
}
TOP

Related Classes of com.oltpbenchmark.benchmarks.auctionmark.TestAuctionMarkWorker

TOP
Copyright © 2018 www.massapi.com. 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.