forked from sharathvemula/waffle_test
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
39a19cc
commit 153aa5e
Showing
1 changed file
with
44 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,44 @@ | ||
Waffle | ||
# Waffle | ||
|
||
Waffle is the first system to hide data access patterns adaptively, without requiring to | ||
known the input data access distribution, under a passive persistent | ||
adversary. Waffle incurs a constant bandwidth and client-side storage | ||
overhead, both of which can be configured by an application | ||
owner. | ||
|
||
## Requirements | ||
|
||
* cmake-3.5+ | ||
|
||
## Building | ||
|
||
After installing the requirements, run | ||
|
||
``` | ||
sh build.sh | ||
``` | ||
inside waffleClient folder | ||
|
||
## Running | ||
|
||
Running Waffle requires atleast 3 machines: | ||
|
||
1. Client with a CLIENT_IP and CLIENT_PORT | ||
2. Proxy with a PROXY_IP | ||
3. Redis backing storage server with STORAGE_SERVER_IP and STORAGE_PORT | ||
|
||
First start the storage server | ||
|
||
Then start the proxy: | ||
|
||
``` | ||
./bin/proxy_server -l <WORKLOAD_FILE> -b <BATCH_SIZE> -r <SYSTEM_PARAMETER> -f <FAKE_QUERIES_FOR_DUMMY_OBJECTS> -d <NUMBER_OF_DUMMY_OBJECTS> -c <CACHE_SIZE> -n <NUM_CORES> -h <STORAGE_SERVER_IP> -p <STORAGE_PORT> | ||
``` | ||
|
||
Waffle will now initialize. After the proxy says it's reachable launch the benchmark code: | ||
|
||
``` | ||
./bin/proxy_benchmark -t <TRACE_FILE> -h <PROXY_IP> -p <PROXY_PORT> -n <NUM_CLIENTS> | ||
``` | ||
|
||
After completion the benchmark will display the throughput during the run. There will be a new folder in the data folder that contains one file for each client displaying the latency of each operation in nanoseconds. |