## 4 Performance Evaluation  
### Experimental Data and Environment  
We compare the performance of WR-Store with the representative key-value stores: RocksDB of Facebook [3], BerkeleyDB of Oracle [4], and LevelDB of Google [2]. For implementing the \(Get()\), \(Put()\), \(Delete()\) operations of WR-Store, we use the algorithms presented in Section 3.3 based on the Windows native APIs. For RocksDB, we build a library for Windows according to the guideline provided by RocksDB ([[https://github.com/facebook/rocksdb/wiki/Building-on-Windows](https://github.com/facebook/rocksdb/wiki/Building-on-Windows)]([https://github.com/facebook/rocksdb/wiki/Building-on-Windows](https://github.com/facebook/rocksdb/wiki/Building-on-Windows))). We use the source code released in the master branch of Github ([[https://github.com/facebook/rocksdb](https://github.com/facebook/rocksdb)]([https://github.com/facebook/rocksdb](https://github.com/facebook/rocksdb))); the used source code version is 5.14. For BerkeleyDB, we build a library for Windows according to the document provided by Oracle ([[https://docs.oracle.com/database/bdb181/index.html](https://docs.oracle.com/database/bdb181/index.html)]([https://docs.oracle.com/database/bdb181/index.html](https://docs.oracle.com/database/bdb181/index.html))). We use the source code released in the Oracle official homepage ([[http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/downloads/index.html](http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/downloads/index.html)]([http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/downloads/index.html](http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/downloads/index.html))); the used source code version is 18.1. For LevelDB, we build a library for Windows using the source code released in Github for the Windows version of LevelDB ([[https://github.com/ren85/leveldb-windows](https://github.com/ren85/leveldb-windows)]([https://github.com/ren85/leveldb-windows](https://github.com/ren85/leveldb-windows))). RocksDB, BerkeleyDB, and LevelDB provide interfaces for multiple programming languages such as C, C++, and Java. For the fairness, we use C++ for all the methods. We use Visual Studio 15.0 on Windows 10 64 bit. To verify that WR-Store can run on any Windows environments,  
Figure 4: Processing algorithms for WR-Store. we perform experiments in the other environment on a different Windows version. We perform all the experiments on a system with a quad-core Intel Xeon E5-2660 2.0 GHz processor, 8 GB of main memory, and Windows 2016 server 64 bit. To minimize the intervention of the other processes running on Windows, we perform each experiment right after booting the system. Table 4 shows characteristics of the data sets. We use eight data sets including synthetic and real data sets. Synthetic data sets are used to measure the scalability of the key-value stores as the size of data set is increased. Each key-value pair consists of a random string with a variable length for a value and an unique number for a key. We generate four data sets of varying sizes: (1) _KVData1_, (2) _KVData2_, (3) _KVData3_, and (4) _KVData4_. We crawl four real data sets from Twitter. To crawl actual tweets, we use the Tweepy library ([[https://github.com/tweepy/tweepy](https://github.com/tweepy/tweepy)]([https://github.com/tweepy/tweepy](https://github.com/tweepy/tweepy))) with a different filtering condition and post-processing for each data set. That is, all the data sets are designed to have different data types such as geo locations, texts, and integers. Table 5 shows the samples of real data sets. (1) _ID-Geo_ data set consists of the tweet ID and the location information of the tweet. (2) _ID-Hashtag_ data set consists of the tweet ID and the hash tags in the tweet. (3) _ID-Tweet_ data set consists of the tweet ID and the tweet text. (4) _User-Followers_ data set consists of the user ID and the number of followers of the user.