Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Empty file added output.txt
Empty file.
6 changes: 6 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,12 @@
</build>
<dependencies>

<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>

<!-- https://mvnrepository.com/artifact/net.sf.opencsv/opencsv -->
<dependency>
<groupId>net.sf.opencsv</groupId>
Expand Down
14 changes: 14 additions & 0 deletions results/ME_B1_S10P1Q.csv
Original file line number Diff line number Diff line change
Expand Up @@ -2624,3 +2624,17 @@ Querier,Cache log
Querier,Cache log
Querier,Cache log
Querier,Cache log
Querier,Cache log
Querier,Cache log
Querier,Cache log
Querier,Cache log
Querier,Cache log
Querier,Cache log
Querier,Cache log
Querier,Cache log
Querier,Cache log
Querier,Cache log
Querier,Cache log
Querier,Cache log
Querier,Cache log
Querier,Cache log
14 changes: 14 additions & 0 deletions results/ME_B2_S10P1Q_80.csv
Original file line number Diff line number Diff line change
Expand Up @@ -3215,3 +3215,17 @@ Querier,Cache log
Querier,Cache log
Querier,Cache log
Querier,Cache log
Querier,Cache log
Querier,Cache log
Querier,Cache log
Querier,Cache log
Querier,Cache log
Querier,Cache log
Querier,Cache log
Querier,Cache log
Querier,Cache log
Querier,Cache log
Querier,Cache log
Querier,Cache log
Querier,Cache log
Querier,Cache log
7 changes: 7 additions & 0 deletions results/checkingQP.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
Querier,No. of Policies,Median Generation Time (ms),Median Execution Time (ms),Median Policy Retrieval Time (ms)
Querier,No. of Policies,Median Generation Time (ms),Median Execution Time (ms),Median Policy Retrieval Time (ms)
Querier,No. of Policies,Median Generation Time (ms),Median Execution Time (ms),Median Policy Retrieval Time (ms)
Querier,No. of Policies,Median Generation Time (ms),Median Execution Time (ms),Median Policy Retrieval Time (ms)
Querier,No. of Policies,Median Generation Time (ms),Median Execution Time (ms),Median Policy Retrieval Time (ms)
Querier,No. of Policies,Median Generation Time (ms),Median Execution Time (ms),Median Policy Retrieval Time (ms)
Querier,No. of Policies,Median Generation Time (ms),Median Execution Time (ms),Median Policy Retrieval Time (ms)
14 changes: 14 additions & 0 deletions results/fixingQP.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
Querier,No. of Policies,Cache log,Generation Time,Execution Time,Policy Retrieval Time,Hit Total Time,Miss Total Time,Deletion Flag
Querier,No. of Policies,Cache log,Generation Time,Execution Time,Policy Retrieval Time,Hit Total Time,Miss Total Time,Deletion Flag
Querier,No. of Policies,Cache log,Generation Time,Execution Time,Policy Retrieval Time,Hit Total Time,Miss Total Time,Deletion Flag
Querier,No. of Policies,Cache log,Generation Time,Execution Time,Policy Retrieval Time,Hit Total Time,Miss Total Time,Deletion Flag
Querier,No. of Policies,Cache log,Generation Time,Execution Time,Policy Retrieval Time,Hit Total Time,Miss Total Time,Deletion Flag
Querier,No. of Policies,Cache log,Generation Time,Execution Time,Policy Retrieval Time,Hit Total Time,Miss Total Time,Deletion Flag
Querier,No. of Policies,Cache log,Generation Time,Execution Time,Policy Retrieval Time,Hit Total Time,Miss Total Time,Deletion Flag
Querier,No. of Policies,Cache log,Generation Time,Execution Time,Policy Retrieval Time,Hit Total Time,Miss Total Time,Deletion Flag
Querier,No. of Policies,Cache log,Generation Time,Execution Time,Policy Retrieval Time,Hit Total Time,Miss Total Time,Deletion Flag
Querier,No. of Policies,Cache log,Generation Time,Execution Time,Policy Retrieval Time,Hit Total Time,Miss Total Time,Deletion Flag
Querier,No. of Policies,Cache log,Generation Time,Execution Time,Policy Retrieval Time,Hit Total Time,Miss Total Time,Deletion Flag
Querier,No. of Policies,Cache log,Generation Time,Execution Time,Policy Retrieval Time,Hit Total Time,Miss Total Time,Deletion Flag
Querier,No. of Policies,Cache log,Generation Time,Execution Time,Policy Retrieval Time,Hit Total Time,Miss Total Time,Deletion Flag
Querier,No. of Policies,Cache log,Generation Time,Execution Time,Policy Retrieval Time,Hit Total Time,Miss Total Time,Deletion Flag
1,400 changes: 1,400 additions & 0 deletions results/policiesPGSQL.csv

Large diffs are not rendered by default.

Binary file added run_output.txt
Binary file not shown.
Binary file added run_output2.txt
Binary file not shown.
38 changes: 33 additions & 5 deletions src/main/java/edu/uci/ics/tippers/caching/workload/CPolicyGen.java
Original file line number Diff line number Diff line change
Expand Up @@ -47,13 +47,15 @@ public class CPolicyGen {
private int DURATION_NIGHT_DUSK_HOURS;
private int DURATION_NIGHT_DAWN_HOURS;



public CPolicyGen() {
// connection = MySQLConnectionManager.getInstance().getConnection();
connection = PGSQLConnectionManager.getInstance().getConnection();
r = new Random();
polper = PolicyPersistor.getInstance();
pg = new PolicyUtil();

//location generation
location_clusters = new HashMap<>();
List<String> all_locations = pg.getAllLocations();
for (int i = 0; i < 10; i++) {
Expand All @@ -72,7 +74,7 @@ public CPolicyGen() {
if (inputStream != null) {
props.load(inputStream);
START_WORKING_HOURS = props.getProperty("w_start");
DURATION_WORKING_HOURS = 120;
DURATION_WORKING_HOURS = 120; //potential automation
workingHours = new TimeStampPredicate(pg.getDate("MIN"), pg.getDate("MAX"), START_WORKING_HOURS, DURATION_WORKING_HOURS);
START_NIGHT_DUSK_HOURS = props.getProperty("n_dusk_start");
DURATION_NIGHT_DUSK_HOURS = Integer.parseInt(props.getProperty("n_dusk_plus"));
Expand All @@ -94,7 +96,7 @@ private List<String> includeLocation(){
}
else return null;
}

//start time could be automated here
private LocalTime generateRandomStartTime(){
final LocalTime START_RANGE = LocalTime.of(8, 0); // 8 AM
final LocalTime END_RANGE = LocalTime.of(15, 0); // 3 PM
Expand Down Expand Up @@ -201,12 +203,27 @@ public List<BEPolicy> generatePoliciesforAC(List<CUserGen.User> users){

List<BEPolicy> policies = new ArrayList<>();

//numPolicies = PolicyConstants.NO_OF_POLICIES;
LocalTime start =
LocalTime.parse(PolicyConstants.POLICY_START_TIME);

LocalTime end =
LocalTime.parse(PolicyConstants.POLICY_END_TIME);

// String location =
// PolicyConstants.POLICY_LOCATION;

for (CUserGen.User user: users){

int numPolicies = 10;
for (int i = 0; i < numPolicies; i++) {
workingHours.setStartTime(generateRandomStartTime());
workingHours.setEndTime(workingHours.getStartTime().plus(120, ChronoUnit.MINUTES));
//workingHours.setStartTime(generateRandomStartTime());
//workingHours.setEndTime(workingHours.getStartTime().plus(120, ChronoUnit.MINUTES));

//automating the start and end up
workingHours.setStartTime(start);
workingHours.setEndTime(end);

if (i<numPolicies){

if(user.getUserProfile().equals("graduate")){
Expand Down Expand Up @@ -378,6 +395,17 @@ public List<BEPolicy> generateDefaultPoliciesPerQueriesforAC(List<CUserGen.User>
FlatPolicyPersistor flatpolper = new FlatPolicyPersistor();
FlatPolicyPersistor defaultpolper = new FlatPolicyPersistor();

//policy automation
// numPolicies = PolicyConstants.NO_OF_POLICIES;
// LocalTime start =
// LocalTime.parse(PolicyConstants.POLICY_START_TIME);

// LocalTime end =
// LocalTime.parse(PolicyConstants.POLICY_END_TIME);

// String location =
// PolicyConstants.POLICY_LOCATION;

possibleQueriers.add(177);

System.out.println("Running Policy Insertion Experiment");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ public List<Querier> generateQueriersByPopularity() {
List<Querier> queries = new ArrayList<>();
try {
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery(
ResultSet resultSet = statement.executeQuery( //automation?
"SELECT f.id AS faculty_id, COUNT(s.id) AS student_count " +
"FROM ashakya.APP_USER f " +
"JOIN ashakya.APP_USER s ON f.user_group = s.user_group " +
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -120,12 +120,16 @@ public Duration generateWorkload(int n, List<BEPolicy> policies, List<QueryState
}
nextRegularPolicyInsertionTime += regularInterval;

polper.insertPolicy(regularPolicies);
polper.insertPolicy(regularPolicies); //might not need this line for WL gen
}

// Steady State
for (int i = 0; i < yQuery; i++) {
if (generatedQueries < 6401) {
//if we have queries that are executed-- certain percentage of when we want a query executed.. we create
//a fixed window size. want to test best efficiency of caching
//whatever queries we have are stored in a sliding window
//we want to create a scenario of visited queries
if (generatedQueries % 2 == 0) {
if (queryWindow.size() < windowSize) {
queryWindow.add(queries.remove(0));
Expand All @@ -142,6 +146,11 @@ public Duration generateWorkload(int n, List<BEPolicy> policies, List<QueryState
result.append(currentTime).append(",")
.append(query.toString()).append("\n");
String querier = e.runExperiment(query);
//we don't want this in our workload generator (it's specific to sieve)
//we have a workload generator which generates an output file
//no presence of sieve in the workload generation
//output from the workload generator can test the system
//workload is independent from sieve
ca.runAlgorithm(clockHashMap, querier, query, timestampDirectory, deletionHashMap);
// cme.runAlgorithm(clockHashMap, querier, query, timestampDirectory);
// baseline1.runAlgorithm(clockHashMap, querier, query, timestampDirectory, countUpdate);
Expand Down Expand Up @@ -508,7 +517,7 @@ public void runExperiment() {
// WorkloadGenerator generator = new WorkloadGenerator(regularInterval, dynamicInterval, duration);

int numPoliciesQueries = 0; // Example number of policies/queries to generate each interval
// Duration totalRunTime = generator.generateWorkload(numPoliciesQueries, policies, queries);
//Duration totalRunTime = generator.generateWorkload(numPoliciesQueries, policies, queries);
Duration totalRunTime = generator.runDemo();
System.out.println("Total Run Time: " + totalRunTime);
}
Expand Down
24 changes: 24 additions & 0 deletions src/main/java/edu/uci/ics/tippers/common/PolicyConstants.java
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,12 @@ public class PolicyConstants {
private static Connection connection;
private static long NUMBER_OF_TUPLES = 0;

//policy generation additions
public static int NO_OF_POLICIES;
public static String POLICY_START_TIME;
public static String POLICY_END_TIME;
public static String POLICY_LOCATION;

private PolicyConstants(){

}
Expand All @@ -67,6 +73,24 @@ public static void initialize(){
Configurations configs = new Configurations();
try {
Configuration datasetConfig = configs.properties("config/general.properties");
//for policygen config file
Configuration myConfig =
configs.properties("config/execution/policygen.properties");

//assigning config file values to variables
NO_OF_POLICIES =
myConfig.getInt("num_of_policies");

POLICY_START_TIME =
myConfig.getString("start_time");

POLICY_END_TIME =
myConfig.getString("end_time");

POLICY_LOCATION =
myConfig.getString("room_location");


DBMS_LOCATION = datasetConfig.getString("location");
DBMS_CREDENTIALS = datasetConfig.getString("credentials");
DBMS_CHOICE = datasetConfig.getString("dbms");
Expand Down
13 changes: 13 additions & 0 deletions src/main/resources/config/execution/policygen.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#Attributes
start_time = 08:00:00
end_time = 20:00:00
room_location = 3142-clwa-2209

num_of_policies = 10
# similar to querier in user_policy table
querier = 177
policy_duration_minutes = 120




2 changes: 2 additions & 0 deletions src/main/resources/config/execution/workload.properties
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,5 @@ y = 2
steady = true
busty = false



4 changes: 2 additions & 2 deletions src/main/resources/config/general.properties
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ time_format = HH:mm:ss
timestamp_format = yyyy-MM-dd HH:mm:ss

#Experiments to run
query_performance = false
policy_scaler = false
query_performance = true
policy_scaler = true