DELETED Edward/RedisClient2.java Index: Edward/RedisClient2.java ================================================================== --- Edward/RedisClient2.java +++ /dev/null @@ -1,219 +0,0 @@ -/** - * Redis client binding for YCSB. - * - * All YCSB records are mapped to a Redis *hash field*. For scanning - * operations, all keys are saved (by an arbitrary hash) in a sorted set. - */ - -package com.yahoo.ycsb.db; -import com.yahoo.ycsb.DB; -import com.yahoo.ycsb.DBException; -import com.yahoo.ycsb.ByteIterator; -import com.yahoo.ycsb.StringByteIterator; - -import java.util.Map; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.ArrayList; -import java.util.Random; -import java.util.Properties; -import java.util.Set; -import java.util.Vector; - -import redis.clients.jedis.Jedis; -import redis.clients.jedis.Protocol; -import com.yahoo.ycsb.Host; - -public class RedisClient extends DB { - - private Map jedis_list; - //private Jedis jedis; - public static final String HOST_PROPERTY = "redis.host"; - public static final String PORT_PROPERTY = "redis.port"; - public static final String PASSWORD_PROPERTY = "redis.password"; - - public static final String INDEX_KEY = "_indices"; - private List listHosts; - public static final int MIN_KEY = 0; - public static final int MAX_KEY = 10; - - private static Random random = new Random(); - - - public void init() throws DBException { - Properties props = getProperties(); - int port; - - String portString = props.getProperty(PORT_PROPERTY); - if (portString != null) { - port = Integer.parseInt(portString); - } - else { - port = Protocol.DEFAULT_PORT; - } - String host = props.getProperty(HOST_PROPERTY); - - String[] all_urls = host.split(","); - int interval = (MAX_KEY - MIN_KEY) / all_urls.length; - - listHosts = new ArrayList(); - jedis_list = new HashMap(); - for( int i = 0; i < all_urls.length; i++ ) - { - listHosts.add( new Host(i*interval, (i+1)*interval, all_urls[i]) ); - jedis_list.put(all_urls[i], new Jedis(all_urls[i], port)); - - } - - } - - - public void setupDB() - { - - try { - - for( Entry entry : jedis_list.entrySet() ) - { - String url = entry.getKey(); - Jedis database = entry.getValue(); - database.connect(); - - entry.setValue(database); - } - - } catch (Exception e1) { - System.err.println("Could not initialize Redis connection: " + e1.toString()); - e1.printStackTrace(); - return; - } - } - - public void cleanup() throws DBException { - for( Entry entry : jedis_list.entrySet() ) - { - - Jedis database = entry.getValue(); - if (database != null) - database.disconnect(); - - entry.setValue(database); - } - } - - - public String findHost(String key) - { - - String strIntKey = key.substring(4, 5); - - int intKey = Integer.parseInt(strIntKey); - - Host host = Host.whichHost( intKey, listHosts ); - return host.getHostIP(); - } - - /* Calculate a hash for a key to store it in an index. The actual return - * value of this function is not interesting -- it primarily needs to be - * fast and scattered along the whole space of doubles. In a real world - * scenario one would probably use the ASCII values of the keys. - */ - private double hash(String key) { - return key.hashCode(); - } - - //XXX jedis.select(int index) to switch to `table` - - @Override - public int read(String table, String key, Set fields, - HashMap result) { - try{ - String hostID = findHost(key); - Jedis jedis = jedis_list.get(hostID); - if (fields == null) { - StringByteIterator.putAllAsByteIterators(result, jedis.hgetAll(key)); - } - else { - String[] fieldArray = (String[])fields.toArray(new String[fields.size()]); - List values = jedis.hmget(key, fieldArray); - - Iterator fieldIterator = fields.iterator(); - Iterator valueIterator = values.iterator(); - - while (fieldIterator.hasNext() && valueIterator.hasNext()) { - result.put(fieldIterator.next(), - new StringByteIterator(valueIterator.next())); - } - assert !fieldIterator.hasNext() && !valueIterator.hasNext(); - } - return result.isEmpty() ? 1 : 0; - } - catch (Exception e) { - e.printStackTrace(); - } - return 1; - } - - @Override - public int insert(String table, String key, HashMap values) { - try{ - String hostID = findHost(key); - Jedis jedis = jedis_list.get(hostID); - if (jedis.hmset(key, StringByteIterator.getStringMap(values)).equals("OK")) { - jedis.zadd(INDEX_KEY, hash(key), key); - return 0; - } - return 1; - } - catch (Exception e) { - e.printStackTrace(); - } - return 1; - } - - @Override - public int delete(String table, String key) { - try{ - String hostID = findHost(key); - Jedis jedis = jedis_list.get(hostID); - return jedis.del(key) == 0 - && jedis.zrem(INDEX_KEY, key) == 0 - ? 1 : 0; - } - catch (Exception e) { - e.printStackTrace(); - } - return 1; - } - - @Override - public int update(String table, String key, HashMap values) { - try{ - String hostID = findHost(key); - Jedis jedis = jedis_list.get(hostID); - return jedis.hmset(key, StringByteIterator.getStringMap(values)).equals("OK") ? 0 : 1; - } - catch (Exception e) { - e.printStackTrace(); - } - return 1; - } - - @Override - public int scan(String table, String startkey, int recordcount, - Set fields, Vector> result) { - Set keys = jedis.zrangeByScore(INDEX_KEY, hash(startkey), - Double.POSITIVE_INFINITY, 0, recordcount); - - HashMap values; - for (String key : keys) { - values = new HashMap(); - read(table, key, fields, values); - result.add(values); - } - - return 0; - } - -} DELETED Edward/documentation.txt Index: Edward/documentation.txt ================================================================== --- Edward/documentation.txt +++ /dev/null @@ -1,19 +0,0 @@ -redis config: -- 4 slaves 1 master - - all able to write - -redis commands: -- to set up: - wget http://redis.googlecode.com/files/redis-2.6.11.tar.gz - tar xzf redis-2.6.11.tar.gz - cd redis-2.6.11 - make -- to run: - src/redis-server - -ycsb commands: - -- to load data: - ./bin/ycsb load redis -p redis.host='hostip' -p redis.port=6379 -P workloads/workloadaOneNodeSmall -- to run - ./bin/ycsb run redis -p redis.host='hostip' -p redis.port=6379 -P workloads/workloadaOneNodeSmall DELETED Edward/redis.conf Index: Edward/redis.conf ================================================================== --- Edward/redis.conf +++ /dev/null @@ -1,596 +0,0 @@ -# Redis configuration file example - -#vm-enabled yes -#vm-max-memory 0 -#vm-pages 100000000 -#vm-page-size 110 - -# Note on units: when memory size is needed, it is possible to specify -# it in the usual form of 1k 5GB 4M and so forth: -# -# 1k => 1000 bytes -# 1kb => 1024 bytes -# 1m => 1000000 bytes -# 1mb => 1024*1024 bytes -# 1g => 1000000000 bytes -# 1gb => 1024*1024*1024 bytes -# -# units are case insensitive so 1GB 1Gb 1gB are all the same. - -# By default Redis does not run as a daemon. Use 'yes' if you need it. -# Note that Redis will write a pid file in /var/run/redis.pid when daemonized. -daemonize yes - -# When running daemonized, Redis writes a pid file in /var/run/redis.pid by -# default. You can specify a custom pid file location here. -pidfile /var/run/redis.pid - -# Accept connections on the specified port, default is 6379. -# If port 0 is specified Redis will not listen on a TCP socket. -port 6379 - -# If you want you can bind a single interface, if the bind option is not -# specified all the interfaces will listen for incoming connections. -# -# bind 127.0.0.1 - -# Specify the path for the unix socket that will be used to listen for -# incoming connections. There is no default, so Redis will not listen -# on a unix socket when not specified. -# -# unixsocket /tmp/redis.sock -# unixsocketperm 755 - -# Close the connection after a client is idle for N seconds (0 to disable) -timeout 0 - -# TCP keepalive. -# -# If non-zero, use SO_KEEPALIVE to send TCP ACKs to clients in absence -# of communication. This is useful for two reasons: -# -# 1) Detect dead peers. -# 2) Take the connection alive from the point of view of network -# equipment in the middle. -# -# On Linux, the specified value (in seconds) is the period used to send ACKs. -# Note that to close the connection the double of the time is needed. -# On other kernels the period depends on the kernel configuration. -# -# A reasonable value for this option is 60 seconds. -tcp-keepalive 0 - -# Specify the server verbosity level. -# This can be one of: -# debug (a lot of information, useful for development/testing) -# verbose (many rarely useful info, but not a mess like the debug level) -# notice (moderately verbose, what you want in production probably) -# warning (only very important / critical messages are logged) -loglevel notice - -# Specify the log file name. Also 'stdout' can be used to force -# Redis to log on the standard output. Note that if you use standard -# output for logging but daemonize, logs will be sent to /dev/null -logfile stdout - -# To enable logging to the system logger, just set 'syslog-enabled' to yes, -# and optionally update the other syslog parameters to suit your needs. -# syslog-enabled no - -# Specify the syslog identity. -# syslog-ident redis - -# Specify the syslog facility. Must be USER or between LOCAL0-LOCAL7. -# syslog-facility local0 - -# Set the number of databases. The default database is DB 0, you can select -# a different one on a per-connection basis using SELECT where -# dbid is a number between 0 and 'databases'-1 -databases 1 - -################################ SNAPSHOTTING ################################# -# -# Save the DB on disk: -# -# save -# -# Will save the DB if both the given number of seconds and the given -# number of write operations against the DB occurred. -# -# In the example below the behaviour will be to save: -# after 900 sec (15 min) if at least 1 key changed -# after 300 sec (5 min) if at least 10 keys changed -# after 60 sec if at least 10000 keys changed -# -# Note: you can disable saving at all commenting all the "save" lines. -# -# It is also possible to remove all the previously configured save -# points by adding a save directive with a single empty string argument -# like in the following example: -# -# save "" - -save 900 1 -save 300 10 -save 60 10000 - -# By default Redis will stop accepting writes if RDB snapshots are enabled -# (at least one save point) and the latest background save failed. -# This will make the user aware (in an hard way) that data is not persisting -# on disk properly, otherwise chances are that no one will notice and some -# distater will happen. -# -# If the background saving process will start working again Redis will -# automatically allow writes again. -# -# However if you have setup your proper monitoring of the Redis server -# and persistence, you may want to disable this feature so that Redis will -# continue to work as usually even if there are problems with disk, -# permissions, and so forth. -stop-writes-on-bgsave-error yes - -# Compress string objects using LZF when dump .rdb databases? -# For default that's set to 'yes' as it's almost always a win. -# If you want to save some CPU in the saving child set it to 'no' but -# the dataset will likely be bigger if you have compressible values or keys. -rdbcompression yes - -# Since version 5 of RDB a CRC64 checksum is placed at the end of the file. -# This makes the format more resistant to corruption but there is a performance -# hit to pay (around 10%) when saving and loading RDB files, so you can disable it -# for maximum performances. -# -# RDB files created with checksum disabled have a checksum of zero that will -# tell the loading code to skip the check. -rdbchecksum yes - -# The filename where to dump the DB -dbfilename dump.rdb - -# The working directory. -# -# The DB will be written inside this directory, with the filename specified -# above using the 'dbfilename' configuration directive. -# -# The Append Only File will also be created inside this directory. -# -# Note that you must specify a directory here, not a file name. -dir ./ - -################################# REPLICATION ################################# - -# Master-Slave replication. Use slaveof to make a Redis instance a copy of -# another Redis server. Note that the configuration is local to the slave -# so for example it is possible to configure the slave to save the DB with a -# different interval, or to listen to another port, and so on. -# -slaveof 10.249.39.43 6379 - -# If the master is password protected (using the "requirepass" configuration -# directive below) it is possible to tell the slave to authenticate before -# starting the replication synchronization process, otherwise the master will -# refuse the slave request. -# -# masterauth - -# When a slave loses its connection with the master, or when the replication -# is still in progress, the slave can act in two different ways: -# -# 1) if slave-serve-stale-data is set to 'yes' (the default) the slave will -# still reply to client requests, possibly with out of date data, or the -# data set may just be empty if this is the first synchronization. -# -# 2) if slave-serve-stale-data is set to 'no' the slave will reply with -# an error "SYNC with master in progress" to all the kind of commands -# but to INFO and SLAVEOF. -# -slave-serve-stale-data yes - -# You can configure a slave instance to accept writes or not. Writing against -# a slave instance may be useful to store some ephemeral data (because data -# written on a slave will be easily deleted after resync with the master) but -# may also cause problems if clients are writing to it because of a -# misconfiguration. -# -# Since Redis 2.6 by default slaves are read-only. -# -# Note: read only slaves are not designed to be exposed to untrusted clients -# on the internet. It's just a protection layer against misuse of the instance. -# Still a read only slave exports by default all the administrative commands -# such as CONFIG, DEBUG, and so forth. To a limited extend you can improve -# security of read only slaves using 'rename-command' to shadow all the -# administrative / dangerous commands. -slave-read-only no - -# Slaves send PINGs to server in a predefined interval. It's possible to change -# this interval with the repl_ping_slave_period option. The default value is 10 -# seconds. -# -# repl-ping-slave-period 10 - -# The following option sets a timeout for both Bulk transfer I/O timeout and -# master data or ping response timeout. The default value is 60 seconds. -# -# It is important to make sure that this value is greater than the value -# specified for repl-ping-slave-period otherwise a timeout will be detected -# every time there is low traffic between the master and the slave. -# -# repl-timeout 60 - -# Disable TCP_NODELAY on the slave socket after SYNC? -# -# If you select "yes" Redis will use a smaller number of TCP packets and -# less bandwidth to send data to slaves. But this can add a delay for -# the data to appear on the slave side, up to 40 milliseconds with -# Linux kernels using a default configuration. -# -# If you select "no" the delay for data to appear on the slave side will -# be reduced but more bandwidth will be used for replication. -# -# By default we optimize for low latency, but in very high traffic conditions -# or when the master and slaves are many hops away, turning this to "yes" may -# be a good idea. -repl-disable-tcp-nodelay no - -# The slave priority is an integer number published by Redis in the INFO output. -# It is used by Redis Sentinel in order to select a slave to promote into a -# master if the master is no longer working correctly. -# -# A slave with a low priority number is considered better for promotion, so -# for instance if there are three slaves with priority 10, 100, 25 Sentinel will -# pick the one wtih priority 10, that is the lowest. -# -# However a special priority of 0 marks the slave as not able to perform the -# role of master, so a slave with priority of 0 will never be selected by -# Redis Sentinel for promotion. -# -# By default the priority is 100. -slave-priority 100 - -################################## SECURITY ################################### - -# Require clients to issue AUTH before processing any other -# commands. This might be useful in environments in which you do not trust -# others with access to the host running redis-server. -# -# This should stay commented out for backward compatibility and because most -# people do not need auth (e.g. they run their own servers). -# -# Warning: since Redis is pretty fast an outside user can try up to -# 150k passwords per second against a good box. This means that you should -# use a very strong password otherwise it will be very easy to break. -# -# requirepass foobared - -# Command renaming. -# -# It is possible to change the name of dangerous commands in a shared -# environment. For instance the CONFIG command may be renamed into something -# hard to guess so that it will still be available for internal-use tools -# but not available for general clients. -# -# Example: -# -# rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52 -# -# It is also possible to completely kill a command by renaming it into -# an empty string: -# -# rename-command CONFIG "" -# -# Please note that changing the name of commands that are logged into the -# AOF file or transmitted to slaves may cause problems. - -################################### LIMITS #################################### - -# Set the max number of connected clients at the same time. By default -# this limit is set to 10000 clients, however if the Redis server is not -# able to configure the process file limit to allow for the specified limit -# the max number of allowed clients is set to the current file limit -# minus 32 (as Redis reserves a few file descriptors for internal uses). -# -# Once the limit is reached Redis will close all the new connections sending -# an error 'max number of clients reached'. -# -# maxclients 10000 - -# Don't use more memory than the specified amount of bytes. -# When the memory limit is reached Redis will try to remove keys -# accordingly to the eviction policy selected (see maxmemmory-policy). -# -# If Redis can't remove keys according to the policy, or if the policy is -# set to 'noeviction', Redis will start to reply with errors to commands -# that would use more memory, like SET, LPUSH, and so on, and will continue -# to reply to read-only commands like GET. -# -# This option is usually useful when using Redis as an LRU cache, or to set -# an hard memory limit for an instance (using the 'noeviction' policy). -# -# WARNING: If you have slaves attached to an instance with maxmemory on, -# the size of the output buffers needed to feed the slaves are subtracted -# from the used memory count, so that network problems / resyncs will -# not trigger a loop where keys are evicted, and in turn the output -# buffer of slaves is full with DELs of keys evicted triggering the deletion -# of more keys, and so forth until the database is completely emptied. -# -# In short... if you have slaves attached it is suggested that you set a lower -# limit for maxmemory so that there is some free RAM on the system for slave -# output buffers (but this is not needed if the policy is 'noeviction'). -# -# maxmemory - -# MAXMEMORY POLICY: how Redis will select what to remove when maxmemory -# is reached. You can select among five behaviors: -# -# volatile-lru -> remove the key with an expire set using an LRU algorithm -# allkeys-lru -> remove any key accordingly to the LRU algorithm -# volatile-random -> remove a random key with an expire set -# allkeys-random -> remove a random key, any key -# volatile-ttl -> remove the key with the nearest expire time (minor TTL) -# noeviction -> don't expire at all, just return an error on write operations -# -# Note: with any of the above policies, Redis will return an error on write -# operations, when there are not suitable keys for eviction. -# -# At the date of writing this commands are: set setnx setex append -# incr decr rpush lpush rpushx lpushx linsert lset rpoplpush sadd -# sinter sinterstore sunion sunionstore sdiff sdiffstore zadd zincrby -# zunionstore zinterstore hset hsetnx hmset hincrby incrby decrby -# getset mset msetnx exec sort -# -# The default is: -# -# maxmemory-policy volatile-lru - -# LRU and minimal TTL algorithms are not precise algorithms but approximated -# algorithms (in order to save memory), so you can select as well the sample -# size to check. For instance for default Redis will check three keys and -# pick the one that was used less recently, you can change the sample size -# using the following configuration directive. -# -# maxmemory-samples 3 - -############################## APPEND ONLY MODE ############################### - -# By default Redis asynchronously dumps the dataset on disk. This mode is -# good enough in many applications, but an issue with the Redis process or -# a power outage may result into a few minutes of writes lost (depending on -# the configured save points). -# -# The Append Only File is an alternative persistence mode that provides -# much better durability. For instance using the default data fsync policy -# (see later in the config file) Redis can lose just one second of writes in a -# dramatic event like a server power outage, or a single write if something -# wrong with the Redis process itself happens, but the operating system is -# still running correctly. -# -# AOF and RDB persistence can be enabled at the same time without problems. -# If the AOF is enabled on startup Redis will load the AOF, that is the file -# with the better durability guarantees. -# -# Please check http://redis.io/topics/persistence for more information. - -appendonly no - -# The name of the append only file (default: "appendonly.aof") -# appendfilename appendonly.aof - -# The fsync() call tells the Operating System to actually write data on disk -# instead to wait for more data in the output buffer. Some OS will really flush -# data on disk, some other OS will just try to do it ASAP. -# -# Redis supports three different modes: -# -# no: don't fsync, just let the OS flush the data when it wants. Faster. -# always: fsync after every write to the append only log . Slow, Safest. -# everysec: fsync only one time every second. Compromise. -# -# The default is "everysec", as that's usually the right compromise between -# speed and data safety. It's up to you to understand if you can relax this to -# "no" that will let the operating system flush the output buffer when -# it wants, for better performances (but if you can live with the idea of -# some data loss consider the default persistence mode that's snapshotting), -# or on the contrary, use "always" that's very slow but a bit safer than -# everysec. -# -# More details please check the following article: -# http://antirez.com/post/redis-persistence-demystified.html -# -# If unsure, use "everysec". - -# appendfsync always -appendfsync everysec -# appendfsync no - -# When the AOF fsync policy is set to always or everysec, and a background -# saving process (a background save or AOF log background rewriting) is -# performing a lot of I/O against the disk, in some Linux configurations -# Redis may block too long on the fsync() call. Note that there is no fix for -# this currently, as even performing fsync in a different thread will block -# our synchronous write(2) call. -# -# In order to mitigate this problem it's possible to use the following option -# that will prevent fsync() from being called in the main process while a -# BGSAVE or BGREWRITEAOF is in progress. -# -# This means that while another child is saving, the durability of Redis is -# the same as "appendfsync none". In practical terms, this means that it is -# possible to lose up to 30 seconds of log in the worst scenario (with the -# default Linux settings). -# -# If you have latency problems turn this to "yes". Otherwise leave it as -# "no" that is the safest pick from the point of view of durability. -no-appendfsync-on-rewrite no - -# Automatic rewrite of the append only file. -# Redis is able to automatically rewrite the log file implicitly calling -# BGREWRITEAOF when the AOF log size grows by the specified percentage. -# -# This is how it works: Redis remembers the size of the AOF file after the -# latest rewrite (if no rewrite has happened since the restart, the size of -# the AOF at startup is used). -# -# This base size is compared to the current size. If the current size is -# bigger than the specified percentage, the rewrite is triggered. Also -# you need to specify a minimal size for the AOF file to be rewritten, this -# is useful to avoid rewriting the AOF file even if the percentage increase -# is reached but it is still pretty small. -# -# Specify a percentage of zero in order to disable the automatic AOF -# rewrite feature. - -auto-aof-rewrite-percentage 100 -auto-aof-rewrite-min-size 64mb - -################################ LUA SCRIPTING ############################### - -# Max execution time of a Lua script in milliseconds. -# -# If the maximum execution time is reached Redis will log that a script is -# still in execution after the maximum allowed time and will start to -# reply to queries with an error. -# -# When a long running script exceed the maximum execution time only the -# SCRIPT KILL and SHUTDOWN NOSAVE commands are available. The first can be -# used to stop a script that did not yet called write commands. The second -# is the only way to shut down the server in the case a write commands was -# already issue by the script but the user don't want to wait for the natural -# termination of the script. -# -# Set it to 0 or a negative value for unlimited execution without warnings. -lua-time-limit 5000 - -################################## SLOW LOG ################################### - -# The Redis Slow Log is a system to log queries that exceeded a specified -# execution time. The execution time does not include the I/O operations -# like talking with the client, sending the reply and so forth, -# but just the time needed to actually execute the command (this is the only -# stage of command execution where the thread is blocked and can not serve -# other requests in the meantime). -# -# You can configure the slow log with two parameters: one tells Redis -# what is the execution time, in microseconds, to exceed in order for the -# command to get logged, and the other parameter is the length of the -# slow log. When a new command is logged the oldest one is removed from the -# queue of logged commands. - -# The following time is expressed in microseconds, so 1000000 is equivalent -# to one second. Note that a negative number disables the slow log, while -# a value of zero forces the logging of every command. -slowlog-log-slower-than 10000 - -# There is no limit to this length. Just be aware that it will consume memory. -# You can reclaim memory used by the slow log with SLOWLOG RESET. -slowlog-max-len 128 - -############################### ADVANCED CONFIG ############################### - -# Hashes are encoded using a memory efficient data structure when they have a -# small number of entries, and the biggest entry does not exceed a given -# threshold. These thresholds can be configured using the following directives. -hash-max-ziplist-entries 512 -hash-max-ziplist-value 64 - -# Similarly to hashes, small lists are also encoded in a special way in order -# to save a lot of space. The special representation is only used when -# you are under the following limits: -list-max-ziplist-entries 512 -list-max-ziplist-value 64 - -# Sets have a special encoding in just one case: when a set is composed -# of just strings that happens to be integers in radix 10 in the range -# of 64 bit signed integers. -# The following configuration setting sets the limit in the size of the -# set in order to use this special memory saving encoding. -set-max-intset-entries 512 - -# Similarly to hashes and lists, sorted sets are also specially encoded in -# order to save a lot of space. This encoding is only used when the length and -# elements of a sorted set are below the following limits: -zset-max-ziplist-entries 128 -zset-max-ziplist-value 64 - -# Active rehashing uses 1 millisecond every 100 milliseconds of CPU time in -# order to help rehashing the main Redis hash table (the one mapping top-level -# keys to values). The hash table implementation Redis uses (see dict.c) -# performs a lazy rehashing: the more operation you run into an hash table -# that is rehashing, the more rehashing "steps" are performed, so if the -# server is idle the rehashing is never complete and some more memory is used -# by the hash table. -# -# The default is to use this millisecond 10 times every second in order to -# active rehashing the main dictionaries, freeing memory when possible. -# -# If unsure: -# use "activerehashing no" if you have hard latency requirements and it is -# not a good thing in your environment that Redis can reply form time to time -# to queries with 2 milliseconds delay. -# -# use "activerehashing yes" if you don't have such hard requirements but -# want to free memory asap when possible. -activerehashing yes - -# The client output buffer limits can be used to force disconnection of clients -# that are not reading data from the server fast enough for some reason (a -# common reason is that a Pub/Sub client can't consume messages as fast as the -# publisher can produce them). -# -# The limit can be set differently for the three different classes of clients: -# -# normal -> normal clients -# slave -> slave clients and MONITOR clients -# pubsub -> clients subcribed to at least one pubsub channel or pattern -# -# The syntax of every client-output-buffer-limit directive is the following: -# -# client-output-buffer-limit -# -# A client is immediately disconnected once the hard limit is reached, or if -# the soft limit is reached and remains reached for the specified number of -# seconds (continuously). -# So for instance if the hard limit is 32 megabytes and the soft limit is -# 16 megabytes / 10 seconds, the client will get disconnected immediately -# if the size of the output buffers reach 32 megabytes, but will also get -# disconnected if the client reaches 16 megabytes and continuously overcomes -# the limit for 10 seconds. -# -# By default normal clients are not limited because they don't receive data -# without asking (in a push way), but just after a request, so only -# asynchronous clients may create a scenario where data is requested faster -# than it can read. -# -# Instead there is a default limit for pubsub and slave clients, since -# subscribers and slaves receive data in a push fashion. -# -# Both the hard or the soft limit can be disabled by setting them to zero. -client-output-buffer-limit normal 0 0 0 -client-output-buffer-limit slave 256mb 64mb 60 -client-output-buffer-limit pubsub 32mb 8mb 60 - -# Redis calls an internal function to perform many background tasks, like -# closing connections of clients in timeot, purging expired keys that are -# never requested, and so forth. -# -# Not all tasks are perforemd with the same frequency, but Redis checks for -# tasks to perform accordingly to the specified "hz" value. -# -# By default "hz" is set to 10. Raising the value will use more CPU when -# Redis is idle, but at the same time will make Redis more responsive when -# there are many keys expiring at the same time, and timeouts may be -# handled with more precision. -# -# The range is between 1 and 500, however a value over 100 is usually not -# a good idea. Most users should use the default of 10 and raise this up to -# 100 only in environments where very low latency is required. -hz 10 - -################################## INCLUDES ################################### - -# Include one or more other config files here. This is useful if you -# have a standard template that goes to all Redis server but also need -# to customize a few per-server settings. Include files can include -# other files, so use this wisely. -# -# include /path/to/local.conf -# include /path/to/other.conf DELETED Jenny/cassandra(non-seed).yaml Index: Jenny/cassandra(non-seed).yaml ================================================================== --- Jenny/cassandra(non-seed).yaml +++ /dev/null @@ -1,663 +0,0 @@ -# Cassandra storage config YAML - -# NOTE: -# See http://wiki.apache.org/cassandra/StorageConfiguration for -# full explanations of configuration directives -# /NOTE - -# The name of the cluster. This is mainly used to prevent machines in -# one logical cluster from joining another. -cluster_name: 'JennyCluster' - -# This defines the number of tokens randomly assigned to this node on the ring -# The more tokens, relative to other nodes, the larger the proportion of data -# that this node will store. You probably want all nodes to have the same number -# of tokens assuming they have equal hardware capability. -# -# If you leave this unspecified, Cassandra will use the default of 1 token for legacy compatibility, -# and will use the initial_token as described below. -# -# Specifying initial_token will override this setting. -# -# If you already have a cluster with 1 token per node, and wish to migrate to -# multiple tokens per node, see http://wiki.apache.org/cassandra/Operations -# num_tokens: 256 - -# If you haven't specified num_tokens, or have set it to the default of 1 then -# you should always specify InitialToken when setting up a production -# cluster for the first time, and often when adding capacity later. -# The principle is that each node should be given an equal slice of -# the token ring; see http://wiki.apache.org/cassandra/Operations -# for more details. -# -# If blank, Cassandra will request a token bisecting the range of -# the heaviest-loaded existing node. If there is no load information -# available, such as is the case with a new cluster, it will pick -# a random token, which will lead to hot spots. -initial_token: 85070591730234615865843651857942052864 - -# See http://wiki.apache.org/cassandra/HintedHandoff -hinted_handoff_enabled: true -# this defines the maximum amount of time a dead host will have hints -# generated. After it has been dead this long, new hints for it will not be -# created until it has been seen alive and gone down again. -max_hint_window_in_ms: 10800000 # 3 hours -# throttle in KB's per second, per delivery thread -hinted_handoff_throttle_in_kb: 1024 -# Number of threads with which to deliver hints; -# Consider increasing this number when you have multi-dc deployments, since -# cross-dc handoff tends to be slower -max_hints_delivery_threads: 2 - -# The following setting populates the page cache on memtable flush and compaction -# WARNING: Enable this setting only when the whole node's data fits in memory. -# Defaults to: false -# populate_io_cache_on_flush: false - -# Authentication backend, implementing IAuthenticator; used to identify users -# Out of the box, Cassandra provides org.apache.cassandra.auth.{AllowAllAuthenticator, -# PasswordAuthenticator}. -# -# - AllowAllAuthenticator performs no checks - set it to disable authentication. -# - PasswordAuthenticator relies on username/password pairs to authenticate -# users. It keeps usernames and hashed passwords in system_auth.credentials table. -# Please increase system_auth keyspace replication factor if you use this authenticator. -authenticator: org.apache.cassandra.auth.AllowAllAuthenticator - -# Authorization backend, implementing IAuthorizer; used to limit access/provide permissions -# Out of the box, Cassandra provides org.apache.cassandra.auth.{AllowAllAuthorizer, -# CassandraAuthorizer}. -# -# - AllowAllAuthorizer allows any action to any user - set it to disable authorization. -# - CassandraAuthorizer stores permissions in system_auth.permissions table. Please -# increase system_auth keyspace replication factor if you use this authorizer. -authorizer: org.apache.cassandra.auth.AllowAllAuthorizer - -# Validity period for permissions cache (fetching permissions can be an -# expensive operation depending on the authorizer, CassandraAuthorizer is -# one example). Defaults to 2000, set to 0 to disable. -# Will be disabled automatically for AllowAllAuthorizer. -permissions_validity_in_ms: 2000 - -# The partitioner is responsible for distributing rows (by key) across -# nodes in the cluster. Any IPartitioner may be used, including your -# own as long as it is on the classpath. Out of the box, Cassandra -# provides org.apache.cassandra.dht.{Murmur3Partitioner, RandomPartitioner -# ByteOrderedPartitioner, OrderPreservingPartitioner (deprecated)}. -# -# - RandomPartitioner distributes rows across the cluster evenly by md5. -# This is the default prior to 1.2 and is retained for compatibility. -# - Murmur3Partitioner is similar to RandomPartioner but uses Murmur3_128 -# Hash Function instead of md5. When in doubt, this is the best option. -# - ByteOrderedPartitioner orders rows lexically by key bytes. BOP allows -# scanning rows in key order, but the ordering can generate hot spots -# for sequential insertion workloads. -# - OrderPreservingPartitioner is an obsolete form of BOP, that stores -# - keys in a less-efficient format and only works with keys that are -# UTF8-encoded Strings. -# - CollatingOPP colates according to EN,US rules rather than lexical byte -# ordering. Use this as an example if you need custom collation. -# -# See http://wiki.apache.org/cassandra/Operations for more on -# partitioners and token selection. -partitioner: org.apache.cassandra.dht.RandomPartitioner - -# directories where Cassandra should store data on disk. -data_file_directories: - - /var/lib/cassandra/data - -# commit log -commitlog_directory: /var/lib/cassandra/commitlog - -# policy for data disk failures: -# stop: shut down gossip and Thrift, leaving the node effectively dead, but -# still inspectable via JMX. -# best_effort: stop using the failed disk and respond to requests based on -# remaining available sstables. This means you WILL see obsolete -# data at CL.ONE! -# ignore: ignore fatal errors and let requests fail, as in pre-1.2 Cassandra -disk_failure_policy: stop - -# Maximum size of the key cache in memory. -# -# Each key cache hit saves 1 seek and each row cache hit saves 2 seeks at the -# minimum, sometimes more. The key cache is fairly tiny for the amount of -# time it saves, so it's worthwhile to use it at large numbers. -# The row cache saves even more time, but must store the whole values of -# its rows, so it is extremely space-intensive. It's best to only use the -# row cache if you have hot rows or static rows. -# -# NOTE: if you reduce the size, you may not get you hottest keys loaded on startup. -# -# Default value is empty to make it "auto" (min(5% of Heap (in MB), 100MB)). Set to 0 to disable key cache. -key_cache_size_in_mb: - -# Duration in seconds after which Cassandra should -# safe the keys cache. Caches are saved to saved_caches_directory as -# specified in this configuration file. -# -# Saved caches greatly improve cold-start speeds, and is relatively cheap in -# terms of I/O for the key cache. Row cache saving is much more expensive and -# has limited use. -# -# Default is 14400 or 4 hours. -key_cache_save_period: 14400 - -# Number of keys from the key cache to save -# Disabled by default, meaning all keys are going to be saved -# key_cache_keys_to_save: 100 - -# Maximum size of the row cache in memory. -# NOTE: if you reduce the size, you may not get you hottest keys loaded on startup. -# -# Default value is 0, to disable row caching. -row_cache_size_in_mb: 0 - -# Duration in seconds after which Cassandra should -# safe the row cache. Caches are saved to saved_caches_directory as specified -# in this configuration file. -# -# Saved caches greatly improve cold-start speeds, and is relatively cheap in -# terms of I/O for the key cache. Row cache saving is much more expensive and -# has limited use. -# -# Default is 0 to disable saving the row cache. -row_cache_save_period: 0 - -# Number of keys from the row cache to save -# Disabled by default, meaning all keys are going to be saved -# row_cache_keys_to_save: 100 - -# The provider for the row cache to use. -# -# Supported values are: ConcurrentLinkedHashCacheProvider, SerializingCacheProvider -# -# SerializingCacheProvider serialises the contents of the row and stores -# it in native memory, i.e., off the JVM Heap. Serialized rows take -# significantly less memory than "live" rows in the JVM, so you can cache -# more rows in a given memory footprint. And storing the cache off-heap -# means you can use smaller heap sizes, reducing the impact of GC pauses. -# -# It is also valid to specify the fully-qualified class name to a class -# that implements org.apache.cassandra.cache.IRowCacheProvider. -# -# Defaults to SerializingCacheProvider -row_cache_provider: SerializingCacheProvider - -# The pluggable Memory allocation for Off heap row cache, Experiments show that JEMAlloc -# saves some memory than the native GCC allocator. -# -# Supported values are: NativeAllocator, JEMallocAllocator -# -# If you intend to use JEMallocAllocator you have to install JEMalloc as library and -# modify cassandra-env.sh as directed in the file. -# -# Defaults to NativeAllocator -# memory_allocator: NativeAllocator - -# saved caches -saved_caches_directory: /var/lib/cassandra/saved_caches - -# commitlog_sync may be either "periodic" or "batch." -# When in batch mode, Cassandra won't ack writes until the commit log -# has been fsynced to disk. It will wait up to -# commitlog_sync_batch_window_in_ms milliseconds for other writes, before -# performing the sync. -# -# commitlog_sync: batch -# commitlog_sync_batch_window_in_ms: 50 -# -# the other option is "periodic" where writes may be acked immediately -# and the CommitLog is simply synced every commitlog_sync_period_in_ms -# milliseconds. -commitlog_sync: periodic -commitlog_sync_period_in_ms: 10000 - -# The size of the individual commitlog file segments. A commitlog -# segment may be archived, deleted, or recycled once all the data -# in it (potentally from each columnfamily in the system) has been -# flushed to sstables. -# -# The default size is 32, which is almost always fine, but if you are -# archiving commitlog segments (see commitlog_archiving.properties), -# then you probably want a finer granularity of archiving; 8 or 16 MB -# is reasonable. -commitlog_segment_size_in_mb: 32 - -# any class that implements the SeedProvider interface and has a -# constructor that takes a Map of parameters will do. -seed_provider: - # Addresses of hosts that are deemed contact points. - # Cassandra nodes use this list of hosts to find each other and learn - # the topology of the ring. You must change this if you are running - # multiple nodes! - - class_name: org.apache.cassandra.locator.SimpleSeedProvider - parameters: - # seeds is actually a comma-delimited list of addresses. - # Ex: ",," -# - seeds: "127.0.0.1" - - seeds: "10.249.21.140" - -# For workloads with more data than can fit in memory, Cassandra's -# bottleneck will be reads that need to fetch data from -# disk. "concurrent_reads" should be set to (16 * number_of_drives) in -# order to allow the operations to enqueue low enough in the stack -# that the OS and drives can reorder them. -# -# On the other hand, since writes are almost never IO bound, the ideal -# number of "concurrent_writes" is dependent on the number of cores in -# your system; (8 * number_of_cores) is a good rule of thumb. -concurrent_reads: 32 -concurrent_writes: 32 - -# Total memory to use for memtables. Cassandra will flush the largest -# memtable when this much memory is used. -# If omitted, Cassandra will set it to 1/3 of the heap. -# memtable_total_space_in_mb: 2048 - -# Total space to use for commitlogs. Since commitlog segments are -# mmapped, and hence use up address space, the default size is 32 -# on 32-bit JVMs, and 1024 on 64-bit JVMs. -# -# If space gets above this value (it will round up to the next nearest -# segment multiple), Cassandra will flush every dirty CF in the oldest -# segment and remove it. So a small total commitlog space will tend -# to cause more flush activity on less-active columnfamilies. -# commitlog_total_space_in_mb: 4096 - -# This sets the amount of memtable flush writer threads. These will -# be blocked by disk io, and each one will hold a memtable in memory -# while blocked. If you have a large heap and many data directories, -# you can increase this value for better flush performance. -# By default this will be set to the amount of data directories defined. -#memtable_flush_writers: 1 - -# the number of full memtables to allow pending flush, that is, -# waiting for a writer thread. At a minimum, this should be set to -# the maximum number of secondary indexes created on a single CF. -memtable_flush_queue_size: 4 - -# Whether to, when doing sequential writing, fsync() at intervals in -# order to force the operating system to flush the dirty -# buffers. Enable this to avoid sudden dirty buffer flushing from -# impacting read latencies. Almost always a good idea on SSD:s; not -# necessarily on platters. -trickle_fsync: false -trickle_fsync_interval_in_kb: 10240 - -# TCP port, for commands and data -storage_port: 7000 - -# SSL port, for encrypted communication. Unused unless enabled in -# encryption_options -ssl_storage_port: 7001 - -# Address to bind to and tell other Cassandra nodes to connect to. You -# _must_ change this if you want multiple nodes to be able to -# communicate! -# -# Leaving it blank leaves it up to InetAddress.getLocalHost(). This -# will always do the Right Thing *if* the node is properly configured -# (hostname, name resolution, etc), and the Right Thing is to use the -# address associated with the hostname (it might not be). -# -# Setting this to 0.0.0.0 is always wrong. -listen_address: 10.249.79.6 - -# Address to broadcast to other Cassandra nodes -# Leaving this blank will set it to the same value as listen_address -# broadcast_address: 1.2.3.4 - - -# Whether to start the native transport server. -# Currently, only the thrift server is started by default because the native -# transport is considered beta. -# Please note that the address on which the native transport is bound is the -# same as the rpc_address. The port however is different and specified below. -start_native_transport: false -# port for the CQL native transport to listen for clients on -native_transport_port: 9042 -# The minimum and maximum threads for handling requests when the native -# transport is used. The meaning is those is similar to the one of -# rpc_min_threads and rpc_max_threads, though the default differ slightly and -# are the ones below: -# native_transport_min_threads: 16 -# native_transport_max_threads: 128 - - -# Whether to start the thrift rpc server. -start_rpc: true -# The address to bind the Thrift RPC service to -- clients connect -# here. Unlike ListenAddress above, you *can* specify 0.0.0.0 here if -# you want Thrift to listen on all interfaces. -# -# Leaving this blank has the same effect it does for ListenAddress, -# (i.e. it will be based on the configured hostname of the node). -rpc_address: 0.0.0.0 -# port for Thrift to listen for clients on -rpc_port: 9160 - -# enable or disable keepalive on rpc connections -rpc_keepalive: true - -# Cassandra provides three out-of-the-box options for the RPC Server: -# -# sync -> One thread per thrift connection. For a very large number of clients, memory -# will be your limiting factor. On a 64 bit JVM, 128KB is the minimum stack size -# per thread, and that will correspond to your use of virtual memory (but physical memory -# may be limited depending on use of stack space). -# -# hsha -> Stands for "half synchronous, half asynchronous." All thrift clients are handled -# asynchronously using a small number of threads that does not vary with the amount -# of thrift clients (and thus scales well to many clients). The rpc requests are still -# synchronous (one thread per active request). -# -# The default is sync because on Windows hsha is about 30% slower. On Linux, -# sync/hsha performance is about the same, with hsha of course using less memory. -# -# Alternatively, can provide your own RPC server by providing the fully-qualified class name -# of an o.a.c.t.TServerFactory that can create an instance of it. -rpc_server_type: sync - -# Uncomment rpc_min|max_thread to set request pool size limits. -# -# Regardless of your choice of RPC server (see above), the number of maximum requests in the -# RPC thread pool dictates how many concurrent requests are possible (but if you are using the sync -# RPC server, it also dictates the number of clients that can be connected at all). -# -# The default is unlimited and thus provide no protection against clients overwhelming the server. You are -# encouraged to set a maximum that makes sense for you in production, but do keep in mind that -# rpc_max_threads represents the maximum number of client requests this server may execute concurrently. -# -# rpc_min_threads: 16 -# rpc_max_threads: 2048 - -# uncomment to set socket buffer sizes on rpc connections -# rpc_send_buff_size_in_bytes: -# rpc_recv_buff_size_in_bytes: - -# Uncomment to set socket buffer size for internode communication -# Note that when setting this, the buffer size is limited by net.core.wmem_max -# and when not setting it it is defined by net.ipv4.tcp_wmem -# See: -# /proc/sys/net/core/wmem_max -# /proc/sys/net/core/rmem_max -# /proc/sys/net/ipv4/tcp_wmem -# /proc/sys/net/ipv4/tcp_wmem -# and: man tcp -# internode_send_buff_size_in_bytes: -# internode_recv_buff_size_in_bytes: - -# Frame size for thrift (maximum field length). -thrift_framed_transport_size_in_mb: 15 - -# The max length of a thrift message, including all fields and -# internal thrift overhead. -thrift_max_message_length_in_mb: 16 - -# Set to true to have Cassandra create a hard link to each sstable -# flushed or streamed locally in a backups/ subdirectory of the -# Keyspace data. Removing these links is the operator's -# responsibility. -incremental_backups: false - -# Whether or not to take a snapshot before each compaction. Be -# careful using this option, since Cassandra won't clean up the -# snapshots for you. Mostly useful if you're paranoid when there -# is a data format change. -snapshot_before_compaction: false - -# Whether or not a snapshot is taken of the data before keyspace truncation -# or dropping of column families. The STRONGLY advised default of true -# should be used to provide data safety. If you set this flag to false, you will -# lose data on truncation or drop. -auto_snapshot: true - -# Add column indexes to a row after its contents reach this size. -# Increase if your column values are large, or if you have a very large -# number of columns. The competing causes are, Cassandra has to -# deserialize this much of the row to read a single column, so you want -# it to be small - at least if you do many partial-row reads - but all -# the index data is read for each access, so you don't want to generate -# that wastefully either. -column_index_size_in_kb: 64 - -# Size limit for rows being compacted in memory. Larger rows will spill -# over to disk and use a slower two-pass compaction process. A message -# will be logged specifying the row key. -in_memory_compaction_limit_in_mb: 64 - -# Number of simultaneous compactions to allow, NOT including -# validation "compactions" for anti-entropy repair. Simultaneous -# compactions can help preserve read performance in a mixed read/write -# workload, by mitigating the tendency of small sstables to accumulate -# during a single long running compactions. The default is usually -# fine and if you experience problems with compaction running too -# slowly or too fast, you should look at -# compaction_throughput_mb_per_sec first. -# -# concurrent_compactors defaults to the number of cores. -# Uncomment to make compaction mono-threaded, the pre-0.8 default. -#concurrent_compactors: 1 - -# Multi-threaded compaction. When enabled, each compaction will use -# up to one thread per core, plus one thread per sstable being merged. -# This is usually only useful for SSD-based hardware: otherwise, -# your concern is usually to get compaction to do LESS i/o (see: -# compaction_throughput_mb_per_sec), not more. -multithreaded_compaction: false - -# Throttles compaction to the given total throughput across the entire -# system. The faster you insert data, the faster you need to compact in -# order to keep the sstable count down, but in general, setting this to -# 16 to 32 times the rate you are inserting data is more than sufficient. -# Setting this to 0 disables throttling. Note that this account for all types -# of compaction, including validation compaction. -compaction_throughput_mb_per_sec: 16 - -# Track cached row keys during compaction, and re-cache their new -# positions in the compacted sstable. Disable if you use really large -# key caches. -compaction_preheat_key_cache: true - -# Throttles all outbound streaming file transfers on this node to the -# given total throughput in Mbps. This is necessary because Cassandra does -# mostly sequential IO when streaming data during bootstrap or repair, which -# can lead to saturating the network connection and degrading rpc performance. -# When unset, the default is 400 Mbps or 50 MB/s. -# stream_throughput_outbound_megabits_per_sec: 400 - -# How long the coordinator should wait for read operations to complete -read_request_timeout_in_ms: 10000 -# How long the coordinator should wait for seq or index scans to complete -range_request_timeout_in_ms: 10000 -# How long the coordinator should wait for writes to complete -write_request_timeout_in_ms: 10000 -# How long the coordinator should wait for truncates to complete -# (This can be much longer, because unless auto_snapshot is disabled -# we need to flush first so we can snapshot before removing the data.) -truncate_request_timeout_in_ms: 60000 -# The default timeout for other, miscellaneous operations -request_timeout_in_ms: 10000 - -# Enable operation timeout information exchange between nodes to accurately -# measure request timeouts. If disabled, replicas will assume that requests -# were forwarded to them instantly by the coordinator, which means that -# under overload conditions we will waste that much extra time processing -# already-timed-out requests. -# -# Warning: before enabling this property make sure to ntp is installed -# and the times are synchronized between the nodes. -cross_node_timeout: false - -# Enable socket timeout for streaming operation. -# When a timeout occurs during streaming, streaming is retried from the start -# of the current file. This *can* involve re-streaming an important amount of -# data, so you should avoid setting the value too low. -# Default value is 0, which never timeout streams. -# streaming_socket_timeout_in_ms: 0 - -# phi value that must be reached for a host to be marked down. -# most users should never need to adjust this. -# phi_convict_threshold: 8 - -# endpoint_snitch -- Set this to a class that implements -# IEndpointSnitch. The snitch has two functions: -# - it teaches Cassandra enough about your network topology to route -# requests efficiently -# - it allows Cassandra to spread replicas around your cluster to avoid -# correlated failures. It does this by grouping machines into -# "datacenters" and "racks." Cassandra will do its best not to have -# more than one replica on the same "rack" (which may not actually -# be a physical location) -# -# IF YOU CHANGE THE SNITCH AFTER DATA IS INSERTED INTO THE CLUSTER, -# YOU MUST RUN A FULL REPAIR, SINCE THE SNITCH AFFECTS WHERE REPLICAS -# ARE PLACED. -# -# Out of the box, Cassandra provides -# - SimpleSnitch: -# Treats Strategy order as proximity. This improves cache locality -# when disabling read repair, which can further improve throughput. -# Only appropriate for single-datacenter deployments. -# - PropertyFileSnitch: -# Proximity is determined by rack and data center, which are -# explicitly configured in cassandra-topology.properties. -# - GossipingPropertyFileSnitch -# The rack and datacenter for the local node are defined in -# cassandra-rackdc.properties and propagated to other nodes via gossip. If -# cassandra-topology.properties exists, it is used as a fallback, allowing -# migration from the PropertyFileSnitch. -# - RackInferringSnitch: -# Proximity is determined by rack and data center, which are -# assumed to correspond to the 3rd and 2nd octet of each node's -# IP address, respectively. Unless this happens to match your -# deployment conventions (as it did Facebook's), this is best used -# as an example of writing a custom Snitch class. -# - Ec2Snitch: -# Appropriate for EC2 deployments in a single Region. Loads Region -# and Availability Zone information from the EC2 API. The Region is -# treated as the Datacenter, and the Availability Zone as the rack. -# Only private IPs are used, so this will not work across multiple -# Regions. -# - Ec2MultiRegionSnitch: -# Uses public IPs as broadcast_address to allow cross-region -# connectivity. (Thus, you should set seed addresses to the public -# IP as well.) You will need to open the storage_port or -# ssl_storage_port on the public IP firewall. (For intra-Region -# traffic, Cassandra will switch to the private IP after -# establishing a connection.) -# -# You can use a custom Snitch by setting this to the full class name -# of the snitch, which will be assumed to be on your classpath. -endpoint_snitch: SimpleSnitch - -# controls how often to perform the more expensive part of host score -# calculation -dynamic_snitch_update_interval_in_ms: 100 -# controls how often to reset all host scores, allowing a bad host to -# possibly recover -dynamic_snitch_reset_interval_in_ms: 600000 -# if set greater than zero and read_repair_chance is < 1.0, this will allow -# 'pinning' of replicas to hosts in order to increase cache capacity. -# The badness threshold will control how much worse the pinned host has to be -# before the dynamic snitch will prefer other replicas over it. This is -# expressed as a double which represents a percentage. Thus, a value of -# 0.2 means Cassandra would continue to prefer the static snitch values -# until the pinned host was 20% worse than the fastest. -dynamic_snitch_badness_threshold: 0.1 - -# request_scheduler -- Set this to a class that implements -# RequestScheduler, which will schedule incoming client requests -# according to the specific policy. This is useful for multi-tenancy -# with a single Cassandra cluster. -# NOTE: This is specifically for requests from the client and does -# not affect inter node communication. -# org.apache.cassandra.scheduler.NoScheduler - No scheduling takes place -# org.apache.cassandra.scheduler.RoundRobinScheduler - Round robin of -# client requests to a node with a separate queue for each -# request_scheduler_id. The scheduler is further customized by -# request_scheduler_options as described below. -request_scheduler: org.apache.cassandra.scheduler.NoScheduler - -# Scheduler Options vary based on the type of scheduler -# NoScheduler - Has no options -# RoundRobin -# - throttle_limit -- The throttle_limit is the number of in-flight -# requests per client. Requests beyond -# that limit are queued up until -# running requests can complete. -# The value of 80 here is twice the number of -# concurrent_reads + concurrent_writes. -# - default_weight -- default_weight is optional and allows for -# overriding the default which is 1. -# - weights -- Weights are optional and will default to 1 or the -# overridden default_weight. The weight translates into how -# many requests are handled during each turn of the -# RoundRobin, based on the scheduler id. -# -# request_scheduler_options: -# throttle_limit: 80 -# default_weight: 5 -# weights: -# Keyspace1: 1 -# Keyspace2: 5 - -# request_scheduler_id -- An identifer based on which to perform -# the request scheduling. Currently the only valid option is keyspace. -# request_scheduler_id: keyspace - -# Enable or disable inter-node encryption -# Default settings are TLS v1, RSA 1024-bit keys (it is imperative that -# users generate their own keys) TLS_RSA_WITH_AES_128_CBC_SHA as the cipher -# suite for authentication, key exchange and encryption of the actual data transfers. -# NOTE: No custom encryption options are enabled at the moment -# The available internode options are : all, none, dc, rack -# -# If set to dc cassandra will encrypt the traffic between the DCs -# If set to rack cassandra will encrypt the traffic between the racks -# -# The passwords used in these options must match the passwords used when generating -# the keystore and truststore. For instructions on generating these files, see: -# http://download.oracle.com/javase/6/docs/technotes/guides/security/jsse/JSSERefGuide.html#CreateKeystore -# -server_encryption_options: - internode_encryption: none - keystore: conf/.keystore - keystore_password: cassandra - truststore: conf/.truststore - truststore_password: cassandra - # More advanced defaults below: - # protocol: TLS - # algorithm: SunX509 - # store_type: JKS - # cipher_suites: [TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA] - # require_client_auth: false - -# enable or disable client/server encryption. -client_encryption_options: - enabled: false - keystore: conf/.keystore - keystore_password: cassandra - # require_client_auth: false - # Set trustore and truststore_password if require_client_auth is true - # truststore: conf/.truststore - # truststore_password: cassandra - # More advanced defaults below: - # protocol: TLS - # algorithm: SunX509 - # store_type: JKS - # cipher_suites: [TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA] - -# internode_compression controls whether traffic between nodes is -# compressed. -# can be: all - all traffic is compressed -# dc - traffic between different datacenters is compressed -# none - nothing is compressed. -internode_compression: all - -# Enable or disable tcp_nodelay for inter-dc communication. -# Disabling it will result in larger (but fewer) network packets being sent, -# reducing overhead from the TCP protocol itself, at the cost of increasing -# latency if you block for cross-datacenter responses. -inter_dc_tcp_nodelay: false DELETED Jenny/cassandra.yaml Index: Jenny/cassandra.yaml ================================================================== --- Jenny/cassandra.yaml +++ /dev/null @@ -1,689 +0,0 @@ -# Cassandra storage config YAML - -# NOTE: -# See http://wiki.apache.org/cassandra/StorageConfiguration for -# full explanations of configuration directives -# /NOTE - -# The name of the cluster. This is mainly used to prevent machines in -# one logical cluster from joining another. -cluster_name: 'JennyCluster' - -# This defines the number of tokens randomly assigned to this node on the ring -# The more tokens, relative to other nodes, the larger the proportion of data -# that this node will store. You probably want all nodes to have the same number -# of tokens assuming they have equal hardware capability. -# -# If you leave this unspecified, Cassandra will use the default of 1 token for legacy compatibility, -# and will use the initial_token as described below. -# -# Specifying initial_token will override this setting. -# -# If you already have a cluster with 1 token per node, and wish to migrate to -# multiple tokens per node, see http://wiki.apache.org/cassandra/Operations -# num_tokens: 256 - -# If you haven't specified num_tokens, or have set it to the default of 1 then -# you should always specify InitialToken when setting up a production -# cluster for the first time, and often when adding capacity later. -# The principle is that each node should be given an equal slice of -# the token ring; see http://wiki.apache.org/cassandra/Operations -# for more details. -# -# If blank, Cassandra will request a token bisecting the range of -# the heaviest-loaded existing node. If there is no load information -# available, such as is the case with a new cluster, it will pick -# a random token, which will lead to hot spots. -initial_token: 0 - -# See http://wiki.apache.org/cassandra/HintedHandoff -hinted_handoff_enabled: true -# this defines the maximum amount of time a dead host will have hints -# generated. After it has been dead this long, new hints for it will not be -# created until it has been seen alive and gone down again. -max_hint_window_in_ms: 10800000 # 3 hours -# throttle in KB's per second, per delivery thread -hinted_handoff_throttle_in_kb: 1024 -# Number of threads with which to deliver hints; -# Consider increasing this number when you have multi-dc deployments, since -# cross-dc handoff tends to be slower -max_hints_delivery_threads: 2 - -# The following setting populates the page cache on memtable flush and compaction -# WARNING: Enable this setting only when the whole node's data fits in memory. -# Defaults to: false -# populate_io_cache_on_flush: false - -# Authentication backend, implementing IAuthenticator; used to identify users -# Out of the box, Cassandra provides org.apache.cassandra.auth.{AllowAllAuthenticator, -# PasswordAuthenticator}. -# -# - AllowAllAuthenticator performs no checks - set it to disable authentication. -# - PasswordAuthenticator relies on username/password pairs to authenticate -# users. It keeps usernames and hashed passwords in system_auth.credentials table. -# Please increase system_auth keyspace replication factor if you use this authenticator. -authenticator: org.apache.cassandra.auth.AllowAllAuthenticator - -# Authorization backend, implementing IAuthorizer; used to limit access/provide permissions -# Out of the box, Cassandra provides org.apache.cassandra.auth.{AllowAllAuthorizer, -# CassandraAuthorizer}. -# -# - AllowAllAuthorizer allows any action to any user - set it to disable authorization. -# - CassandraAuthorizer stores permissions in system_auth.permissions table. Please -# increase system_auth keyspace replication factor if you use this authorizer. -authorizer: org.apache.cassandra.auth.AllowAllAuthorizer - -# Validity period for permissions cache (fetching permissions can be an -# expensive operation depending on the authorizer, CassandraAuthorizer is -# one example). Defaults to 2000, set to 0 to disable. -# Will be disabled automatically for AllowAllAuthorizer. -permissions_validity_in_ms: 2000 - -# The partitioner is responsible for distributing rows (by key) across -# nodes in the cluster. Any IPartitioner may be used, including your -# own as long as it is on the classpath. Out of the box, Cassandra -# provides org.apache.cassandra.dht.{Murmur3Partitioner, RandomPartitioner -# ByteOrderedPartitioner, OrderPreservingPartitioner (deprecated)}. -# -# - RandomPartitioner distributes rows across the cluster evenly by md5. -# This is the default prior to 1.2 and is retained for compatibility. -# - Murmur3Partitioner is similar to RandomPartioner but uses Murmur3_128 -# Hash Function instead of md5. When in doubt, this is the best option. -# - ByteOrderedPartitioner orders rows lexically by key bytes. BOP allows -# scanning rows in key order, but the ordering can generate hot spots -# for sequential insertion workloads. -# - OrderPreservingPartitioner is an obsolete form of BOP, that stores -# - keys in a less-efficient format and only works with keys that are -# UTF8-encoded Strings. -# - CollatingOPP colates according to EN,US rules rather than lexical byte -# ordering. Use this as an example if you need custom collation. -# -# See http://wiki.apache.org/cassandra/Operations for more on -# partitioners and token selection. -#partitioner: org.apache.cassandra.dht.Murmur3Partitioner -partitioner: org.apache.cassandra.dht.RandomPartitioner - -# directories where Cassandra should store data on disk. -data_file_directories: - - /var/lib/cassandra/data - -# commit log -commitlog_directory: /var/lib/cassandra/commitlog - -# policy for data disk failures: -# stop: shut down gossip and Thrift, leaving the node effectively dead, but -# still inspectable via JMX. -# best_effort: stop using the failed disk and respond to requests based on -# remaining available sstables. This means you WILL see obsolete -# data at CL.ONE! -# ignore: ignore fatal errors and let requests fail, as in pre-1.2 Cassandra -disk_failure_policy: stop - -# Maximum size of the key cache in memory. -# -# Each key cache hit saves 1 seek and each row cache hit saves 2 seeks at the -# minimum, sometimes more. The key cache is fairly tiny for the amount of -# time it saves, so it's worthwhile to use it at large numbers. -# The row cache saves even more time, but must store the whole values of -# its rows, so it is extremely space-intensive. It's best to only use the -# row cache if you have hot rows or static rows. -# -# NOTE: if you reduce the size, you may not get you hottest keys loaded on startup. -# -# Default value is empty to make it "auto" (min(5% of Heap (in MB), 100MB)). Set to 0 to disable key cache. -key_cache_size_in_mb: - -# Duration in seconds after which Cassandra should -# safe the keys cache. Caches are saved to saved_caches_directory as -# specified in this configuration file. -# -# Saved caches greatly improve cold-start speeds, and is relatively cheap in -# terms of I/O for the key cache. Row cache saving is much more expensive and -# has limited use. -# -# Default is 14400 or 4 hours. -key_cache_save_period: 14400 - -# Number of keys from the key cache to save -# Disabled by default, meaning all keys are going to be saved -# key_cache_keys_to_save: 100 - -# Maximum size of the row cache in memory. -# NOTE: if you reduce the size, you may not get you hottest keys loaded on startup. -# -# Default value is 0, to disable row caching. -row_cache_size_in_mb: 0 - -# Duration in seconds after which Cassandra should -# safe the row cache. Caches are saved to saved_caches_directory as specified -# in this configuration file. -# -# Saved caches greatly improve cold-start speeds, and is relatively cheap in -# terms of I/O for the key cache. Row cache saving is much more expensive and -# has limited use. -# -# Default is 0 to disable saving the row cache. -row_cache_save_period: 0 - -# Number of keys from the row cache to save -# Disabled by default, meaning all keys are going to be saved -# row_cache_keys_to_save: 100 - -# The provider for the row cache to use. -# -# Supported values are: ConcurrentLinkedHashCacheProvider, SerializingCacheProvider -# -# SerializingCacheProvider serialises the contents of the row and stores -# it in native memory, i.e., off the JVM Heap. Serialized rows take -# significantly less memory than "live" rows in the JVM, so you can cache -# more rows in a given memory footprint. And storing the cache off-heap -# means you can use smaller heap sizes, reducing the impact of GC pauses. -# -# It is also valid to specify the fully-qualified class name to a class -# that implements org.apache.cassandra.cache.IRowCacheProvider. -# -# Defaults to SerializingCacheProvider -row_cache_provider: SerializingCacheProvider - -# The pluggable Memory allocation for Off heap row cache, Experiments show that JEMAlloc -# saves some memory than the native GCC allocator. -# -# Supported values are: NativeAllocator, JEMallocAllocator -# -# If you intend to use JEMallocAllocator you have to install JEMalloc as library and -# modify cassandra-env.sh as directed in the file. -# -# Defaults to NativeAllocator -# memory_allocator: NativeAllocator - -# saved caches -saved_caches_directory: /var/lib/cassandra/saved_caches - -# commitlog_sync may be either "periodic" or "batch." -# When in batch mode, Cassandra won't ack writes until the commit log -# has been fsynced to disk. It will wait up to -# commitlog_sync_batch_window_in_ms milliseconds for other writes, before -# performing the sync. -# -# commitlog_sync: batch -# commitlog_sync_batch_window_in_ms: 50 -# -# the other option is "periodic" where writes may be acked immediately -# and the CommitLog is simply synced every commitlog_sync_period_in_ms -# milliseconds. -commitlog_sync: periodic -commitlog_sync_period_in_ms: 10000 - -# The size of the individual commitlog file segments. A commitlog -# segment may be archived, deleted, or recycled once all the data -# in it (potentally from each columnfamily in the system) has been -# flushed to sstables. -# -# The default size is 32, which is almost always fine, but if you are -# archiving commitlog segments (see commitlog_archiving.properties), -# then you probably want a finer granularity of archiving; 8 or 16 MB -# is reasonable. -commitlog_segment_size_in_mb: 32 - -# any class that implements the SeedProvider interface and has a -# constructor that takes a Map of parameters will do. -seed_provider: - # Addresses of hosts that are deemed contact points. - # Cassandra nodes use this list of hosts to find each other and learn - # the topology of the ring. You must change this if you are running - # multiple nodes! - - class_name: org.apache.cassandra.locator.SimpleSeedProvider - parameters: - # seeds is actually a comma-delimited list of addresses. - # Ex: ",," -# - seeds: "127.0.0.1" - - seeds: "10.249.21.140" - - -# emergency pressure valve: each time heap usage after a full (CMS) -# garbage collection is above this fraction of the max, Cassandra will -# flush the largest memtables. -# -# Set to 1.0 to disable. Setting this lower than -# CMSInitiatingOccupancyFraction is not likely to be useful. -# -# RELYING ON THIS AS YOUR PRIMARY TUNING MECHANISM WILL WORK POORLY: -# it is most effective under light to moderate load, or read-heavy -# workloads; under truly massive write load, it will often be too -# little, too late. -flush_largest_memtables_at: 0.75 - -# emergency pressure valve #2: the first time heap usage after a full -# (CMS) garbage collection is above this fraction of the max, -# Cassandra will reduce cache maximum _capacity_ to the given fraction -# of the current _size_. Should usually be set substantially above -# flush_largest_memtables_at, since that will have less long-term -# impact on the system. -# -# Set to 1.0 to disable. Setting this lower than -# CMSInitiatingOccupancyFraction is not likely to be useful. -reduce_cache_sizes_at: 0.85 -reduce_cache_capacity_to: 0.6 - -# For workloads with more data than can fit in memory, Cassandra's -# bottleneck will be reads that need to fetch data from -# disk. "concurrent_reads" should be set to (16 * number_of_drives) in -# order to allow the operations to enqueue low enough in the stack -# that the OS and drives can reorder them. -# -# On the other hand, since writes are almost never IO bound, the ideal -# number of "concurrent_writes" is dependent on the number of cores in -# your system; (8 * number_of_cores) is a good rule of thumb. -concurrent_reads: 32 -concurrent_writes: 32 - -# Total memory to use for memtables. Cassandra will flush the largest -# memtable when this much memory is used. -# If omitted, Cassandra will set it to 1/3 of the heap. -# memtable_total_space_in_mb: 2048 - -# Total space to use for commitlogs. Since commitlog segments are -# mmapped, and hence use up address space, the default size is 32 -# on 32-bit JVMs, and 1024 on 64-bit JVMs. -# -# If space gets above this value (it will round up to the next nearest -# segment multiple), Cassandra will flush every dirty CF in the oldest -# segment and remove it. So a small total commitlog space will tend -# to cause more flush activity on less-active columnfamilies. -# commitlog_total_space_in_mb: 4096 - -# This sets the amount of memtable flush writer threads. These will -# be blocked by disk io, and each one will hold a memtable in memory -# while blocked. If you have a large heap and many data directories, -# you can increase this value for better flush performance. -# By default this will be set to the amount of data directories defined. -#memtable_flush_writers: 1 - -# the number of full memtables to allow pending flush, that is, -# waiting for a writer thread. At a minimum, this should be set to -# the maximum number of secondary indexes created on a single CF. -memtable_flush_queue_size: 4 - -# Whether to, when doing sequential writing, fsync() at intervals in -# order to force the operating system to flush the dirty -# buffers. Enable this to avoid sudden dirty buffer flushing from -# impacting read latencies. Almost always a good idea on SSD:s; not -# necessarily on platters. -trickle_fsync: false -trickle_fsync_interval_in_kb: 10240 - -# TCP port, for commands and data -storage_port: 7000 - -# SSL port, for encrypted communication. Unused unless enabled in -# encryption_options -ssl_storage_port: 7001 - -# Address to bind to and tell other Cassandra nodes to connect to. You -# _must_ change this if you want multiple nodes to be able to -# communicate! -# -# Leaving it blank leaves it up to InetAddress.getLocalHost(). This -# will always do the Right Thing *if* the node is properly configured -# (hostname, name resolution, etc), and the Right Thing is to use the -# address associated with the hostname (it might not be). -# -# Setting this to 0.0.0.0 is always wrong. -listen_address: 10.249.21.140 - -# Address to broadcast to other Cassandra nodes -# Leaving this blank will set it to the same value as listen_address -# broadcast_address: 1.2.3.4 - - -# Whether to start the native transport server. -# Currently, only the thrift server is started by default because the native -# transport is considered beta. -# Please note that the address on which the native transport is bound is the -# same as the rpc_address. The port however is different and specified below. -start_native_transport: false -# port for the CQL native transport to listen for clients on -native_transport_port: 9042 -# The minimum and maximum threads for handling requests when the native -# transport is used. The meaning is those is similar to the one of -# rpc_min_threads and rpc_max_threads, though the default differ slightly and -# are the ones below: -# native_transport_min_threads: 16 -# native_transport_max_threads: 128 - - -# Whether to start the thrift rpc server. -start_rpc: true -# The address to bind the Thrift RPC service to -- clients connect -# here. Unlike ListenAddress above, you *can* specify 0.0.0.0 here if -# you want Thrift to listen on all interfaces. -# -# Leaving this blank has the same effect it does for ListenAddress, -# (i.e. it will be based on the configured hostname of the node). -rpc_address: 0.0.0.0 -# port for Thrift to listen for clients on -rpc_port: 9160 - -# enable or disable keepalive on rpc connections -rpc_keepalive: true - -# Cassandra provides three out-of-the-box options for the RPC Server: -# -# sync -> One thread per thrift connection. For a very large number of clients, memory -# will be your limiting factor. On a 64 bit JVM, 128KB is the minimum stack size -# per thread, and that will correspond to your use of virtual memory (but physical memory -# may be limited depending on use of stack space). -# -# hsha -> Stands for "half synchronous, half asynchronous." All thrift clients are handled -# asynchronously using a small number of threads that does not vary with the amount -# of thrift clients (and thus scales well to many clients). The rpc requests are still -# synchronous (one thread per active request). -# -# The default is sync because on Windows hsha is about 30% slower. On Linux, -# sync/hsha performance is about the same, with hsha of course using less memory. -# -# Alternatively, can provide your own RPC server by providing the fully-qualified class name -# of an o.a.c.t.TServerFactory that can create an instance of it. -rpc_server_type: sync - -# Uncomment rpc_min|max_thread to set request pool size limits. -# -# Regardless of your choice of RPC server (see above), the number of maximum requests in the -# RPC thread pool dictates how many concurrent requests are possible (but if you are using the sync -# RPC server, it also dictates the number of clients that can be connected at all). -# -# The default is unlimited and thus provide no protection against clients overwhelming the server. You are -# encouraged to set a maximum that makes sense for you in production, but do keep in mind that -# rpc_max_threads represents the maximum number of client requests this server may execute concurrently. -# -# rpc_min_threads: 16 -# rpc_max_threads: 2048 - -# uncomment to set socket buffer sizes on rpc connections -# rpc_send_buff_size_in_bytes: -# rpc_recv_buff_size_in_bytes: - -# Uncomment to set socket buffer size for internode communication -# Note that when setting this, the buffer size is limited by net.core.wmem_max -# and when not setting it it is defined by net.ipv4.tcp_wmem -# See: -# /proc/sys/net/core/wmem_max -# /proc/sys/net/core/rmem_max -# /proc/sys/net/ipv4/tcp_wmem -# /proc/sys/net/ipv4/tcp_wmem -# and: man tcp -# internode_send_buff_size_in_bytes: -# internode_recv_buff_size_in_bytes: - -# Frame size for thrift (maximum field length). -thrift_framed_transport_size_in_mb: 15 - -# The max length of a thrift message, including all fields and -# internal thrift overhead. -thrift_max_message_length_in_mb: 16 - -# Set to true to have Cassandra create a hard link to each sstable -# flushed or streamed locally in a backups/ subdirectory of the -# Keyspace data. Removing these links is the operator's -# responsibility. -incremental_backups: false - -# Whether or not to take a snapshot before each compaction. Be -# careful using this option, since Cassandra won't clean up the -# snapshots for you. Mostly useful if you're paranoid when there -# is a data format change. -snapshot_before_compaction: false - -# Whether or not a snapshot is taken of the data before keyspace truncation -# or dropping of column families. The STRONGLY advised default of true -# should be used to provide data safety. If you set this flag to false, you will -# lose data on truncation or drop. -auto_snapshot: true - -# Add column indexes to a row after its contents reach this size. -# Increase if your column values are large, or if you have a very large -# number of columns. The competing causes are, Cassandra has to -# deserialize this much of the row to read a single column, so you want -# it to be small - at least if you do many partial-row reads - but all -# the index data is read for each access, so you don't want to generate -# that wastefully either. -column_index_size_in_kb: 64 - -# Size limit for rows being compacted in memory. Larger rows will spill -# over to disk and use a slower two-pass compaction process. A message -# will be logged specifying the row key. -in_memory_compaction_limit_in_mb: 64 - -# Number of simultaneous compactions to allow, NOT including -# validation "compactions" for anti-entropy repair. Simultaneous -# compactions can help preserve read performance in a mixed read/write -# workload, by mitigating the tendency of small sstables to accumulate -# during a single long running compactions. The default is usually -# fine and if you experience problems with compaction running too -# slowly or too fast, you should look at -# compaction_throughput_mb_per_sec first. -# -# concurrent_compactors defaults to the number of cores. -# Uncomment to make compaction mono-threaded, the pre-0.8 default. -#concurrent_compactors: 1 - -# Multi-threaded compaction. When enabled, each compaction will use -# up to one thread per core, plus one thread per sstable being merged. -# This is usually only useful for SSD-based hardware: otherwise, -# your concern is usually to get compaction to do LESS i/o (see: -# compaction_throughput_mb_per_sec), not more. -multithreaded_compaction: false - -# Throttles compaction to the given total throughput across the entire -# system. The faster you insert data, the faster you need to compact in -# order to keep the sstable count down, but in general, setting this to -# 16 to 32 times the rate you are inserting data is more than sufficient. -# Setting this to 0 disables throttling. Note that this account for all types -# of compaction, including validation compaction. -compaction_throughput_mb_per_sec: 16 - -# Track cached row keys during compaction, and re-cache their new -# positions in the compacted sstable. Disable if you use really large -# key caches. -compaction_preheat_key_cache: true - -# Throttles all outbound streaming file transfers on this node to the -# given total throughput in Mbps. This is necessary because Cassandra does -# mostly sequential IO when streaming data during bootstrap or repair, which -# can lead to saturating the network connection and degrading rpc performance. -# When unset, the default is 400 Mbps or 50 MB/s. -# stream_throughput_outbound_megabits_per_sec: 400 - -# How long the coordinator should wait for read operations to complete -read_request_timeout_in_ms: 10000 -# How long the coordinator should wait for seq or index scans to complete -range_request_timeout_in_ms: 10000 -# How long the coordinator should wait for writes to complete -write_request_timeout_in_ms: 10000 -# How long the coordinator should wait for truncates to complete -# (This can be much longer, because unless auto_snapshot is disabled -# we need to flush first so we can snapshot before removing the data.) -truncate_request_timeout_in_ms: 60000 -# The default timeout for other, miscellaneous operations -request_timeout_in_ms: 10000 - -# Enable operation timeout information exchange between nodes to accurately -# measure request timeouts, If disabled cassandra will assuming the request -# was forwarded to the replica instantly by the coordinator -# -# Warning: before enabling this property make sure to ntp is installed -# and the times are synchronized between the nodes. -cross_node_timeout: false - -# Enable socket timeout for streaming operation. -# When a timeout occurs during streaming, streaming is retried from the start -# of the current file. This *can* involve re-streaming an important amount of -# data, so you should avoid setting the value too low. -# Default value is 0, which never timeout streams. -# streaming_socket_timeout_in_ms: 0 - -# phi value that must be reached for a host to be marked down. -# most users should never need to adjust this. -# phi_convict_threshold: 8 - -# endpoint_snitch -- Set this to a class that implements -# IEndpointSnitch. The snitch has two functions: -# - it teaches Cassandra enough about your network topology to route -# requests efficiently -# - it allows Cassandra to spread replicas around your cluster to avoid -# correlated failures. It does this by grouping machines into -# "datacenters" and "racks." Cassandra will do its best not to have -# more than one replica on the same "rack" (which may not actually -# be a physical location) -# -# IF YOU CHANGE THE SNITCH AFTER DATA IS INSERTED INTO THE CLUSTER, -# YOU MUST RUN A FULL REPAIR, SINCE THE SNITCH AFFECTS WHERE REPLICAS -# ARE PLACED. -# -# Out of the box, Cassandra provides -# - SimpleSnitch: -# Treats Strategy order as proximity. This improves cache locality -# when disabling read repair, which can further improve throughput. -# Only appropriate for single-datacenter deployments. -# - PropertyFileSnitch: -# Proximity is determined by rack and data center, which are -# explicitly configured in cassandra-topology.properties. -# - GossipingPropertyFileSnitch -# The rack and datacenter for the local node are defined in -# cassandra-rackdc.properties and propagated to other nodes via gossip. If -# cassandra-topology.properties exists, it is used as a fallback, allowing -# migration from the PropertyFileSnitch. -# - RackInferringSnitch: -# Proximity is determined by rack and data center, which are -# assumed to correspond to the 3rd and 2nd octet of each node's -# IP address, respectively. Unless this happens to match your -# deployment conventions (as it did Facebook's), this is best used -# as an example of writing a custom Snitch class. -# - Ec2Snitch: -# Appropriate for EC2 deployments in a single Region. Loads Region -# and Availability Zone information from the EC2 API. The Region is -# treated as the Datacenter, and the Availability Zone as the rack. -# Only private IPs are used, so this will not work across multiple -# Regions. -# - Ec2MultiRegionSnitch: -# Uses public IPs as broadcast_address to allow cross-region -# connectivity. (Thus, you should set seed addresses to the public -# IP as well.) You will need to open the storage_port or -# ssl_storage_port on the public IP firewall. (For intra-Region -# traffic, Cassandra will switch to the private IP after -# establishing a connection.) -# -# You can use a custom Snitch by setting this to the full class name -# of the snitch, which will be assumed to be on your classpath. -endpoint_snitch: SimpleSnitch - -# controls how often to perform the more expensive part of host score -# calculation -dynamic_snitch_update_interval_in_ms: 100 -# controls how often to reset all host scores, allowing a bad host to -# possibly recover -dynamic_snitch_reset_interval_in_ms: 600000 -# if set greater than zero and read_repair_chance is < 1.0, this will allow -# 'pinning' of replicas to hosts in order to increase cache capacity. -# The badness threshold will control how much worse the pinned host has to be -# before the dynamic snitch will prefer other replicas over it. This is -# expressed as a double which represents a percentage. Thus, a value of -# 0.2 means Cassandra would continue to prefer the static snitch values -# until the pinned host was 20% worse than the fastest. -dynamic_snitch_badness_threshold: 0.1 - -# request_scheduler -- Set this to a class that implements -# RequestScheduler, which will schedule incoming client requests -# according to the specific policy. This is useful for multi-tenancy -# with a single Cassandra cluster. -# NOTE: This is specifically for requests from the client and does -# not affect inter node communication. -# org.apache.cassandra.scheduler.NoScheduler - No scheduling takes place -# org.apache.cassandra.scheduler.RoundRobinScheduler - Round robin of -# client requests to a node with a separate queue for each -# request_scheduler_id. The scheduler is further customized by -# request_scheduler_options as described below. -request_scheduler: org.apache.cassandra.scheduler.NoScheduler - -# Scheduler Options vary based on the type of scheduler -# NoScheduler - Has no options -# RoundRobin -# - throttle_limit -- The throttle_limit is the number of in-flight -# requests per client. Requests beyond -# that limit are queued up until -# running requests can complete. -# The value of 80 here is twice the number of -# concurrent_reads + concurrent_writes. -# - default_weight -- default_weight is optional and allows for -# overriding the default which is 1. -# - weights -- Weights are optional and will default to 1 or the -# overridden default_weight. The weight translates into how -# many requests are handled during each turn of the -# RoundRobin, based on the scheduler id. -# -# request_scheduler_options: -# throttle_limit: 80 -# default_weight: 5 -# weights: -# Keyspace1: 1 -# Keyspace2: 5 - -# request_scheduler_id -- An identifer based on which to perform -# the request scheduling. Currently the only valid option is keyspace. -# request_scheduler_id: keyspace -#index_interval: 128 - -# Enable or disable inter-node encryption -# Default settings are TLS v1, RSA 1024-bit keys (it is imperative that -# users generate their own keys) TLS_RSA_WITH_AES_128_CBC_SHA as the cipher -# suite for authentication, key exchange and encryption of the actual data transfers. -# NOTE: No custom encryption options are enabled at the moment -# The available internode options are : all, none, dc, rack -# -# If set to dc cassandra will encrypt the traffic between the DCs -# If set to rack cassandra will encrypt the traffic between the racks -# -# The passwords used in these options must match the passwords used when generating -# the keystore and truststore. For instructions on generating these files, see: -# http://download.oracle.com/javase/6/docs/technotes/guides/security/jsse/JSSERefGuide.html#CreateKeystore -# -server_encryption_options: - internode_encryption: none - keystore: conf/.keystore - keystore_password: cassandra - truststore: conf/.truststore - truststore_password: cassandra - # More advanced defaults below: - # protocol: TLS - # algorithm: SunX509 - # store_type: JKS - # cipher_suites: [TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA] - # require_client_auth: false - -# enable or disable client/server encryption. -client_encryption_options: - enabled: false - keystore: conf/.keystore - keystore_password: cassandra - # require_client_auth: false - # Set trustore and truststore_password if require_client_auth is true - # truststore: conf/.truststore - # truststore_password: cassandra - # More advanced defaults below: - # protocol: TLS - # algorithm: SunX509 - # store_type: JKS - # cipher_suites: [TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA] - -# internode_compression controls whether traffic between nodes is -# compressed. -# can be: all - all traffic is compressed -# dc - traffic between different datacenters is compressed -# none - nothing is compressed. -internode_compression: all - -# Enable or disable tcp_nodelay for inter-dc communication. -# Disabling it will result in larger (but fewer) network packets being sent, -# reducing overhead from the TCP protocol itself, at the cost of increasing -# latency if you block for cross-datacenter responses. -inter_dc_tcp_nodelay: false DELETED Jenny/init(non-seed).txt Index: Jenny/init(non-seed).txt ================================================================== --- Jenny/init(non-seed).txt +++ /dev/null @@ -1,72 +0,0 @@ -xss = -ea -javaagent:/home/jfang/cassandra/lib/jamm-0.2.5.jar -XX:+UseThreadPriorities -XX:ThreadPriorityPolicy=42 -Xms1024M -Xmx1024M -Xmn100M -XX:+HeapDumpOnOutOfMemoryError -Xss180k -jfang@ip-10-249-79-6:~/cassandra$ INFO 06:13:06,232 Logging initialized - INFO 06:13:06,259 JVM vendor/version: OpenJDK 64-Bit Server VM/1.7.0_15 - WARN 06:13:06,259 OpenJDK is not recommended. Please upgrade to the newest Oracle Java release - INFO 06:13:06,260 Heap size: 1063256064/1063256064 - INFO 06:13:06,260 Classpath: /home/jfang/cassandra/conf:/home/jfang/cassandra/build/classes/main:/home/jfang/cassandra/build/classes/thrift:/home/jfang/cassandra/lib/antlr-3.2.jar:/home/jfang/cassandra/lib/avro-1.4.0-fixes.jar:/home/jfang/cassandra/lib/avro-1.4.0-sources-fixes.jar:/home/jfang/cassandra/lib/commons-cli-1.1.jar:/home/jfang/cassandra/lib/commons-codec-1.2.jar:/home/jfang/cassandra/lib/commons-lang-2.6.jar:/home/jfang/cassandra/lib/compress-lzf-0.8.4.jar:/home/jfang/cassandra/lib/concurrentlinkedhashmap-lru-1.3.jar:/home/jfang/cassandra/lib/guava-13.0.1.jar:/home/jfang/cassandra/lib/high-scale-lib-1.1.2.jar:/home/jfang/cassandra/lib/jackson-core-asl-1.9.2.jar:/home/jfang/cassandra/lib/jackson-mapper-asl-1.9.2.jar:/home/jfang/cassandra/lib/jamm-0.2.5.jar:/home/jfang/cassandra/lib/jbcrypt-0.3m.jar:/home/jfang/cassandra/lib/jline-1.0.jar:/home/jfang/cassandra/lib/jna.jar:/home/jfang/cassandra/lib/json-simple-1.1.jar:/home/jfang/cassandra/lib/libthrift-0.9.0.jar:/home/jfang/cassandra/lib/log4j-1.2.16.jar:/home/jfang/cassandra/lib/lz4-1.1.0.jar:/home/jfang/cassandra/lib/metrics-core-2.0.3.jar:/home/jfang/cassandra/lib/netty-3.5.9.Final.jar:/home/jfang/cassandra/lib/servlet-api-2.5-20081211.jar:/home/jfang/cassandra/lib/slf4j-api-1.7.2.jar:/home/jfang/cassandra/lib/slf4j-log4j12-1.7.2.jar:/home/jfang/cassandra/lib/snakeyaml-1.6.jar:/home/jfang/cassandra/lib/snappy-java-1.0.4.1.jar:/home/jfang/cassandra/lib/snaptree-0.1.jar:/home/jfang/cassandra/lib/jamm-0.2.5.jar - INFO 06:13:06,264 JNA not found. Native methods will be disabled. - INFO 06:13:06,282 Loading settings from file:/home/jfang/cassandra/conf/cassandra.yaml - INFO 06:13:07,216 Data files directories: [/var/lib/cassandra/data] - INFO 06:13:07,216 Commit log directory: /var/lib/cassandra/commitlog - INFO 06:13:07,217 DiskAccessMode 'auto' determined to be mmap, indexAccessMode is mmap - INFO 06:13:07,217 disk_failure_policy is stop - INFO 06:13:07,225 Global memtable threshold is enabled at 338MB - INFO 06:13:07,439 Not using multi-threaded compaction - INFO 06:13:07,439 Not using multi-threaded compaction - INFO 06:13:07,857 Initializing key cache with capacity of 50 MBs. - INFO 06:13:07,872 Scheduling key cache save to each 14400 seconds (going to save all keys). - INFO 06:13:07,879 Initializing row cache with capacity of 0 MBs and provider org.apache.cassandra.cache.SerializingCacheProvider - INFO 06:13:07,890 Scheduling row cache save to each 0 seconds (going to save all keys). - INFO 06:13:08,541 Couldn't detect any schema definitions in local storage. - INFO 06:13:08,542 To create keyspaces and column families, see 'help create keyspace' in the CLI, or set up a schema using the thrift system_* calls. - INFO 06:13:08,718 Enqueuing flush of Memtable-local@733995257(141/141 serialized/live bytes, 6 ops) - INFO 06:13:08,722 Writing Memtable-local@733995257(141/141 serialized/live bytes, 6 ops) - INFO 06:13:08,805 Completed flushing /var/lib/cassandra/data/system/local/system-local-ic-1-Data.db (184 bytes) for commitlog position ReplayPosition(segmentId=1363846388501, position=433) - INFO 06:13:08,847 No commitlog files found; skipping replay - INFO 06:13:09,399 Cassandra version: 1.2.3-SNAPSHOT - INFO 06:13:09,400 Thrift API version: 19.36.0 - INFO 06:13:09,400 CQL supported versions: 2.0.0,3.0.1 (default: 3.0.1) - INFO 06:13:09,577 Loading persisted ring state - INFO 06:13:09,581 Starting up server gossip - WARN 06:13:09,613 No host ID found, created 6080878e-8fd7-4430-a866-62f68d9368bf (Note: This should happen exactly once per node). - INFO 06:13:09,639 Enqueuing flush of Memtable-local@1477014130(293/293 serialized/live bytes, 11 ops) - INFO 06:13:09,640 Writing Memtable-local@1477014130(293/293 serialized/live bytes, 11 ops) - INFO 06:13:09,667 Completed flushing /var/lib/cassandra/data/system/local/system-local-ic-2-Data.db (294 bytes) for commitlog position ReplayPosition(segmentId=1363846388501, position=59190) - INFO 06:13:09,754 Starting Messaging Service on port 7000 - INFO 06:13:09,826 Enqueuing flush of Memtable-local@1366996301(86/86 serialized/live bytes, 4 ops) - INFO 06:13:09,826 Writing Memtable-local@1366996301(86/86 serialized/live bytes, 4 ops) - INFO 06:13:09,850 Completed flushing /var/lib/cassandra/data/system/local/system-local-ic-3-Data.db (126 bytes) for commitlog position ReplayPosition(segmentId=1363846388501, position=59467) - INFO 06:13:09,852 JOINING: waiting for ring information - INFO 06:13:11,537 Node /10.249.21.140 is now part of the cluster - INFO 06:13:11,538 InetAddress /10.249.21.140 is now UP - INFO 06:13:11,564 Enqueuing flush of Memtable-peers@1563907445(163/163 serialized/live bytes, 10 ops) - INFO 06:13:11,565 Writing Memtable-peers@1563907445(163/163 serialized/live bytes, 10 ops) - INFO 06:13:11,604 Completed flushing /var/lib/cassandra/data/system/peers/system-peers-ic-1-Data.db (217 bytes) for commitlog position ReplayPosition(segmentId=1363846388501, position=60153) - INFO 06:13:11,781 Enqueuing flush of Memtable-schema_keyspaces@492609590(389/389 serialized/live bytes, 11 ops) - INFO 06:13:11,782 Writing Memtable-schema_keyspaces@492609590(389/389 serialized/live bytes, 11 ops) - INFO 06:13:11,812 Completed flushing /var/lib/cassandra/data/system/schema_keyspaces/system-schema_keyspaces-ic-1-Data.db (288 bytes) for commitlog position ReplayPosition(segmentId=1363846388501, position=62440) - INFO 06:13:11,813 Enqueuing flush of Memtable-schema_columnfamilies@2079436801(28351/28351 serialized/live bytes, 476 ops) - INFO 06:13:11,814 Writing Memtable-schema_columnfamilies@2079436801(28351/28351 serialized/live bytes, 476 ops) - INFO 06:13:11,860 Completed flushing /var/lib/cassandra/data/system/schema_columnfamilies/system-schema_columnfamilies-ic-1-Data.db (5981 bytes) for commitlog position ReplayPosition(segmentId=1363846388501, position=62440) - INFO 06:13:11,862 Enqueuing flush of Memtable-schema_columns@8190915(24546/24546 serialized/live bytes, 367 ops) - INFO 06:13:11,862 Writing Memtable-schema_columns@8190915(24546/24546 serialized/live bytes, 367 ops) - INFO 06:13:11,919 Completed flushing /var/lib/cassandra/data/system/schema_columns/system-schema_columns-ic-1-Data.db (4802 bytes) for commitlog position ReplayPosition(segmentId=1363846388501, position=62440) - INFO 06:13:12,853 JOINING: schema complete, ready to bootstrap - INFO 06:13:12,854 JOINING: getting bootstrap token - INFO 06:13:12,870 Enqueuing flush of Memtable-local@1438932900(110/110 serialized/live bytes, 4 ops) - INFO 06:13:12,874 Writing Memtable-local@1438932900(110/110 serialized/live bytes, 4 ops) - INFO 06:13:12,912 Completed flushing /var/lib/cassandra/data/system/local/system-local-ic-4-Data.db (174 bytes) for commitlog position ReplayPosition(segmentId=1363846388501, position=62775) - INFO 06:13:12,935 JOINING: sleeping 30000 ms for pending range setup - INFO 06:13:12,937 Compacting [SSTableReader(path='/var/lib/cassandra/data/system/local/system-local-ic-3-Data.db'), SSTableReader(path='/var/lib/cassandra/data/system/local/system-local-ic-2-Data.db'), SSTableReader(path='/var/lib/cassandra/data/system/local/system-local-ic-1-Data.db'), SSTableReader(path='/var/lib/cassandra/data/system/local/system-local-ic-4-Data.db')] - INFO 06:13:12,999 Compacted 4 sstables to [/var/lib/cassandra/data/system/local/system-local-ic-5,]. 778 bytes to 538 (~69% of original) in 47ms = 0.010917MB/s. 4 total rows, 1 unique. Row merge counts were {1:0, 2:0, 3:0, 4:1, } - INFO 06:13:42,935 JOINING: Starting to bootstrap... - INFO 06:13:43,122 Finished streaming session 7b3326d0-91ee-11e2-a957-697b0a00d8bb from /10.249.21.140 - INFO 06:13:43,123 Bootstrap completed! for the tokens [85070591730234615865843651857942052864] - INFO 06:13:43,125 Enqueuing flush of Memtable-local@321349795(43/43 serialized/live bytes, 2 ops) - INFO 06:13:43,126 Writing Memtable-local@321349795(43/43 serialized/live bytes, 2 ops) - INFO 06:13:43,152 Completed flushing /var/lib/cassandra/data/system/local/system-local-ic-6-Data.db (78 bytes) for commitlog position ReplayPosition(segmentId=1363846388501, position=62908) - INFO 06:13:43,155 Enqueuing flush of Memtable-local@546663228(69/69 serialized/live bytes, 2 ops) - INFO 06:13:43,156 Writing Memtable-local@546663228(69/69 serialized/live bytes, 2 ops) - INFO 06:13:43,193 Completed flushing /var/lib/cassandra/data/system/local/system-local-ic-7-Data.db (126 bytes) for commitlog position ReplayPosition(segmentId=1363846388501, position=63101) - INFO 06:13:43,204 Node /10.249.79.6 state jump to normal - INFO 06:13:43,205 Startup completed! Now serving reads. DELETED Jenny/init(seed).txt Index: Jenny/init(seed).txt ================================================================== --- Jenny/init(seed).txt +++ /dev/null @@ -1,52 +0,0 @@ -xss = -ea -javaagent:bin/../lib/jamm-0.2.5.jar -XX:+UseThreadPriorities -XX:ThreadPriorityPolicy=42 -Xms1024M -Xmx1024M -Xmn100M -XX:+HeapDumpOnOutOfMemoryError -Xss280k -jfang@ip-10-249-21-140:~/cassandra$ INFO 06:10:53,425 Logging initialized - INFO 06:10:53,448 JVM vendor/version: OpenJDK 64-Bit Server VM/1.7.0_15 - WARN 06:10:53,449 OpenJDK is not recommended. Please upgrade to the newest Oracle Java release - INFO 06:10:53,449 Heap size: 1063256064/1063256064 - INFO 06:10:53,450 Classpath: bin/../conf:bin/../build/classes/main:bin/../build/classes/thrift:bin/../lib/antlr-3.2.jar:bin/../lib/avro-1.4.0-fixes.jar:bin/../lib/avro-1.4.0-sources-fixes.jar:bin/../lib/commons-cli-1.1.jar:bin/../lib/commons-codec-1.2.jar:bin/../lib/commons-lang-2.6.jar:bin/../lib/compress-lzf-0.8.4.jar:bin/../lib/concurrentlinkedhashmap-lru-1.3.jar:bin/../lib/guava-13.0.1.jar:bin/../lib/high-scale-lib-1.1.2.jar:bin/../lib/jackson-core-asl-1.9.2.jar:bin/../lib/jackson-mapper-asl-1.9.2.jar:bin/../lib/jamm-0.2.5.jar:bin/../lib/jbcrypt-0.3m.jar:bin/../lib/jline-1.0.jar:bin/../lib/json-simple-1.1.jar:bin/../lib/libthrift-0.9.0.jar:bin/../lib/log4j-1.2.16.jar:bin/../lib/lz4-1.1.0.jar:bin/../lib/metrics-core-2.0.3.jar:bin/../lib/netty-3.5.9.Final.jar:bin/../lib/servlet-api-2.5-20081211.jar:bin/../lib/slf4j-api-1.7.2.jar:bin/../lib/slf4j-log4j12-1.7.2.jar:bin/../lib/snakeyaml-1.6.jar:bin/../lib/snappy-java-1.0.4.1.jar:bin/../lib/snaptree-0.1.jar:bin/../lib/jamm-0.2.5.jar - INFO 06:10:53,453 JNA not found. Native methods will be disabled. - INFO 06:10:53,469 Loading settings from file:/home/jfang/cassandra/conf/cassandra.yaml - INFO 06:10:54,270 Data files directories: [/var/lib/cassandra/data] - INFO 06:10:54,270 Commit log directory: /var/lib/cassandra/commitlog - INFO 06:10:54,271 DiskAccessMode 'auto' determined to be mmap, indexAccessMode is mmap - INFO 06:10:54,271 disk_failure_policy is stop - INFO 06:10:54,278 Global memtable threshold is enabled at 338MB - INFO 06:10:54,477 Not using multi-threaded compaction - INFO 06:10:54,477 Not using multi-threaded compaction - INFO 06:10:54,839 Initializing key cache with capacity of 50 MBs. - INFO 06:10:54,852 Scheduling key cache save to each 14400 seconds (going to save all keys). - INFO 06:10:54,859 Initializing row cache with capacity of 0 MBs and provider org.apache.cassandra.cache.SerializingCacheProvider - INFO 06:10:54,868 Scheduling row cache save to each 0 seconds (going to save all keys). - INFO 06:10:55,142 Opening /var/lib/cassandra/data/system/schema_keyspaces/system-schema_keyspaces-ic-2 (228 bytes) - INFO 06:10:55,189 Opening /var/lib/cassandra/data/system/schema_keyspaces/system-schema_keyspaces-ic-3 (281 bytes) - INFO 06:10:55,213 Opening /var/lib/cassandra/data/system/schema_columnfamilies/system-schema_columnfamilies-ic-1 (5984 bytes) - INFO 06:10:55,216 Opening /var/lib/cassandra/data/system/schema_columnfamilies/system-schema_columnfamilies-ic-2 (5614 bytes) - INFO 06:10:55,230 Opening /var/lib/cassandra/data/system/schema_columns/system-schema_columns-ic-1 (4788 bytes) - INFO 06:10:55,232 Opening /var/lib/cassandra/data/system/schema_columns/system-schema_columns-ic-2 (4698 bytes) - INFO 06:10:55,256 Opening /var/lib/cassandra/data/system/local/system-local-ic-6 (479 bytes) - INFO 06:10:55,260 Opening /var/lib/cassandra/data/system/local/system-local-ic-5 (88 bytes) - INFO 06:10:56,225 Enqueuing flush of Memtable-local@1386053924(106/106 serialized/live bytes, 4 ops) - INFO 06:10:56,228 Writing Memtable-local@1386053924(106/106 serialized/live bytes, 4 ops) - INFO 06:10:56,277 Completed flushing /var/lib/cassandra/data/system/local/system-local-ic-7-Data.db (148 bytes) for commitlog position ReplayPosition(segmentId=1363846255994, position=297) - INFO 06:10:56,281 completed pre-loading (4 keys) key cache. - INFO 06:10:56,301 No commitlog files found; skipping replay - INFO 06:10:56,739 Cassandra version: 1.2.2 - INFO 06:10:56,740 Thrift API version: 19.36.0 - INFO 06:10:56,740 CQL supported versions: 2.0.0,3.0.1 (default: 3.0.1) - INFO 06:10:56,794 Loading persisted ring state - INFO 06:10:56,797 Starting up server gossip - INFO 06:10:56,850 Enqueuing flush of Memtable-local@855506767(250/250 serialized/live bytes, 9 ops) - INFO 06:10:56,858 Writing Memtable-local@855506767(250/250 serialized/live bytes, 9 ops) - INFO 06:10:56,889 Completed flushing /var/lib/cassandra/data/system/local/system-local-ic-8-Data.db (243 bytes) for commitlog position ReplayPosition(segmentId=1363846255994, position=58910) - INFO 06:10:56,932 Compacting [SSTableReader(path='/var/lib/cassandra/data/system/local/system-local-ic-7-Data.db'), SSTableReader(path='/var/lib/cassandra/data/system/local/system-local-ic-6-Data.db'), SSTableReader(path='/var/lib/cassandra/data/system/local/system-local-ic-8-Data.db'), SSTableReader(path='/var/lib/cassandra/data/system/local/system-local-ic-5-Data.db')] - INFO 06:10:57,076 Compacted 4 sstables to [/var/lib/cassandra/data/system/local/system-local-ic-9,]. 958 bytes to 512 (~53% of original) in 118ms = 0.004138MB/s. 4 total rows, 1 unique. Row merge counts were {1:0, 2:0, 3:0, 4:1, } - INFO 06:10:57,077 Starting Messaging Service on port 7000 - INFO 06:10:57,159 Using saved token [0] - INFO 06:10:57,163 Enqueuing flush of Memtable-local@1551520778(84/84 serialized/live bytes, 4 ops) - INFO 06:10:57,164 Writing Memtable-local@1551520778(84/84 serialized/live bytes, 4 ops) - INFO 06:10:57,197 Completed flushing /var/lib/cassandra/data/system/local/system-local-ic-10-Data.db (124 bytes) for commitlog position ReplayPosition(segmentId=1363846255994, position=59185) - INFO 06:10:57,202 Enqueuing flush of Memtable-local@150585502(32/32 serialized/live bytes, 2 ops) - INFO 06:10:57,203 Writing Memtable-local@150585502(32/32 serialized/live bytes, 2 ops) - INFO 06:10:57,235 Completed flushing /var/lib/cassandra/data/system/local/system-local-ic-11-Data.db (88 bytes) for commitlog position ReplayPosition(segmentId=1363846255994, position=59341) - INFO 06:10:57,254 Node /10.249.21.140 state jump to normal - INFO 06:10:57,261 Startup completed! Now serving reads. DELETED Jenny/testCommit.txt Index: Jenny/testCommit.txt ================================================================== --- Jenny/testCommit.txt +++ /dev/null @@ -1,1 +0,0 @@ -Commit ?! DELETED Jenny/tokengentool Index: Jenny/tokengentool ================================================================== --- Jenny/tokengentool +++ /dev/null @@ -1,8 +0,0 @@ -#! /usr/bin/python -import sys -if (len(sys.argv) > 1): - num=int(sys.argv[1]) -else: - num=int(raw_input("How many nodes are in your cluster? ")) -for i in range(0, num): - print 'token %d: %d' % (i, (i*(2**127)/num)) ADDED JennyFirstFile.txt Index: JennyFirstFile.txt ================================================================== --- /dev/null +++ JennyFirstFile.txt @@ -0,0 +1,1 @@ +Jenny's first file! Jesse's First Edit! DELETED Jesse/.zshrc Index: Jesse/.zshrc ================================================================== --- Jesse/.zshrc +++ /dev/null @@ -1,44 +0,0 @@ -# Path to your oh-my-zsh configuration. -ZSH=$HOME/.oh-my-zsh - -# Set name of the theme to load. -# Look in ~/.oh-my-zsh/themes/ -# Optionally, if you set this to "random", it'll load a random theme each -# time that oh-my-zsh is loaded. -ZSH_THEME="robbyrussell" - -# Example aliases -# alias zshconfig="mate ~/.zshrc" -# alias ohmyzsh="mate ~/.oh-my-zsh" - -# Set to this to use case-sensitive completion -# CASE_SENSITIVE="true" - -# Comment this out to disable bi-weekly auto-update checks -# DISABLE_AUTO_UPDATE="true" - -# Uncomment to change how many often would you like to wait before auto-updates occur? (in days) -# export UPDATE_ZSH_DAYS=13 - -# Uncomment following line if you want to disable colors in ls -# DISABLE_LS_COLORS="true" - -# Uncomment following line if you want to disable autosetting terminal title. -# DISABLE_AUTO_TITLE="true" - -# Uncomment following line if you want red dots to be displayed while waiting for completion -# COMPLETION_WAITING_DOTS="true" - -# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*) -# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/ -# Example format: plugins=(rails git textmate ruby lighthouse) -plugins=(git) - -source $ZSH/oh-my-zsh.sh - -# Customize to your needs... -export PATH= -export PATH=$PATH:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/couchbase/bin/:/home/YCSB/bin - -alias ack='ack-grep' -export CLASSPATH=~/YCSB/core/target/core-0.1.4.jar:~/YCSB/core/src/main/java/com/yahoo/ycsb:~/YCSB/couchbase/com/yahoo/ycsb/db:/Users/jessechezenko/Dropbox/Workspaces/YCSB/core/target/classes:~/YCSB/couchbase/db/libs/spymemcached-2.8.11.jar:~/YCSB/couchbase/db/libs/couchbase-client-1.1.2.jar:~/YCSB/couchbase/db:~/YCSB/couchbase/db/libs/httpcore-4.1.1.jar:~/YCSB/couchbase/db/libs/netty-3.5.5.Final.jar:~/YCSB/couchbase/db/libs/jettison-1.1.jar:~/YCSB/couchbase/db/libs/commons-codec-1.5.jar:~/YCSB/couchbase/db/libs/httpcore-nio-4.1.1.jar:/home/YCSB/core/target/core-0.1.4.jar:/home/jchezenko/couchbase/db:/home/jchezenko/couchbase/db/libs/commons-codec-1.5.jar:/home/jchezenko/couchbase/db/libs/couchbase-client-1.1.2.jar:/home/jchezenko/couchbase/db/libs/couchbase-client-1.1.2-javadocs.jar:/home/jchezenko/couchbase/db/libs/couchbase-client-1.1.2-sources.jar:/home/jchezenko/couchbase/db/libs/google-gson-2.2.2/:/home/jchezenko/couchbase/db/libs/httpcore-4.1.1.jar:/home/jchezenko/couchbase/db/libs/httpcore-nio-4.1.1.jar:/home/jchezenko/couchbase/db/libs/jettison-1.1.jar:/home/jchezenko/couchbase/db/libs/netty-3.5.5.Final.jar:/home/jchezenko/couchbase/db/libs/spymemcached-2.8.11.jar:/home/jchezenko/couchbase/db/libs/spymemcached-2.8.11-javadocs.jar:/home/jchezenko/couchbase/db/libs/spymemcached-2.8.11-sources.jar DELETED Jesse/CouchClient.java Index: Jesse/CouchClient.java ================================================================== --- Jesse/CouchClient.java +++ /dev/null @@ -1,134 +0,0 @@ -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; -import java.util.Properties; -import java.util.Set; -import java.util.Vector; -import java.util.concurrent.atomic.AtomicInteger; - -import com.couchbase.client.CouchbaseClient; -import java.io.IOException; -import java.net.URI; -import java.util.LinkedList; -import java.util.List; -import java.util.concurrent.ExecutionException; -import java.util.concurrent.TimeUnit; -import net.spy.memcached.internal.OperationFuture; - -import com.yahoo.ycsb.ByteArrayByteIterator; -import com.yahoo.ycsb.ByteIterator; -import com.yahoo.ycsb.DB; -import com.yahoo.ycsb.DBException; - -public class CouchClient extends DB { - - - // the unique key of the document - public static final String KEY = "beer_Wrath"; - - // expiration time of the document (use 0 to persist forever) - public static final int EXP_TIME = 0; - public CouchbaseClient client = null; - - public CouchClient(){ - client=null; - } - - public void init() throws DBException { - - Properties props = getProperties(); - //do soemethign with properties. - props.list(System.out); - - // Set the URIs and get a client - List uris = new LinkedList(); - - // Connect to localhost or to the appropriate URI(s) - //uris.add(URI.create("http://192.168.1.101:8091/pools")); - uris.add(URI.create("http://localhost:8091/pools")); - - try { - // Use the "default" bucket with no password - client = new CouchbaseClient(uris, "usertable", ""); - System.out.println("couch base connected!"); - } catch (IOException e) { - System.err.println("IOException connecting to Couchbase: " + e.getMessage()); - System.exit(1); - } - - } - - //Read a single record - @Override - public int read(String table, String key, Set fields, HashMap result){ - //System.out.println("Couchbase client: inside read"); - Object obj; - obj = client.get(key); - return 0; - } - - //Perform a range scan - @Override - public int scan(String table, String startkey, int recordcount, Set fields, Vector> result){ - //System.out.println("Couchbase client: inside scan"); - return 0; - } - - //Update a single record - @Override - public int update(String table, String key, HashMap values){ - //System.out.println("Couchbase client: inside update"); - client.replace(key,0,"blahblah"); - return 0; - } - - //Insert a single record - @Override - public int insert(String table, String key, HashMap values){ - // Do an asynchronous set - //System.out.println("the table is: " + table); - //System.out.println("the key is :" + key); - - //System.out.println("the values are as follows"); - //System.out.println("the size of the hash map is:" + values.size()); - - - OperationFuture setOp = client.set(key, 0,"testValue"); - //System.out.println("set the testvalue"); - - // long unixTime = System.currentTimeMillis() / 1000L; - // if(unixTime % 60==0){ - // //System.out.println(unixTime); - // } - - // Check to see if our set succeeded - try { - if (setOp.get().booleanValue()) { - //System.out.println("Set Succeeded"); - } else { - System.err.println("Set failed: " + setOp.getStatus().getMessage()); - return 1; - } - } catch (InterruptedException e) { - System.err.println("InterruptedException while doing set: " + e.getMessage()); - return 1; - } catch (ExecutionException e) { - System.err.println("ExecutionException while doing set: " + e.getMessage()); - return 1; - } - - // Shutdown and wait a maximum of three seconds to finish up operations - //client.shutdown(3, TimeUnit.SECONDS); - //System.out.println("Couchbase client: inside insert"); - return 0; - } - - //Delete a single record - @Override - public int delete(String table, String key){ - System.out.println("Couchbase client: inside delete"); - client.delete(key); - return 0; - } - -} DELETED Jesse/Readme.txt Index: Jesse/Readme.txt ================================================================== --- Jesse/Readme.txt +++ /dev/null @@ -1,1 +0,0 @@ -blah blah DELETED Jesse/couchProperties Index: Jesse/couchProperties ================================================================== --- Jesse/couchProperties +++ /dev/null @@ -1,2 +0,0 @@ -recordcount=1000000 -operationcount=1000000 DELETED Raymond/Host.java Index: Raymond/Host.java ================================================================== --- Raymond/Host.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * File: Host.java - * Author: Jesse Chezenko - */ - -package com.yahoo.ycsb; - -import java.util.List; - -public class Host { - - private int minKey; - private int maxKey; - private String hostIP; - - public Host(int minKey, int maxKey, String hostIP) - { - this.minKey = minKey; - this.maxKey = maxKey; - this.hostIP = hostIP; - } - - public boolean isInsideRange(int key) - { - if( key >= minKey && key < maxKey ) - { - return true; - } - else - { - return false; - } - } - - public String getHostIP() - { - return hostIP; - } - - public static Host whichHost(int key, List listHosts) - { - for( Host h: listHosts ) - { - if( h.isInsideRange(key) ) - { - return h; - } - } - return null; - } -} DELETED Raymond/OrientDBClient.java Index: Raymond/OrientDBClient.java ================================================================== --- Raymond/OrientDBClient.java +++ /dev/null @@ -1,362 +0,0 @@ -/** - * OrientDB client binding for YCSB. - * - * Submitted by Luca Garulli on 5/10/2012. - * - */ - -package com.yahoo.ycsb.db; - -import java.util.Collection; -import java.util.HashMap; -import java.util.Map; -import java.util.Map.Entry; -import java.util.Properties; -import java.util.Set; -import java.util.Vector; -import java.util.Random; -import java.util.List; -import java.util.ArrayList; -import java.lang.Integer; - -import com.orientechnologies.orient.client.remote.OServerAdmin; -import com.orientechnologies.orient.core.config.OGlobalConfiguration; -import com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx; -import com.orientechnologies.orient.core.db.document.ODatabaseDocumentPool; -import com.orientechnologies.orient.core.db.ODatabaseComplex.OPERATION_MODE; -import com.orientechnologies.orient.core.db.ODatabaseRecordThreadLocal; -import com.orientechnologies.orient.core.storage.*; -import com.orientechnologies.orient.core.id.OClusterPosition; -import com.orientechnologies.orient.core.id.ORecordId; -import com.orientechnologies.orient.core.dictionary.ODictionary; -import com.orientechnologies.orient.core.intent.OIntentMassiveInsert; -import com.orientechnologies.orient.core.record.ORecordInternal; -import com.orientechnologies.orient.core.record.impl.ODocument; -import com.yahoo.ycsb.ByteIterator; -import com.yahoo.ycsb.DB; -import com.yahoo.ycsb.DBException; -import com.yahoo.ycsb.StringByteIterator; -import com.yahoo.ycsb.Host; - -/** - * OrientDB client for YCSB framework. - * - * Properties to set: - * - * orientdb.url=local:C:/temp/databases/ycsb or remote:localhost:2424
- * orientdb.database=ycsb
- * orientdb.user=admin
- * orientdb.password=admin
- * - * @author Luca Garulli - * - */ -public class OrientDBClient extends DB { - - // private ODatabaseDocumentTx db; - private static final String CLASS = "usertable"; - private ODictionary> dictionary; - private OServerAdmin serverAdmin; - private List listHosts; - - private Map databases; - private Map>> dictionaries; - - private String user; - private String password; - private Boolean newdb; - - public static final int MIN_KEY = 0; - public static final int MAX_KEY = 10; - - /** - * Initialize any state for this DB. Called once per DB instance; there is one DB instance per client thread. - */ - public void init() throws DBException { - // initialize OrientDB driver - Properties props = getProperties(); - - String urls = props.getProperty("orientdb.urls", "remote:localhost/ycsb"); - user = props.getProperty("orientdb.user", "rchow"); - password = props.getProperty("orientdb.password", "hiraymond"); - newdb = Boolean.parseBoolean(props.getProperty("orientdb.newdb", "false")); - - String[] all_urls = urls.split(","); - - // Set bucket interval - int interval = (MAX_KEY - MIN_KEY) / all_urls.length; - - // List to store hosts - listHosts = new ArrayList(); - - databases = new HashMap(all_urls.length); - dictionaries = new HashMap>>(all_urls.length); - - // Populate hosts and databases - for( int i = 0; i < all_urls.length; i++ ) - { - listHosts.add( new Host(i*interval, (i+1)*interval, all_urls[i]) ); - databases.put( all_urls[i], new ODatabaseDocumentTx(all_urls[i]) ); - } - - try { - - // System.out.println("OrientDB loading database url = " + url); - - OGlobalConfiguration.STORAGE_KEEP_OPEN.setValue(false); - // OGlobalConfiguration.CLIENT_CHANNEL_MAX_POOL.setValue(5000); - // OGlobalConfiguration.NETWORK_LOCK_TIMEOUT.setValue(10000); - - // Set up the DB - setupDB(); - - // System.out.println("OrientDB connection created with " + url); - - } catch (Exception e1) { - System.err.println("Could not initialize OrientDB connection pool for Loader: " + e1.toString()); - e1.printStackTrace(); - return; - } - - } - - public void setupDB() - { - - try { - - for( Entry entry : databases.entrySet() ) - { - String url = entry.getKey(); - ODatabaseDocumentTx database = entry.getValue(); - - // Establish a remote connection to the host (url) - serverAdmin = new OServerAdmin(url).connect(user, password); - - // Check if database exists - if( serverAdmin.existsDatabase() ) - { - // Re-create DB - if(newdb) - { - // System.out.println("OrientDB drop and recreate fresh db"); - serverAdmin.connect(user, password).dropDatabase().close(); - serverAdmin.connect(user, password).createDatabase("document", "local").close(); - } - } - // Database does not exist, create new one - else - { - // System.out.println("OrientDB database not found, create fresh db"); - serverAdmin.connect(user, password).createDatabase("document", "local").close(); - } - - // Set DB properties - database.setProperty("minPool", 5); - database.setProperty("maxPool", 200); - - // Open DB - database.open(user, password); - - // Get dictionary for DB - ODictionary> dt = database.getMetadata().getIndexManager().getDictionary(); - - // Add dictionary - dictionaries.put( url, dt ); - - // Check if CLASS exists else create - if (!database.getMetadata().getSchema().existsClass(CLASS)) - database.getMetadata().getSchema().createClass(CLASS); - - // Tune DB for massive insertions - database.declareIntent(new OIntentMassiveInsert()); - - entry.setValue(database); - } - - } catch (Exception e1) { - System.err.println("Could not initialize OrientDB connection pool for Loader: " + e1.toString()); - e1.printStackTrace(); - return; - } - } - - public String findHost(String key) - { - // Find first number of key - String strIntKey = key.substring(4, 5); - - // Convert string to integer - int intKey = Integer.parseInt(strIntKey); - - // Find which host key belongs to - Host host = Host.whichHost( intKey, listHosts ); - - return host.getHostIP(); - } - - @Override - public void cleanup() throws DBException { - - for( Entry entry : databases.entrySet() ) - { - ODatabaseDocumentTx database = entry.getValue(); - - if( database != null ) - { - database.close(); - database = null; - entry.setValue(database); - } - } - } - - @Override - /** - * Insert a record in the database. Any field/value pairs in the specified values HashMap will be written into the record with the specified - * record key. - * - * @param table The name of the table - * @param key The record key of the record to insert. - * @param values A HashMap of field/value pairs to insert in the record - * @return Zero on success, a non-zero error code on error. See this class's description for a discussion of error codes. - */ - public int insert(String table, String key, HashMap values) { - - String hostIP = findHost(key); - - try { - - ODatabaseDocumentTx database = databases.get(hostIP); - - ODatabaseRecordThreadLocal.INSTANCE.set(database); - - final ODocument document = new ODocument(CLASS); - for (Entry entry : StringByteIterator.getStringMap(values).entrySet()) - document.field(entry.getKey(), entry.getValue()); - document.save(); - dictionaries.get(hostIP).put(key, document); - - return 0; - } catch (Exception e) { - e.printStackTrace(); - } - - return 1; - } - - @Override - /** - * Delete a record from the database. - * - * @param table The name of the table - * @param key The record key of the record to delete. - * @return Zero on success, a non-zero error code on error. See this class's description for a discussion of error codes. - */ - public int delete(String table, String key) { - try { - - String hostIP = findHost(key); - - dictionaries.get(hostIP).remove(key); - - return 0; - } catch (Exception e) { - e.printStackTrace(); - } - return 1; - } - - @Override - /** - * Read a record from the database. Each field/value pair from the result will be stored in a HashMap. - * - * @param table The name of the table - * @param key The record key of the record to read. - * @param fields The list of fields to read, or null for all of them - * @param result A HashMap of field/value pairs for the result - * @return Zero on success, a non-zero error code on error or "not found". - */ - public int read(String table, String key, Set fields, HashMap result) { - try { - - String hostIP = findHost(key); - - final ODocument document = dictionaries.get(hostIP).get(key); - if (document != null) { - if (fields != null) - for (String field : fields) - result.put(field, new StringByteIterator((String) document.field(field))); - else - for (String field : document.fieldNames()) - result.put(field, new StringByteIterator((String) document.field(field))); - return 0; - } - } catch (Exception e) { - e.printStackTrace(); - } - return 1; - } - - @Override - /** - * Update a record in the database. Any field/value pairs in the specified values HashMap will be written into the record with the specified - * record key, overwriting any existing values with the same field name. - * - * @param table The name of the table - * @param key The record key of the record to write. - * @param values A HashMap of field/value pairs to update in the record - * @return Zero on success, a non-zero error code on error. See this class's description for a discussion of error codes. - */ - public int update(String table, String key, HashMap values) { - try { - - String hostIP = findHost(key); - - ODatabaseDocumentTx database = databases.get(hostIP); - - ODatabaseRecordThreadLocal.INSTANCE.set(database); - - final ODocument document = dictionaries.get(hostIP).get(key); - if (document != null) { - for (Entry entry : StringByteIterator.getStringMap(values).entrySet()) - document.field(entry.getKey(), entry.getValue()); - document.save(); - return 0; - } - } catch (Exception e) { - e.printStackTrace(); - } - return 1; - } - - @Override - /** - * Perform a range scan for a set of records in the database. Each field/value pair from the result will be stored in a HashMap. - * - * @param table The name of the table - * @param startkey The record key of the first record to read. - * @param recordcount The number of records to read - * @param fields The list of fields to read, or null for all of them - * @param result A Vector of HashMaps, where each HashMap is a set field/value pairs for one record - * @return Zero on success, a non-zero error code on error. See this class's description for a discussion of error codes. - */ - public int scan(String table, String startkey, int recordcount, Set fields, Vector> result) { - try { - final Collection documents = dictionary.getIndex().getEntriesMajor(startkey, true, recordcount); - for (ODocument document : documents) { - final HashMap entry = new HashMap(fields.size()); - result.add(entry); - - for (String field : fields) - entry.put(field, new StringByteIterator((String) document.field(field))); - } - - return 0; - } catch (Exception e) { - e.printStackTrace(); - } - return 1; - } -} - DELETED Wilson/Instance1/mongoa.conf Index: Wilson/Instance1/mongoa.conf ================================================================== --- Wilson/Instance1/mongoa.conf +++ /dev/null @@ -1,89 +0,0 @@ -# mongodb.conf - -# Where to store the data. - -# Note: if you run mongodb as a non-root user (recommended) you may -# need to create and set permissions for this directory manually, -# e.g., if the parent directory isn't mutable by the mongodb user. -dbpath=/srv/mongodb/rs4 - -#where to log -logpath=/var/log/mongodb/mongodb.log - -logappend=true - -bind_ip = 10.249.21.140 -port = 27021 -fork = true - -# Disables write-ahead journaling -nojournal = true -smallfiles = true - -# Enables periodic logging of CPU utilization and I/O wait -#cpu = true - -# Turn on/off security. Off is currently the default -#noauth = true -#auth = true - -# Verbose logging output. -#verbose = true - -# Inspect all client data for validity on receipt (useful for -# developing drivers) -#objcheck = true - -# Enable db quota management -#quota = true - -# Set oplogging level where n is -# 0=off (default) -# 1=W -# 2=R -# 3=both -# 7=W+some reads -#diaglog = 0 - -# Ignore query hints -#nohints = true - -# Disable the HTTP interface (Defaults to localhost:28017). -#nohttpinterface = true - -# Turns off server-side scripting. This will result in greatly limited -# functionality -#noscripting = true - -# Turns off table scans. Any query that would do a table scan fails. -#notablescan = true - -# Disable data file preallocation. -#noprealloc = true - -# Specify .ns file size for new databases. -# nssize = - -# Accout token for Mongo monitoring server. -#mms-token = - -# Server name for Mongo monitoring server. -#mms-name = - -# Ping interval for Mongo monitoring server. -#mms-interval = - -# Replication Options - -# in master/slave replicated mongo databases, specify here whether -# this is a slave or master -#slave = true -#source = master.example.com -# Slave only: specify a single database to replicate -#only = master.example.com -# or -#master = true -#source = slave.example.com - -# in replica set configuration, specify the name of the replica set -replSet = rs4 DELETED Wilson/Instance1/mongoc.conf Index: Wilson/Instance1/mongoc.conf ================================================================== --- Wilson/Instance1/mongoc.conf +++ /dev/null @@ -1,90 +0,0 @@ -# mongodb.conf - -# Where to store the data. - -# Note: if you run mongodb as a non-root user (recommended) you may -# need to create and set permissions for this directory manually, -# e.g., if the parent directory isn't mutable by the mongodb user. -dbpath=/srv/mongodb/configdb/ - -#where to log -logpath=/var/log/mongodb/mongodb.log - -logappend=true - -bind_ip = 10.249.21.140 -port = 27019 -fork = true -configsvr = true - -# Disables write-ahead journaling -nojournal = true -smallfiles = true - -# Enables periodic logging of CPU utilization and I/O wait -#cpu = true - -# Turn on/off security. Off is currently the default -#noauth = true -#auth = true - -# Verbose logging output. -#verbose = true - -# Inspect all client data for validity on receipt (useful for -# developing drivers) -#objcheck = true - -# Enable db quota management -#quota = true - -# Set oplogging level where n is -# 0=off (default) -# 1=W -# 2=R -# 3=both -# 7=W+some reads -#diaglog = 0 - -# Ignore query hints -#nohints = true - -# Disable the HTTP interface (Defaults to localhost:28017). -#nohttpinterface = true - -# Turns off server-side scripting. This will result in greatly limited -# functionality -#noscripting = true - -# Turns off table scans. Any query that would do a table scan fails. -#notablescan = true - -# Disable data file preallocation. -#noprealloc = true - -# Specify .ns file size for new databases. -# nssize = - -# Accout token for Mongo monitoring server. -#mms-token = - -# Server name for Mongo monitoring server. -#mms-name = - -# Ping interval for Mongo monitoring server. -#mms-interval = - -# Replication Options - -# in master/slave replicated mongo databases, specify here whether -# this is a slave or master -#slave = true -#source = master.example.com -# Slave only: specify a single database to replicate -#only = master.example.com -# or -#master = true -#source = slave.example.com - -# in replica set configuration, specify the name of the replica set -# replSet = setname DELETED Wilson/Instance1/mongom.conf Index: Wilson/Instance1/mongom.conf ================================================================== --- Wilson/Instance1/mongom.conf +++ /dev/null @@ -1,89 +0,0 @@ -# mongodb.conf - -# Where to store the data. - -# Note: if you run mongodb as a non-root user (recommended) you may -# need to create and set permissions for this directory manually, -# e.g., if the parent directory isn't mutable by the mongodb user. -dbpath=/srv/mongodb/rs0 - -#where to log -logpath=/var/log/mongodb/mongodb.log - -logappend=true - -bind_ip = 10.249.21.140 -port = 27020 -fork = true - -# Disables write-ahead journaling -nojournal = true -smallfiles = true - -# Enables periodic logging of CPU utilization and I/O wait -#cpu = true - -# Turn on/off security. Off is currently the default -#noauth = true -#auth = true - -# Verbose logging output. -#verbose = true - -# Inspect all client data for validity on receipt (useful for -# developing drivers) -#objcheck = true - -# Enable db quota management -#quota = true - -# Set oplogging level where n is -# 0=off (default) -# 1=W -# 2=R -# 3=both -# 7=W+some reads -#diaglog = 0 - -# Ignore query hints -#nohints = true - -# Disable the HTTP interface (Defaults to localhost:28017). -#nohttpinterface = true - -# Turns off server-side scripting. This will result in greatly limited -# functionality -#noscripting = true - -# Turns off table scans. Any query that would do a table scan fails. -#notablescan = true - -# Disable data file preallocation. -#noprealloc = true - -# Specify .ns file size for new databases. -# nssize = - -# Accout token for Mongo monitoring server. -#mms-token = - -# Server name for Mongo monitoring server. -#mms-name = - -# Ping interval for Mongo monitoring server. -#mms-interval = - -# Replication Options - -# in master/slave replicated mongo databases, specify here whether -# this is a slave or master -#slave = true -#source = master.example.com -# Slave only: specify a single database to replicate -#only = master.example.com -# or -#master = true -#source = slave.example.com - -# in replica set configuration, specify the name of the replica set -replSet = rs0 DELETED Wilson/Instance1/mongos.conf Index: Wilson/Instance1/mongos.conf ================================================================== --- Wilson/Instance1/mongos.conf +++ /dev/null @@ -1,89 +0,0 @@ -# mongodb.conf - -# Where to store the data. - -# Note: if you run mongodb as a non-root user (recommended) you may -# need to create and set permissions for this directory manually, -# e.g., if the parent directory isn't mutable by the mongodb user. -dbpath=/srv/mongodb/rs3 - -#where to log -logpath=/var/log/mongodb/mongodb.log - -logappend=true - -bind_ip = 10.249.21.140 -port = 27022 -fork = true - -# Disables write-ahead journaling -nojournal = true -smallfiles = true - -# Enables periodic logging of CPU utilization and I/O wait -#cpu = true - -# Turn on/off security. Off is currently the default -#noauth = true -#auth = true - -# Verbose logging output. -#verbose = true - -# Inspect all client data for validity on receipt (useful for -# developing drivers) -#objcheck = true - -# Enable db quota management -#quota = true - -# Set oplogging level where n is -# 0=off (default) -# 1=W -# 2=R -# 3=both -# 7=W+some reads -#diaglog = 0 - -# Ignore query hints -#nohints = true - -# Disable the HTTP interface (Defaults to localhost:28017). -#nohttpinterface = true - -# Turns off server-side scripting. This will result in greatly limited -# functionality -#noscripting = true - -# Turns off table scans. Any query that would do a table scan fails. -#notablescan = true - -# Disable data file preallocation. -#noprealloc = true - -# Specify .ns file size for new databases. -# nssize = - -# Accout token for Mongo monitoring server. -#mms-token = - -# Server name for Mongo monitoring server. -#mms-name = - -# Ping interval for Mongo monitoring server. -#mms-interval = - -# Replication Options - -# in master/slave replicated mongo databases, specify here whether -# this is a slave or master -#slave = true -#source = master.example.com -# Slave only: specify a single database to replicate -#only = master.example.com -# or -#master = true -#source = slave.example.com - -# in replica set configuration, specify the name of the replica set -replSet = rs3 DELETED Wilson/Instance1/mongosh.conf Index: Wilson/Instance1/mongosh.conf ================================================================== --- Wilson/Instance1/mongosh.conf +++ /dev/null @@ -1,89 +0,0 @@ -# mongodb.conf - -# Where to store the data. - -# Note: if you run mongodb as a non-root user (recommended) you may -# need to create and set permissions for this directory manually, -# e.g., if the parent directory isn't mutable by the mongodb user. -# dbpath=/srv/mongodb/mongosh/ - -#where to log -logpath=/var/log/mongodb/mongodb.log - -logappend=true - -port = 27017 -fork = true -configdb = 10.249.21.140:27019,10.249.79.162:27019,10.249.79.6:27019 - -# Disables write-ahead journaling -# nojournal = true -# smallfiles = true - -# Enables periodic logging of CPU utilization and I/O wait -#cpu = true - -# Turn on/off security. Off is currently the default -#noauth = true -#auth = true - -# Verbose logging output. -#verbose = true - -# Inspect all client data for validity on receipt (useful for -# developing drivers) -#objcheck = true - -# Enable db quota management -#quota = true - -# Set oplogging level where n is -# 0=off (default) -# 1=W -# 2=R -# 3=both -# 7=W+some reads -#diaglog = 0 - -# Ignore query hints -#nohints = true - -# Disable the HTTP interface (Defaults to localhost:28017). -#nohttpinterface = true - -# Turns off server-side scripting. This will result in greatly limited -# functionality -#noscripting = true - -# Turns off table scans. Any query that would do a table scan fails. -#notablescan = true - -# Disable data file preallocation. -#noprealloc = true - -# Specify .ns file size for new databases. -# nssize = - -# Accout token for Mongo monitoring server. -#mms-token = - -# Server name for Mongo monitoring server. -#mms-name = - -# Ping interval for Mongo monitoring server. -#mms-interval = - -# Replication Options - -# in master/slave replicated mongo databases, specify here whether -# this is a slave or master -#slave = true -#source = master.example.com -# Slave only: specify a single database to replicate -#only = master.example.com -# or -#master = true -#source = slave.example.com - -# in replica set configuration, specify the name of the replica set -# replSet = setname ADDED WilsonPlusOne.txt Index: WilsonPlusOne.txt ================================================================== --- /dev/null +++ WilsonPlusOne.txt @@ -0,0 +1,1 @@ +BOOM, +1 FILES FOR WILSON DELETED YCSB/BUILD Index: YCSB/BUILD ================================================================== --- YCSB/BUILD +++ /dev/null @@ -1,31 +0,0 @@ -# Building YCSB - -To build YCSB, run: - - mvn clean package - -# Running YCSB - -Once `mvn clean package` succeeds, you can run `ycsb` command: - - ./bin/ycsb load basic workloads/workloada - ./bin/ycsb run basic workloads/workloada - -# Oracle NoSQL Database - -Oracle NoSQL Database binding doesn't get built by default because there is no -Maven repository for it. To build the binding: - -1. Download kv-ce-1.2.123.tar.gz from here: - - http://www.oracle.com/technetwork/database/nosqldb/downloads/index.html - -2. Untar kv-ce-1.2.123.tar.gz and install kvclient-1.2.123.jar in your local - maven repository: - - tar xfvz kv-ce-1.2.123.tar.gz - mvn install:install-file -Dfile=kv-1.2.123/lib/kvclient-1.2.123.jar \ - -DgroupId=com.oracle -DartifactId=kvclient -Dversion=1.2.123 - -Dpackaging=jar - -3. Uncomment `nosqldb` and run `mvn clean package`. DELETED YCSB/CHANGELOG Index: YCSB/CHANGELOG ================================================================== --- YCSB/CHANGELOG +++ /dev/null @@ -1,67 +0,0 @@ -- gh-95 Bump MongoDB version to 2.9.0 (allanbank) -- gh-67 Use checkstyle (m1ch1) -- gh-76 Implemented OrientDB client (lvca) -- gh-88 YCSB client for Amazon DynamoDB (jananin) -- gh-89 Patch for YCSB Cassandra Client version 1.0.6 (jananin) -- gh-93 New ElasticSearch Database Implementation (saden1) -- gh-97 Bug fixes in dynamodb plugin (jananin) - -0.1.4 - 2/22/12 - -- Fixes for Cassandra 0.7 client (tjake) -- New generator FileGenerator (nono) -- Fixes for MongoDB (nono) -- Fixes for Voldemort (nono) -- JDBC client (sudiptodas) -- HotspotIntegerGenerator (sudiptodas) -- Optimizing cassandra7 (joaquincasares) -- Mysql key fix (joaquincasares) -- Added a db plugin for Infinispan (maniksurtani) -- gh-31 Support to stop benchmark after a maximum specified elapsed time. (sudiptodas) -- gh-35 Cassandra0.8 support (joaquincasares) -- gh-30 IllegalArgumentException with MongoDB (m1ch1) -- gh-27 MongoDbClient was not working with non localhost URLs (arunxarun) -- gh-29 Add simple sharding capabilities for JDBC driver (kibab) -- gh-40 Merge Redis database interface layer (lehmannro) -- gh-42 Response latencies are measured in microseconds (mikewied) -- gh-43 Variable length fields (sears) -- gh-44 Constant occupancy workload (sears) -- gh-45 Modify DB API for efficient large object support (sears) -- gh-46 Fixed typo in RedisClient (Zlender) -- gh-49 Build fix (sears) -- gh-50 Switch unordered key generation from FNV32 to FNV64 (sears) -- gh-51 Improved Random Number Generation Performance and add Exponential distribution support (sears) -- gh-52 Mongo db fix (sears) -- gh-54 Add mapkeeper driver (m1ch1) -- gh-57 voldemort - enable nio connector (akkumar) -- gh-58 benchmarking with hbase 0.90.5 (akkumar) -- gh-55 VMware vFabric GemFire (sbawaska) -- gh-59 Cassandra 1.0.6 (akkumar) -- gh-62 Oracle NoSQL Database Client (y-namiki) -- gh-64 Mavenisation of YCSB with a (tar ball) distribution packager (hariprasad-k) -- gh-65 Patch for improving the MongoDB Client (singhsiddharth) - -0.1.3 - 10/26/10 - -= Voldemort binding (rsumbaly) -= HBase client improvements (ryanobjc) -= Fixes to Cassandra 0.7 binding (johanoskarsson, nickmbailey) -= Added an interface for exporting the measurements and a JSON implementation. It can write to both stdout and to a file (johanoskarsson) --Other minor fixes (brianfrankcooper) - -0.1.2 - 5/12/10 - -- MongoDB binding (ypai) -- Cassandra 0.7 binding (johanoskarsson) -- Simple command line interface (brianfrankcooper) -- Faster string generation (tlipcon) -- Avoid Bytes conversion in HBaseClient (tlipcon) - -0.1.1 - 4/25/10 - -- Compiles under 1.5 -- Fixes doc and HBaseClient bugs - -0.1.0 - 4/23/10 - -- Initial open source release DELETED YCSB/LICENSE.txt Index: YCSB/LICENSE.txt ================================================================== --- YCSB/LICENSE.txt +++ /dev/null @@ -1,163 +0,0 @@ -Apache License -Version 2.0, January 2004 -http://www.apache.org/licenses/ - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - -"License" shall mean the terms and conditions for use, reproduction, -and distribution as defined by Sections 1 through 9 of this document. - -"Licensor" shall mean the copyright owner or entity authorized by the -copyright owner that is granting the License. - -"Legal Entity" shall mean the union of the acting entity and all other -entities that control, are controlled by, or are under common control -with that entity. For the purposes of this definition, "control" means -(i) the power, direct or indirect, to cause the direction or -management of such entity, whether by contract or otherwise, or (ii) -ownership of fifty percent (50%) or more of the outstanding shares, or -(iii) beneficial ownership of such entity. - -"You" (or "Your") shall mean an individual or Legal Entity exercising -permissions granted by this License. - -"Source" form shall mean the preferred form for making modifications, -including but not limited to software source code, documentation -source, and configuration files. - -"Object" form shall mean any form resulting from mechanical -transformation or translation of a Source form, including but not -limited to compiled object code, generated documentation, and -conversions to other media types. - -"Work" shall mean the work of authorship, whether in Source or Object -form, made available under the License, as indicated by a copyright -notice that is included in or attached to the work (an example is -provided in the Appendix below). - -"Derivative Works" shall mean any work, whether in Source or Object -form, that is based on (or derived from) the Work and for which the -editorial revisions, annotations, elaborations, or other modifications -represent, as a whole, an original work of authorship. For the -purposes of this License, Derivative Works shall not include works -that remain separable from, or merely link (or bind by name) to the -interfaces of, the Work and Derivative Works thereof. - -"Contribution" shall mean any work of authorship, including the -original version of the Work and any modifications or additions to -that Work or Derivative Works thereof, that is intentionally submitted -to Licensor for inclusion in the Work by the copyright owner or by an -individual or Legal Entity authorized to submit on behalf of the -copyright owner. For the purposes of this definition, "submitted" -means any form of electronic, verbal, or written communication sent to -the Licensor or its representatives, including but not limited to -communication on electronic mailing lists, source code control -systems, and issue tracking systems that are managed by, or on behalf -of, the Licensor for the purpose of discussing and improving the Work, -but excluding communication that is conspicuously marked or otherwise -designated in writing by the copyright owner as "Not a Contribution." - -"Contributor" shall mean Licensor and any individual or Legal Entity -on behalf of whom a Contribution has been received by Licensor and -subsequently incorporated within the Work. - -2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - -3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have - made, use, offer to sell, sell, import, and otherwise transfer the - Work, where such license applies only to those patent claims - licensable by such Contributor that are necessarily infringed by - their Contribution(s) alone or by combination of their - Contribution(s) with the Work to which such Contribution(s) was - submitted. If You institute patent litigation against any entity - (including a cross-claim or counterclaim in a lawsuit) alleging - that the Work or a Contribution incorporated within the Work - constitutes direct or contributory patent infringement, then any - patent licenses granted to You under this License for that Work - shall terminate as of the date such litigation is filed. - -4. Redistribution. You may reproduce and distribute copies of the Work - or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You meet - the following conditions: - -(a) You must give any other recipients of the Work or Derivative Works -a copy of this License; and - -(b) You must cause any modified files to carry prominent notices -stating that You changed the files; and - -(c) You must retain, in the Source form of any Derivative Works that -You distribute, all copyright, patent, trademark, and attribution -notices from the Source form of the Work, excluding those notices that -do not pertain to any part of the Derivative Works; and - -(d) If the Work includes a "NOTICE" text file as part of its -distribution, then any Derivative Works that You distribute must -include a readable copy of the attribution notices contained within -such NOTICE file, excluding those notices that do not pertain to any -part of the Derivative Works, in at least one of the following places: -within a NOTICE text file distributed as part of the Derivative Works; -within the Source form or documentation, if provided along with the -Derivative Works; or, within a display generated by the Derivative -Works, if and wherever such third-party notices normally appear. The -contents of the NOTICE file are for informational purposes only and do -not modify the License. You may add Your own attribution notices -within Derivative Works that You distribute, alongside or as an -addendum to the NOTICE text from the Work, provided that such -additional attribution notices cannot be construed as modifying the -License. - -You may add Your own copyright statement to Your modifications and may -provide additional or different license terms and conditions for use, -reproduction, or distribution of Your modifications, or for any such -Derivative Works as a whole, provided Your use, reproduction, and -distribution of the Work otherwise complies with the conditions stated -in this License. - -5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or - conditions. Notwithstanding the above, nothing herein shall - supersede or modify the terms of any separate license agreement you - may have executed with Licensor regarding such Contributions. - -6. Trademarks. This License does nr work. - -To apply the Apache License to your work, attach the following -boilerplate notice, with the fields enclosed by brackets "[]" replaced -with your own identifying information. (Don't include the brackets!) -The text should be enclosed in the appropriate comment syntax for the -file format. We also recommend that a file or class name and -description of purpose be included on the same "printed page" as the -copyright notice for easier identification within third-party -archives. - -Copyright [yyyy] [name of copyright owner] - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or -implied. - -See the License for the specific language governing permissions and -limitations under the License. - - DELETED YCSB/NOTICE.txt Index: YCSB/NOTICE.txt ================================================================== --- YCSB/NOTICE.txt +++ /dev/null @@ -1,9 +0,0 @@ -========================================================================= -NOTICE file for use with, and corresponding to Section 4 of, -the Apache License, Version 2.0, -in this case for the YCSB project. -========================================================================= - - This product includes software developed by - Yahoo! Inc. (www.yahoo.com) - Copyright (c) 2010 Yahoo! Inc. All rights reserved. DELETED YCSB/README Index: YCSB/README ================================================================== --- YCSB/README +++ /dev/null @@ -1,33 +0,0 @@ -Yahoo! Cloud System Benchmark (YCSB) -==================================== - -Links ------ -http://wiki.github.com/brianfrankcooper/YCSB/ -http://research.yahoo.com/Web_Information_Management/YCSB -ycsb-users@yahoogroups.com - -Getting Started ---------------- - -1. Download the latest release of YCSB: - - wget https://github.com/downloads/brianfrankcooper/YCSB/ycsb-0.1.4.tar.gz - tar xfvz ycsb-0.1.4 - cd ycsb-0.1.4 - -2. Set up a database to benchmark. There is a README file under each binding - directory. - -3. Run YCSB command. - - bin/ycsb load basic -P workloads/workloada - bin/ycsb run basic -P workloads/workloada - - Running the `ycsb` command without any argument will print the usage. - - See https://github.com/brianfrankcooper/YCSB/wiki/Running-a-Workload - for a detailed documentation on how to run a workload. - - See https://github.com/brianfrankcooper/YCSB/wiki/Core-Properties for - the list of available workload properties. DELETED YCSB/bin/ycsb Index: YCSB/bin/ycsb ================================================================== --- YCSB/bin/ycsb +++ /dev/null @@ -1,115 +0,0 @@ -#!/usr/bin/env python - -import os -import sys -import subprocess - -BASE_URL = "https://github.com/brianfrankcooper/YCSB/tree/master/" -COMMANDS = { - "shell" : { - "command" : "", - "description" : "Interactive mode", - "main" : "com.yahoo.ycsb.CommandLine", - }, - "load" : { - "command" : "-load", - "description" : "Execute the load phase", - "main" : "com.yahoo.ycsb.Client", - }, - "run" : { - "command" : "-t", - "description" : "Execute the transaction phase", - "main" : "com.yahoo.ycsb.Client", - }, -} - -DATABASES = { - "basic" : "com.yahoo.ycsb.BasicDB", - "cassandra-7" : "com.yahoo.ycsb.db.CassandraClient7", - "cassandra-8" : "com.yahoo.ycsb.db.CassandraClient8", - "cassandra-10" : "com.yahoo.ycsb.db.CassandraClient10", - "dynamodb" : "com.yahoo.ycsb.db.DynamoDBClient", - "elasticsearch": "com.yahoo.ycsb.db.ElasticSearchClient", - "gemfire" : "com.yahoo.ycsb.db.GemFireClient", - "hbase" : "com.yahoo.ycsb.db.HBaseClient", - "hypertable" : "com.yahoo.ycsb.db.HypertableClient", - "infinispan" : "com.yahoo.ycsb.db.InfinispanClient", - "jdbc" : "com.yahoo.ycsb.db.JdbcDBClient", - "mapkeeper" : "com.yahoo.ycsb.db.MapKeeperClient", - "mongodb" : "com.yahoo.ycsb.db.MongoDbClient", - "nosqldb" : "com.yahoo.ycsb.db.NoSqlDbClient", - "orientdb" : "com.yahoo.ycsb.db.OrientDBClient", - "redis" : "com.yahoo.ycsb.db.RedisClient", - "voldemort" : "com.yahoo.ycsb.db.VoldemortClient", -} - -OPTIONS = { - "-P file" : "Specify workload file", - "-p key=value" : "Override workload property", - "-s" : "Print status to stderr", - "-target n" : "Target ops/sec (default: unthrottled)", - "-threads n" : "Number of client threads (default: 1)", -} - -def usage(): - print "Usage: %s command database [options]" % sys.argv[0] - - print "\nCommands:" - for command in sorted(COMMANDS.keys()): - print " %s %s" % (command.ljust(13), COMMANDS[command]["description"]) - - print "\nDatabases:" - for db in sorted(DATABASES.keys()): - print " %s %s" % (db.ljust(13), BASE_URL + db.split("-")[0]) - - print "\nOptions:" - for option in sorted(OPTIONS.keys()): - print " %s %s" % (option.ljust(13), OPTIONS[option]) - - print """\nWorkload Files: - There are various predefined workloads under workloads/ directory. - See https://github.com/brianfrankcooper/YCSB/wiki/Core-Properties - for the list of workload properties.""" - - sys.exit(1) - -def find_jars(dir, database): - jars = [] - for (dirpath, dirnames, filenames) in os.walk(dir): - if dirpath.endswith("conf"): - jars.append(dirpath) - for filename in filenames: - if filename.endswith(".jar") and \ - (filename.startswith("core") or \ - filename.startswith(database.split("-")[0]) or \ - not "binding" in filename): - jars.append(os.path.join(dirpath, filename)) - return jars - -def get_ycsb_home(): - dir = os.path.abspath(os.path.dirname(sys.argv[0])) - while "CHANGELOG" not in os.listdir(dir): - dir = os.path.join(dir, os.path.pardir) - return os.path.abspath(dir) - -if len(sys.argv) < 3: - usage() -if sys.argv[1] not in COMMANDS: - print "ERROR: Command '%s' not found" % sys.argv[1] - usage() -if sys.argv[2] not in DATABASES: - print "ERROR: Database '%s' not found" % sys.argv[2] - usage() - -ycsb_home = get_ycsb_home() -command = COMMANDS[sys.argv[1]]["command"] -database = sys.argv[2] -db_classname = DATABASES[database] -options = sys.argv[3:] - -ycsb_command = ["java", "-cp", os.pathsep.join(find_jars(ycsb_home, database)), \ - COMMANDS[sys.argv[1]]["main"], "-db", db_classname] + options -if command: - ycsb_command.append(command) -print " ".join(ycsb_command) -subprocess.call(ycsb_command) DELETED YCSB/bin/ycsb.sh Index: YCSB/bin/ycsb.sh ================================================================== --- YCSB/bin/ycsb.sh +++ /dev/null @@ -1,125 +0,0 @@ -#! /usr/bin/env bash - -# Set the YCSB specific environment. Adds all the required libraries to the class path. - -# Copyright (c) 2010 Yahoo! Inc. All rights reserved. -# * -# * Licensed under the Apache License, Version 2.0 (the "License"); you -# * may not use this file except in compliance with the License. You -# * may obtain a copy of the License at -# * -# * http://www.apache.org/licenses/LICENSE-2.0 -# * -# * Unless required by applicable law or agreed to in writing, software -# * distributed under the License is distributed on an "AS IS" BASIS, -# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or -# * implied. See the License for the specific language governing -# * permissions and limitations under the License. See accompanying -# * LICENSE file. -# - -# The Java implementation to use. This is required. -#export JAVA_HOME= - -# Any JVM options to pass. -#export YCSB_OPTS="-Djava.compiler=NONE" - -# YCSB client heap size. -#export YCSB_HEAP_SIZE=500 - -this=`dirname "$0"` -this=`cd "$this"; pwd` - -while [ -h "$this" ]; do - ls=`ls -ld "$this"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '.*/.*' > /dev/null; then - this="$link" - else - this=`dirname "$this"`/"$link" - fi -done - -bin=`dirname "$this"` -script=`basename "$this"` -bin=`cd "$bin"; pwd` -this="$bin/$script" - -# the root of the Hadoop installation -export YCSB_HOME=`dirname "$this"` - -echo "YCSB_HOME $YCSB_HOME" - -cygwin=false -case "`uname`" in -CYGWIN*) cygwin=true;; -esac - -# if no args specified, show usage -if [ $# = 0 ]; then - echo "Usage: ycsb CLASSNAME" - echo "where CLASSNAME is the name of the class to run" - echo "The jar file for the class must be in bin, build, lib, or db/*/lib." - exit 1 -fi - -# get arguments -COMMAND=$1 -shift - -JAVA="" -if [ "$JAVA_HOME" != "" ]; then - JAVA=$JAVA_HOME/bin/java -else - echo "JAVA_HOME must be set." - exit 1 -fi - -JAVA_HEAP_MAX=-Xmx500m -# check envvars which might override default args -if [ "$YCSB_HEAP_SIZE" != "" ]; then - JAVA_HEAP_MAX="-Xmx""$YCSB_HEAP_SIZE""m" -fi - -# Set the classpath. - -if [ "$CLASSPATH" != "" ]; then - CLASSPATH=${CLASSPATH}:$JAVA_HOME/lib/tools.jar -else - CLASSPATH=$JAVA_HOME/lib/tools.jar -fi - -# so that filenames w/ spaces are handled correctly in loops below -IFS= - -for f in $YCSB_HOME/build/*.jar; do - CLASSPATH=${CLASSPATH}:$f -done - -for f in $YCSB_HOME/lib/*.jar; do - CLASSPATH=${CLASSPATH}:$f -done - -for f in $YCSB_HOME/db/*; do - if [ -d $f ]; then - for j in $f/lib/*.jar; do - CLASSPATH=${CLASSPATH}:$j - done - fi -done - -#echo "CLASSPATH=$CLASSPATH" - -# restore ordinary behavior -unset IFS - -CLASS=$COMMAND - -# cygwin path translation -if $cygwin; then - CLASSPATH=`cygpath -p -w "$CLASSPATH"` - YCSB_HOME=`cygpath -w "$YCSB_HOME"` -fi - -#echo "Executing command $CLASS with options $JAVA_HEAP_MAX $YCSB_OPTS $CLASS $@" -exec "$JAVA" $JAVA_HEAP_MAX $YCSB_OPTS -classpath "$CLASSPATH" $CLASS "$@" DELETED YCSB/cassandra.properties Index: YCSB/cassandra.properties ================================================================== --- YCSB/cassandra.properties +++ /dev/null @@ -1,4 +0,0 @@ -recordcount=1000 -hosts=10.249.21.140 -cassandra.connectionretries=1 -cassandra.operationretries=1 DELETED YCSB/cassandra/pom.xml Index: YCSB/cassandra/pom.xml ================================================================== --- YCSB/cassandra/pom.xml +++ /dev/null @@ -1,51 +0,0 @@ - - - 4.0.0 - - com.yahoo.ycsb - root - 0.1.4 - - - cassandra-binding - Cassandra DB Binding - jar - - - - org.apache.cassandra - cassandra-all - ${cassandra.version} - - - com.yahoo.ycsb - core - ${project.version} - - - - - - - org.apache.maven.plugins - maven-assembly-plugin - ${maven.assembly.version} - - - jar-with-dependencies - - false - - - - package - - single - - - - - - - - DELETED YCSB/cassandra/src/main/java/com/yahoo/ycsb/db/CassandraClient10.java Index: YCSB/cassandra/src/main/java/com/yahoo/ycsb/db/CassandraClient10.java ================================================================== --- YCSB/cassandra/src/main/java/com/yahoo/ycsb/db/CassandraClient10.java +++ /dev/null @@ -1,650 +0,0 @@ -/** - * Copyright (c) 2010 Yahoo! Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you - * may not use this file except in compliance with the License. You - * may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - * implied. See the License for the specific language governing - * permissions and limitations under the License. See accompanying - * LICENSE file. - */ - -package com.yahoo.ycsb.db; - -import com.yahoo.ycsb.*; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Vector; -import java.util.Random; -import java.util.Properties; -import java.nio.ByteBuffer; - -import org.apache.thrift.transport.TTransport; -import org.apache.thrift.transport.TFramedTransport; -import org.apache.thrift.transport.TSocket; -import org.apache.thrift.protocol.TProtocol; -import org.apache.thrift.protocol.TBinaryProtocol; -import org.apache.cassandra.thrift.*; - - -//XXXX if we do replication, fix the consistency levels -/** - * Cassandra 1.0.6 client for YCSB framework - */ -public class CassandraClient10 extends DB -{ - static Random random = new Random(); - public static final int Ok = 0; - public static final int Error = -1; - public static final ByteBuffer emptyByteBuffer = ByteBuffer.wrap(new byte[0]); - - public int ConnectionRetries; - public int OperationRetries; - public String column_family; - - public static final String CONNECTION_RETRY_PROPERTY = "cassandra.connectionretries"; - public static final String CONNECTION_RETRY_PROPERTY_DEFAULT = "300"; - - public static final String OPERATION_RETRY_PROPERTY = "cassandra.operationretries"; - public static final String OPERATION_RETRY_PROPERTY_DEFAULT = "300"; - - public static final String USERNAME_PROPERTY = "cassandra.username"; - public static final String PASSWORD_PROPERTY = "cassandra.password"; - - public static final String COLUMN_FAMILY_PROPERTY = "cassandra.columnfamily"; - public static final String COLUMN_FAMILY_PROPERTY_DEFAULT = "data"; - - public static final String READ_CONSISTENCY_LEVEL_PROPERTY = "cassandra.readconsistencylevel"; - public static final String READ_CONSISTENCY_LEVEL_PROPERTY_DEFAULT = "ONE"; - - public static final String WRITE_CONSISTENCY_LEVEL_PROPERTY = "cassandra.writeconsistencylevel"; - public static final String WRITE_CONSISTENCY_LEVEL_PROPERTY_DEFAULT = "ONE"; - - public static final String SCAN_CONSISTENCY_LEVEL_PROPERTY = "cassandra.scanconsistencylevel"; - public static final String SCAN_CONSISTENCY_LEVEL_PROPERTY_DEFAULT = "ONE"; - - public static final String DELETE_CONSISTENCY_LEVEL_PROPERTY = "cassandra.deleteconsistencylevel"; - public static final String DELETE_CONSISTENCY_LEVEL_PROPERTY_DEFAULT = "ONE"; - - - TTransport tr; - Cassandra.Client client; - - boolean _debug = false; - - String _table = ""; - Exception errorexception = null; - - List mutations = new ArrayList(); - Map> mutationMap = new HashMap>(); - Map>> record = new HashMap>>(); - - ColumnParent parent; - - ConsistencyLevel readConsistencyLevel = ConsistencyLevel.ONE; - ConsistencyLevel writeConsistencyLevel = ConsistencyLevel.ONE; - ConsistencyLevel scanConsistencyLevel = ConsistencyLevel.ONE; - ConsistencyLevel deleteConsistencyLevel = ConsistencyLevel.ONE; - - - /** - * Initialize any state for this DB. Called once per DB instance; there is one - * DB instance per client thread. - */ - public void init() throws DBException - { - String hosts = getProperties().getProperty("hosts"); - if (hosts == null) - { - throw new DBException("Required property \"hosts\" missing for CassandraClient"); - } - - column_family = getProperties().getProperty(COLUMN_FAMILY_PROPERTY, COLUMN_FAMILY_PROPERTY_DEFAULT); - parent = new ColumnParent(column_family); - - ConnectionRetries = Integer.parseInt(getProperties().getProperty(CONNECTION_RETRY_PROPERTY, - CONNECTION_RETRY_PROPERTY_DEFAULT)); - OperationRetries = Integer.parseInt(getProperties().getProperty(OPERATION_RETRY_PROPERTY, - OPERATION_RETRY_PROPERTY_DEFAULT)); - - String username = getProperties().getProperty(USERNAME_PROPERTY); - String password = getProperties().getProperty(PASSWORD_PROPERTY); - - readConsistencyLevel = ConsistencyLevel.valueOf(getProperties().getProperty(READ_CONSISTENCY_LEVEL_PROPERTY, READ_CONSISTENCY_LEVEL_PROPERTY_DEFAULT)); - writeConsistencyLevel = ConsistencyLevel.valueOf(getProperties().getProperty(WRITE_CONSISTENCY_LEVEL_PROPERTY, WRITE_CONSISTENCY_LEVEL_PROPERTY_DEFAULT)); - scanConsistencyLevel = ConsistencyLevel.valueOf(getProperties().getProperty(SCAN_CONSISTENCY_LEVEL_PROPERTY, SCAN_CONSISTENCY_LEVEL_PROPERTY_DEFAULT)); - deleteConsistencyLevel = ConsistencyLevel.valueOf(getProperties().getProperty(DELETE_CONSISTENCY_LEVEL_PROPERTY, DELETE_CONSISTENCY_LEVEL_PROPERTY_DEFAULT)); - - - _debug = Boolean.parseBoolean(getProperties().getProperty("debug", "false")); - - String[] allhosts = hosts.split(","); - String myhost = allhosts[random.nextInt(allhosts.length)]; - - Exception connectexception = null; - - for (int retry = 0; retry < ConnectionRetries; retry++) - { - tr = new TFramedTransport(new TSocket(myhost, 9160)); - TProtocol proto = new TBinaryProtocol(tr); - client = new Cassandra.Client(proto); - try - { - tr.open(); - connectexception = null; - break; - } catch (Exception e) - { - connectexception = e; - } - try - { - Thread.sleep(1000); - } catch (InterruptedException e) - { - } - } - if (connectexception != null) - { - System.err.println("Unable to connect to " + myhost + " after " + ConnectionRetries - + " tries"); - throw new DBException(connectexception); - } - - if (username != null && password != null) - { - Map cred = new HashMap(); - cred.put("username", username); - cred.put("password", password); - AuthenticationRequest req = new AuthenticationRequest(cred); - try - { - client.login(req); - } - catch (Exception e) - { - throw new DBException(e); - } - } - } - - /** - * Cleanup any state for this DB. Called once per DB instance; there is one DB - * instance per client thread. - */ - public void cleanup() throws DBException - { - tr.close(); - } - - /** - * Read a record from the database. Each field/value pair from the result will - * be stored in a HashMap. - * - * @param table - * The name of the table - * @param key - * The record key of the record to read. - * @param fields - * The list of fields to read, or null for all of them - * @param result - * A HashMap of field/value pairs for the result - * @return Zero on success, a non-zero error code on error - */ - public int read(String table, String key, Set fields, HashMap result) - { - if (!_table.equals(table)) { - try - { - client.set_keyspace(table); - _table = table; - } - catch (Exception e) - { - e.printStackTrace(); - e.printStackTrace(System.out); - return Error; - } - } - - for (int i = 0; i < OperationRetries; i++) - { - - try - { - SlicePredicate predicate; - if (fields == null) - { - predicate = new SlicePredicate().setSlice_range(new SliceRange(emptyByteBuffer, emptyByteBuffer, false, 1000000)); - - } else { - ArrayList fieldlist = new ArrayList(fields.size()); - for (String s : fields) - { - fieldlist.add(ByteBuffer.wrap(s.getBytes("UTF-8"))); - } - - predicate = new SlicePredicate().setColumn_names(fieldlist); - } - - List results = client.get_slice(ByteBuffer.wrap(key.getBytes("UTF-8")), parent, predicate, readConsistencyLevel); - - if (_debug) - { - System.out.print("Reading key: " + key); - } - - Column column; - String name; - ByteIterator value; - for (ColumnOrSuperColumn oneresult : results) - { - - column = oneresult.column; - name = new String(column.name.array(), column.name.position()+column.name.arrayOffset(), column.name.remaining()); - value = new ByteArrayByteIterator(column.value.array(), column.value.position()+column.value.arrayOffset(), column.value.remaining()); - - result.put(name,value); - - if (_debug) - { - System.out.print("(" + name + "=" + value + ")"); - } - } - - if (_debug) - { - System.out.println(); - System.out.println("ConsistencyLevel=" + readConsistencyLevel.toString()); - } - - return Ok; - } catch (Exception e) - { - errorexception = e; - } - - try - { - Thread.sleep(500); - } catch (InterruptedException e) - { - } - } - errorexception.printStackTrace(); - errorexception.printStackTrace(System.out); - return Error; - - } - - /** - * Perform a range scan for a set of records in the database. Each field/value - * pair from the result will be stored in a HashMap. - * - * @param table - * The name of the table - * @param startkey - * The record key of the first record to read. - * @param recordcount - * The number of records to read - * @param fields - * The list of fields to read, or null for all of them - * @param result - * A Vector of HashMaps, where each HashMap is a set field/value - * pairs for one record - * @return Zero on success, a non-zero error code on error - */ - public int scan(String table, String startkey, int recordcount, Set fields, - Vector> result) - { - if (!_table.equals(table)) { - try - { - client.set_keyspace(table); - _table = table; - } - catch (Exception e) - { - e.printStackTrace(); - e.printStackTrace(System.out); - return Error; - } - } - - for (int i = 0; i < OperationRetries; i++) - { - - try - { - SlicePredicate predicate; - if (fields == null) - { - predicate = new SlicePredicate().setSlice_range(new SliceRange(emptyByteBuffer, emptyByteBuffer, false, 1000000)); - - } else { - ArrayList fieldlist = new ArrayList(fields.size()); - for (String s : fields) - { - fieldlist.add(ByteBuffer.wrap(s.getBytes("UTF-8"))); - } - - predicate = new SlicePredicate().setColumn_names(fieldlist); - } - - KeyRange kr = new KeyRange().setStart_key(startkey.getBytes("UTF-8")).setEnd_key(new byte[] {}).setCount(recordcount); - - List results = client.get_range_slices(parent, predicate, kr, scanConsistencyLevel); - - if (_debug) - { - System.out.println("Scanning startkey: " + startkey); - } - - HashMap tuple; - for (KeySlice oneresult : results) - { - tuple = new HashMap(); - - Column column; - String name; - ByteIterator value; - for (ColumnOrSuperColumn onecol : oneresult.columns) - { - column = onecol.column; - name = new String(column.name.array(), column.name.position()+column.name.arrayOffset(), column.name.remaining()); - value = new ByteArrayByteIterator(column.value.array(), column.value.position()+column.value.arrayOffset(), column.value.remaining()); - - tuple.put(name, value); - - if (_debug) - { - System.out.print("(" + name + "=" + value + ")"); - } - } - - result.add(tuple); - if (_debug) - { - System.out.println(); - System.out.println("ConsistencyLevel=" + scanConsistencyLevel.toString()); - } - } - - return Ok; - } catch (Exception e) - { - errorexception = e; - } - try - { - Thread.sleep(500); - } catch (InterruptedException e) - { - } - } - errorexception.printStackTrace(); - errorexception.printStackTrace(System.out); - return Error; - } - - /** - * Update a record in the database. Any field/value pairs in the specified - * values HashMap will be written into the record with the specified record - * key, overwriting any existing values with the same field name. - * - * @param table - * The name of the table - * @param key - * The record key of the record to write. - * @param values - * A HashMap of field/value pairs to update in the record - * @return Zero on success, a non-zero error code on error - */ - public int update(String table, String key, HashMap values) - { - return insert(table, key, values); - } - - /** - * Insert a record in the database. Any field/value pairs in the specified - * values HashMap will be written into the record with the specified record - * key. - * - * @param table - * The name of the table - * @param key - * The record key of the record to insert. - * @param values - * A HashMap of field/value pairs to insert in the record - * @return Zero on success, a non-zero error code on error - */ - public int insert(String table, String key, HashMap values) - { - if (!_table.equals(table)) { - try - { - client.set_keyspace(table); - _table = table; - } - catch (Exception e) - { - e.printStackTrace(); - e.printStackTrace(System.out); - return Error; - } - } - - for (int i = 0; i < OperationRetries; i++) - { - if (_debug) - { - System.out.println("Inserting key: " + key); - } - - try - { - ByteBuffer wrappedKey = ByteBuffer.wrap(key.getBytes("UTF-8")); - - Column col; - ColumnOrSuperColumn column; - for (Map.Entry entry : values.entrySet()) - { - col = new Column(); - col.setName(ByteBuffer.wrap(entry.getKey().getBytes("UTF-8"))); - col.setValue(ByteBuffer.wrap(entry.getValue().toArray())); - col.setTimestamp(System.currentTimeMillis()); - - column = new ColumnOrSuperColumn(); - column.setColumn(col); - - mutations.add(new Mutation().setColumn_or_supercolumn(column)); - } - - mutationMap.put(column_family, mutations); - record.put(wrappedKey, mutationMap); - - client.batch_mutate(record, writeConsistencyLevel); - - mutations.clear(); - mutationMap.clear(); - record.clear(); - - if (_debug) - { - System.out.println("ConsistencyLevel=" + writeConsistencyLevel.toString()); - } - - return Ok; - } catch (Exception e) - { - errorexception = e; - } - try - { - Thread.sleep(500); - } catch (InterruptedException e) - { - } - } - - errorexception.printStackTrace(); - errorexception.printStackTrace(System.out); - return Error; - } - - /** - * Delete a record from the database. - * - * @param table - * The name of the table - * @param key - * The record key of the record to delete. - * @return Zero on success, a non-zero error code on error - */ - public int delete(String table, String key) - { - if (!_table.equals(table)) { - try - { - client.set_keyspace(table); - _table = table; - } - catch (Exception e) - { - e.printStackTrace(); - e.printStackTrace(System.out); - return Error; - } - } - - for (int i = 0; i < OperationRetries; i++) - { - try - { - client.remove(ByteBuffer.wrap(key.getBytes("UTF-8")), - new ColumnPath(column_family), - System.currentTimeMillis(), - deleteConsistencyLevel); - - if (_debug) - { - System.out.println("Delete key: " + key); - System.out.println("ConsistencyLevel=" + deleteConsistencyLevel.toString()); - } - - return Ok; - } catch (Exception e) - { - errorexception = e; - } - try - { - Thread.sleep(500); - } catch (InterruptedException e) - { - } - } - errorexception.printStackTrace(); - errorexception.printStackTrace(System.out); - return Error; - } - - public static void main(String[] args) - { - CassandraClient10 cli = new CassandraClient10(); - - Properties props = new Properties(); - - props.setProperty("hosts", args[0]); - cli.setProperties(props); - - try - { - cli.init(); - } catch (Exception e) - { - e.printStackTrace(); - System.exit(0); - } - - HashMap vals = new HashMap(); - vals.put("age", new StringByteIterator("57")); - vals.put("middlename", new StringByteIterator("bradley")); - vals.put("favoritecolor", new StringByteIterator("blue")); - int res = cli.insert("usertable", "BrianFrankCooper", vals); - System.out.println("Result of insert: " + res); - - HashMap result = new HashMap(); - HashSet fields = new HashSet(); - fields.add("middlename"); - fields.add("age"); - fields.add("favoritecolor"); - res = cli.read("usertable", "BrianFrankCooper", null, result); - System.out.println("Result of read: " + res); - for (String s : result.keySet()) - { - System.out.println("[" + s + "]=[" + result.get(s) + "]"); - } - - res = cli.delete("usertable", "BrianFrankCooper"); - System.out.println("Result of delete: " + res); - } - - /* - * public static void main(String[] args) throws TException, - * InvalidRequestException, UnavailableException, - * UnsupportedEncodingException, NotFoundException { - * - * - * - * String key_user_id = "1"; - * - * - * - * - * client.insert("Keyspace1", key_user_id, new ColumnPath("Standard1", null, - * "age".getBytes("UTF-8")), "24".getBytes("UTF-8"), timestamp, - * ConsistencyLevel.ONE); - * - * - * // read single column ColumnPath path = new ColumnPath("Standard1", null, - * "name".getBytes("UTF-8")); - * - * System.out.println(client.get("Keyspace1", key_user_id, path, - * ConsistencyLevel.ONE)); - * - * - * // read entire row SlicePredicate predicate = new SlicePredicate(null, new - * SliceRange(new byte[0], new byte[0], false, 10)); - * - * ColumnParent parent = new ColumnParent("Standard1", null); - * - * List results = client.get_slice("Keyspace1", - * key_user_id, parent, predicate, ConsistencyLevel.ONE); - * - * for (ColumnOrSuperColumn result : results) { - * - * Column column = result.column; - * - * System.out.println(new String(column.name, "UTF-8") + " -> " + new - * String(column.value, "UTF-8")); - * - * } - * - * - * - * - * } - */ -} DELETED YCSB/cassandra/src/main/java/com/yahoo/ycsb/db/CassandraClient7.java Index: YCSB/cassandra/src/main/java/com/yahoo/ycsb/db/CassandraClient7.java ================================================================== --- YCSB/cassandra/src/main/java/com/yahoo/ycsb/db/CassandraClient7.java +++ /dev/null @@ -1,615 +0,0 @@ -/** - * Copyright (c) 2010 Yahoo! Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you - * may not use this file except in compliance with the License. You - * may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - * implied. See the License for the specific language governing - * permissions and limitations under the License. See accompanying - * LICENSE file. - */ - -package com.yahoo.ycsb.db; - -import com.yahoo.ycsb.*; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Vector; -import java.util.Random; -import java.util.Properties; -import java.nio.ByteBuffer; - -import org.apache.thrift.transport.TTransport; -import org.apache.thrift.transport.TFramedTransport; -import org.apache.thrift.transport.TSocket; -import org.apache.thrift.protocol.TProtocol; -import org.apache.thrift.protocol.TBinaryProtocol; -import org.apache.cassandra.thrift.*; - - -//XXXX if we do replication, fix the consistency levels -/** - * Cassandra 0.7 client for YCSB framework - */ -public class CassandraClient7 extends DB -{ - static Random random = new Random(); - public static final int Ok = 0; - public static final int Error = -1; - public static final ByteBuffer emptyByteBuffer = ByteBuffer.wrap(new byte[0]); - - public int ConnectionRetries; - public int OperationRetries; - public String column_family; - - public static final String CONNECTION_RETRY_PROPERTY = "cassandra.connectionretries"; - public static final String CONNECTION_RETRY_PROPERTY_DEFAULT = "300"; - - public static final String OPERATION_RETRY_PROPERTY = "cassandra.operationretries"; - public static final String OPERATION_RETRY_PROPERTY_DEFAULT = "300"; - - public static final String USERNAME_PROPERTY = "cassandra.username"; - public static final String PASSWORD_PROPERTY = "cassandra.password"; - - public static final String COLUMN_FAMILY_PROPERTY = "cassandra.columnfamily"; - public static final String COLUMN_FAMILY_PROPERTY_DEFAULT = "data"; - - TTransport tr; - Cassandra.Client client; - - boolean _debug = false; - - String _table = ""; - Exception errorexception = null; - - List mutations = new ArrayList(); - Map> mutationMap = new HashMap>(); - Map>> record = new HashMap>>(); - - ColumnParent parent; - - /** - * Initialize any state for this DB. Called once per DB instance; there is one - * DB instance per client thread. - */ - public void init() throws DBException - { - String hosts = getProperties().getProperty("hosts"); - if (hosts == null) - { - throw new DBException("Required property \"hosts\" missing for CassandraClient"); - } - - column_family = getProperties().getProperty(COLUMN_FAMILY_PROPERTY, COLUMN_FAMILY_PROPERTY_DEFAULT); - parent = new ColumnParent(column_family); - - ConnectionRetries = Integer.parseInt(getProperties().getProperty(CONNECTION_RETRY_PROPERTY, - CONNECTION_RETRY_PROPERTY_DEFAULT)); - OperationRetries = Integer.parseInt(getProperties().getProperty(OPERATION_RETRY_PROPERTY, - OPERATION_RETRY_PROPERTY_DEFAULT)); - - String username = getProperties().getProperty(USERNAME_PROPERTY); - String password = getProperties().getProperty(PASSWORD_PROPERTY); - - _debug = Boolean.parseBoolean(getProperties().getProperty("debug", "false")); - - String[] allhosts = hosts.split(","); - String myhost = allhosts[random.nextInt(allhosts.length)]; - - Exception connectexception = null; - - for (int retry = 0; retry < ConnectionRetries; retry++) - { - tr = new TFramedTransport(new TSocket(myhost, 9160)); - TProtocol proto = new TBinaryProtocol(tr); - client = new Cassandra.Client(proto); - try - { - tr.open(); - connectexception = null; - break; - } catch (Exception e) - { - connectexception = e; - } - try - { - Thread.sleep(1000); - } catch (InterruptedException e) - { - } - } - if (connectexception != null) - { - System.err.println("Unable to connect to " + myhost + " after " + ConnectionRetries - + " tries"); - System.out.println("Unable to connect to " + myhost + " after " + ConnectionRetries - + " tries"); - throw new DBException(connectexception); - } - - if (username != null && password != null) - { - Map cred = new HashMap(); - cred.put("username", username); - cred.put("password", password); - AuthenticationRequest req = new AuthenticationRequest(cred); - try - { - client.login(req); - } - catch (Exception e) - { - throw new DBException(e); - } - } - } - - /** - * Cleanup any state for this DB. Called once per DB instance; there is one DB - * instance per client thread. - */ - public void cleanup() throws DBException - { - tr.close(); - } - - /** - * Read a record from the database. Each field/value pair from the result will - * be stored in a HashMap. - * - * @param table - * The name of the table - * @param key - * The record key of the record to read. - * @param fields - * The list of fields to read, or null for all of them - * @param result - * A HashMap of field/value pairs for the result - * @return Zero on success, a non-zero error code on error - */ - public int read(String table, String key, Set fields, HashMap result) - { - if (!_table.equals(table)) { - try - { - client.set_keyspace(table); - _table = table; - } - catch (Exception e) - { - e.printStackTrace(); - e.printStackTrace(System.out); - return Error; - } - } - - for (int i = 0; i < OperationRetries; i++) - { - - try - { - SlicePredicate predicate; - if (fields == null) - { - predicate = new SlicePredicate().setSlice_range(new SliceRange(emptyByteBuffer, emptyByteBuffer, false, 1000000)); - - } else { - ArrayList fieldlist = new ArrayList(fields.size()); - for (String s : fields) - { - fieldlist.add(ByteBuffer.wrap(s.getBytes("UTF-8"))); - } - - predicate = new SlicePredicate().setColumn_names(fieldlist); - } - - List results = client.get_slice(ByteBuffer.wrap(key.getBytes("UTF-8")), parent, predicate, ConsistencyLevel.ONE); - - if (_debug) - { - System.out.print("Reading key: " + key); - } - - Column column; - String name; - ByteIterator value; - for (ColumnOrSuperColumn oneresult : results) - { - - column = oneresult.column; - name = new String(column.name.array(), column.name.position()+column.name.arrayOffset(), column.name.remaining()); - value = new ByteArrayByteIterator(column.value.array(), column.value.position()+column.value.arrayOffset(), column.value.remaining()); - - result.put(name,value); - - if (_debug) - { - System.out.print("(" + name + "=" + value + ")"); - } - } - - if (_debug) - { - System.out.println(); - } - - return Ok; - } catch (Exception e) - { - errorexception = e; - } - - try - { - Thread.sleep(500); - } catch (InterruptedException e) - { - } - } - errorexception.printStackTrace(); - errorexception.printStackTrace(System.out); - return Error; - - } - - /** - * Perform a range scan for a set of records in the database. Each field/value - * pair from the result will be stored in a HashMap. - * - * @param table - * The name of the table - * @param startkey - * The record key of the first record to read. - * @param recordcount - * The number of records to read - * @param fields - * The list of fields to read, or null for all of them - * @param result - * A Vector of HashMaps, where each HashMap is a set field/value - * pairs for one record - * @return Zero on success, a non-zero error code on error - */ - public int scan(String table, String startkey, int recordcount, Set fields, - Vector> result) - { - if (!_table.equals(table)) { - try - { - client.set_keyspace(table); - _table = table; - } - catch (Exception e) - { - e.printStackTrace(); - e.printStackTrace(System.out); - return Error; - } - } - - for (int i = 0; i < OperationRetries; i++) - { - - try - { - SlicePredicate predicate; - if (fields == null) - { - predicate = new SlicePredicate().setSlice_range(new SliceRange(emptyByteBuffer, emptyByteBuffer, false, 1000000)); - - } else { - ArrayList fieldlist = new ArrayList(fields.size()); - for (String s : fields) - { - fieldlist.add(ByteBuffer.wrap(s.getBytes("UTF-8"))); - } - - predicate = new SlicePredicate().setColumn_names(fieldlist); - } - - KeyRange kr = new KeyRange().setStart_key(startkey.getBytes("UTF-8")).setEnd_key(new byte[] {}).setCount(recordcount); - - List results = client.get_range_slices(parent, predicate, kr, ConsistencyLevel.ONE); - - if (_debug) - { - System.out.println("Scanning startkey: " + startkey); - } - - HashMap tuple; - for (KeySlice oneresult : results) - { - tuple = new HashMap(); - - Column column; - String name; - ByteIterator value; - for (ColumnOrSuperColumn onecol : oneresult.columns) - { - column = onecol.column; - name = new String(column.name.array(), column.name.position()+column.name.arrayOffset(), column.name.remaining()); - value = new ByteArrayByteIterator(column.value.array(), column.value.position()+column.value.arrayOffset(), column.value.remaining()); - - tuple.put(name, value); - - if (_debug) - { - System.out.print("(" + name + "=" + value + ")"); - } - } - - result.add(tuple); - if (_debug) - { - System.out.println(); - } - } - - return Ok; - } catch (Exception e) - { - errorexception = e; - } - try - { - Thread.sleep(500); - } catch (InterruptedException e) - { - } - } - errorexception.printStackTrace(); - errorexception.printStackTrace(System.out); - return Error; - } - - /** - * Update a record in the database. Any field/value pairs in the specified - * values HashMap will be written into the record with the specified record - * key, overwriting any existing values with the same field name. - * - * @param table - * The name of the table - * @param key - * The record key of the record to write. - * @param values - * A HashMap of field/value pairs to update in the record - * @return Zero on success, a non-zero error code on error - */ - public int update(String table, String key, HashMap values) - { - return insert(table, key, values); - } - - /** - * Insert a record in the database. Any field/value pairs in the specified - * values HashMap will be written into the record with the specified record - * key. - * - * @param table - * The name of the table - * @param key - * The record key of the record to insert. - * @param values - * A HashMap of field/value pairs to insert in the record - * @return Zero on success, a non-zero error code on error - */ - public int insert(String table, String key, HashMap values) - { - if (!_table.equals(table)) { - try - { - client.set_keyspace(table); - _table = table; - } - catch (Exception e) - { - e.printStackTrace(); - e.printStackTrace(System.out); - return Error; - } - } - - for (int i = 0; i < OperationRetries; i++) - { - if (_debug) - { - System.out.println("Inserting key: " + key); - } - - try - { - ByteBuffer wrappedKey = ByteBuffer.wrap(key.getBytes("UTF-8")); - - ColumnOrSuperColumn column; - for (Map.Entry entry : values.entrySet()) - { - column = new ColumnOrSuperColumn(); - column.setColumn( new Column( ByteBuffer.wrap(entry.getKey().getBytes("UTF-8")), - ByteBuffer.wrap(entry.getValue().toArray()), - System.currentTimeMillis()) ); - - mutations.add(new Mutation().setColumn_or_supercolumn(column)); - } - - mutationMap.put(column_family, mutations); - record.put(wrappedKey, mutationMap); - - client.batch_mutate(record, ConsistencyLevel.ONE); - - mutations.clear(); - mutationMap.clear(); - record.clear(); - - return Ok; - } catch (Exception e) - { - errorexception = e; - } - try - { - Thread.sleep(500); - } catch (InterruptedException e) - { - } - } - - errorexception.printStackTrace(); - errorexception.printStackTrace(System.out); - return Error; - } - - /** - * Delete a record from the database. - * - * @param table - * The name of the table - * @param key - * The record key of the record to delete. - * @return Zero on success, a non-zero error code on error - */ - public int delete(String table, String key) - { - if (!_table.equals(table)) { - try - { - client.set_keyspace(table); - _table = table; - } - catch (Exception e) - { - e.printStackTrace(); - e.printStackTrace(System.out); - return Error; - } - } - - for (int i = 0; i < OperationRetries; i++) - { - try - { - client.remove(ByteBuffer.wrap(key.getBytes("UTF-8")), - new ColumnPath(column_family), - System.currentTimeMillis(), - ConsistencyLevel.ONE); - - if (_debug) - { - System.out.println("Delete key: " + key); - } - - return Ok; - } catch (Exception e) - { - errorexception = e; - } - try - { - Thread.sleep(500); - } catch (InterruptedException e) - { - } - } - errorexception.printStackTrace(); - errorexception.printStackTrace(System.out); - return Error; - } - - public static void main(String[] args) - { - CassandraClient7 cli = new CassandraClient7(); - - Properties props = new Properties(); - - props.setProperty("hosts", args[0]); - cli.setProperties(props); - - try - { - cli.init(); - } catch (Exception e) - { - e.printStackTrace(); - System.exit(0); - } - - HashMap vals = new HashMap(); - vals.put("age", new StringByteIterator("57")); - vals.put("middlename", new StringByteIterator("bradley")); - vals.put("favoritecolor", new StringByteIterator("blue")); - int res = cli.insert("usertable", "BrianFrankCooper", vals); - System.out.println("Result of insert: " + res); - - HashMap result = new HashMap(); - HashSet fields = new HashSet(); - fields.add("middlename"); - fields.add("age"); - fields.add("favoritecolor"); - res = cli.read("usertable", "BrianFrankCooper", null, result); - System.out.println("Result of read: " + res); - for (String s : result.keySet()) - { - System.out.println("[" + s + "]=[" + result.get(s) + "]"); - } - - res = cli.delete("usertable", "BrianFrankCooper"); - System.out.println("Result of delete: " + res); - } - - /* - * public static void main(String[] args) throws TException, - * InvalidRequestException, UnavailableException, - * UnsupportedEncodingException, NotFoundException { - * - * - * - * String key_user_id = "1"; - * - * - * - * - * client.insert("Keyspace1", key_user_id, new ColumnPath("Standard1", null, - * "age".getBytes("UTF-8")), "24".getBytes("UTF-8"), timestamp, - * ConsistencyLevel.ONE); - * - * - * // read single column ColumnPath path = new ColumnPath("Standard1", null, - * "name".getBytes("UTF-8")); - * - * System.out.println(client.get("Keyspace1", key_user_id, path, - * ConsistencyLevel.ONE)); - * - * - * // read entire row SlicePredicate predicate = new SlicePredicate(null, new - * SliceRange(new byte[0], new byte[0], false, 10)); - * - * ColumnParent parent = new ColumnParent("Standard1", null); - * - * List results = client.get_slice("Keyspace1", - * key_user_id, parent, predicate, ConsistencyLevel.ONE); - * - * for (ColumnOrSuperColumn result : results) { - * - * Column column = result.column; - * - * System.out.println(new String(column.name, "UTF-8") + " -> " + new - * String(column.value, "UTF-8")); - * - * } - * - * - * - * - * } - */ -} DELETED YCSB/cassandra/src/main/java/com/yahoo/ycsb/db/CassandraClient8.java Index: YCSB/cassandra/src/main/java/com/yahoo/ycsb/db/CassandraClient8.java ================================================================== --- YCSB/cassandra/src/main/java/com/yahoo/ycsb/db/CassandraClient8.java +++ /dev/null @@ -1,619 +0,0 @@ -/** - * Copyright (c) 2010 Yahoo! Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you - * may not use this file except in compliance with the License. You - * may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - * implied. See the License for the specific language governing - * permissions and limitations under the License. See accompanying - * LICENSE file. - */ - -package com.yahoo.ycsb.db; - -import com.yahoo.ycsb.*; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Vector; -import java.util.Random; -import java.util.Properties; -import java.nio.ByteBuffer; - -import org.apache.thrift.transport.TTransport; -import org.apache.thrift.transport.TFramedTransport; -import org.apache.thrift.transport.TSocket; -import org.apache.thrift.protocol.TProtocol; -import org.apache.thrift.protocol.TBinaryProtocol; -import org.apache.cassandra.thrift.*; - - -//XXXX if we do replication, fix the consistency levels -/** - * Cassandra 0.8 client for YCSB framework - */ -public class CassandraClient8 extends DB -{ - static Random random = new Random(); - public static final int Ok = 0; - public static final int Error = -1; - public static final ByteBuffer emptyByteBuffer = ByteBuffer.wrap(new byte[0]); - - public int ConnectionRetries; - public int OperationRetries; - public String column_family; - - public static final String CONNECTION_RETRY_PROPERTY = "cassandra.connectionretries"; - public static final String CONNECTION_RETRY_PROPERTY_DEFAULT = "300"; - - public static final String OPERATION_RETRY_PROPERTY = "cassandra.operationretries"; - public static final String OPERATION_RETRY_PROPERTY_DEFAULT = "300"; - - public static final String USERNAME_PROPERTY = "cassandra.username"; - public static final String PASSWORD_PROPERTY = "cassandra.password"; - - public static final String COLUMN_FAMILY_PROPERTY = "cassandra.columnfamily"; - public static final String COLUMN_FAMILY_PROPERTY_DEFAULT = "data"; - - TTransport tr; - Cassandra.Client client; - - boolean _debug = false; - - String _table = ""; - Exception errorexception = null; - - List mutations = new ArrayList(); - Map> mutationMap = new HashMap>(); - Map>> record = new HashMap>>(); - - ColumnParent parent; - - /** - * Initialize any state for this DB. Called once per DB instance; there is one - * DB instance per client thread. - */ - public void init() throws DBException - { - String hosts = getProperties().getProperty("hosts"); - if (hosts == null) - { - throw new DBException("Required property \"hosts\" missing for CassandraClient"); - } - - column_family = getProperties().getProperty(COLUMN_FAMILY_PROPERTY, COLUMN_FAMILY_PROPERTY_DEFAULT); - parent = new ColumnParent(column_family); - - ConnectionRetries = Integer.parseInt(getProperties().getProperty(CONNECTION_RETRY_PROPERTY, - CONNECTION_RETRY_PROPERTY_DEFAULT)); - OperationRetries = Integer.parseInt(getProperties().getProperty(OPERATION_RETRY_PROPERTY, - OPERATION_RETRY_PROPERTY_DEFAULT)); - - String username = getProperties().getProperty(USERNAME_PROPERTY); - String password = getProperties().getProperty(PASSWORD_PROPERTY); - - _debug = Boolean.parseBoolean(getProperties().getProperty("debug", "false")); - - String[] allhosts = hosts.split(","); - String myhost = allhosts[random.nextInt(allhosts.length)]; - - Exception connectexception = null; - - for (int retry = 0; retry < ConnectionRetries; retry++) - { - tr = new TFramedTransport(new TSocket(myhost, 9160)); - TProtocol proto = new TBinaryProtocol(tr); - client = new Cassandra.Client(proto); - try - { - tr.open(); - connectexception = null; - break; - } catch (Exception e) - { - connectexception = e; - } - try - { - Thread.sleep(1000); - } catch (InterruptedException e) - { - } - } - if (connectexception != null) - { - System.err.println("Unable to connect to " + myhost + " after " + ConnectionRetries - + " tries"); - System.out.println("Unable to connect to " + myhost + " after " + ConnectionRetries - + " tries"); - throw new DBException(connectexception); - } - - if (username != null && password != null) - { - Map cred = new HashMap(); - cred.put("username", username); - cred.put("password", password); - AuthenticationRequest req = new AuthenticationRequest(cred); - try - { - client.login(req); - } - catch (Exception e) - { - throw new DBException(e); - } - } - } - - /** - * Cleanup any state for this DB. Called once per DB instance; there is one DB - * instance per client thread. - */ - public void cleanup() throws DBException - { - tr.close(); - } - - /** - * Read a record from the database. Each field/value pair from the result will - * be stored in a HashMap. - * - * @param table - * The name of the table - * @param key - * The record key of the record to read. - * @param fields - * The list of fields to read, or null for all of them - * @param result - * A HashMap of field/value pairs for the result - * @return Zero on success, a non-zero error code on error - */ - public int read(String table, String key, Set fields, HashMap result) - { - if (!_table.equals(table)) { - try - { - client.set_keyspace(table); - _table = table; - } - catch (Exception e) - { - e.printStackTrace(); - e.printStackTrace(System.out); - return Error; - } - } - - for (int i = 0; i < OperationRetries; i++) - { - - try - { - SlicePredicate predicate; - if (fields == null) - { - predicate = new SlicePredicate().setSlice_range(new SliceRange(emptyByteBuffer, emptyByteBuffer, false, 1000000)); - - } else { - ArrayList fieldlist = new ArrayList(fields.size()); - for (String s : fields) - { - fieldlist.add(ByteBuffer.wrap(s.getBytes("UTF-8"))); - } - - predicate = new SlicePredicate().setColumn_names(fieldlist); - } - - List results = client.get_slice(ByteBuffer.wrap(key.getBytes("UTF-8")), parent, predicate, ConsistencyLevel.ONE); - - if (_debug) - { - System.out.print("Reading key: " + key); - } - - Column column; - String name; - ByteIterator value; - for (ColumnOrSuperColumn oneresult : results) - { - - column = oneresult.column; - name = new String(column.name.array(), column.name.position()+column.name.arrayOffset(), column.name.remaining()); - value = new ByteArrayByteIterator(column.value.array(), column.value.position()+column.value.arrayOffset(), column.value.remaining()); - - result.put(name,value); - - if (_debug) - { - System.out.print("(" + name + "=" + value + ")"); - } - } - - if (_debug) - { - System.out.println(); - } - - return Ok; - } catch (Exception e) - { - errorexception = e; - } - - try - { - Thread.sleep(500); - } catch (InterruptedException e) - { - } - } - errorexception.printStackTrace(); - errorexception.printStackTrace(System.out); - return Error; - - } - - /** - * Perform a range scan for a set of records in the database. Each field/value - * pair from the result will be stored in a HashMap. - * - * @param table - * The name of the table - * @param startkey - * The record key of the first record to read. - * @param recordcount - * The number of records to read - * @param fields - * The list of fields to read, or null for all of them - * @param result - * A Vector of HashMaps, where each HashMap is a set field/value - * pairs for one record - * @return Zero on success, a non-zero error code on error - */ - public int scan(String table, String startkey, int recordcount, Set fields, - Vector> result) - { - if (!_table.equals(table)) { - try - { - client.set_keyspace(table); - _table = table; - } - catch (Exception e) - { - e.printStackTrace(); - e.printStackTrace(System.out); - return Error; - } - } - - for (int i = 0; i < OperationRetries; i++) - { - - try - { - SlicePredicate predicate; - if (fields == null) - { - predicate = new SlicePredicate().setSlice_range(new SliceRange(emptyByteBuffer, emptyByteBuffer, false, 1000000)); - - } else { - ArrayList fieldlist = new ArrayList(fields.size()); - for (String s : fields) - { - fieldlist.add(ByteBuffer.wrap(s.getBytes("UTF-8"))); - } - - predicate = new SlicePredicate().setColumn_names(fieldlist); - } - - KeyRange kr = new KeyRange().setStart_key(startkey.getBytes("UTF-8")).setEnd_key(new byte[] {}).setCount(recordcount); - - List results = client.get_range_slices(parent, predicate, kr, ConsistencyLevel.ONE); - - if (_debug) - { - System.out.println("Scanning startkey: " + startkey); - } - - HashMap tuple; - for (KeySlice oneresult : results) - { - tuple = new HashMap(); - - Column column; - String name; - ByteIterator value; - for (ColumnOrSuperColumn onecol : oneresult.columns) - { - column = onecol.column; - name = new String(column.name.array(), column.name.position()+column.name.arrayOffset(), column.name.remaining()); - value = new ByteArrayByteIterator(column.value.array(), column.value.position()+column.value.arrayOffset(), column.value.remaining()); - - tuple.put(name, value); - - if (_debug) - { - System.out.print("(" + name + "=" + value + ")"); - } - } - - result.add(tuple); - if (_debug) - { - System.out.println(); - } - } - - return Ok; - } catch (Exception e) - { - errorexception = e; - } - try - { - Thread.sleep(500); - } catch (InterruptedException e) - { - } - } - errorexception.printStackTrace(); - errorexception.printStackTrace(System.out); - return Error; - } - - /** - * Update a record in the database. Any field/value pairs in the specified - * values HashMap will be written into the record with the specified record - * key, overwriting any existing values with the same field name. - * - * @param table - * The name of the table - * @param key - * The record key of the record to write. - * @param values - * A HashMap of field/value pairs to update in the record - * @return Zero on success, a non-zero error code on error - */ - public int update(String table, String key, HashMap values) - { - return insert(table, key, values); - } - - /** - * Insert a record in the database. Any field/value pairs in the specified - * values HashMap will be written into the record with the specified record - * key. - * - * @param table - * The name of the table - * @param key - * The record key of the record to insert. - * @param values - * A HashMap of field/value pairs to insert in the record - * @return Zero on success, a non-zero error code on error - */ - public int insert(String table, String key, HashMap values) - { - if (!_table.equals(table)) { - try - { - client.set_keyspace(table); - _table = table; - } - catch (Exception e) - { - e.printStackTrace(); - e.printStackTrace(System.out); - return Error; - } - } - - for (int i = 0; i < OperationRetries; i++) - { - if (_debug) - { - System.out.println("Inserting key: " + key); - } - - try - { - ByteBuffer wrappedKey = ByteBuffer.wrap(key.getBytes("UTF-8")); - - Column col; - ColumnOrSuperColumn column; - for (Map.Entry entry : values.entrySet()) - { - col = new Column(); - col.setName(ByteBuffer.wrap(entry.getKey().getBytes("UTF-8"))); - col.setValue(ByteBuffer.wrap(entry.getValue().toArray())); - col.setTimestamp(System.currentTimeMillis()); - - column = new ColumnOrSuperColumn(); - column.setColumn(col); - - mutations.add(new Mutation().setColumn_or_supercolumn(column)); - } - - mutationMap.put(column_family, mutations); - record.put(wrappedKey, mutationMap); - - client.batch_mutate(record, ConsistencyLevel.ONE); - - mutations.clear(); - mutationMap.clear(); - record.clear(); - - return Ok; - } catch (Exception e) - { - errorexception = e; - } - try - { - Thread.sleep(500); - } catch (InterruptedException e) - { - } - } - - errorexception.printStackTrace(); - errorexception.printStackTrace(System.out); - return Error; - } - - /** - * Delete a record from the database. - * - * @param table - * The name of the table - * @param key - * The record key of the record to delete. - * @return Zero on success, a non-zero error code on error - */ - public int delete(String table, String key) - { - if (!_table.equals(table)) { - try - { - client.set_keyspace(table); - _table = table; - } - catch (Exception e) - { - e.printStackTrace(); - e.printStackTrace(System.out); - return Error; - } - } - - for (int i = 0; i < OperationRetries; i++) - { - try - { - client.remove(ByteBuffer.wrap(key.getBytes("UTF-8")), - new ColumnPath(column_family), - System.currentTimeMillis(), - ConsistencyLevel.ONE); - - if (_debug) - { - System.out.println("Delete key: " + key); - } - - return Ok; - } catch (Exception e) - { - errorexception = e; - } - try - { - Thread.sleep(500); - } catch (InterruptedException e) - { - } - } - errorexception.printStackTrace(); - errorexception.printStackTrace(System.out); - return Error; - } - - public static void main(String[] args) - { - CassandraClient8 cli = new CassandraClient8(); - - Properties props = new Properties(); - - props.setProperty("hosts", args[0]); - cli.setProperties(props); - - try - { - cli.init(); - } catch (Exception e) - { - e.printStackTrace(); - System.exit(0); - } - - HashMap vals = new HashMap(); - vals.put("age", new StringByteIterator("57")); - vals.put("middlename", new StringByteIterator("bradley")); - vals.put("favoritecolor", new StringByteIterator("blue")); - int res = cli.insert("usertable", "BrianFrankCooper", vals); - System.out.println("Result of insert: " + res); - - HashMap result = new HashMap(); - HashSet fields = new HashSet(); - fields.add("middlename"); - fields.add("age"); - fields.add("favoritecolor"); - res = cli.read("usertable", "BrianFrankCooper", null, result); - System.out.println("Result of read: " + res); - for (String s : result.keySet()) - { - System.out.println("[" + s + "]=[" + result.get(s) + "]"); - } - - res = cli.delete("usertable", "BrianFrankCooper"); - System.out.println("Result of delete: " + res); - } - - /* - * public static void main(String[] args) throws TException, - * InvalidRequestException, UnavailableException, - * UnsupportedEncodingException, NotFoundException { - * - * - * - * String key_user_id = "1"; - * - * - * - * - * client.insert("Keyspace1", key_user_id, new ColumnPath("Standard1", null, - * "age".getBytes("UTF-8")), "24".getBytes("UTF-8"), timestamp, - * ConsistencyLevel.ONE); - * - * - * // read single column ColumnPath path = new ColumnPath("Standard1", null, - * "name".getBytes("UTF-8")); - * - * System.out.println(client.get("Keyspace1", key_user_id, path, - * ConsistencyLevel.ONE)); - * - * - * // read entire row SlicePredicate predicate = new SlicePredicate(null, new - * SliceRange(new byte[0], new byte[0], false, 10)); - * - * ColumnParent parent = new ColumnParent("Standard1", null); - * - * List results = client.get_slice("Keyspace1", - * key_user_id, parent, predicate, ConsistencyLevel.ONE); - * - * for (ColumnOrSuperColumn result : results) { - * - * Column column = result.column; - * - * System.out.println(new String(column.name, "UTF-8") + " -> " + new - * String(column.value, "UTF-8")); - * - * } - * - * - * - * - * } - */ -} DELETED YCSB/cassandra/target/archive-tmp/cassandra-binding-0.1.4.jar Index: YCSB/cassandra/target/archive-tmp/cassandra-binding-0.1.4.jar ================================================================== --- YCSB/cassandra/target/archive-tmp/cassandra-binding-0.1.4.jar +++ /dev/null cannot compute difference between binary files DELETED YCSB/cassandra/target/cassandra-binding-0.1.4.jar Index: YCSB/cassandra/target/cassandra-binding-0.1.4.jar ================================================================== --- YCSB/cassandra/target/cassandra-binding-0.1.4.jar +++ /dev/null cannot compute difference between binary files DELETED YCSB/cassandra/target/checkstyle-cachefile Index: YCSB/cassandra/target/checkstyle-cachefile ================================================================== --- YCSB/cassandra/target/checkstyle-cachefile +++ /dev/null @@ -1,2 +0,0 @@ -#Tue Mar 12 07:16:59 UTC 2013 -configuration*?=7D005B695A30F6582106FC4959393173A9C18626 DELETED YCSB/cassandra/target/checkstyle-checker.xml Index: YCSB/cassandra/target/checkstyle-checker.xml ================================================================== --- YCSB/cassandra/target/checkstyle-checker.xml +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DELETED YCSB/cassandra/target/checkstyle-header.txt Index: YCSB/cassandra/target/checkstyle-header.txt ================================================================== --- YCSB/cassandra/target/checkstyle-header.txt +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. DELETED YCSB/cassandra/target/checkstyle-result.xml Index: YCSB/cassandra/target/checkstyle-result.xml ================================================================== --- YCSB/cassandra/target/checkstyle-result.xml +++ /dev/null @@ -1,453 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DELETED YCSB/cassandra/target/classes/com/yahoo/ycsb/db/CassandraClient10.class Index: YCSB/cassandra/target/classes/com/yahoo/ycsb/db/CassandraClient10.class ================================================================== --- YCSB/cassandra/target/classes/com/yahoo/ycsb/db/CassandraClient10.class +++ /dev/null cannot compute difference between binary files DELETED YCSB/cassandra/target/classes/com/yahoo/ycsb/db/CassandraClient7.class Index: YCSB/cassandra/target/classes/com/yahoo/ycsb/db/CassandraClient7.class ================================================================== --- YCSB/cassandra/target/classes/com/yahoo/ycsb/db/CassandraClient7.class +++ /dev/null cannot compute difference between binary files DELETED YCSB/cassandra/target/classes/com/yahoo/ycsb/db/CassandraClient8.class Index: YCSB/cassandra/target/classes/com/yahoo/ycsb/db/CassandraClient8.class ================================================================== --- YCSB/cassandra/target/classes/com/yahoo/ycsb/db/CassandraClient8.class +++ /dev/null cannot compute difference between binary files DELETED YCSB/cassandra/target/maven-archiver/pom.properties Index: YCSB/cassandra/target/maven-archiver/pom.properties ================================================================== --- YCSB/cassandra/target/maven-archiver/pom.properties +++ /dev/null @@ -1,5 +0,0 @@ -#Generated by Maven -#Tue Mar 12 07:17:03 UTC 2013 -version=0.1.4 -groupId=com.yahoo.ycsb -artifactId=cassandra-binding DELETED YCSB/cassandra/target/site/checkstyle.html Index: YCSB/cassandra/target/site/checkstyle.html ================================================================== --- YCSB/cassandra/target/site/checkstyle.html +++ /dev/null cannot compute difference between binary files DELETED YCSB/cassandra/target/site/checkstyle.rss Index: YCSB/cassandra/target/site/checkstyle.rss ================================================================== --- YCSB/cassandra/target/site/checkstyle.rss +++ /dev/null @@ -1,79 +0,0 @@ - - - - - Cassandra DB Binding - Checkstyle report - ${project.url} - Cassandra DB Binding - Checkstyle report - en-us - ©2013 - - File: 3, - Errors: 444, - Warnings: 0, - Infos: 0 - - ${project.url}/checkstyle.html - -

Click here for the full Checkstyle report.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FilesIWE
- com/yahoo/ycsb/db/CassandraClient7.java - - 0 - - 0 - - 144 -
- com/yahoo/ycsb/db/CassandraClient8.java - - 0 - - 0 - - 139 -
- com/yahoo/ycsb/db/CassandraClient10.java - - 0 - - 0 - - 161 -
- -
-
-
-
- DELETED YCSB/cassandra/target/site/images/rss.png Index: YCSB/cassandra/target/site/images/rss.png ================================================================== --- YCSB/cassandra/target/site/images/rss.png +++ /dev/null cannot compute difference between binary files DELETED YCSB/cassandra/target/slf4j-simple-1.7.2.jar Index: YCSB/cassandra/target/slf4j-simple-1.7.2.jar ================================================================== --- YCSB/cassandra/target/slf4j-simple-1.7.2.jar +++ /dev/null cannot compute difference between binary files DELETED YCSB/checkstyle.xml Index: YCSB/checkstyle.xml ================================================================== --- YCSB/checkstyle.xml +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DELETED YCSB/core/pom.xml Index: YCSB/core/pom.xml ================================================================== --- YCSB/core/pom.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - 4.0.0 - - com.yahoo.ycsb - root - 0.1.4 - - - core - Core YCSB - jar - - - 1.9.4 - - - - - org.codehaus.jackson - jackson-mapper-asl - ${jackson.api.version} - - - org.codehaus.jackson - jackson-core-asl - ${jackson.api.version} - - - org.testng - testng - 6.1.1 - test - - - - DELETED YCSB/core/src/main/java/com/yahoo/ycsb/BasicDB.java Index: YCSB/core/src/main/java/com/yahoo/ycsb/BasicDB.java ================================================================== --- YCSB/core/src/main/java/com/yahoo/ycsb/BasicDB.java +++ /dev/null @@ -1,267 +0,0 @@ -/** - * Copyright (c) 2010 Yahoo! Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you - * may not use this file except in compliance with the License. You - * may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - * implied. See the License for the specific language governing - * permissions and limitations under the License. See accompanying - * LICENSE file. - */ - -package com.yahoo.ycsb; - -import java.util.HashMap; -import java.util.Properties; -import java.util.Set; -import java.util.Enumeration; -import java.util.Vector; - - -/** - * Basic DB that just prints out the requested operations, instead of doing them against a database. - */ -public class BasicDB extends DB -{ - public static final String VERBOSE="basicdb.verbose"; - public static final String VERBOSE_DEFAULT="true"; - - public static final String SIMULATE_DELAY="basicdb.simulatedelay"; - public static final String SIMULATE_DELAY_DEFAULT="0"; - - - boolean verbose; - int todelay; - - public BasicDB() - { - todelay=0; - } - - - void delay() - { - if (todelay>0) - { - try - { - Thread.sleep((long)Utils.random().nextInt(todelay)); - } - catch (InterruptedException e) - { - //do nothing - } - } - } - - /** - * Initialize any state for this DB. - * Called once per DB instance; there is one DB instance per client thread. - */ - @SuppressWarnings("unchecked") - public void init() - { - verbose=Boolean.parseBoolean(getProperties().getProperty(VERBOSE, VERBOSE_DEFAULT)); - todelay=Integer.parseInt(getProperties().getProperty(SIMULATE_DELAY, SIMULATE_DELAY_DEFAULT)); - - if (verbose) - { - System.out.println("***************** properties *****************"); - Properties p=getProperties(); - if (p!=null) - { - for (Enumeration e=p.propertyNames(); e.hasMoreElements(); ) - { - String k=(String)e.nextElement(); - System.out.println("\""+k+"\"=\""+p.getProperty(k)+"\""); - } - } - System.out.println("**********************************************"); - } - } - - /** - * Read a record from the database. Each field/value pair from the result will be stored in a HashMap. - * - * @param table The name of the table - * @param key The record key of the record to read. - * @param fields The list of fields to read, or null for all of them - * @param result A HashMap of field/value pairs for the result - * @return Zero on success, a non-zero error code on error - */ - public int read(String table, String key, Set fields, HashMap result) - { - delay(); - - if (verbose) - { - System.out.print("READ "+table+" "+key+" [ "); - if (fields!=null) - { - for (String f : fields) - { - System.out.print(f+" "); - } - } - else - { - System.out.print(""); - } - - System.out.println("]"); - } - - return 0; - } - - /** - * Perform a range scan for a set of records in the database. Each field/value pair from the result will be stored in a HashMap. - * - * @param table The name of the table - * @param startkey The record key of the first record to read. - * @param recordcount The number of records to read - * @param fields The list of fields to read, or null for all of them - * @param result A Vector of HashMaps, where each HashMap is a set field/value pairs for one record - * @return Zero on success, a non-zero error code on error - */ - public int scan(String table, String startkey, int recordcount, Set fields, Vector> result) - { - delay(); - - if (verbose) - { - System.out.print("SCAN "+table+" "+startkey+" "+recordcount+" [ "); - if (fields!=null) - { - for (String f : fields) - { - System.out.print(f+" "); - } - } - else - { - System.out.print(""); - } - - System.out.println("]"); - } - - return 0; - } - - /** - * Update a record in the database. Any field/value pairs in the specified values HashMap will be written into the record with the specified - * record key, overwriting any existing values with the same field name. - * - * @param table The name of the table - * @param key The record key of the record to write. - * @param values A HashMap of field/value pairs to update in the record - * @return Zero on success, a non-zero error code on error - */ - public int update(String table, String key, HashMap values) - { - delay(); - - if (verbose) - { - System.out.print("UPDATE "+table+" "+key+" [ "); - if (values!=null) - { - for (String k : values.keySet()) - { - System.out.print(k+"="+values.get(k)+" "); - } - } - System.out.println("]"); - } - - return 0; - } - - /** - * Insert a record in the database. Any field/value pairs in the specified values HashMap will be written into the record with the specified - * record key. - * - * @param table The name of the table - * @param key The record key of the record to insert. - * @param values A HashMap of field/value pairs to insert in the record - * @return Zero on success, a non-zero error code on error - */ - public int insert(String table, String key, HashMap values) - { - delay(); - - if (verbose) - { - System.out.print("INSERT "+table+" "+key+" [ "); - if (values!=null) - { - for (String k : values.keySet()) - { - System.out.print(k+"="+values.get(k)+" "); - } - } - - System.out.println("]"); - } - - return 0; - } - - - /** - * Delete a record from the database. - * - * @param table The name of the table - * @param key The record key of the record to delete. - * @return Zero on success, a non-zero error code on error - */ - public int delete(String table, String key) - { - delay(); - - if (verbose) - { - System.out.println("DELETE "+table+" "+key); - } - - return 0; - } - - /** - * Short test of BasicDB - */ - /* - public static void main(String[] args) - { - BasicDB bdb=new BasicDB(); - - Properties p=new Properties(); - p.setProperty("Sky","Blue"); - p.setProperty("Ocean","Wet"); - - bdb.setProperties(p); - - bdb.init(); - - HashMap fields=new HashMap(); - fields.put("A","X"); - fields.put("B","Y"); - - bdb.read("table","key",null,null); - bdb.insert("table","key",fields); - - fields=new HashMap(); - fields.put("C","Z"); - - bdb.update("table","key",fields); - - bdb.delete("table","key"); - }*/ -} DELETED YCSB/core/src/main/java/com/yahoo/ycsb/ByteArrayByteIterator.java Index: YCSB/core/src/main/java/com/yahoo/ycsb/ByteArrayByteIterator.java ================================================================== --- YCSB/core/src/main/java/com/yahoo/ycsb/ByteArrayByteIterator.java +++ /dev/null @@ -1,52 +0,0 @@ -/** - * Copyright (c) 2010 Yahoo! Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you - * may not use this file except in compliance with the License. You - * may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - * implied. See the License for the specific language governing - * permissions and limitations under the License. See accompanying - * LICENSE file. - */ -package com.yahoo.ycsb; - -public class ByteArrayByteIterator extends ByteIterator { - byte[] str; - int off; - final int len; - public ByteArrayByteIterator(byte[] s) { - this.str = s; - this.off = 0; - this.len = s.length; - } - - public ByteArrayByteIterator(byte[] s, int off, int len) { - this.str = s; - this.off = off; - this.len = off + len; - } - - @Override - public boolean hasNext() { - return off < len; - } - - @Override - public byte nextByte() { - byte ret = str[off]; - off++; - return ret; - } - - @Override - public long bytesLeft() { - return len - off; - } - -} DELETED YCSB/core/src/main/java/com/yahoo/ycsb/ByteIterator.java Index: YCSB/core/src/main/java/com/yahoo/ycsb/ByteIterator.java ================================================================== --- YCSB/core/src/main/java/com/yahoo/ycsb/ByteIterator.java +++ /dev/null @@ -1,92 +0,0 @@ -/** - * Copyright (c) 2010 Yahoo! Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you - * may not use this file except in compliance with the License. You - * may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - * implied. See the License for the specific language governing - * permissions and limitations under the License. See accompanying - * LICENSE file. - */ -package com.yahoo.ycsb; - -import java.util.Iterator; -import java.util.ArrayList; -/** - * YCSB-specific buffer class. ByteIterators are designed to support - * efficient field generation, and to allow backend drivers that can stream - * fields (instead of materializing them in RAM) to do so. - *

- * YCSB originially used String objects to represent field values. This led to - * two performance issues. - *

- * First, it leads to unnecessary conversions between UTF-16 and UTF-8, both - * during field generation, and when passing data to byte-based backend - * drivers. - *

- * Second, Java strings are represented internally using UTF-16, and are - * built by appending to a growable array type (StringBuilder or - * StringBuffer), then calling a toString() method. This leads to a 4x memory - * overhead as field values are being built, which prevented YCSB from - * driving large object stores. - *

- * The StringByteIterator class contains a number of convenience methods for - * backend drivers that convert between Map<String,String> and - * Map<String,ByteBuffer>. - * - * @author sears - */ -public abstract class ByteIterator implements Iterator { - - @Override - public abstract boolean hasNext(); - - @Override - public Byte next() { - throw new UnsupportedOperationException(); - //return nextByte(); - } - - public abstract byte nextByte(); - /** @return byte offset immediately after the last valid byte */ - public int nextBuf(byte[] buf, int buf_off) { - int sz = buf_off; - while(sz < buf.length && hasNext()) { - buf[sz] = nextByte(); - sz++; - } - return sz; - } - - public abstract long bytesLeft(); - - @Override - public void remove() { - throw new UnsupportedOperationException(); - } - - /** Consumes remaining contents of this object, and returns them as a string. */ - public String toString() { - StringBuilder sb = new StringBuilder(); - while(this.hasNext()) { sb.append((char)nextByte()); } - return sb.toString(); - } - /** Consumes remaining contents of this object, and returns them as a byte array. */ - public byte[] toArray() { - long left = bytesLeft(); - if(left != (int)left) { throw new ArrayIndexOutOfBoundsException("Too much data to fit in one array!"); } - byte[] ret = new byte[(int)left]; - int off = 0; - while(off < ret.length) { - off = nextBuf(ret, off); - } - return ret; - } - -} DELETED YCSB/core/src/main/java/com/yahoo/ycsb/Client.java Index: YCSB/core/src/main/java/com/yahoo/ycsb/Client.java ================================================================== --- YCSB/core/src/main/java/com/yahoo/ycsb/Client.java +++ /dev/null @@ -1,802 +0,0 @@ -/** - * Copyright (c) 2010 Yahoo! Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you - * may not use this file except in compliance with the License. You - * may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - * implied. See the License for the specific language governing - * permissions and limitations under the License. See accompanying - * LICENSE file. - */ - -package com.yahoo.ycsb; - - -import java.io.*; -import java.text.DecimalFormat; -import java.util.*; - -import com.yahoo.ycsb.measurements.Measurements; -import com.yahoo.ycsb.measurements.exporter.MeasurementsExporter; -import com.yahoo.ycsb.measurements.exporter.TextMeasurementsExporter; - -//import org.apache.log4j.BasicConfigurator; - -/** - * A thread to periodically show the status of the experiment, to reassure you that progress is being made. - * - * @author cooperb - * - */ -class StatusThread extends Thread -{ - Vector _threads; - String _label; - boolean _standardstatus; - - /** - * The interval for reporting status. - */ - public static final long sleeptime=100; - - public StatusThread(Vector threads, String label, boolean standardstatus) - { - _threads=threads; - _label=label; - _standardstatus=standardstatus; - } - - /** - * Run and periodically report status. - */ - public void run() - { - long st=System.currentTimeMillis(); - - long lasten=st; - long lasttotalops=0; - - boolean alldone; - - do - { - alldone=true; - - int totalops=0; - - //terminate this thread when all the worker threads are done - for (Thread t : _threads) - { - if (t.getState()!=Thread.State.TERMINATED) - { - alldone=false; - } - - ClientThread ct=(ClientThread)t; - totalops+=ct.getOpsDone(); - } - - long en=System.currentTimeMillis(); - - long interval=en-st; - //double throughput=1000.0*((double)totalops)/((double)interval); - - double curthroughput=1000.0*(((double)(totalops-lasttotalops))/((double)(en-lasten))); - - lasttotalops=totalops; - lasten=en; - - DecimalFormat d = new DecimalFormat("#.##"); - - if (totalops==0) - { - System.err.println(_label+" "+(double)interval/1000+" sec: "+totalops+" operations; "+Measurements.getMeasurements().getSummary()); - } - else - { - System.err.println(_label+" "+(double)interval/1000+" sec: "+totalops+" operations; "+d.format(curthroughput)+" current ops/sec; "+Measurements.getMeasurements().getSummary()); - } - - if (_standardstatus) - { - if (totalops==0) - { - System.out.println(_label+" "+(double)interval/1000+" sec: "+totalops+" operations; "+Measurements.getMeasurements().getSummary()); - } - else - { - System.out.println(_label+" "+(double)interval/1000+" sec: "+totalops+" operations; "+d.format(curthroughput)+" current ops/sec; "+Measurements.getMeasurements().getSummary()); - } - } - - try - { - sleep(sleeptime); - } - catch (InterruptedException e) - { - //do nothing - } - - } - while (!alldone); - } -} - -/** - * A thread for executing transactions or data inserts to the database. - * - * @author cooperb - * - */ -class ClientThread extends Thread -{ - DB _db; - boolean _dotransactions; - Workload _workload; - int _opcount; - double _target; - - int _opsdone; - int _threadid; - int _threadcount; - Object _workloadstate; - Properties _props; - - - /** - * Constructor. - * - * @param db the DB implementation to use - * @param dotransactions true to do transactions, false to insert data - * @param workload the workload to use - * @param threadid the id of this thread - * @param threadcount the total number of threads - * @param props the properties defining the experiment - * @param opcount the number of operations (transactions or inserts) to do - * @param targetperthreadperms target number of operations per thread per ms - */ - public ClientThread(DB db, boolean dotransactions, Workload workload, int threadid, int threadcount, Properties props, int opcount, double targetperthreadperms) - { - //TODO: consider removing threadcount and threadid - _db=db; - _dotransactions=dotransactions; - _workload=workload; - _opcount=opcount; - _opsdone=0; - _target=targetperthreadperms; - _threadid=threadid; - _threadcount=threadcount; - _props=props; - //System.out.println("Interval = "+interval); - } - - public int getOpsDone() - { - return _opsdone; - } - - public void run() - { - try - { - _db.init(); - } - catch (DBException e) - { - e.printStackTrace(); - e.printStackTrace(System.out); - return; - } - - try - { - _workloadstate=_workload.initThread(_props,_threadid,_threadcount); - } - catch (WorkloadException e) - { - e.printStackTrace(); - e.printStackTrace(System.out); - return; - } - - //spread the thread operations out so they don't all hit the DB at the same time - try - { - //GH issue 4 - throws exception if _target>1 because random.nextInt argument must be >0 - //and the sleep() doesn't make sense for granularities < 1 ms anyway - if ( (_target>0) && (_target<=1.0) ) - { - sleep(Utils.random().nextInt((int)(1.0/_target))); - } - } - catch (InterruptedException e) - { - // do nothing. - } - - try - { - if (_dotransactions) - { - long st=System.currentTimeMillis(); - - while (((_opcount == 0) || (_opsdone < _opcount)) && !_workload.isStopRequested()) - { - - if (!_workload.doTransaction(_db,_workloadstate)) - { - break; - } - - _opsdone++; - - //throttle the operations - if (_target>0) - { - //this is more accurate than other throttling approaches we have tried, - //like sleeping for (1/target throughput)-operation latency, - //because it smooths timing inaccuracies (from sleep() taking an int, - //current time in millis) over many operations - while (System.currentTimeMillis()-st<((double)_opsdone)/_target) - { - try - { - sleep(1); - } - catch (InterruptedException e) - { - // do nothing. - } - - } - } - } - } - else - { - long st=System.currentTimeMillis(); - - while (((_opcount == 0) || (_opsdone < _opcount)) && !_workload.isStopRequested()) - { - - if (!_workload.doInsert(_db,_workloadstate)) - { - break; - } - - _opsdone++; - - //throttle the operations - if (_target>0) - { - //this is more accurate than other throttling approaches we have tried, - //like sleeping for (1/target throughput)-operation latency, - //because it smooths timing inaccuracies (from sleep() taking an int, - //current time in millis) over many operations - while (System.currentTimeMillis()-st<((double)_opsdone)/_target) - { - try - { - sleep(1); - } - catch (InterruptedException e) - { - // do nothing. - } - } - } - } - } - } - catch (Exception e) - { - e.printStackTrace(); - e.printStackTrace(System.out); - System.exit(0); - } - - try - { - _db.cleanup(); - } - catch (DBException e) - { - e.printStackTrace(); - e.printStackTrace(System.out); - return; - } - } -} - -/** - * Main class for executing YCSB. - */ -public class Client -{ - - public static final String OPERATION_COUNT_PROPERTY="operationcount"; - - public static final String RECORD_COUNT_PROPERTY="recordcount"; - - public static final String WORKLOAD_PROPERTY="workload"; - - /** - * Indicates how many inserts to do, if less than recordcount. Useful for partitioning - * the load among multiple servers, if the client is the bottleneck. Additionally, workloads - * should support the "insertstart" property, which tells them which record to start at. - */ - public static final String INSERT_COUNT_PROPERTY="insertcount"; - - /** - * The maximum amount of time (in seconds) for which the benchmark will be run. - */ - public static final String MAX_EXECUTION_TIME = "maxexecutiontime"; - - public static void usageMessage() - { - System.out.println("Usage: java com.yahoo.ycsb.Client [options]"); - System.out.println("Options:"); - System.out.println(" -threads n: execute using n threads (default: 1) - can also be specified as the \n" + - " \"threadcount\" property using -p"); - System.out.println(" -target n: attempt to do n operations per second (default: unlimited) - can also\n" + - " be specified as the \"target\" property using -p"); - System.out.println(" -load: run the loading phase of the workload"); - System.out.println(" -t: run the transactions phase of the workload (default)"); - System.out.println(" -db dbname: specify the name of the DB to use (default: com.yahoo.ycsb.BasicDB) - \n" + - " can also be specified as the \"db\" property using -p"); - System.out.println(" -P propertyfile: load properties from the given file. Multiple files can"); - System.out.println(" be specified, and will be processed in the order specified"); - System.out.println(" -p name=value: specify a property to be passed to the DB and workloads;"); - System.out.println(" multiple properties can be specified, and override any"); - System.out.println(" values in the propertyfile"); - System.out.println(" -s: show status during run (default: no status)"); - System.out.println(" -l label: use label for status (e.g. to label one experiment out of a whole batch)"); - System.out.println(""); - System.out.println("Required properties:"); - System.out.println(" "+WORKLOAD_PROPERTY+": the name of the workload class to use (e.g. com.yahoo.ycsb.workloads.CoreWorkload)"); - System.out.println(""); - System.out.println("To run the transaction phase from multiple servers, start a separate client on each."); - System.out.println("To run the load phase from multiple servers, start a separate client on each; additionally,"); - System.out.println("use the \"insertcount\" and \"insertstart\" properties to divide up the records to be inserted"); - } - - public static boolean checkRequiredProperties(Properties props) - { - if (props.getProperty(WORKLOAD_PROPERTY)==null) - { - System.out.println("Missing property: "+WORKLOAD_PROPERTY); - return false; - } - - return true; - } - - - /** - * Exports the measurements to either sysout or a file using the exporter - * loaded from conf. - * @throws IOException Either failed to write to output stream or failed to close it. - */ - private static void exportMeasurements(Properties props, int opcount, long runtime) - throws IOException - { - MeasurementsExporter exporter = null; - try - { - // if no destination file is provided the results will be written to stdout - OutputStream out; - String exportFile = props.getProperty("exportfile"); - if (exportFile == null) - { - out = System.out; - } else - { - out = new FileOutputStream(exportFile); - } - - // if no exporter is provided the default text one will be used - String exporterStr = props.getProperty("exporter", "com.yahoo.ycsb.measurements.exporter.TextMeasurementsExporter"); - try - { - exporter = (MeasurementsExporter) Class.forName(exporterStr).getConstructor(OutputStream.class).newInstance(out); - } catch (Exception e) - { - System.err.println("Could not find exporter " + exporterStr - + ", will use default text reporter."); - e.printStackTrace(); - exporter = new TextMeasurementsExporter(out); - } - - exporter.write("OVERALL", "RunTime(ms)", runtime); - double throughput = 1000.0 * ((double) opcount) / ((double) runtime); - exporter.write("OVERALL", "Throughput(ops/sec)", throughput); - - Measurements.getMeasurements().exportMeasurements(exporter); - } finally - { - if (exporter != null) - { - exporter.close(); - } - } - } - - @SuppressWarnings("unchecked") - public static void main(String[] args) - { - String dbname; - Properties props=new Properties(); - Properties fileprops=new Properties(); - boolean dotransactions=true; - int threadcount=1; - int target=0; - boolean status=false; - String label=""; - - //parse arguments - int argindex=0; - - if (args.length==0) - { - usageMessage(); - System.exit(0); - } - - while (args[argindex].startsWith("-")) - { - if (args[argindex].compareTo("-threads")==0) - { - argindex++; - if (argindex>=args.length) - { - usageMessage(); - System.exit(0); - } - int tcount=Integer.parseInt(args[argindex]); - props.setProperty("threadcount", tcount+""); - argindex++; - } - else if (args[argindex].compareTo("-target")==0) - { - argindex++; - if (argindex>=args.length) - { - usageMessage(); - System.exit(0); - } - int ttarget=Integer.parseInt(args[argindex]); - props.setProperty("target", ttarget+""); - argindex++; - } - else if (args[argindex].compareTo("-load")==0) - { - dotransactions=false; - argindex++; - } - else if (args[argindex].compareTo("-t")==0) - { - dotransactions=true; - argindex++; - } - else if (args[argindex].compareTo("-s")==0) - { - status=true; - argindex++; - } - else if (args[argindex].compareTo("-db")==0) - { - argindex++; - if (argindex>=args.length) - { - usageMessage(); - System.exit(0); - } - props.setProperty("db",args[argindex]); - argindex++; - } - else if (args[argindex].compareTo("-l")==0) - { - argindex++; - if (argindex>=args.length) - { - usageMessage(); - System.exit(0); - } - label=args[argindex]; - argindex++; - } - else if (args[argindex].compareTo("-P")==0) - { - argindex++; - if (argindex>=args.length) - { - usageMessage(); - System.exit(0); - } - String propfile=args[argindex]; - argindex++; - - Properties myfileprops=new Properties(); - try - { - myfileprops.load(new FileInputStream(propfile)); - } - catch (IOException e) - { - System.out.println(e.getMessage()); - System.exit(0); - } - - //Issue #5 - remove call to stringPropertyNames to make compilable under Java 1.5 - for (Enumeration e=myfileprops.propertyNames(); e.hasMoreElements(); ) - { - String prop=(String)e.nextElement(); - - fileprops.setProperty(prop,myfileprops.getProperty(prop)); - } - - } - else if (args[argindex].compareTo("-p")==0) - { - argindex++; - if (argindex>=args.length) - { - usageMessage(); - System.exit(0); - } - int eq=args[argindex].indexOf('='); - if (eq<0) - { - usageMessage(); - System.exit(0); - } - - String name=args[argindex].substring(0,eq); - String value=args[argindex].substring(eq+1); - props.put(name,value); - //System.out.println("["+name+"]=["+value+"]"); - argindex++; - } - else - { - System.out.println("Unknown option "+args[argindex]); - usageMessage(); - System.exit(0); - } - - if (argindex>=args.length) - { - break; - } - } - - if (argindex!=args.length) - { - usageMessage(); - System.exit(0); - } - - //set up logging - //BasicConfigurator.configure(); - - //overwrite file properties with properties from the command line - - //Issue #5 - remove call to stringPropertyNames to make compilable under Java 1.5 - for (Enumeration e=props.propertyNames(); e.hasMoreElements(); ) - { - String prop=(String)e.nextElement(); - - fileprops.setProperty(prop,props.getProperty(prop)); - } - - props=fileprops; - - if (!checkRequiredProperties(props)) - { - System.exit(0); - } - - long maxExecutionTime = Integer.parseInt(props.getProperty(MAX_EXECUTION_TIME, "0")); - - //get number of threads, target and db - threadcount=Integer.parseInt(props.getProperty("threadcount","1")); - dbname=props.getProperty("db","com.yahoo.ycsb.BasicDB"); - target=Integer.parseInt(props.getProperty("target","0")); - - //compute the target throughput - double targetperthreadperms=-1; - if (target>0) - { - double targetperthread=((double)target)/((double)threadcount); - targetperthreadperms=targetperthread/1000.0; - } - - System.out.println("YCSB Client 0.1"); - System.out.print("Command line:"); - for (int i=0; i threads=new Vector(); - - for (int threadid=0; threadid 0) { - terminator = new TerminatorThread(maxExecutionTime, threads, workload); - terminator.start(); - } - - int opsDone = 0; - - for (Thread t : threads) - { - try - { - t.join(); - opsDone += ((ClientThread)t).getOpsDone(); - } - catch (InterruptedException e) - { - } - } - - long en=System.currentTimeMillis(); - - if (terminator != null && !terminator.isInterrupted()) { - terminator.interrupt(); - } - - if (status) - { - statusthread.interrupt(); - } - - try - { - workload.cleanup(); - } - catch (WorkloadException e) - { - e.printStackTrace(); - e.printStackTrace(System.out); - System.exit(0); - } - - try - { - exportMeasurements(props, opsDone, en - st); - } catch (IOException e) - { - System.err.println("Could not export measurements, error: " + e.getMessage()); - e.printStackTrace(); - System.exit(-1); - } - - System.exit(0); - } -} DELETED YCSB/core/src/main/java/com/yahoo/ycsb/CommandLine.java Index: YCSB/core/src/main/java/com/yahoo/ycsb/CommandLine.java ================================================================== --- YCSB/core/src/main/java/com/yahoo/ycsb/CommandLine.java +++ /dev/null @@ -1,410 +0,0 @@ -/** - * Copyright (c) 2010 Yahoo! Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you - * may not use this file except in compliance with the License. You - * may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - * implied. See the License for the specific language governing - * permissions and limitations under the License. See accompanying - * LICENSE file. - */ - -package com.yahoo.ycsb; - -import java.util.Properties; -import java.io.FileInputStream; -import java.io.IOException; -import java.util.Enumeration; -import java.io.BufferedReader; -import java.io.InputStreamReader; -import java.util.HashMap; -import java.util.Map; -import java.util.Set; -import java.util.HashSet; -import java.util.Vector; - -import com.yahoo.ycsb.workloads.*; - -/** - * A simple command line client to a database, using the appropriate com.yahoo.ycsb.DB implementation. - */ -public class CommandLine -{ - public static final String DEFAULT_DB="com.yahoo.ycsb.BasicDB"; - - public static void usageMessage() - { - System.out.println("YCSB Command Line Client"); - System.out.println("Usage: java com.yahoo.ycsb.CommandLine [options]"); - System.out.println("Options:"); - System.out.println(" -P filename: Specify a property file"); - System.out.println(" -p name=value: Specify a property value"); - System.out.println(" -db classname: Use a specified DB class (can also set the \"db\" property)"); - System.out.println(" -table tablename: Use the table name instead of the default \""+CoreWorkload.TABLENAME_PROPERTY_DEFAULT+"\""); - System.out.println(); - } - - public static void help() - { - System.out.println("Commands:"); - System.out.println(" read key [field1 field2 ...] - Read a record"); - System.out.println(" scan key recordcount [field1 field2 ...] - Scan starting at key"); - System.out.println(" insert key name1=value1 [name2=value2 ...] - Insert a new record"); - System.out.println(" update key name1=value1 [name2=value2 ...] - Update a record"); - System.out.println(" delete key - Delete a record"); - System.out.println(" table [tablename] - Get or [set] the name of the table"); - System.out.println(" quit - Quit"); - } - - public static void main(String[] args) - { - int argindex=0; - - Properties props=new Properties(); - Properties fileprops=new Properties(); - String table=CoreWorkload.TABLENAME_PROPERTY_DEFAULT; - - while ( (argindex=args.length) - { - usageMessage(); - System.exit(0); - } - props.setProperty("db",args[argindex]); - argindex++; - } - else if (args[argindex].compareTo("-P")==0) - { - argindex++; - if (argindex>=args.length) - { - usageMessage(); - System.exit(0); - } - String propfile=args[argindex]; - argindex++; - - Properties myfileprops=new Properties(); - try - { - myfileprops.load(new FileInputStream(propfile)); - } - catch (IOException e) - { - System.out.println(e.getMessage()); - System.exit(0); - } - - for (Enumeration e=myfileprops.propertyNames(); e.hasMoreElements(); ) - { - String prop=(String)e.nextElement(); - - fileprops.setProperty(prop,myfileprops.getProperty(prop)); - } - - } - else if (args[argindex].compareTo("-p")==0) - { - argindex++; - if (argindex>=args.length) - { - usageMessage(); - System.exit(0); - } - int eq=args[argindex].indexOf('='); - if (eq<0) - { - usageMessage(); - System.exit(0); - } - - String name=args[argindex].substring(0,eq); - String value=args[argindex].substring(eq+1); - props.put(name,value); - //System.out.println("["+name+"]=["+value+"]"); - argindex++; - } - else if (args[argindex].compareTo("-table")==0) - { - argindex++; - if (argindex>=args.length) - { - usageMessage(); - System.exit(0); - } - table=args[argindex]; - argindex++; - } - else - { - System.out.println("Unknown option "+args[argindex]); - usageMessage(); - System.exit(0); - } - - if (argindex>=args.length) - { - break; - } - } - - if (argindex!=args.length) - { - usageMessage(); - System.exit(0); - } - - for (Enumeration e=props.propertyNames(); e.hasMoreElements(); ) - { - String prop=(String)e.nextElement(); - - fileprops.setProperty(prop,props.getProperty(prop)); - } - - props=fileprops; - - System.out.println("YCSB Command Line client"); - System.out.println("Type \"help\" for command line help"); - System.out.println("Start with \"-help\" for usage info"); - - //create a DB - String dbname=props.getProperty("db",DEFAULT_DB); - - ClassLoader classLoader = CommandLine.class.getClassLoader(); - - DB db=null; - - try - { - Class dbclass = classLoader.loadClass(dbname); - db=(DB)dbclass.newInstance(); - } - catch (Exception e) - { - e.printStackTrace(); - System.exit(0); - } - - db.setProperties(props); - try - { - db.init(); - } - catch (DBException e) - { - e.printStackTrace(); - System.exit(0); - } - - System.out.println("Connected."); - - //main loop - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - - for (;;) - { - //get user input - System.out.print("> "); - - String input=null; - - try - { - input=br.readLine(); - } - catch (IOException e) - { - e.printStackTrace(); - System.exit(1); - } - - if (input.compareTo("")==0) - { - continue; - } - - if (input.compareTo("help")==0) - { - help(); - continue; - } - - if (input.compareTo("quit")==0) - { - break; - } - - String[] tokens=input.split(" "); - - long st=System.currentTimeMillis(); - //handle commands - if (tokens[0].compareTo("table")==0) - { - if (tokens.length==1) - { - System.out.println("Using table \""+table+"\""); - } - else if (tokens.length==2) - { - table=tokens[1]; - System.out.println("Using table \""+table+"\""); - } - else - { - System.out.println("Error: syntax is \"table tablename\""); - } - } - else if (tokens[0].compareTo("read")==0) - { - if (tokens.length==1) - { - System.out.println("Error: syntax is \"read keyname [field1 field2 ...]\""); - } - else - { - Set fields=null; - - if (tokens.length>2) - { - fields=new HashSet(); - - for (int i=2; i result=new HashMap(); - int ret=db.read(table,tokens[1],fields,result); - System.out.println("Return code: "+ret); - for (Map.Entry ent : result.entrySet()) - { - System.out.println(ent.getKey()+"="+ent.getValue()); - } - } - } - else if (tokens[0].compareTo("scan")==0) - { - if (tokens.length<3) - { - System.out.println("Error: syntax is \"scan keyname scanlength [field1 field2 ...]\""); - } - else - { - Set fields=null; - - if (tokens.length>3) - { - fields=new HashSet(); - - for (int i=3; i> results=new Vector>(); - int ret=db.scan(table,tokens[1],Integer.parseInt(tokens[2]),fields,results); - System.out.println("Return code: "+ret); - int record=0; - if (results.size()==0) - { - System.out.println("0 records"); - } - else - { - System.out.println("--------------------------------"); - } - for (HashMap result : results) - { - System.out.println("Record "+(record++)); - for (Map.Entry ent : result.entrySet()) - { - System.out.println(ent.getKey()+"="+ent.getValue()); - } - System.out.println("--------------------------------"); - } - } - } - else if (tokens[0].compareTo("update")==0) - { - if (tokens.length<3) - { - System.out.println("Error: syntax is \"update keyname name1=value1 [name2=value2 ...]\""); - } - else - { - HashMap values=new HashMap(); - - for (int i=2; i values=new HashMap(); - - for (int i=2; i fields, HashMap result); - - /** - * Perform a range scan for a set of records in the database. Each field/value pair from the result will be stored in a HashMap. - * - * @param table The name of the table - * @param startkey The record key of the first record to read. - * @param recordcount The number of records to read - * @param fields The list of fields to read, or null for all of them - * @param result A Vector of HashMaps, where each HashMap is a set field/value pairs for one record - * @return Zero on success, a non-zero error code on error. See this class's description for a discussion of error codes. - */ - public abstract int scan(String table, String startkey, int recordcount, Set fields, Vector> result); - - /** - * Update a record in the database. Any field/value pairs in the specified values HashMap will be written into the record with the specified - * record key, overwriting any existing values with the same field name. - * - * @param table The name of the table - * @param key The record key of the record to write. - * @param values A HashMap of field/value pairs to update in the record - * @return Zero on success, a non-zero error code on error. See this class's description for a discussion of error codes. - */ - public abstract int update(String table, String key, HashMap values); - - /** - * Insert a record in the database. Any field/value pairs in the specified values HashMap will be written into the record with the specified - * record key. - * - * @param table The name of the table - * @param key The record key of the record to insert. - * @param values A HashMap of field/value pairs to insert in the record - * @return Zero on success, a non-zero error code on error. See this class's description for a discussion of error codes. - */ - public abstract int insert(String table, String key, HashMap values); - - /** - * Delete a record from the database. - * - * @param table The name of the table - * @param key The record key of the record to delete. - * @return Zero on success, a non-zero error code on error. See this class's description for a discussion of error codes. - */ - public abstract int delete(String table, String key); -} DELETED YCSB/core/src/main/java/com/yahoo/ycsb/DBException.java Index: YCSB/core/src/main/java/com/yahoo/ycsb/DBException.java ================================================================== --- YCSB/core/src/main/java/com/yahoo/ycsb/DBException.java +++ /dev/null @@ -1,50 +0,0 @@ -/** - * Copyright (c) 2010 Yahoo! Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you - * may not use this file except in compliance with the License. You - * may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - * implied. See the License for the specific language governing - * permissions and limitations under the License. See accompanying - * LICENSE file. - */ - -package com.yahoo.ycsb; - -/** - * Something bad happened while interacting with the database. - */ -public class DBException extends Exception -{ - /** - * - */ - private static final long serialVersionUID = 6646883591588721475L; - - public DBException(String message) - { - super(message); - } - - public DBException() - { - super(); - } - - public DBException(String message, Throwable cause) - { - super(message,cause); - } - - public DBException(Throwable cause) - { - super(cause); - } - -} DELETED YCSB/core/src/main/java/com/yahoo/ycsb/DBFactory.java Index: YCSB/core/src/main/java/com/yahoo/ycsb/DBFactory.java ================================================================== --- YCSB/core/src/main/java/com/yahoo/ycsb/DBFactory.java +++ /dev/null @@ -1,52 +0,0 @@ -/** - * Copyright (c) 2010 Yahoo! Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you - * may not use this file except in compliance with the License. You - * may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - * implied. See the License for the specific language governing - * permissions and limitations under the License. See accompanying - * LICENSE file. - */ - -package com.yahoo.ycsb; - -import java.util.Properties; - -/** - * Creates a DB layer by dynamically classloading the specified DB class. - */ -public class DBFactory -{ - @SuppressWarnings("unchecked") - public static DB newDB(String dbname, Properties properties) throws UnknownDBException - { - ClassLoader classLoader = DBFactory.class.getClassLoader(); - - DB ret=null; - - try - { - Class dbclass = classLoader.loadClass(dbname); - //System.out.println("dbclass.getName() = " + dbclass.getName()); - - ret=(DB)dbclass.newInstance(); - } - catch (Exception e) - { - e.printStackTrace(); - return null; - } - - ret.setProperties(properties); - - return new DBWrapper(ret); - } - -} DELETED YCSB/core/src/main/java/com/yahoo/ycsb/DBWrapper.java Index: YCSB/core/src/main/java/com/yahoo/ycsb/DBWrapper.java ================================================================== --- YCSB/core/src/main/java/com/yahoo/ycsb/DBWrapper.java +++ /dev/null @@ -1,171 +0,0 @@ -/** - * Copyright (c) 2010 Yahoo! Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you - * may not use this file except in compliance with the License. You - * may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - * implied. See the License for the specific language governing - * permissions and limitations under the License. See accompanying - * LICENSE file. - */ - -package com.yahoo.ycsb; - -import java.util.HashMap; -import java.util.Properties; -import java.util.Set; -import java.util.Vector; - -import com.yahoo.ycsb.measurements.Measurements; - -/** - * Wrapper around a "real" DB that measures latencies and counts return codes. - */ -public class DBWrapper extends DB -{ - DB _db; - Measurements _measurements; - - public DBWrapper(DB db) - { - _db=db; - _measurements=Measurements.getMeasurements(); - } - - /** - * Set the properties for this DB. - */ - public void setProperties(Properties p) - { - _db.setProperties(p); - } - - /** - * Get the set of properties for this DB. - */ - public Properties getProperties() - { - return _db.getProperties(); - } - - /** - * Initialize any state for this DB. - * Called once per DB instance; there is one DB instance per client thread. - */ - public void init() throws DBException - { - _db.init(); - } - - /** - * Cleanup any state for this DB. - * Called once per DB instance; there is one DB instance per client thread. - */ - public void cleanup() throws DBException - { - long st=System.nanoTime(); - _db.cleanup(); - long en=System.nanoTime(); - _measurements.measure("CLEANUP", (int)((en-st)/1000)); - } - - /** - * Read a record from the database. Each field/value pair from the result will be stored in a HashMap. - * - * @param table The name of the table - * @param key The record key of the record to read. - * @param fields The list of fields to read, or null for all of them - * @param result A HashMap of field/value pairs for the result - * @return Zero on success, a non-zero error code on error - */ - public int read(String table, String key, Set fields, HashMap result) - { - long st=System.nanoTime(); - int res=_db.read(table,key,fields,result); - long en=System.nanoTime(); - _measurements.measure("READ",(int)((en-st)/1000)); - _measurements.reportReturnCode("READ",res); - return res; - } - - /** - * Perform a range scan for a set of records in the database. Each field/value pair from the result will be stored in a HashMap. - * - * @param table The name of the table - * @param startkey The record key of the first record to read. - * @param recordcount The number of records to read - * @param fields The list of fields to read, or null for all of them - * @param result A Vector of HashMaps, where each HashMap is a set field/value pairs for one record - * @return Zero on success, a non-zero error code on error - */ - public int scan(String table, String startkey, int recordcount, Set fields, Vector> result) - { - long st=System.nanoTime(); - int res=_db.scan(table,startkey,recordcount,fields,result); - long en=System.nanoTime(); - _measurements.measure("SCAN",(int)((en-st)/1000)); - _measurements.reportReturnCode("SCAN",res); - return res; - } - - /** - * Update a record in the database. Any field/value pairs in the specified values HashMap will be written into the record with the specified - * record key, overwriting any existing values with the same field name. - * - * @param table The name of the table - * @param key The record key of the record to write. - * @param values A HashMap of field/value pairs to update in the record - * @return Zero on success, a non-zero error code on error - */ - public int update(String table, String key, HashMap values) - { - long st=System.nanoTime(); - int res=_db.update(table,key,values); - long en=System.nanoTime(); - _measurements.measure("UPDATE",(int)((en-st)/1000)); - _measurements.reportReturnCode("UPDATE",res); - return res; - } - - /** - * Insert a record in the database. Any field/value pairs in the specified values HashMap will be written into the record with the specified - * record key. - * - * @param table The name of the table - * @param key The record key of the record to insert. - * @param values A HashMap of field/value pairs to insert in the record - * @return Zero on success, a non-zero error code on error - */ - public int insert(String table, String key, HashMap values) - { - long st=System.nanoTime(); - int res=_db.insert(table,key,values); - long en=System.nanoTime(); - _measurements.measure("INSERT",(int)((en-st)/1000)); - _measurements.reportReturnCode("INSERT",res); - return res; - } - - /** - * Delete a record from the database. - * - * @param table The name of the table - * @param key The record key of the record to delete. - * @return Zero on success, a non-zero error code on error - */ - public int delete(String table, String key) - { - long st=System.nanoTime(); - int res=_db.delete(table,key); - long en=System.nanoTime(); - _measurements.measure("DELETE",(int)((en-st)/1000)); - _measurements.reportReturnCode("DELETE",res); - return res; - } -} DELETED YCSB/core/src/main/java/com/yahoo/ycsb/InputStreamByteIterator.java Index: YCSB/core/src/main/java/com/yahoo/ycsb/InputStreamByteIterator.java ================================================================== --- YCSB/core/src/main/java/com/yahoo/ycsb/InputStreamByteIterator.java +++ /dev/null @@ -1,55 +0,0 @@ -/** - * Copyright (c) 2010 Yahoo! Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you - * may not use this file except in compliance with the License. You - * may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - * implied. See the License for the specific language governing - * permissions and limitations under the License. See accompanying - * LICENSE file. - */ -package com.yahoo.ycsb; - -import java.io.InputStream; - -public class InputStreamByteIterator extends ByteIterator { - long len; - InputStream ins; - long off; - - public InputStreamByteIterator(InputStream ins, long len) { - this.len = len; - this.ins = ins; - off = 0; - } - - @Override - public boolean hasNext() { - return off < len; - } - - @Override - public byte nextByte() { - int ret; - try { - ret = ins.read(); - } catch(Exception e) { - throw new IllegalStateException(e); - } - if(ret == -1) { throw new IllegalStateException("Past EOF!"); } - off++; - return (byte)ret; - } - - @Override - public long bytesLeft() { - return len - off; - } - -} DELETED YCSB/core/src/main/java/com/yahoo/ycsb/RandomByteIterator.java Index: YCSB/core/src/main/java/com/yahoo/ycsb/RandomByteIterator.java ================================================================== --- YCSB/core/src/main/java/com/yahoo/ycsb/RandomByteIterator.java +++ /dev/null @@ -1,87 +0,0 @@ -/** - * Copyright (c) 2010 Yahoo! Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you - * may not use this file except in compliance with the License. You - * may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - * implied. See the License for the specific language governing - * permissions and limitations under the License. See accompanying - * LICENSE file. - */ -package com.yahoo.ycsb; - -/** - * A ByteIterator that generates a random sequence of bytes. - */ -public class RandomByteIterator extends ByteIterator { - private long len; - private long off; - private int bufOff; - private byte[] buf; - - @Override - public boolean hasNext() { - return (off + bufOff) < len; - } - - private void fillBytesImpl(byte[] buffer, int base) { - int bytes = Utils.random().nextInt(); - try { - buffer[base+0] = (byte)(((bytes) & 31) + ' '); - buffer[base+1] = (byte)(((bytes >> 5) & 31) + ' '); - buffer[base+2] = (byte)(((bytes >> 10) & 31) + ' '); - buffer[base+3] = (byte)(((bytes >> 15) & 31) + ' '); - buffer[base+4] = (byte)(((bytes >> 20) & 31) + ' '); - buffer[base+5] = (byte)(((bytes >> 25) & 31) + ' '); - } catch (ArrayIndexOutOfBoundsException e) { /* ignore it */ } - } - - private void fillBytes() { - if(bufOff == buf.length) { - fillBytesImpl(buf, 0); - bufOff = 0; - off += buf.length; - } - } - - public RandomByteIterator(long len) { - this.len = len; - this.buf = new byte[6]; - this.bufOff = buf.length; - fillBytes(); - this.off = 0; - } - - public byte nextByte() { - fillBytes(); - bufOff++; - return buf[bufOff-1]; - } - - @Override - public int nextBuf(byte[] buffer, int bufferOffset) { - int ret; - if(len - off < buffer.length - bufferOffset) { - ret = (int)(len - off); - } else { - ret = buffer.length - bufferOffset; - } - int i; - for(i = 0; i < ret; i+=6) { - fillBytesImpl(buffer, i + bufferOffset); - } - off+=ret; - return ret + bufferOffset; - } - - @Override - public long bytesLeft() { - return len - off - bufOff; - } -} DELETED YCSB/core/src/main/java/com/yahoo/ycsb/StringByteIterator.java Index: YCSB/core/src/main/java/com/yahoo/ycsb/StringByteIterator.java ================================================================== --- YCSB/core/src/main/java/com/yahoo/ycsb/StringByteIterator.java +++ /dev/null @@ -1,108 +0,0 @@ -/** - * Copyright (c) 2010 Yahoo! Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you - * may not use this file except in compliance with the License. You - * may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - * implied. See the License for the specific language governing - * permissions and limitations under the License. See accompanying - * LICENSE file. - */ - -package com.yahoo.ycsb; - -import java.util.Map; -import java.util.HashMap; - -public class StringByteIterator extends ByteIterator { - String str; - int off; - - /** - * Put all of the entries of one map into the other, converting - * String values into ByteIterators. - */ - public static void putAllAsByteIterators(Map out, Map in) { - for(String s: in.keySet()) { out.put(s, new StringByteIterator(in.get(s))); } - } - - /** - * Put all of the entries of one map into the other, converting - * ByteIterator values into Strings. - */ - public static void putAllAsStrings(Map out, Map in) { - for(String s: in.keySet()) { out.put(s, in.get(s).toString()); } - } - - /** - * Create a copy of a map, converting the values from Strings to - * StringByteIterators. - */ - public static HashMap getByteIteratorMap(Map m) { - HashMap ret = - new HashMap(); - - for(String s: m.keySet()) { - ret.put(s, new StringByteIterator(m.get(s))); - } - return ret; - } - - /** - * Create a copy of a map, converting the values from - * StringByteIterators to Strings. - */ - public static HashMap getStringMap(Map m) { - HashMap ret = new HashMap(); - - for(String s: m.keySet()) { - ret.put(s, m.get(s).toString());; - } - return ret; - } - - public StringByteIterator(String s) { - this.str = s; - this.off = 0; - } - @Override - public boolean hasNext() { - return off < str.length(); - } - - @Override - public byte nextByte() { - byte ret = (byte)str.charAt(off); - off++; - return ret; - } - - @Override - public long bytesLeft() { - return str.length() - off; - } - - /** - * Specialization of general purpose toString() to avoid unnecessary - * copies. - *

- * Creating a new StringByteIterator, then calling toString() - * yields the original String object, and does not perform any copies - * or String conversion operations. - *

- */ - @Override - public String toString() { - if(off > 0) { - return super.toString(); - } else { - return str; - } - } -} DELETED YCSB/core/src/main/java/com/yahoo/ycsb/TerminatorThread.java Index: YCSB/core/src/main/java/com/yahoo/ycsb/TerminatorThread.java ================================================================== --- YCSB/core/src/main/java/com/yahoo/ycsb/TerminatorThread.java +++ /dev/null @@ -1,70 +0,0 @@ -/** - * Copyright (c) 2011 Yahoo! Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you - * may not use this file except in compliance with the License. You - * may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - * implied. See the License for the specific language governing - * permissions and limitations under the License. See accompanying - * LICENSE file. - */ -package com.yahoo.ycsb; - -import java.util.Vector; - -/** - * A thread that waits for the maximum specified time and then interrupts all the client - * threads passed as the Vector at initialization of this thread. - * - * The maximum execution time passed is assumed to be in seconds. - * - * @author sudipto - * - */ -public class TerminatorThread extends Thread { - - private Vector threads; - private long maxExecutionTime; - private Workload workload; - private long waitTimeOutInMS; - - public TerminatorThread(long maxExecutionTime, Vector threads, - Workload workload) { - this.maxExecutionTime = maxExecutionTime; - this.threads = threads; - this.workload = workload; - waitTimeOutInMS = 2000; - System.err.println("Maximum execution time specified as: " + maxExecutionTime + " secs"); - } - - public void run() { - try { - Thread.sleep(maxExecutionTime * 1000); - } catch (InterruptedException e) { - System.err.println("Could not wait until max specified time, TerminatorThread interrupted."); - return; - } - System.err.println("Maximum time elapsed. Requesting stop for the workload."); - workload.requestStop(); - System.err.println("Stop requested for workload. Now Joining!"); - for (Thread t : threads) { - while (t.isAlive()) { - try { - t.join(waitTimeOutInMS); - if (t.isAlive()) { - System.err.println("Still waiting for thread " + t.getName() + " to complete. " + - "Workload status: " + workload.isStopRequested()); - } - } catch (InterruptedException e) { - // Do nothing. Don't know why I was interrupted. - } - } - } - } -} DELETED YCSB/core/src/main/java/com/yahoo/ycsb/UnknownDBException.java Index: YCSB/core/src/main/java/com/yahoo/ycsb/UnknownDBException.java ================================================================== --- YCSB/core/src/main/java/com/yahoo/ycsb/UnknownDBException.java +++ /dev/null @@ -1,50 +0,0 @@ -/** - * Copyright (c) 2010 Yahoo! Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you - * may not use this file except in compliance with the License. You - * may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - * implied. See the License for the specific language governing - * permissions and limitations under the License. See accompanying - * LICENSE file. - */ - -package com.yahoo.ycsb; - -/** - * Could not create the specified DB. - */ -public class UnknownDBException extends Exception -{ - /** - * - */ - private static final long serialVersionUID = 459099842269616836L; - - public UnknownDBException(String message) - { - super(message); - } - - public UnknownDBException() - { - super(); - } - - public UnknownDBException(String message, Throwable cause) - { - super(message,cause); - } - - public UnknownDBException(Throwable cause) - { - super(cause); - } - -} DELETED YCSB/core/src/main/java/com/yahoo/ycsb/Utils.java Index: YCSB/core/src/main/java/com/yahoo/ycsb/Utils.java ================================================================== --- YCSB/core/src/main/java/com/yahoo/ycsb/Utils.java +++ /dev/null @@ -1,116 +0,0 @@ -/** - * Copyright (c) 2010 Yahoo! Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you - * may not use this file except in compliance with the License. You - * may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - * implied. See the License for the specific language governing - * permissions and limitations under the License. See accompanying - * LICENSE file. - */ - -package com.yahoo.ycsb; - -import java.util.Random; - -/** - * Utility functions. - */ -public class Utils -{ - private static final Random rand = new Random(); - private static final ThreadLocal rng = new ThreadLocal(); - - public static Random random() { - Random ret = rng.get(); - if(ret == null) { - ret = new Random(rand.nextLong()); - rng.set(ret); - } - return ret; - } - /** - * Generate a random ASCII string of a given length. - */ - public static String ASCIIString(int length) - { - int interval='~'-' '+1; - - byte []buf = new byte[length]; - random().nextBytes(buf); - for (int i = 0; i < length; i++) { - if (buf[i] < 0) { - buf[i] = (byte)((-buf[i] % interval) + ' '); - } else { - buf[i] = (byte)((buf[i] % interval) + ' '); - } - } - return new String(buf); - } - - /** - * Hash an integer value. - */ - public static long hash(long val) - { - return FNVhash64(val); - } - - public static final int FNV_offset_basis_32=0x811c9dc5; - public static final int FNV_prime_32=16777619; - - /** - * 32 bit FNV hash. Produces more "random" hashes than (say) String.hashCode(). - * - * @param val The value to hash. - * @return The hash value - */ - public static int FNVhash32(int val) - { - //from http://en.wikipedia.org/wiki/Fowler_Noll_Vo_hash - int hashval = FNV_offset_basis_32; - - for (int i=0; i<4; i++) - { - int octet=val&0x00ff; - val=val>>8; - - hashval = hashval ^ octet; - hashval = hashval * FNV_prime_32; - //hashval = hashval ^ octet; - } - return Math.abs(hashval); - } - - public static final long FNV_offset_basis_64=0xCBF29CE484222325L; - public static final long FNV_prime_64=1099511628211L; - - /** - * 64 bit FNV hash. Produces more "random" hashes than (say) String.hashCode(). - * - * @param val The value to hash. - * @return The hash value - */ - public static long FNVhash64(long val) - { - //from http://en.wikipedia.org/wiki/Fowler_Noll_Vo_hash - long hashval = FNV_offset_basis_64; - - for (int i=0; i<8; i++) - { - long octet=val&0x00ff; - val=val>>8; - - hashval = hashval ^ octet; - hashval = hashval * FNV_prime_64; - //hashval = hashval ^ octet; - } - return Math.abs(hashval); - } -} DELETED YCSB/core/src/main/java/com/yahoo/ycsb/Workload.java Index: YCSB/core/src/main/java/com/yahoo/ycsb/Workload.java ================================================================== --- YCSB/core/src/main/java/com/yahoo/ycsb/Workload.java +++ /dev/null @@ -1,112 +0,0 @@ -/** - * Copyright (c) 2010 Yahoo! Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you - * may not use this file except in compliance with the License. You - * may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - * implied. See the License for the specific language governing - * permissions and limitations under the License. See accompanying - * LICENSE file. - */ - -package com.yahoo.ycsb; - -import java.util.Properties; -import java.util.concurrent.atomic.AtomicBoolean; - -/** - * One experiment scenario. One object of this type will - * be instantiated and shared among all client threads. This class - * should be constructed using a no-argument constructor, so we can - * load it dynamically. Any argument-based initialization should be - * done by init(). - * - * If you extend this class, you should support the "insertstart" property. This - * allows the load phase to proceed from multiple clients on different machines, in case - * the client is the bottleneck. For example, if we want to load 1 million records from - * 2 machines, the first machine should have insertstart=0 and the second insertstart=500000. Additionally, - * the "insertcount" property, which is interpreted by Client, can be used to tell each instance of the - * client how many inserts to do. In the example above, both clients should have insertcount=500000. - */ -public abstract class Workload -{ - public static final String INSERT_START_PROPERTY="insertstart"; - - public static final String INSERT_START_PROPERTY_DEFAULT="0"; - - private volatile AtomicBoolean stopRequested = new AtomicBoolean(false); - - /** - * Initialize the scenario. Create any generators and other shared objects here. - * Called once, in the main client thread, before any operations are started. - */ - public void init(Properties p) throws WorkloadException - { - } - - /** - * Initialize any state for a particular client thread. Since the scenario object - * will be shared among all threads, this is the place to create any state that is specific - * to one thread. To be clear, this means the returned object should be created anew on each - * call to initThread(); do not return the same object multiple times. - * The returned object will be passed to invocations of doInsert() and doTransaction() - * for this thread. There should be no side effects from this call; all state should be encapsulated - * in the returned object. If you have no state to retain for this thread, return null. (But if you have - * no state to retain for this thread, probably you don't need to override initThread().) - * - * @return false if the workload knows it is done for this thread. Client will terminate the thread. Return true otherwise. Return true for workloads that rely on operationcount. For workloads that read traces from a file, return true when there are more to do, false when you are done. - */ - public Object initThread(Properties p, int mythreadid, int threadcount) throws WorkloadException - { - return null; - } - - /** - * Cleanup the scenario. Called once, in the main client thread, after all operations have completed. - */ - public void cleanup() throws WorkloadException - { - } - - /** - * Do one insert operation. Because it will be called concurrently from multiple client threads, this - * function must be thread safe. However, avoid synchronized, or the threads will block waiting for each - * other, and it will be difficult to reach the target throughput. Ideally, this function would have no side - * effects other than DB operations and mutations on threadstate. Mutations to threadstate do not need to be - * synchronized, since each thread has its own threadstate instance. - */ - public abstract boolean doInsert(DB db, Object threadstate); - - /** - * Do one transaction operation. Because it will be called concurrently from multiple client threads, this - * function must be thread safe. However, avoid synchronized, or the threads will block waiting for each - * other, and it will be difficult to reach the target throughput. Ideally, this function would have no side - * effects other than DB operations and mutations on threadstate. Mutations to threadstate do not need to be - * synchronized, since each thread has its own threadstate instance. - * - * @return false if the workload knows it is done for this thread. Client will terminate the thread. Return true otherwise. Return true for workloads that rely on operationcount. For workloads that read traces from a file, return true when there are more to do, false when you are done. - */ - public abstract boolean doTransaction(DB db, Object threadstate); - - /** - * Allows scheduling a request to stop the workload. - */ - public void requestStop() { - stopRequested.set(true); - } - - /** - * Check the status of the stop request flag. - * @return true if stop was requested, false otherwise. - */ - public boolean isStopRequested() { - if (stopRequested.get() == true) return true; - else return false; - } -} DELETED YCSB/core/src/main/java/com/yahoo/ycsb/WorkloadException.java Index: YCSB/core/src/main/java/com/yahoo/ycsb/WorkloadException.java ================================================================== --- YCSB/core/src/main/java/com/yahoo/ycsb/WorkloadException.java +++ /dev/null @@ -1,50 +0,0 @@ -/** - * Copyright (c) 2010 Yahoo! Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you - * may not use this file except in compliance with the License. You - * may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - * implied. See the License for the specific language governing - * permissions and limitations under the License. See accompanying - * LICENSE file. - */ - -package com.yahoo.ycsb; - -/** - * The workload tried to do something bad. - */ -public class WorkloadException extends Exception -{ - /** - * - */ - private static final long serialVersionUID = 8844396756042772132L; - - public WorkloadException(String message) - { - super(message); - } - - public WorkloadException() - { - super(); - } - - public WorkloadException(String message, Throwable cause) - { - super(message,cause); - } - - public WorkloadException(Throwable cause) - { - super(cause); - } - -} DELETED YCSB/core/src/main/java/com/yahoo/ycsb/generator/ConstantIntegerGenerator.java Index: YCSB/core/src/main/java/com/yahoo/ycsb/generator/ConstantIntegerGenerator.java ================================================================== --- YCSB/core/src/main/java/com/yahoo/ycsb/generator/ConstantIntegerGenerator.java +++ /dev/null @@ -1,44 +0,0 @@ -/** - * Copyright (c) 2010 Yahoo! Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you - * may not use this file except in compliance with the License. You - * may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - * implied. See the License for the specific language governing - * permissions and limitations under the License. See accompanying - * LICENSE file. - */ -package com.yahoo.ycsb.generator; - -/** - * A trivial integer generator that always returns the same value. - * - * @author sears - * - */ -public class ConstantIntegerGenerator extends IntegerGenerator { - private final int i; - /** - * @param i The integer that this generator will always return. - */ - public ConstantIntegerGenerator(int i) { - this.i = i; - } - - @Override - public int nextInt() { - return i; - } - - @Override - public double mean() { - return i; - } - -} DELETED YCSB/core/src/main/java/com/yahoo/ycsb/generator/CounterGenerator.java Index: YCSB/core/src/main/java/com/yahoo/ycsb/generator/CounterGenerator.java ================================================================== --- YCSB/core/src/main/java/com/yahoo/ycsb/generator/CounterGenerator.java +++ /dev/null @@ -1,57 +0,0 @@ -/** - * Copyright (c) 2010 Yahoo! Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you - * may not use this file except in compliance with the License. You - * may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - * implied. See the License for the specific language governing - * permissions and limitations under the License. See accompanying - * LICENSE file. - */ - -package com.yahoo.ycsb.generator; - -import java.util.concurrent.atomic.AtomicInteger; - -/** - * Generates a sequence of integers 0, 1, ... - */ -public class CounterGenerator extends IntegerGenerator -{ - final AtomicInteger counter; - - /** - * Create a counter that starts at countstart - */ - public CounterGenerator(int countstart) - { - counter=new AtomicInteger(countstart); - setLastInt(counter.get()-1); - } - - /** - * If the generator returns numeric (integer) values, return the next value as an int. Default is to return -1, which - * is appropriate for generators that do not return numeric values. - */ - public int nextInt() - { - int ret = counter.getAndIncrement(); - setLastInt(ret); - return ret; - } - @Override - public int lastInt() - { - return counter.get() - 1; - } - @Override - public double mean() { - throw new UnsupportedOperationException("Can't compute mean of non-stationary distribution!"); - } -} DELETED YCSB/core/src/main/java/com/yahoo/ycsb/generator/DiscreteGenerator.java Index: YCSB/core/src/main/java/com/yahoo/ycsb/generator/DiscreteGenerator.java ================================================================== --- YCSB/core/src/main/java/com/yahoo/ycsb/generator/DiscreteGenerator.java +++ /dev/null @@ -1,114 +0,0 @@ -/** - * Copyright (c) 2010 Yahoo! Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you - * may not use this file except in compliance with the License. You - * may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - * implied. See the License for the specific language governing - * permissions and limitations under the License. See accompanying - * LICENSE file. - */ - -package com.yahoo.ycsb.generator; - -import java.util.Vector; -import java.util.Random; - -import com.yahoo.ycsb.Utils; -import com.yahoo.ycsb.WorkloadException; - -/** - * Generates a distribution by choosing from a discrete set of values. - */ -public class DiscreteGenerator extends Generator -{ - class Pair - { - public double _weight; - public String _value; - - Pair(double weight, String value) - { - _weight=weight; - _value=value; - } - } - - Vector _values; - String _lastvalue; - - public DiscreteGenerator() - { - _values=new Vector(); - _lastvalue=null; - } - - /** - * Generate the next string in the distribution. - */ - public String nextString() - { - double sum=0; - - for (Pair p : _values) - { - sum+=p._weight; - } - - double val=Utils.random().nextDouble(); - - for (Pair p : _values) - { - if (val a = new ArrayList(); - - str = in.readLine(); - if(str == null) { - throw new IOException("Empty input file!\n"); - } - line = str.split("\t"); - if(line[0].compareTo("BlockSize") != 0) { - throw new IOException("First line of histogram is not the BlockSize!\n"); - } - block_size = Integer.parseInt(line[1]); - - while((str = in.readLine()) != null){ - // [0] is the bucket, [1] is the value - line = str.split("\t"); - - a.add(Integer.parseInt(line[0]), Integer.parseInt(line[1])); - } - buckets = new long[a.size()]; - for(int i = 0; i < a.size(); i++) { - buckets[i] = a.get(i); - } - - in.close(); - init(); - } - - public HistogramGenerator(long[] buckets, int block_size) { - this.block_size = block_size; - this.buckets = buckets; - init(); - } - private void init() { - for(int i = 0; i < buckets.length; i++) { - area += buckets[i]; - weighted_area = i * buckets[i]; - } - // calculate average file size - mean_size = ((double)block_size) * ((double)weighted_area) / (double)(area); - } - - @Override - public int nextInt() { - int number = Utils.random().nextInt((int)area); - int i; - - for(i = 0; i < (buckets.length - 1); i++){ - number -= buckets[i]; - if(number <= 0){ - return (int)((i+1)*block_size); - } - } - - return (int)(i * block_size); - } - - @Override - public double mean() { - return mean_size; - } -} DELETED YCSB/core/src/main/java/com/yahoo/ycsb/generator/HotspotIntegerGenerator.java Index: YCSB/core/src/main/java/com/yahoo/ycsb/generator/HotspotIntegerGenerator.java ================================================================== --- YCSB/core/src/main/java/com/yahoo/ycsb/generator/HotspotIntegerGenerator.java +++ /dev/null @@ -1,124 +0,0 @@ -/** - * Copyright (c) 2010 Yahoo! Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you - * may not use this file except in compliance with the License. You - * may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - * implied. See the License for the specific language governing - * permissions and limitations under the License. See accompanying - * LICENSE file. - */ -package com.yahoo.ycsb.generator; - -import java.util.Random; - -import com.yahoo.ycsb.Utils; - -/** - * Generate integers resembling a hotspot distribution where x% of operations - * access y% of data items. The parameters specify the bounds for the numbers, - * the percentage of the of the interval which comprises the hot set and - * the percentage of operations that access the hot set. Numbers of the hot set are - * always smaller than any number in the cold set. Elements from the hot set and - * the cold set are chose using a uniform distribution. - * - * @author sudipto - * - */ -public class HotspotIntegerGenerator extends IntegerGenerator { - - private final int lowerBound; - private final int upperBound; - private final int hotInterval; - private final int coldInterval; - private final double hotsetFraction; - private final double hotOpnFraction; - - /** - * Create a generator for Hotspot distributions. - * - * @param lowerBound lower bound of the distribution. - * @param upperBound upper bound of the distribution. - * @param hotsetFraction percentage of data item - * @param hotOpnFraction percentage of operations accessing the hot set. - */ - public HotspotIntegerGenerator(int lowerBound, int upperBound, - double hotsetFraction, double hotOpnFraction) { - if (hotsetFraction < 0.0 || hotsetFraction > 1.0) { - System.err.println("Hotset fraction out of range. Setting to 0.0"); - hotsetFraction = 0.0; - } - if (hotOpnFraction < 0.0 || hotOpnFraction > 1.0) { - System.err.println("Hot operation fraction out of range. Setting to 0.0"); - hotOpnFraction = 0.0; - } - if (lowerBound > upperBound) { - System.err.println("Upper bound of Hotspot generator smaller than the lower bound. " + - "Swapping the values."); - int temp = lowerBound; - lowerBound = upperBound; - upperBound = temp; - } - this.lowerBound = lowerBound; - this.upperBound = upperBound; - this.hotsetFraction = hotsetFraction; - int interval = upperBound - lowerBound + 1; - this.hotInterval = (int)(interval * hotsetFraction); - this.coldInterval = interval - hotInterval; - this.hotOpnFraction = hotOpnFraction; - } - - @Override - public int nextInt() { - int value = 0; - Random random = Utils.random(); - if (random.nextDouble() < hotOpnFraction) { - // Choose a value from the hot set. - value = lowerBound + random.nextInt(hotInterval); - } else { - // Choose a value from the cold set. - value = lowerBound + hotInterval + random.nextInt(coldInterval); - } - setLastInt(value); - return value; - } - - /** - * @return the lowerBound - */ - public int getLowerBound() { - return lowerBound; - } - - /** - * @return the upperBound - */ - public int getUpperBound() { - return upperBound; - } - - /** - * @return the hotsetFraction - */ - public double getHotsetFraction() { - return hotsetFraction; - } - - /** - * @return the hotOpnFraction - */ - public double getHotOpnFraction() { - return hotOpnFraction; - } - @Override - public double mean() { - return hotOpnFraction * (lowerBound + hotInterval/2.0) - + (1 - hotOpnFraction) * (lowerBound + hotInterval + coldInterval/2.0); - } -} DELETED YCSB/core/src/main/java/com/yahoo/ycsb/generator/IntegerGenerator.java Index: YCSB/core/src/main/java/com/yahoo/ycsb/generator/IntegerGenerator.java ================================================================== --- YCSB/core/src/main/java/com/yahoo/ycsb/generator/IntegerGenerator.java +++ /dev/null @@ -1,75 +0,0 @@ -/** - * Copyright (c) 2010 Yahoo! Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you - * may not use this file except in compliance with the License. You - * may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - * implied. See the License for the specific language governing - * permissions and limitations under the License. See accompanying - * LICENSE file. - */ - -package com.yahoo.ycsb.generator; - -/** - * A generator that is capable of generating ints as well as strings - * - * @author cooperb - * - */ -public abstract class IntegerGenerator extends Generator -{ - int lastint; - - /** - * Set the last value generated. IntegerGenerator subclasses must use this call - * to properly set the last string value, or the lastString() and lastInt() calls won't work. - */ - protected void setLastInt(int last) - { - lastint=last; - } - - /** - * Return the next value as an int. When overriding this method, be sure to call setLastString() properly, or the lastString() call won't work. - */ - public abstract int nextInt(); - - /** - * Generate the next string in the distribution. - */ - public String nextString() - { - return ""+nextInt(); - } - - /** - * Return the previous string generated by the distribution; e.g., returned from the last nextString() call. - * Calling lastString() should not advance the distribution or have any side effects. If nextString() has not yet - * been called, lastString() should return something reasonable. - */ - @Override - public String lastString() - { - return ""+lastInt(); - } - - /** - * Return the previous int generated by the distribution. This call is unique to IntegerGenerator subclasses, and assumes - * IntegerGenerator subclasses always return ints for nextInt() (e.g. not arbitrary strings). - */ - public int lastInt() - { - return lastint; - } - /** - * Return the expected value (mean) of the values this generator will return. - */ - public abstract double mean(); -} DELETED YCSB/core/src/main/java/com/yahoo/ycsb/generator/ScrambledZipfianGenerator.java Index: YCSB/core/src/main/java/com/yahoo/ycsb/generator/ScrambledZipfianGenerator.java ================================================================== --- YCSB/core/src/main/java/com/yahoo/ycsb/generator/ScrambledZipfianGenerator.java +++ /dev/null @@ -1,137 +0,0 @@ -/** - * Copyright (c) 2010 Yahoo! Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you - * may not use this file except in compliance with the License. You - * may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - * implied. See the License for the specific language governing - * permissions and limitations under the License. See accompanying - * LICENSE file. - */ - -package com.yahoo.ycsb.generator; - -import com.yahoo.ycsb.Utils; - -/** - * A generator of a zipfian distribution. It produces a sequence of items, such that some items are more popular than others, according - * to a zipfian distribution. When you construct an instance of this class, you specify the number of items in the set to draw from, either - * by specifying an itemcount (so that the sequence is of items from 0 to itemcount-1) or by specifying a min and a max (so that the sequence is of - * items from min to max inclusive). After you construct the instance, you can change the number of items by calling nextInt(itemcount) or nextLong(itemcount). - * - * Unlike @ZipfianGenerator, this class scatters the "popular" items across the itemspace. Use this, instead of @ZipfianGenerator, if you - * don't want the head of the distribution (the popular items) clustered together. - */ -public class ScrambledZipfianGenerator extends IntegerGenerator -{ - public static final double ZETAN=26.46902820178302; - public static final double USED_ZIPFIAN_CONSTANT=0.99; - public static final long ITEM_COUNT=10000000000L; - - ZipfianGenerator gen; - long _min,_max,_itemcount; - - /******************************* Constructors **************************************/ - - /** - * Create a zipfian generator for the specified number of items. - * @param _items The number of items in the distribution. - */ - public ScrambledZipfianGenerator(long _items) - { - this(0,_items-1); - } - - /** - * Create a zipfian generator for items between min and max. - * @param _min The smallest integer to generate in the sequence. - * @param _max The largest integer to generate in the sequence. - */ - public ScrambledZipfianGenerator(long _min, long _max) - { - this(_min,_max,ZipfianGenerator.ZIPFIAN_CONSTANT); - } - - /** - * Create a zipfian generator for the specified number of items using the specified zipfian constant. - * - * @param _items The number of items in the distribution. - * @param _zipfianconstant The zipfian constant to use. - */ - /* -// not supported, as the value of zeta depends on the zipfian constant, and we have only precomputed zeta for one zipfian constant - public ScrambledZipfianGenerator(long _items, double _zipfianconstant) - { - this(0,_items-1,_zipfianconstant); - } -*/ - - /** - * Create a zipfian generator for items between min and max (inclusive) for the specified zipfian constant. If you - * use a zipfian constant other than 0.99, this will take a long time to complete because we need to recompute zeta. - * @param min The smallest integer to generate in the sequence. - * @param max The largest integer to generate in the sequence. - * @param _zipfianconstant The zipfian constant to use. - */ - public ScrambledZipfianGenerator(long min, long max, double _zipfianconstant) - { - _min=min; - _max=max; - _itemcount=_max-_min+1; - if (_zipfianconstant == USED_ZIPFIAN_CONSTANT) - { - gen=new ZipfianGenerator(0,ITEM_COUNT,_zipfianconstant,ZETAN); - } else { - gen=new ZipfianGenerator(0,ITEM_COUNT,_zipfianconstant); - } - } - - /**************************************************************************************************/ - - /** - * Return the next int in the sequence. - */ - @Override - public int nextInt() { - return (int)nextLong(); - } - - /** - * Return the next long in the sequence. - */ - public long nextLong() - { - long ret=gen.nextLong(); - ret=_min+Utils.FNVhash64(ret)%_itemcount; - setLastInt((int)ret); - return ret; - } - - public static void main(String[] args) - { - double newzetan = ZipfianGenerator.zetastatic(ITEM_COUNT,ZipfianGenerator.ZIPFIAN_CONSTANT); - System.out.println("zetan: "+newzetan); - System.exit(0); - - ScrambledZipfianGenerator gen=new ScrambledZipfianGenerator(10000); - - for (int i=0; i<1000000; i++) - { - System.out.println(""+gen.nextInt()); - } - } - - /** - * since the values are scrambled (hopefully uniformly), the mean is simply the middle of the range. - */ - @Override - public double mean() { - return ((double)(((long)_min) +(long)_max))/2.0; - } -} DELETED YCSB/core/src/main/java/com/yahoo/ycsb/generator/SkewedLatestGenerator.java Index: YCSB/core/src/main/java/com/yahoo/ycsb/generator/SkewedLatestGenerator.java ================================================================== --- YCSB/core/src/main/java/com/yahoo/ycsb/generator/SkewedLatestGenerator.java +++ /dev/null @@ -1,61 +0,0 @@ -/** - * Copyright (c) 2010 Yahoo! Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you - * may not use this file except in compliance with the License. You - * may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - * implied. See the License for the specific language governing - * permissions and limitations under the License. See accompanying - * LICENSE file. - */ - -package com.yahoo.ycsb.generator; - -/** - * Generate a popularity distribution of items, skewed to favor recent items significantly more than older items. - */ -public class SkewedLatestGenerator extends IntegerGenerator -{ - CounterGenerator _basis; - ZipfianGenerator _zipfian; - - public SkewedLatestGenerator(CounterGenerator basis) - { - _basis=basis; - _zipfian=new ZipfianGenerator(_basis.lastInt()); - nextInt(); - } - - /** - * Generate the next string in the distribution, skewed Zipfian favoring the items most recently returned by the basis generator. - */ - public int nextInt() - { - int max=_basis.lastInt(); - int nextint=max-_zipfian.nextInt(max); - setLastInt(nextint); - return nextint; - } - - public static void main(String[] args) - { - SkewedLatestGenerator gen=new SkewedLatestGenerator(new CounterGenerator(1000)); - for (int i=0; i _values; - String _laststring; - UniformIntegerGenerator _gen; - - - /** - * Creates a generator that will return strings from the specified set uniformly randomly - */ - @SuppressWarnings( "unchecked" ) - public UniformGenerator(Vector values) - { - _values=(Vector)values.clone(); - _laststring=null; - _gen=new UniformIntegerGenerator(0,values.size()-1); - } - - /** - * Generate the next string in the distribution. - */ - public String nextString() - { - _laststring=_values.elementAt(_gen.nextInt()); - return _laststring; - } - - /** - * Return the previous string generated by the distribution; e.g., returned from the last nextString() call. - * Calling lastString() should not advance the distribution or have any side effects. If nextString() has not yet - * been called, lastString() should return something reasonable. - */ - public String lastString() - { - if (_laststring==null) - { - nextString(); - } - return _laststring; - } -} - DELETED YCSB/core/src/main/java/com/yahoo/ycsb/generator/UniformIntegerGenerator.java Index: YCSB/core/src/main/java/com/yahoo/ycsb/generator/UniformIntegerGenerator.java ================================================================== --- YCSB/core/src/main/java/com/yahoo/ycsb/generator/UniformIntegerGenerator.java +++ /dev/null @@ -1,57 +0,0 @@ -/** - * Copyright (c) 2010 Yahoo! Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you - * may not use this file except in compliance with the License. You - * may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - * implied. See the License for the specific language governing - * permissions and limitations under the License. See accompanying - * LICENSE file. - */ - -package com.yahoo.ycsb.generator; - -import java.util.Random; - -import com.yahoo.ycsb.Utils; - -/** - * Generates integers randomly uniform from an interval. - */ -public class UniformIntegerGenerator extends IntegerGenerator -{ - int _lb,_ub,_interval; - - /** - * Creates a generator that will return integers uniformly randomly from the interval [lb,ub] inclusive (that is, lb and ub are possible values) - * - * @param lb the lower bound (inclusive) of generated values - * @param ub the upper bound (inclusive) of generated values - */ - public UniformIntegerGenerator(int lb, int ub) - { - _lb=lb; - _ub=ub; - _interval=_ub-_lb+1; - } - - @Override - public int nextInt() - { - int ret=Utils.random().nextInt(_interval)+_lb; - setLastInt(ret); - - return ret; - } - - @Override - public double mean() { - return ((double)((long)(_lb + (long)_ub))) / 2.0; - } -} DELETED YCSB/core/src/main/java/com/yahoo/ycsb/generator/ZipfianGenerator.java Index: YCSB/core/src/main/java/com/yahoo/ycsb/generator/ZipfianGenerator.java ================================================================== --- YCSB/core/src/main/java/com/yahoo/ycsb/generator/ZipfianGenerator.java +++ /dev/null @@ -1,325 +0,0 @@ -/** - * Copyright (c) 2010 Yahoo! Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you - * may not use this file except in compliance with the License. You - * may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - * implied. See the License for the specific language governing - * permissions and limitations under the License. See accompanying - * LICENSE file. - */ - -package com.yahoo.ycsb.generator; - -import java.util.Random; - -import com.yahoo.ycsb.Utils; - -/** - * A generator of a zipfian distribution. It produces a sequence of items, such that some items are more popular than others, according - * to a zipfian distribution. When you construct an instance of this class, you specify the number of items in the set to draw from, either - * by specifying an itemcount (so that the sequence is of items from 0 to itemcount-1) or by specifying a min and a max (so that the sequence is of - * items from min to max inclusive). After you construct the instance, you can change the number of items by calling nextInt(itemcount) or nextLong(itemcount). - * - * Note that the popular items will be clustered together, e.g. item 0 is the most popular, item 1 the second most popular, and so on (or min is the most - * popular, min+1 the next most popular, etc.) If you don't want this clustering, and instead want the popular items scattered throughout the - * item space, then use ScrambledZipfianGenerator instead. - * - * Be aware: initializing this generator may take a long time if there are lots of items to choose from (e.g. over a minute - * for 100 million objects). This is because certain mathematical values need to be computed to properly generate a zipfian skew, and one of those - * values (zeta) is a sum sequence from 1 to n, where n is the itemcount. Note that if you increase the number of items in the set, we can compute - * a new zeta incrementally, so it should be fast unless you have added millions of items. However, if you decrease the number of items, we recompute - * zeta from scratch, so this can take a long time. - * - * The algorithm used here is from "Quickly Generating Billion-Record Synthetic Databases", Jim Gray et al, SIGMOD 1994. - */ -public class ZipfianGenerator extends IntegerGenerator -{ - public static final double ZIPFIAN_CONSTANT=0.99; - - /** - * Number of items. - */ - long items; - - /** - * Min item to generate. - */ - long base; - - /** - * The zipfian constant to use. - */ - double zipfianconstant; - - /** - * Computed parameters for generating the distribution. - */ - double alpha,zetan,eta,theta,zeta2theta; - - /** - * The number of items used to compute zetan the last time. - */ - long countforzeta; - - /** - * Flag to prevent problems. If you increase the number of items the zipfian generator is allowed to choose from, this code will incrementally compute a new zeta - * value for the larger itemcount. However, if you decrease the number of items, the code computes zeta from scratch; this is expensive for large itemsets. - * Usually this is not intentional; e.g. one thread thinks the number of items is 1001 and calls "nextLong()" with that item count; then another thread who thinks the - * number of items is 1000 calls nextLong() with itemcount=1000 triggering the expensive recomputation. (It is expensive for 100 million items, not really for 1000 items.) Why - * did the second thread think there were only 1000 items? maybe it read the item count before the first thread incremented it. So this flag allows you to say if you really do - * want that recomputation. If true, then the code will recompute zeta if the itemcount goes down. If false, the code will assume itemcount only goes up, and never recompute. - */ - boolean allowitemcountdecrease=false; - - /******************************* Constructors **************************************/ - - /** - * Create a zipfian generator for the specified number of items. - * @param _items The number of items in the distribution. - */ - public ZipfianGenerator(long _items) - { - this(0,_items-1); - } - - /** - * Create a zipfian generator for items between min and max. - * @param _min The smallest integer to generate in the sequence. - * @param _max The largest integer to generate in the sequence. - */ - public ZipfianGenerator(long _min, long _max) - { - this(_min,_max,ZIPFIAN_CONSTANT); - } - - /** - * Create a zipfian generator for the specified number of items using the specified zipfian constant. - * - * @param _items The number of items in the distribution. - * @param _zipfianconstant The zipfian constant to use. - */ - public ZipfianGenerator(long _items, double _zipfianconstant) - { - this(0,_items-1,_zipfianconstant); - } - - /** - * Create a zipfian generator for items between min and max (inclusive) for the specified zipfian constant. - * @param min The smallest integer to generate in the sequence. - * @param max The largest integer to generate in the sequence. - * @param _zipfianconstant The zipfian constant to use. - */ - public ZipfianGenerator(long min, long max, double _zipfianconstant) - { - this(min,max,_zipfianconstant,zetastatic(max-min+1,_zipfianconstant)); - } - - /** - * Create a zipfian generator for items between min and max (inclusive) for the specified zipfian constant, using the precomputed value of zeta. - * - * @param min The smallest integer to generate in the sequence. - * @param max The largest integer to generate in the sequence. - * @param _zipfianconstant The zipfian constant to use. - * @param _zetan The precomputed zeta constant. - */ - public ZipfianGenerator(long min, long max, double _zipfianconstant, double _zetan) - { - - items=max-min+1; - base=min; - zipfianconstant=_zipfianconstant; - - theta=zipfianconstant; - - zeta2theta=zeta(2,theta); - - - alpha=1.0/(1.0-theta); - //zetan=zeta(items,theta); - zetan=_zetan; - countforzeta=items; - eta=(1-Math.pow(2.0/items,1-theta))/(1-zeta2theta/zetan); - - //System.out.println("XXXX 3 XXXX"); - nextInt(); - //System.out.println("XXXX 4 XXXX"); - } - - /**************************************************************************/ - - /** - * Compute the zeta constant needed for the distribution. Do this from scratch for a distribution with n items, using the - * zipfian constant theta. Remember the value of n, so if we change the itemcount, we can recompute zeta. - * - * @param n The number of items to compute zeta over. - * @param theta The zipfian constant. - */ - double zeta(long n, double theta) - { - countforzeta=n; - return zetastatic(n,theta); - } - - /** - * Compute the zeta constant needed for the distribution. Do this from scratch for a distribution with n items, using the - * zipfian constant theta. This is a static version of the function which will not remember n. - * @param n The number of items to compute zeta over. - * @param theta The zipfian constant. - */ - static double zetastatic(long n, double theta) - { - return zetastatic(0,n,theta,0); - } - - /** - * Compute the zeta constant needed for the distribution. Do this incrementally for a distribution that - * has n items now but used to have st items. Use the zipfian constant theta. Remember the new value of - * n so that if we change the itemcount, we'll know to recompute zeta. - * - * @param st The number of items used to compute the last initialsum - * @param n The number of items to compute zeta over. - * @param theta The zipfian constant. - * @param initialsum The value of zeta we are computing incrementally from. - */ - double zeta(long st, long n, double theta, double initialsum) - { - countforzeta=n; - return zetastatic(st,n,theta,initialsum); - } - - /** - * Compute the zeta constant needed for the distribution. Do this incrementally for a distribution that - * has n items now but used to have st items. Use the zipfian constant theta. Remember the new value of - * n so that if we change the itemcount, we'll know to recompute zeta. - * @param st The number of items used to compute the last initialsum - * @param n The number of items to compute zeta over. - * @param theta The zipfian constant. - * @param initialsum The value of zeta we are computing incrementally from. - */ - static double zetastatic(long st, long n, double theta, double initialsum) - { - double sum=initialsum; - for (long i=st; icountforzeta) - { - //System.err.println("WARNING: Incrementally recomputing Zipfian distribtion. (itemcount="+itemcount+" countforzeta="+countforzeta+")"); - - //we have added more items. can compute zetan incrementally, which is cheaper - zetan=zeta(countforzeta,itemcount,theta,zetan); - eta=(1-Math.pow(2.0/items,1-theta))/(1-zeta2theta/zetan); - } - else if ( (itemcount data; - boolean histogram=true; - - private Properties _props; - - /** - * Create a new object with the specified properties. - */ - public Measurements(Properties props) - { - data=new HashMap(); - - _props=props; - - if (_props.getProperty(MEASUREMENT_TYPE, MEASUREMENT_TYPE_DEFAULT).compareTo("histogram")==0) - { - histogram=true; - } - else - { - histogram=false; - } - } - - OneMeasurement constructOneMeasurement(String name) - { - if (histogram) - { - return new OneMeasurementHistogram(name,_props); - } - else - { - return new OneMeasurementTimeSeries(name,_props); - } - } - - /** - * Report a single value of a single metric. E.g. for read latency, operation="READ" and latency is the measured value. - */ - public synchronized void measure(String operation, int latency) - { - if (!data.containsKey(operation)) - { - synchronized(this) - { - if (!data.containsKey(operation)) - { - data.put(operation,constructOneMeasurement(operation)); - } - } - } - try - { - data.get(operation).measure(latency); - } - catch (java.lang.ArrayIndexOutOfBoundsException e) - { - System.out.println("ERROR: java.lang.ArrayIndexOutOfBoundsException - ignoring and continuing"); - e.printStackTrace(); - e.printStackTrace(System.out); - } - } - - /** - * Report a return code for a single DB operaiton. - */ - public void reportReturnCode(String operation, int code) - { - if (!data.containsKey(operation)) - { - synchronized(this) - { - if (!data.containsKey(operation)) - { - data.put(operation,constructOneMeasurement(operation)); - } - } - } - data.get(operation).reportReturnCode(code); - } - - /** - * Export the current measurements to a suitable format. - * - * @param exporter Exporter representing the type of format to write to. - * @throws IOException Thrown if the export failed. - */ - public void exportMeasurements(MeasurementsExporter exporter) throws IOException - { - for (OneMeasurement measurement : data.values()) - { - measurement.exportMeasurements(exporter); - } - } - - /** - * Return a one line summary of the measurements. - */ - public String getSummary() - { - String ret=""; - for (OneMeasurement m : data.values()) - { - ret+=m.getSummary()+" "; - } - - return ret; - } -} DELETED YCSB/core/src/main/java/com/yahoo/ycsb/measurements/OneMeasurement.java Index: YCSB/core/src/main/java/com/yahoo/ycsb/measurements/OneMeasurement.java ================================================================== --- YCSB/core/src/main/java/com/yahoo/ycsb/measurements/OneMeasurement.java +++ /dev/null @@ -1,55 +0,0 @@ -/** - * Copyright (c) 2010 Yahoo! Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you - * may not use this file except in compliance with the License. You - * may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - * implied. See the License for the specific language governing - * permissions and limitations under the License. See accompanying - * LICENSE file. - */ - -package com.yahoo.ycsb.measurements; - -import java.io.IOException; - -import com.yahoo.ycsb.measurements.exporter.MeasurementsExporter; - -/** - * A single measured metric (such as READ LATENCY) - */ -public abstract class OneMeasurement { - - String _name; - - public String getName() { - return _name; - } - - /** - * @param _name - */ - public OneMeasurement(String _name) { - this._name = _name; - } - - public abstract void reportReturnCode(int code); - - public abstract void measure(int latency); - - public abstract String getSummary(); - - /** - * Export the current measurements to a suitable format. - * - * @param exporter Exporter representing the type of format to write to. - * @throws IOException Thrown if the export failed. - */ - public abstract void exportMeasurements(MeasurementsExporter exporter) throws IOException; -} DELETED YCSB/core/src/main/java/com/yahoo/ycsb/measurements/OneMeasurementHistogram.java Index: YCSB/core/src/main/java/com/yahoo/ycsb/measurements/OneMeasurementHistogram.java ================================================================== --- YCSB/core/src/main/java/com/yahoo/ycsb/measurements/OneMeasurementHistogram.java +++ /dev/null @@ -1,165 +0,0 @@ -/** - * Copyright (c) 2010 Yahoo! Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you - * may not use this file except in compliance with the License. You - * may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - * implied. See the License for the specific language governing - * permissions and limitations under the License. See accompanying - * LICENSE file. - */ - -package com.yahoo.ycsb.measurements; - -import java.io.IOException; -import java.text.DecimalFormat; -import java.util.HashMap; -import java.util.Properties; - -import com.yahoo.ycsb.measurements.exporter.MeasurementsExporter; - - -/** - * Take measurements and maintain a histogram of a given metric, such as READ LATENCY. - * - * @author cooperb - * - */ -public class OneMeasurementHistogram extends OneMeasurement -{ - public static final String BUCKETS="histogram.buckets"; - public static final String BUCKETS_DEFAULT="1000"; - - int _buckets; - int[] histogram; - int histogramoverflow; - int operations; - long totallatency; - - //keep a windowed version of these stats for printing status - int windowoperations; - long windowtotallatency; - - int min; - int max; - HashMap returncodes; - - public OneMeasurementHistogram(String name, Properties props) - { - super(name); - _buckets=Integer.parseInt(props.getProperty(BUCKETS, BUCKETS_DEFAULT)); - histogram=new int[_buckets]; - histogramoverflow=0; - operations=0; - totallatency=0; - windowoperations=0; - windowtotallatency=0; - min=-1; - max=-1; - returncodes=new HashMap(); - } - - /* (non-Javadoc) - * @see com.yahoo.ycsb.OneMeasurement#reportReturnCode(int) - */ - public synchronized void reportReturnCode(int code) - { - Integer Icode=code; - if (!returncodes.containsKey(Icode)) - { - int[] val=new int[1]; - val[0]=0; - returncodes.put(Icode,val); - } - returncodes.get(Icode)[0]++; - } - - - /* (non-Javadoc) - * @see com.yahoo.ycsb.OneMeasurement#measure(int) - */ - public synchronized void measure(int latency) - { - if (latency/1000>=_buckets) - { - histogramoverflow++; - } - else - { - histogram[latency/1000]++; - } - operations++; - totallatency+=latency; - windowoperations++; - windowtotallatency+=latency; - - if ( (min<0) || (latencymax) ) - { - max=latency; - } - } - - - @Override - public void exportMeasurements(MeasurementsExporter exporter) throws IOException - { - exporter.write(getName(), "Operations", operations); - exporter.write(getName(), "AverageLatency(us)", (((double)totallatency)/((double)operations))); - exporter.write(getName(), "MinLatency(us)", min); - exporter.write(getName(), "MaxLatency(us)", max); - - int opcounter=0; - boolean done95th=false; - for (int i=0; i<_buckets; i++) - { - opcounter+=histogram[i]; - if ( (!done95th) && (((double)opcounter)/((double)operations)>=0.95) ) - { - exporter.write(getName(), "95thPercentileLatency(ms)", i); - done95th=true; - } - if (((double)opcounter)/((double)operations)>=0.99) - { - exporter.write(getName(), "99thPercentileLatency(ms)", i); - break; - } - } - - for (Integer I : returncodes.keySet()) - { - int[] val=returncodes.get(I); - exporter.write(getName(), "Return="+I, val[0]); - } - - for (int i=0; i<_buckets; i++) - { - exporter.write(getName(), Integer.toString(i), histogram[i]); - } - exporter.write(getName(), ">"+_buckets, histogramoverflow); - } - - @Override - public String getSummary() { - if (windowoperations==0) - { - return ""; - } - DecimalFormat d = new DecimalFormat("#.##"); - double report=((double)windowtotallatency)/((double)windowoperations); - windowtotallatency=0; - windowoperations=0; - return "["+getName()+" AverageLatency(us)="+d.format(report)+"]"; - } - -} DELETED YCSB/core/src/main/java/com/yahoo/ycsb/measurements/OneMeasurementTimeSeries.java Index: YCSB/core/src/main/java/com/yahoo/ycsb/measurements/OneMeasurementTimeSeries.java ================================================================== --- YCSB/core/src/main/java/com/yahoo/ycsb/measurements/OneMeasurementTimeSeries.java +++ /dev/null @@ -1,179 +0,0 @@ -/** - * Copyright (c) 2010 Yahoo! Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you - * may not use this file except in compliance with the License. You - * may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - * implied. See the License for the specific language governing - * permissions and limitations under the License. See accompanying - * LICENSE file. - */ - -package com.yahoo.ycsb.measurements; - -import java.io.IOException; -import java.text.DecimalFormat; -import java.util.HashMap; -import java.util.Properties; -import java.util.Vector; - -import com.yahoo.ycsb.measurements.exporter.MeasurementsExporter; - -class SeriesUnit -{ - /** - * @param time - * @param average - */ - public SeriesUnit(long time, double average) { - this.time = time; - this.average = average; - } - public long time; - public double average; -} - -/** - * A time series measurement of a metric, such as READ LATENCY. - */ -public class OneMeasurementTimeSeries extends OneMeasurement -{ - /** - * Granularity for time series; measurements will be averaged in chunks of this granularity. Units are milliseconds. - */ - public static final String GRANULARITY="timeseries.granularity"; - - public static final String GRANULARITY_DEFAULT="1000"; - - int _granularity; - Vector _measurements; - - long start=-1; - long currentunit=-1; - int count=0; - int sum=0; - int operations=0; - long totallatency=0; - - //keep a windowed version of these stats for printing status - int windowoperations=0; - long windowtotallatency=0; - - int min=-1; - int max=-1; - - private HashMap returncodes; - - public OneMeasurementTimeSeries(String name, Properties props) - { - super(name); - _granularity=Integer.parseInt(props.getProperty(GRANULARITY,GRANULARITY_DEFAULT)); - _measurements=new Vector(); - returncodes=new HashMap(); - } - - void checkEndOfUnit(boolean forceend) - { - long now=System.currentTimeMillis(); - - if (start<0) - { - currentunit=0; - start=now; - } - - long unit=((now-start)/_granularity)*_granularity; - - if ( (unit>currentunit) || (forceend) ) - { - double avg=((double)sum)/((double)count); - _measurements.add(new SeriesUnit(currentunit,avg)); - - currentunit=unit; - - count=0; - sum=0; - } - } - - @Override - public void measure(int latency) - { - checkEndOfUnit(false); - - count++; - sum+=latency; - totallatency+=latency; - operations++; - windowoperations++; - windowtotallatency+=latency; - - if (latency>max) - { - max=latency; - } - - if ( (latency - * Properties to control the client: - *

- *
    - *
  • disksize: how many bytes of storage can the disk store? (default 100,000,000) - *
  • occupancy: what fraction of the available storage should be used? (default 0.9) - *
  • requestdistribution: what distribution should be used to select the records to operate on - uniform, zipfian or latest (default: histogram) - *
- * - * - *

See also: - * Russell Sears, Catharine van Ingen. - * Fragmentation in Large Object Repositories, - * CIDR 2006. [Presentation] - *

- * - * - * @author sears - * - */ -public class ConstantOccupancyWorkload extends CoreWorkload { - long disksize; - long storageages; - IntegerGenerator objectsizes; - double occupancy; - - long object_count; - - public static final String STORAGE_AGE_PROPERTY = "storageages"; - public static final long STORAGE_AGE_PROPERTY_DEFAULT = 10; - - public static final String DISK_SIZE_PROPERTY = "disksize"; - public static final long DISK_SIZE_PROPERTY_DEFAULT = 100 * 1000 * 1000; - - public static final String OCCUPANCY_PROPERTY = "occupancy"; - public static final double OCCUPANCY_PROPERTY_DEFAULT = 0.9; - - @Override - public void init(Properties p) throws WorkloadException - { - disksize = Long.parseLong( p.getProperty(DISK_SIZE_PROPERTY, DISK_SIZE_PROPERTY_DEFAULT+"")); - storageages = Long.parseLong( p.getProperty(STORAGE_AGE_PROPERTY, STORAGE_AGE_PROPERTY_DEFAULT+"")); - occupancy = Double.parseDouble(p.getProperty(OCCUPANCY_PROPERTY, OCCUPANCY_PROPERTY_DEFAULT+"")); - - if(p.getProperty(Client.RECORD_COUNT_PROPERTY) != null || - p.getProperty(Client.INSERT_COUNT_PROPERTY) != null || - p.getProperty(Client.OPERATION_COUNT_PROPERTY) != null) { - System.err.println("Warning: record, insert or operation count was set prior to initting ConstantOccupancyWorkload. Overriding old values."); - } - IntegerGenerator g = CoreWorkload.getFieldLengthGenerator(p); - double fieldsize = g.mean(); - int fieldcount = Integer.parseInt(p.getProperty(FIELD_COUNT_PROPERTY, FIELD_COUNT_PROPERTY_DEFAULT)); - - object_count = (long)(occupancy * ((double)disksize / (fieldsize * (double)fieldcount))); - if(object_count == 0) { - throw new IllegalStateException("Object count was zero. Perhaps disksize is too low?"); - } - p.setProperty(Client.RECORD_COUNT_PROPERTY, object_count+""); - p.setProperty(Client.OPERATION_COUNT_PROPERTY, (storageages*object_count)+""); - p.setProperty(Client.INSERT_COUNT_PROPERTY, object_count+""); - - super.init(p); - } - -} DELETED YCSB/core/src/main/java/com/yahoo/ycsb/workloads/CoreWorkload.java Index: YCSB/core/src/main/java/com/yahoo/ycsb/workloads/CoreWorkload.java ================================================================== --- YCSB/core/src/main/java/com/yahoo/ycsb/workloads/CoreWorkload.java +++ /dev/null @@ -1,641 +0,0 @@ -/** - * Copyright (c) 2010 Yahoo! Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you - * may not use this file except in compliance with the License. You - * may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - * implied. See the License for the specific language governing - * permissions and limitations under the License. See accompanying - * LICENSE file. - */ - -package com.yahoo.ycsb.workloads; - -import java.util.Properties; -import com.yahoo.ycsb.*; -import com.yahoo.ycsb.generator.CounterGenerator; -import com.yahoo.ycsb.generator.DiscreteGenerator; -import com.yahoo.ycsb.generator.ExponentialGenerator; -import com.yahoo.ycsb.generator.Generator; -import com.yahoo.ycsb.generator.ConstantIntegerGenerator; -import com.yahoo.ycsb.generator.HotspotIntegerGenerator; -import com.yahoo.ycsb.generator.HistogramGenerator; -import com.yahoo.ycsb.generator.IntegerGenerator; -import com.yahoo.ycsb.generator.ScrambledZipfianGenerator; -import com.yahoo.ycsb.generator.SkewedLatestGenerator; -import com.yahoo.ycsb.generator.UniformIntegerGenerator; -import com.yahoo.ycsb.generator.ZipfianGenerator; -import com.yahoo.ycsb.measurements.Measurements; - -import java.io.IOException; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Vector; - -/** - * The core benchmark scenario. Represents a set of clients doing simple CRUD operations. The relative - * proportion of different kinds of operations, and other properties of the workload, are controlled - * by parameters specified at runtime. - * - * Properties to control the client: - *
    - *
  • fieldcount: the number of fields in a record (default: 10) - *
  • fieldlength: the size of each field (default: 100) - *
  • readallfields: should reads read all fields (true) or just one (false) (default: true) - *
  • writeallfields: should updates and read/modify/writes update all fields (true) or just one (false) (default: false) - *
  • readproportion: what proportion of operations should be reads (default: 0.95) - *
  • updateproportion: what proportion of operations should be updates (default: 0.05) - *
  • insertproportion: what proportion of operations should be inserts (default: 0) - *
  • scanproportion: what proportion of operations should be scans (default: 0) - *
  • readmodifywriteproportion: what proportion of operations should be read a record, modify it, write it back (default: 0) - *
  • requestdistribution: what distribution should be used to select the records to operate on - uniform, zipfian, hotspot, or latest (default: uniform) - *
  • maxscanlength: for scans, what is the maximum number of records to scan (default: 1000) - *
  • scanlengthdistribution: for scans, what distribution should be used to choose the number of records to scan, for each scan, between 1 and maxscanlength (default: uniform) - *
  • insertorder: should records be inserted in order by key ("ordered"), or in hashed order ("hashed") (default: hashed) - *
- */ -public class CoreWorkload extends Workload -{ - - /** - * The name of the database table to run queries against. - */ - public static final String TABLENAME_PROPERTY="table"; - - /** - * The default name of the database table to run queries against. - */ - public static final String TABLENAME_PROPERTY_DEFAULT="usertable"; - - public static String table; - - - /** - * The name of the property for the number of fields in a record. - */ - public static final String FIELD_COUNT_PROPERTY="fieldcount"; - - /** - * Default number of fields in a record. - */ - public static final String FIELD_COUNT_PROPERTY_DEFAULT="10"; - - int fieldcount; - - /** - * The name of the property for the field length distribution. Options are "uniform", "zipfian" (favoring short records), "constant", and "histogram". - * - * If "uniform", "zipfian" or "constant", the maximum field length will be that specified by the fieldlength property. If "histogram", then the - * histogram will be read from the filename specified in the "fieldlengthhistogram" property. - */ - public static final String FIELD_LENGTH_DISTRIBUTION_PROPERTY="fieldlengthdistribution"; - /** - * The default field length distribution. - */ - public static final String FIELD_LENGTH_DISTRIBUTION_PROPERTY_DEFAULT = "constant"; - - /** - * The name of the property for the length of a field in bytes. - */ - public static final String FIELD_LENGTH_PROPERTY="fieldlength"; - /** - * The default maximum length of a field in bytes. - */ - public static final String FIELD_LENGTH_PROPERTY_DEFAULT="100"; - - /** - * The name of a property that specifies the filename containing the field length histogram (only used if fieldlengthdistribution is "histogram"). - */ - public static final String FIELD_LENGTH_HISTOGRAM_FILE_PROPERTY = "fieldlengthhistogram"; - /** - * The default filename containing a field length histogram. - */ - public static final String FIELD_LENGTH_HISTOGRAM_FILE_PROPERTY_DEFAULT = "hist.txt"; - - /** - * Generator object that produces field lengths. The value of this depends on the properties that start with "FIELD_LENGTH_". - */ - IntegerGenerator fieldlengthgenerator; - - /** - * The name of the property for deciding whether to read one field (false) or all fields (true) of a record. - */ - public static final String READ_ALL_FIELDS_PROPERTY="readallfields"; - - /** - * The default value for the readallfields property. - */ - public static final String READ_ALL_FIELDS_PROPERTY_DEFAULT="true"; - - boolean readallfields; - - /** - * The name of the property for deciding whether to write one field (false) or all fields (true) of a record. - */ - public static final String WRITE_ALL_FIELDS_PROPERTY="writeallfields"; - - /** - * The default value for the writeallfields property. - */ - public static final String WRITE_ALL_FIELDS_PROPERTY_DEFAULT="false"; - - boolean writeallfields; - - - /** - * The name of the property for the proportion of transactions that are reads. - */ - public static final String READ_PROPORTION_PROPERTY="readproportion"; - - /** - * The default proportion of transactions that are reads. - */ - public static final String READ_PROPORTION_PROPERTY_DEFAULT="0.95"; - - /** - * The name of the property for the proportion of transactions that are updates. - */ - public static final String UPDATE_PROPORTION_PROPERTY="updateproportion"; - - /** - * The default proportion of transactions that are updates. - */ - public static final String UPDATE_PROPORTION_PROPERTY_DEFAULT="0.05"; - - /** - * The name of the property for the proportion of transactions that are inserts. - */ - public static final String INSERT_PROPORTION_PROPERTY="insertproportion"; - - /** - * The default proportion of transactions that are inserts. - */ - public static final String INSERT_PROPORTION_PROPERTY_DEFAULT="0.0"; - - /** - * The name of the property for the proportion of transactions that are scans. - */ - public static final String SCAN_PROPORTION_PROPERTY="scanproportion"; - - /** - * The default proportion of transactions that are scans. - */ - public static final String SCAN_PROPORTION_PROPERTY_DEFAULT="0.0"; - - /** - * The name of the property for the proportion of transactions that are read-modify-write. - */ - public static final String READMODIFYWRITE_PROPORTION_PROPERTY="readmodifywriteproportion"; - - /** - * The default proportion of transactions that are scans. - */ - public static final String READMODIFYWRITE_PROPORTION_PROPERTY_DEFAULT="0.0"; - - /** - * The name of the property for the the distribution of requests across the keyspace. Options are "uniform", "zipfian" and "latest" - */ - public static final String REQUEST_DISTRIBUTION_PROPERTY="requestdistribution"; - - /** - * The default distribution of requests across the keyspace - */ - public static final String REQUEST_DISTRIBUTION_PROPERTY_DEFAULT="uniform"; - - /** - * The name of the property for the max scan length (number of records) - */ - public static final String MAX_SCAN_LENGTH_PROPERTY="maxscanlength"; - - /** - * The default max scan length. - */ - public static final String MAX_SCAN_LENGTH_PROPERTY_DEFAULT="1000"; - - /** - * The name of the property for the scan length distribution. Options are "uniform" and "zipfian" (favoring short scans) - */ - public static final String SCAN_LENGTH_DISTRIBUTION_PROPERTY="scanlengthdistribution"; - - /** - * The default max scan length. - */ - public static final String SCAN_LENGTH_DISTRIBUTION_PROPERTY_DEFAULT="uniform"; - - /** - * The name of the property for the order to insert records. Options are "ordered" or "hashed" - */ - public static final String INSERT_ORDER_PROPERTY="insertorder"; - - /** - * Default insert order. - */ - public static final String INSERT_ORDER_PROPERTY_DEFAULT="hashed"; - - /** - * Percentage data items that constitute the hot set. - */ - public static final String HOTSPOT_DATA_FRACTION = "hotspotdatafraction"; - - /** - * Default value of the size of the hot set. - */ - public static final String HOTSPOT_DATA_FRACTION_DEFAULT = "0.2"; - - /** - * Percentage operations that access the hot set. - */ - public static final String HOTSPOT_OPN_FRACTION = "hotspotopnfraction"; - - /** - * Default value of the percentage operations accessing the hot set. - */ - public static final String HOTSPOT_OPN_FRACTION_DEFAULT = "0.8"; - - IntegerGenerator keysequence; - - DiscreteGenerator operationchooser; - - IntegerGenerator keychooser; - - Generator fieldchooser; - - CounterGenerator transactioninsertkeysequence; - - IntegerGenerator scanlength; - - boolean orderedinserts; - - int recordcount; - - protected static IntegerGenerator getFieldLengthGenerator(Properties p) throws WorkloadException{ - IntegerGenerator fieldlengthgenerator; - String fieldlengthdistribution = p.getProperty(FIELD_LENGTH_DISTRIBUTION_PROPERTY, FIELD_LENGTH_DISTRIBUTION_PROPERTY_DEFAULT); - int fieldlength=Integer.parseInt(p.getProperty(FIELD_LENGTH_PROPERTY,FIELD_LENGTH_PROPERTY_DEFAULT)); - String fieldlengthhistogram = p.getProperty(FIELD_LENGTH_HISTOGRAM_FILE_PROPERTY, FIELD_LENGTH_HISTOGRAM_FILE_PROPERTY_DEFAULT); - if(fieldlengthdistribution.compareTo("constant") == 0) { - fieldlengthgenerator = new ConstantIntegerGenerator(fieldlength); - } else if(fieldlengthdistribution.compareTo("uniform") == 0) { - fieldlengthgenerator = new UniformIntegerGenerator(1, fieldlength); - } else if(fieldlengthdistribution.compareTo("zipfian") == 0) { - fieldlengthgenerator = new ZipfianGenerator(1, fieldlength); - } else if(fieldlengthdistribution.compareTo("histogram") == 0) { - try { - fieldlengthgenerator = new HistogramGenerator(fieldlengthhistogram); - } catch(IOException e) { - throw new WorkloadException("Couldn't read field length histogram file: "+fieldlengthhistogram, e); - } - } else { - throw new WorkloadException("Unknown field length distribution \""+fieldlengthdistribution+"\""); - } - return fieldlengthgenerator; - } - - /** - * Initialize the scenario. - * Called once, in the main client thread, before any operations are started. - */ - public void init(Properties p) throws WorkloadException - { - table = p.getProperty(TABLENAME_PROPERTY,TABLENAME_PROPERTY_DEFAULT); - - fieldcount=Integer.parseInt(p.getProperty(FIELD_COUNT_PROPERTY,FIELD_COUNT_PROPERTY_DEFAULT)); - fieldlengthgenerator = CoreWorkload.getFieldLengthGenerator(p); - - double readproportion=Double.parseDouble(p.getProperty(READ_PROPORTION_PROPERTY,READ_PROPORTION_PROPERTY_DEFAULT)); - double updateproportion=Double.parseDouble(p.getProperty(UPDATE_PROPORTION_PROPERTY,UPDATE_PROPORTION_PROPERTY_DEFAULT)); - double insertproportion=Double.parseDouble(p.getProperty(INSERT_PROPORTION_PROPERTY,INSERT_PROPORTION_PROPERTY_DEFAULT)); - double scanproportion=Double.parseDouble(p.getProperty(SCAN_PROPORTION_PROPERTY,SCAN_PROPORTION_PROPERTY_DEFAULT)); - double readmodifywriteproportion=Double.parseDouble(p.getProperty(READMODIFYWRITE_PROPORTION_PROPERTY,READMODIFYWRITE_PROPORTION_PROPERTY_DEFAULT)); - recordcount=Integer.parseInt(p.getProperty(Client.RECORD_COUNT_PROPERTY)); - String requestdistrib=p.getProperty(REQUEST_DISTRIBUTION_PROPERTY,REQUEST_DISTRIBUTION_PROPERTY_DEFAULT); - int maxscanlength=Integer.parseInt(p.getProperty(MAX_SCAN_LENGTH_PROPERTY,MAX_SCAN_LENGTH_PROPERTY_DEFAULT)); - String scanlengthdistrib=p.getProperty(SCAN_LENGTH_DISTRIBUTION_PROPERTY,SCAN_LENGTH_DISTRIBUTION_PROPERTY_DEFAULT); - - int insertstart=Integer.parseInt(p.getProperty(INSERT_START_PROPERTY,INSERT_START_PROPERTY_DEFAULT)); - - readallfields=Boolean.parseBoolean(p.getProperty(READ_ALL_FIELDS_PROPERTY,READ_ALL_FIELDS_PROPERTY_DEFAULT)); - writeallfields=Boolean.parseBoolean(p.getProperty(WRITE_ALL_FIELDS_PROPERTY,WRITE_ALL_FIELDS_PROPERTY_DEFAULT)); - - if (p.getProperty(INSERT_ORDER_PROPERTY,INSERT_ORDER_PROPERTY_DEFAULT).compareTo("hashed")==0) - { - orderedinserts=false; - } - else if (requestdistrib.compareTo("exponential")==0) - { - double percentile = Double.parseDouble(p.getProperty(ExponentialGenerator.EXPONENTIAL_PERCENTILE_PROPERTY, - ExponentialGenerator.EXPONENTIAL_PERCENTILE_DEFAULT)); - double frac = Double.parseDouble(p.getProperty(ExponentialGenerator.EXPONENTIAL_FRAC_PROPERTY, - ExponentialGenerator.EXPONENTIAL_FRAC_DEFAULT)); - keychooser = new ExponentialGenerator(percentile, recordcount*frac); - } - else - { - orderedinserts=true; - } - - keysequence=new CounterGenerator(insertstart); - operationchooser=new DiscreteGenerator(); - if (readproportion>0) - { - operationchooser.addValue(readproportion,"READ"); - } - - if (updateproportion>0) - { - operationchooser.addValue(updateproportion,"UPDATE"); - } - - if (insertproportion>0) - { - operationchooser.addValue(insertproportion,"INSERT"); - } - - if (scanproportion>0) - { - operationchooser.addValue(scanproportion,"SCAN"); - } - - if (readmodifywriteproportion>0) - { - operationchooser.addValue(readmodifywriteproportion,"READMODIFYWRITE"); - } - - transactioninsertkeysequence=new CounterGenerator(recordcount); - if (requestdistrib.compareTo("uniform")==0) - { - keychooser=new UniformIntegerGenerator(0,recordcount-1); - } - else if (requestdistrib.compareTo("zipfian")==0) - { - //it does this by generating a random "next key" in part by taking the modulus over the number of keys - //if the number of keys changes, this would shift the modulus, and we don't want that to change which keys are popular - //so we'll actually construct the scrambled zipfian generator with a keyspace that is larger than exists at the beginning - //of the test. that is, we'll predict the number of inserts, and tell the scrambled zipfian generator the number of existing keys - //plus the number of predicted keys as the total keyspace. then, if the generator picks a key that hasn't been inserted yet, will - //just ignore it and pick another key. this way, the size of the keyspace doesn't change from the perspective of the scrambled zipfian generator - - int opcount=Integer.parseInt(p.getProperty(Client.OPERATION_COUNT_PROPERTY)); - int expectednewkeys=(int)(((double)opcount)*insertproportion*2.0); //2 is fudge factor - - keychooser=new ScrambledZipfianGenerator(recordcount+expectednewkeys); - } - else if (requestdistrib.compareTo("latest")==0) - { - keychooser=new SkewedLatestGenerator(transactioninsertkeysequence); - } - else if (requestdistrib.equals("hotspot")) - { - double hotsetfraction = Double.parseDouble(p.getProperty( - HOTSPOT_DATA_FRACTION, HOTSPOT_DATA_FRACTION_DEFAULT)); - double hotopnfraction = Double.parseDouble(p.getProperty( - HOTSPOT_OPN_FRACTION, HOTSPOT_OPN_FRACTION_DEFAULT)); - keychooser = new HotspotIntegerGenerator(0, recordcount - 1, - hotsetfraction, hotopnfraction); - } - else - { - throw new WorkloadException("Unknown request distribution \""+requestdistrib+"\""); - } - - fieldchooser=new UniformIntegerGenerator(0,fieldcount-1); - - if (scanlengthdistrib.compareTo("uniform")==0) - { - scanlength=new UniformIntegerGenerator(1,maxscanlength); - } - else if (scanlengthdistrib.compareTo("zipfian")==0) - { - scanlength=new ZipfianGenerator(1,maxscanlength); - } - else - { - throw new WorkloadException("Distribution \""+scanlengthdistrib+"\" not allowed for scan length"); - } - } - - public String buildKeyName(long keynum) { - if (!orderedinserts) - { - keynum=Utils.hash(keynum); - } - return "user"+keynum; - } - HashMap buildValues() { - HashMap values=new HashMap(); - - for (int i=0; i buildUpdate() { - //update a random field - HashMap values=new HashMap(); - String fieldname="field"+fieldchooser.nextString(); - ByteIterator data = new RandomByteIterator(fieldlengthgenerator.nextInt()); - values.put(fieldname,data); - return values; - } - - /** - * Do one insert operation. Because it will be called concurrently from multiple client threads, this - * function must be thread safe. However, avoid synchronized, or the threads will block waiting for each - * other, and it will be difficult to reach the target throughput. Ideally, this function would have no side - * effects other than DB operations. - */ - public boolean doInsert(DB db, Object threadstate) - { - int keynum=keysequence.nextInt(); - String dbkey = buildKeyName(keynum); - HashMap values = buildValues(); - if (db.insert(table,dbkey,values) == 0) - return true; - else - return false; - } - - /** - * Do one transaction operation. Because it will be called concurrently from multiple client threads, this - * function must be thread safe. However, avoid synchronized, or the threads will block waiting for each - * other, and it will be difficult to reach the target throughput. Ideally, this function would have no side - * effects other than DB operations. - */ - public boolean doTransaction(DB db, Object threadstate) - { - String op=operationchooser.nextString(); - - if (op.compareTo("READ")==0) - { - doTransactionRead(db); - } - else if (op.compareTo("UPDATE")==0) - { - doTransactionUpdate(db); - } - else if (op.compareTo("INSERT")==0) - { - doTransactionInsert(db); - } - else if (op.compareTo("SCAN")==0) - { - doTransactionScan(db); - } - else - { - doTransactionReadModifyWrite(db); - } - - return true; - } - - int nextKeynum() { - int keynum; - if(keychooser instanceof ExponentialGenerator) { - do - { - keynum=transactioninsertkeysequence.lastInt() - keychooser.nextInt(); - } - while(keynum < 0); - } else { - do - { - keynum=keychooser.nextInt(); - } - while (keynum > transactioninsertkeysequence.lastInt()); - } - return keynum; - } - - public void doTransactionRead(DB db) - { - //choose a random key - int keynum = nextKeynum(); - - String keyname = buildKeyName(keynum); - - HashSet fields=null; - - if (!readallfields) - { - //read a random field - String fieldname="field"+fieldchooser.nextString(); - - fields=new HashSet(); - fields.add(fieldname); - } - - db.read(table,keyname,fields,new HashMap()); - } - - public void doTransactionReadModifyWrite(DB db) - { - //choose a random key - int keynum = nextKeynum(); - - String keyname = buildKeyName(keynum); - - HashSet fields=null; - - if (!readallfields) - { - //read a random field - String fieldname="field"+fieldchooser.nextString(); - - fields=new HashSet(); - fields.add(fieldname); - } - - HashMap values; - - if (writeallfields) - { - //new data for all the fields - values = buildValues(); - } - else - { - //update a random field - values = buildUpdate(); - } - - //do the transaction - - long st=System.nanoTime(); - - db.read(table,keyname,fields,new HashMap()); - - db.update(table,keyname,values); - - long en=System.nanoTime(); - - Measurements.getMeasurements().measure("READ-MODIFY-WRITE", (int)((en-st)/1000)); - } - - public void doTransactionScan(DB db) - { - //choose a random key - int keynum = nextKeynum(); - - String startkeyname = buildKeyName(keynum); - - //choose a random scan length - int len=scanlength.nextInt(); - - HashSet fields=null; - - if (!readallfields) - { - //read a random field - String fieldname="field"+fieldchooser.nextString(); - - fields=new HashSet(); - fields.add(fieldname); - } - - db.scan(table,startkeyname,len,fields,new Vector>()); - } - - public void doTransactionUpdate(DB db) - { - //choose a random key - int keynum = nextKeynum(); - - String keyname=buildKeyName(keynum); - - HashMap values; - - if (writeallfields) - { - //new data for all the fields - values = buildValues(); - } - else - { - //update a random field - values = buildUpdate(); - } - - db.update(table,keyname,values); - } - - public void doTransactionInsert(DB db) - { - //choose the next key - int keynum=transactioninsertkeysequence.nextInt(); - - String dbkey = buildKeyName(keynum); - - HashMap values = buildValues(); - db.insert(table,dbkey,values); - } -} DELETED YCSB/core/src/test/java/com/yahoo/ycsb/TestByteIterator.java Index: YCSB/core/src/test/java/com/yahoo/ycsb/TestByteIterator.java ================================================================== --- YCSB/core/src/test/java/com/yahoo/ycsb/TestByteIterator.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.yahoo.ycsb; - -import org.testng.annotations.Test; -import static org.testng.AssertJUnit.*; - -public class TestByteIterator { - @Test - public void testRandomByteIterator() { - int size = 100; - ByteIterator itor = new RandomByteIterator(size); - assertTrue(itor.hasNext()); - assertEquals(size, itor.bytesLeft()); - assertEquals(size, itor.toString().getBytes().length); - assertFalse(itor.hasNext()); - assertEquals(0, itor.bytesLeft()); - - itor = new RandomByteIterator(size); - assertEquals(size, itor.toArray().length); - assertFalse(itor.hasNext()); - assertEquals(0, itor.bytesLeft()); - } -} DELETED YCSB/core/target/checkstyle-cachefile Index: YCSB/core/target/checkstyle-cachefile ================================================================== --- YCSB/core/target/checkstyle-cachefile +++ /dev/null @@ -1,2 +0,0 @@ -#Tue Mar 12 07:16:47 UTC 2013 -configuration*?=B43CD491C5128D9DE123F0CB9FB661E6113395AA DELETED YCSB/core/target/checkstyle-checker.xml Index: YCSB/core/target/checkstyle-checker.xml ================================================================== --- YCSB/core/target/checkstyle-checker.xml +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DELETED YCSB/core/target/checkstyle-header.txt Index: YCSB/core/target/checkstyle-header.txt ================================================================== --- YCSB/core/target/checkstyle-header.txt +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. DELETED YCSB/core/target/checkstyle-result.xml Index: YCSB/core/target/checkstyle-result.xml ================================================================== --- YCSB/core/target/checkstyle-result.xml +++ /dev/null @@ -1,3944 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DELETED YCSB/core/target/classes/com/yahoo/ycsb/BasicDB.class Index: YCSB/core/target/classes/com/yahoo/ycsb/BasicDB.class ================================================================== --- YCSB/core/target/classes/com/yahoo/ycsb/BasicDB.class +++ /dev/null cannot compute difference between binary files DELETED YCSB/core/target/classes/com/yahoo/ycsb/ByteArrayByteIterator.class Index: YCSB/core/target/classes/com/yahoo/ycsb/ByteArrayByteIterator.class ================================================================== --- YCSB/core/target/classes/com/yahoo/ycsb/ByteArrayByteIterator.class +++ /dev/null cannot compute difference between binary files DELETED YCSB/core/target/classes/com/yahoo/ycsb/ByteIterator.class Index: YCSB/core/target/classes/com/yahoo/ycsb/ByteIterator.class ================================================================== --- YCSB/core/target/classes/com/yahoo/ycsb/ByteIterator.class +++ /dev/null cannot compute difference between binary files DELETED YCSB/core/target/classes/com/yahoo/ycsb/Client$1.class Index: YCSB/core/target/classes/com/yahoo/ycsb/Client$1.class ================================================================== --- YCSB/core/target/classes/com/yahoo/ycsb/Client$1.class +++ /dev/null cannot compute difference between binary files DELETED YCSB/core/target/classes/com/yahoo/ycsb/Client.class Index: YCSB/core/target/classes/com/yahoo/ycsb/Client.class ================================================================== --- YCSB/core/target/classes/com/yahoo/ycsb/Client.class +++ /dev/null cannot compute difference between binary files DELETED YCSB/core/target/classes/com/yahoo/ycsb/ClientThread.class Index: YCSB/core/target/classes/com/yahoo/ycsb/ClientThread.class ================================================================== --- YCSB/core/target/classes/com/yahoo/ycsb/ClientThread.class +++ /dev/null cannot compute difference between binary files DELETED YCSB/core/target/classes/com/yahoo/ycsb/CommandLine.class Index: YCSB/core/target/classes/com/yahoo/ycsb/CommandLine.class ================================================================== --- YCSB/core/target/classes/com/yahoo/ycsb/CommandLine.class +++ /dev/null cannot compute difference between binary files DELETED YCSB/core/target/classes/com/yahoo/ycsb/DB.class Index: YCSB/core/target/classes/com/yahoo/ycsb/DB.class ================================================================== --- YCSB/core/target/classes/com/yahoo/ycsb/DB.class +++ /dev/null cannot compute difference between binary files DELETED YCSB/core/target/classes/com/yahoo/ycsb/DBException.class Index: YCSB/core/target/classes/com/yahoo/ycsb/DBException.class ================================================================== --- YCSB/core/target/classes/com/yahoo/ycsb/DBException.class +++ /dev/null cannot compute difference between binary files DELETED YCSB/core/target/classes/com/yahoo/ycsb/DBFactory.class Index: YCSB/core/target/classes/com/yahoo/ycsb/DBFactory.class ================================================================== --- YCSB/core/target/classes/com/yahoo/ycsb/DBFactory.class +++ /dev/null cannot compute difference between binary files DELETED YCSB/core/target/classes/com/yahoo/ycsb/DBWrapper.class Index: YCSB/core/target/classes/com/yahoo/ycsb/DBWrapper.class ================================================================== --- YCSB/core/target/classes/com/yahoo/ycsb/DBWrapper.class +++ /dev/null cannot compute difference between binary files DELETED YCSB/core/target/classes/com/yahoo/ycsb/InputStreamByteIterator.class Index: YCSB/core/target/classes/com/yahoo/ycsb/InputStreamByteIterator.class ================================================================== --- YCSB/core/target/classes/com/yahoo/ycsb/InputStreamByteIterator.class +++ /dev/null cannot compute difference between binary files DELETED YCSB/core/target/classes/com/yahoo/ycsb/RandomByteIterator.class Index: YCSB/core/target/classes/com/yahoo/ycsb/RandomByteIterator.class ================================================================== --- YCSB/core/target/classes/com/yahoo/ycsb/RandomByteIterator.class +++ /dev/null cannot compute difference between binary files DELETED YCSB/core/target/classes/com/yahoo/ycsb/StatusThread.class Index: YCSB/core/target/classes/com/yahoo/ycsb/StatusThread.class ================================================================== --- YCSB/core/target/classes/com/yahoo/ycsb/StatusThread.class +++ /dev/null cannot compute difference between binary files DELETED YCSB/core/target/classes/com/yahoo/ycsb/StringByteIterator.class Index: YCSB/core/target/classes/com/yahoo/ycsb/StringByteIterator.class ================================================================== --- YCSB/core/target/classes/com/yahoo/ycsb/StringByteIterator.class +++ /dev/null cannot compute difference between binary files DELETED YCSB/core/target/classes/com/yahoo/ycsb/TerminatorThread.class Index: YCSB/core/target/classes/com/yahoo/ycsb/TerminatorThread.class ================================================================== --- YCSB/core/target/classes/com/yahoo/ycsb/TerminatorThread.class +++ /dev/null cannot compute difference between binary files DELETED YCSB/core/target/classes/com/yahoo/ycsb/UnknownDBException.class Index: YCSB/core/target/classes/com/yahoo/ycsb/UnknownDBException.class ================================================================== --- YCSB/core/target/classes/com/yahoo/ycsb/UnknownDBException.class +++ /dev/null cannot compute difference between binary files DELETED YCSB/core/target/classes/com/yahoo/ycsb/Utils.class Index: YCSB/core/target/classes/com/yahoo/ycsb/Utils.class ================================================================== --- YCSB/core/target/classes/com/yahoo/ycsb/Utils.class +++ /dev/null cannot compute difference between binary files DELETED YCSB/core/target/classes/com/yahoo/ycsb/Workload.class Index: YCSB/core/target/classes/com/yahoo/ycsb/Workload.class ================================================================== --- YCSB/core/target/classes/com/yahoo/ycsb/Workload.class +++ /dev/null cannot compute difference between binary files DELETED YCSB/core/target/classes/com/yahoo/ycsb/WorkloadException.class Index: YCSB/core/target/classes/com/yahoo/ycsb/WorkloadException.class ================================================================== --- YCSB/core/target/classes/com/yahoo/ycsb/WorkloadException.class +++ /dev/null cannot compute difference between binary files DELETED YCSB/core/target/classes/com/yahoo/ycsb/generator/ConstantIntegerGenerator.class Index: YCSB/core/target/classes/com/yahoo/ycsb/generator/ConstantIntegerGenerator.class ================================================================== --- YCSB/core/target/classes/com/yahoo/ycsb/generator/ConstantIntegerGenerator.class +++ /dev/null cannot compute difference between binary files DELETED YCSB/core/target/classes/com/yahoo/ycsb/generator/CounterGenerator.class Index: YCSB/core/target/classes/com/yahoo/ycsb/generator/CounterGenerator.class ================================================================== --- YCSB/core/target/classes/com/yahoo/ycsb/generator/CounterGenerator.class +++ /dev/null cannot compute difference between binary files DELETED YCSB/core/target/classes/com/yahoo/ycsb/generator/DiscreteGenerator$Pair.class Index: YCSB/core/target/classes/com/yahoo/ycsb/generator/DiscreteGenerator$Pair.class ================================================================== --- YCSB/core/target/classes/com/yahoo/ycsb/generator/DiscreteGenerator$Pair.class +++ /dev/null cannot compute difference between binary files DELETED YCSB/core/target/classes/com/yahoo/ycsb/generator/DiscreteGenerator.class Index: YCSB/core/target/classes/com/yahoo/ycsb/generator/DiscreteGenerator.class ================================================================== --- YCSB/core/target/classes/com/yahoo/ycsb/generator/DiscreteGenerator.class +++ /dev/null cannot compute difference between binary files DELETED YCSB/core/target/classes/com/yahoo/ycsb/generator/ExponentialGenerator.class Index: YCSB/core/target/classes/com/yahoo/ycsb/generator/ExponentialGenerator.class ================================================================== --- YCSB/core/target/classes/com/yahoo/ycsb/generator/ExponentialGenerator.class +++ /dev/null cannot compute difference between binary files DELETED YCSB/core/target/classes/com/yahoo/ycsb/generator/FileGenerator.class Index: YCSB/core/target/classes/com/yahoo/ycsb/generator/FileGenerator.class ================================================================== --- YCSB/core/target/classes/com/yahoo/ycsb/generator/FileGenerator.class +++ /dev/null cannot compute difference between binary files DELETED YCSB/core/target/classes/com/yahoo/ycsb/generator/Generator.class Index: YCSB/core/target/classes/com/yahoo/ycsb/generator/Generator.class ================================================================== --- YCSB/core/target/classes/com/yahoo/ycsb/generator/Generator.class +++ /dev/null cannot compute difference between binary files DELETED YCSB/core/target/classes/com/yahoo/ycsb/generator/HistogramGenerator.class Index: YCSB/core/target/classes/com/yahoo/ycsb/generator/HistogramGenerator.class ================================================================== --- YCSB/core/target/classes/com/yahoo/ycsb/generator/HistogramGenerator.class +++ /dev/null cannot compute difference between binary files DELETED YCSB/core/target/classes/com/yahoo/ycsb/generator/HotspotIntegerGenerator.class Index: YCSB/core/target/classes/com/yahoo/ycsb/generator/HotspotIntegerGenerator.class ================================================================== --- YCSB/core/target/classes/com/yahoo/ycsb/generator/HotspotIntegerGenerator.class +++ /dev/null cannot compute difference between binary files DELETED YCSB/core/target/classes/com/yahoo/ycsb/generator/IntegerGenerator.class Index: YCSB/core/target/classes/com/yahoo/ycsb/generator/IntegerGenerator.class ================================================================== --- YCSB/core/target/classes/com/yahoo/ycsb/generator/IntegerGenerator.class +++ /dev/null cannot compute difference between binary files DELETED YCSB/core/target/classes/com/yahoo/ycsb/generator/ScrambledZipfianGenerator.class Index: YCSB/core/target/classes/com/yahoo/ycsb/generator/ScrambledZipfianGenerator.class ================================================================== --- YCSB/core/target/classes/com/yahoo/ycsb/generator/ScrambledZipfianGenerator.class +++ /dev/null cannot compute difference between binary files DELETED YCSB/core/target/classes/com/yahoo/ycsb/generator/SkewedLatestGenerator.class Index: YCSB/core/target/classes/com/yahoo/ycsb/generator/SkewedLatestGenerator.class ================================================================== --- YCSB/core/target/classes/com/yahoo/ycsb/generator/SkewedLatestGenerator.class +++ /dev/null cannot compute difference between binary files DELETED YCSB/core/target/classes/com/yahoo/ycsb/generator/UniformGenerator.class Index: YCSB/core/target/classes/com/yahoo/ycsb/generator/UniformGenerator.class ================================================================== --- YCSB/core/target/classes/com/yahoo/ycsb/generator/UniformGenerator.class +++ /dev/null cannot compute difference between binary files DELETED YCSB/core/target/classes/com/yahoo/ycsb/generator/UniformIntegerGenerator.class Index: YCSB/core/target/classes/com/yahoo/ycsb/generator/UniformIntegerGenerator.class ================================================================== --- YCSB/core/target/classes/com/yahoo/ycsb/generator/UniformIntegerGenerator.class +++ /dev/null cannot compute difference between binary files DELETED YCSB/core/target/classes/com/yahoo/ycsb/generator/ZipfianGenerator.class Index: YCSB/core/target/classes/com/yahoo/ycsb/generator/ZipfianGenerator.class ================================================================== --- YCSB/core/target/classes/com/yahoo/ycsb/generator/ZipfianGenerator.class +++ /dev/null cannot compute difference between binary files DELETED YCSB/core/target/classes/com/yahoo/ycsb/measurements/Measurements.class Index: YCSB/core/target/classes/com/yahoo/ycsb/measurements/Measurements.class ================================================================== --- YCSB/core/target/classes/com/yahoo/ycsb/measurements/Measurements.class +++ /dev/null cannot compute difference between binary files DELETED YCSB/core/target/classes/com/yahoo/ycsb/measurements/OneMeasurement.class Index: YCSB/core/target/classes/com/yahoo/ycsb/measurements/OneMeasurement.class ================================================================== --- YCSB/core/target/classes/com/yahoo/ycsb/measurements/OneMeasurement.class +++ /dev/null cannot compute difference between binary files DELETED YCSB/core/target/classes/com/yahoo/ycsb/measurements/OneMeasurementHistogram.class Index: YCSB/core/target/classes/com/yahoo/ycsb/measurements/OneMeasurementHistogram.class ================================================================== --- YCSB/core/target/classes/com/yahoo/ycsb/measurements/OneMeasurementHistogram.class +++ /dev/null cannot compute difference between binary files DELETED YCSB/core/target/classes/com/yahoo/ycsb/measurements/OneMeasurementTimeSeries.class Index: YCSB/core/target/classes/com/yahoo/ycsb/measurements/OneMeasurementTimeSeries.class ================================================================== --- YCSB/core/target/classes/com/yahoo/ycsb/measurements/OneMeasurementTimeSeries.class +++ /dev/null cannot compute difference between binary files DELETED YCSB/core/target/classes/com/yahoo/ycsb/measurements/SeriesUnit.class Index: YCSB/core/target/classes/com/yahoo/ycsb/measurements/SeriesUnit.class ================================================================== --- YCSB/core/target/classes/com/yahoo/ycsb/measurements/SeriesUnit.class +++ /dev/null cannot compute difference between binary files DELETED YCSB/core/target/classes/com/yahoo/ycsb/measurements/exporter/JSONMeasurementsExporter.class Index: YCSB/core/target/classes/com/yahoo/ycsb/measurements/exporter/JSONMeasurementsExporter.class ================================================================== --- YCSB/core/target/classes/com/yahoo/ycsb/measurements/exporter/JSONMeasurementsExporter.class +++ /dev/null cannot compute difference between binary files DELETED YCSB/core/target/classes/com/yahoo/ycsb/measurements/exporter/MeasurementsExporter.class Index: YCSB/core/target/classes/com/yahoo/ycsb/measurements/exporter/MeasurementsExporter.class ================================================================== --- YCSB/core/target/classes/com/yahoo/ycsb/measurements/exporter/MeasurementsExporter.class +++ /dev/null cannot compute difference between binary files DELETED YCSB/core/target/classes/com/yahoo/ycsb/measurements/exporter/TextMeasurementsExporter.class Index: YCSB/core/target/classes/com/yahoo/ycsb/measurements/exporter/TextMeasurementsExporter.class ================================================================== --- YCSB/core/target/classes/com/yahoo/ycsb/measurements/exporter/TextMeasurementsExporter.class +++ /dev/null cannot compute difference between binary files DELETED YCSB/core/target/classes/com/yahoo/ycsb/workloads/ConstantOccupancyWorkload.class Index: YCSB/core/target/classes/com/yahoo/ycsb/workloads/ConstantOccupancyWorkload.class ================================================================== --- YCSB/core/target/classes/com/yahoo/ycsb/workloads/ConstantOccupancyWorkload.class +++ /dev/null cannot compute difference between binary files DELETED YCSB/core/target/classes/com/yahoo/ycsb/workloads/CoreWorkload.class Index: YCSB/core/target/classes/com/yahoo/ycsb/workloads/CoreWorkload.class ================================================================== --- YCSB/core/target/classes/com/yahoo/ycsb/workloads/CoreWorkload.class +++ /dev/null cannot compute difference between binary files DELETED YCSB/core/target/core-0.1.4.jar Index: YCSB/core/target/core-0.1.4.jar ================================================================== --- YCSB/core/target/core-0.1.4.jar +++ /dev/null cannot compute difference between binary files DELETED YCSB/core/target/maven-archiver/pom.properties Index: YCSB/core/target/maven-archiver/pom.properties ================================================================== --- YCSB/core/target/maven-archiver/pom.properties +++ /dev/null @@ -1,5 +0,0 @@ -#Generated by Maven -#Tue Mar 12 07:16:58 UTC 2013 -version=0.1.4 -groupId=com.yahoo.ycsb -artifactId=core DELETED YCSB/core/target/site/checkstyle.html Index: YCSB/core/target/site/checkstyle.html ================================================================== --- YCSB/core/target/site/checkstyle.html +++ /dev/null cannot compute difference between binary files DELETED YCSB/core/target/site/checkstyle.rss Index: YCSB/core/target/site/checkstyle.rss ================================================================== --- YCSB/core/target/site/checkstyle.rss +++ /dev/null @@ -1,597 +0,0 @@ - - - - - Core YCSB - Checkstyle report - ${project.url} - Core YCSB - Checkstyle report - en-us - ©2013 - - File: 40, - Errors: 3861, - Warnings: 0, - Infos: 0 - - ${project.url}/checkstyle.html - -

Click here for the full Checkstyle report.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FilesIWE
- com/yahoo/ycsb/UnknownDBException.java - - 0 - - 0 - - 35 -
- com/yahoo/ycsb/ByteIterator.java - - 0 - - 0 - - 56 -
- com/yahoo/ycsb/generator/ZipfianGenerator.java - - 0 - - 0 - - 255 -
- com/yahoo/ycsb/generator/HotspotIntegerGenerator.java - - 0 - - 0 - - 16 -
- com/yahoo/ycsb/generator/ConstantIntegerGenerator.java - - 0 - - 0 - - 26 -
- com/yahoo/ycsb/BasicDB.java - - 0 - - 0 - - 202 -
- com/yahoo/ycsb/generator/CounterGenerator.java - - 0 - - 0 - - 45 -
- com/yahoo/ycsb/generator/IntegerGenerator.java - - 0 - - 0 - - 51 -
- com/yahoo/ycsb/DBWrapper.java - - 0 - - 0 - - 51 -
- com/yahoo/ycsb/measurements/OneMeasurement.java - - 0 - - 0 - - 31 -
- com/yahoo/ycsb/measurements/Measurements.java - - 0 - - 0 - - 148 -
- com/yahoo/ycsb/Utils.java - - 0 - - 0 - - 81 -
- com/yahoo/ycsb/measurements/exporter/TextMeasurementsExporter.java - - 0 - - 0 - - 19 -
- com/yahoo/ycsb/measurements/exporter/MeasurementsExporter.java - - 0 - - 0 - - 21 -
- com/yahoo/ycsb/TerminatorThread.java - - 0 - - 0 - - 19 -
- com/yahoo/ycsb/DBException.java - - 0 - - 0 - - 35 -
- com/yahoo/ycsb/InputStreamByteIterator.java - - 0 - - 0 - - 49 -
- com/yahoo/ycsb/CommandLine.java - - 0 - - 0 - - 477 -
- com/yahoo/ycsb/generator/ScrambledZipfianGenerator.java - - 0 - - 0 - - 111 -
- com/yahoo/ycsb/WorkloadException.java - - 0 - - 0 - - 35 -
- com/yahoo/ycsb/workloads/CoreWorkload.java - - 0 - - 0 - - 163 -
- com/yahoo/ycsb/DB.java - - 0 - - 0 - - 51 -
- com/yahoo/ycsb/generator/DiscreteGenerator.java - - 0 - - 0 - - 75 -
- com/yahoo/ycsb/generator/Generator.java - - 0 - - 0 - - 23 -
- com/yahoo/ycsb/measurements/exporter/JSONMeasurementsExporter.java - - 0 - - 0 - - 20 -
- com/yahoo/ycsb/generator/ExponentialGenerator.java - - 0 - - 0 - - 68 -
- com/yahoo/ycsb/DBFactory.java - - 0 - - 0 - - 20 -
- com/yahoo/ycsb/workloads/ConstantOccupancyWorkload.java - - 0 - - 0 - - 46 -
- com/yahoo/ycsb/generator/SkewedLatestGenerator.java - - 0 - - 0 - - 57 -
- com/yahoo/ycsb/generator/UniformGenerator.java - - 0 - - 0 - - 58 -
- com/yahoo/ycsb/generator/UniformIntegerGenerator.java - - 0 - - 0 - - 48 -
- com/yahoo/ycsb/RandomByteIterator.java - - 0 - - 0 - - 1 -
- com/yahoo/ycsb/Workload.java - - 0 - - 0 - - 48 -
- com/yahoo/ycsb/generator/HistogramGenerator.java - - 0 - - 0 - - 85 -
- com/yahoo/ycsb/StringByteIterator.java - - 0 - - 0 - - 75 -
- com/yahoo/ycsb/measurements/OneMeasurementHistogram.java - - 0 - - 0 - - 131 -
- com/yahoo/ycsb/measurements/OneMeasurementTimeSeries.java - - 0 - - 0 - - 150 -
- com/yahoo/ycsb/generator/FileGenerator.java - - 0 - - 0 - - 67 -
- com/yahoo/ycsb/Client.java - - 0 - - 0 - - 865 -
- com/yahoo/ycsb/ByteArrayByteIterator.java - - 0 - - 0 - - 47 -
- -
-
-
-
- DELETED YCSB/core/target/site/images/rss.png Index: YCSB/core/target/site/images/rss.png ================================================================== --- YCSB/core/target/site/images/rss.png +++ /dev/null cannot compute difference between binary files DELETED YCSB/core/target/surefire-reports/TEST-com.yahoo.ycsb.TestByteIterator.xml Index: YCSB/core/target/surefire-reports/TEST-com.yahoo.ycsb.TestByteIterator.xml ================================================================== --- YCSB/core/target/surefire-reports/TEST-com.yahoo.ycsb.TestByteIterator.xml +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DELETED YCSB/core/target/surefire-reports/com.yahoo.ycsb.TestByteIterator.txt Index: YCSB/core/target/surefire-reports/com.yahoo.ycsb.TestByteIterator.txt ================================================================== --- YCSB/core/target/surefire-reports/com.yahoo.ycsb.TestByteIterator.txt +++ /dev/null @@ -1,4 +0,0 @@ -------------------------------------------------------------------------------- -Test set: com.yahoo.ycsb.TestByteIterator -------------------------------------------------------------------------------- -Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.557 sec DELETED YCSB/core/target/surefire-reports/com.yahoo.ycsb.TestByteIterator/Command line test.html Index: YCSB/core/target/surefire-reports/com.yahoo.ycsb.TestByteIterator/Command line test.html ================================================================== --- YCSB/core/target/surefire-reports/com.yahoo.ycsb.TestByteIterator/Command line test.html +++ /dev/null @@ -1,84 +0,0 @@ - - -TestNG: Command line test - - - - - - - - -

Command line test

- - - - - - - - - - - -
Tests passed/Failed/Skipped:1/0/0
Started on:Tue Mar 12 07:16:57 UTC 2013
Total time:0 seconds (35 ms)
Included groups:
Excluded groups:

-(Hover the method name to see the test class name)

- - - - - - - - - - - - -
PASSED TESTS
Test methodExceptionTime (seconds)Instance
testRandomByteIterator
Test class: com.yahoo.ycsb.TestByteIterator
0com.yahoo.ycsb.TestByteIterator@3e937cea

- - DELETED YCSB/core/target/surefire-reports/com.yahoo.ycsb.TestByteIterator/Command line test.properties Index: YCSB/core/target/surefire-reports/com.yahoo.ycsb.TestByteIterator/Command line test.properties ================================================================== --- YCSB/core/target/surefire-reports/com.yahoo.ycsb.TestByteIterator/Command line test.properties +++ /dev/null @@ -1,1 +0,0 @@ -[SuiteResult Command line test] DELETED YCSB/core/target/surefire-reports/com.yahoo.ycsb.TestByteIterator/Command line test.xml Index: YCSB/core/target/surefire-reports/com.yahoo.ycsb.TestByteIterator/Command line test.xml ================================================================== --- YCSB/core/target/surefire-reports/com.yahoo.ycsb.TestByteIterator/Command line test.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - DELETED YCSB/core/target/surefire-reports/com.yahoo.ycsb.TestByteIterator/classes.html Index: YCSB/core/target/surefire-reports/com.yahoo.ycsb.TestByteIterator/classes.html ================================================================== --- YCSB/core/target/surefire-reports/com.yahoo.ycsb.TestByteIterator/classes.html +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Class nameMethod nameGroups
com.yahoo.ycsb.TestByteIterator  
@Test
 testRandomByteIterator 
@BeforeClass
@BeforeMethod
@AfterMethod
@AfterClass
DELETED YCSB/core/target/surefire-reports/com.yahoo.ycsb.TestByteIterator/groups.html Index: YCSB/core/target/surefire-reports/com.yahoo.ycsb.TestByteIterator/groups.html ================================================================== --- YCSB/core/target/surefire-reports/com.yahoo.ycsb.TestByteIterator/groups.html +++ /dev/null @@ -1,1 +0,0 @@ -

Groups used for this test run

DELETED YCSB/core/target/surefire-reports/com.yahoo.ycsb.TestByteIterator/index.html Index: YCSB/core/target/surefire-reports/com.yahoo.ycsb.TestByteIterator/index.html ================================================================== --- YCSB/core/target/surefire-reports/com.yahoo.ycsb.TestByteIterator/index.html +++ /dev/null @@ -1,6 +0,0 @@ -Results for com.yahoo.ycsb.TestByteIterator - - - - - DELETED YCSB/core/target/surefire-reports/com.yahoo.ycsb.TestByteIterator/main.html Index: YCSB/core/target/surefire-reports/com.yahoo.ycsb.TestByteIterator/main.html ================================================================== --- YCSB/core/target/surefire-reports/com.yahoo.ycsb.TestByteIterator/main.html +++ /dev/null @@ -1,2 +0,0 @@ -Results for com.yahoo.ycsb.TestByteIterator -Select a result on the left-hand pane. DELETED YCSB/core/target/surefire-reports/com.yahoo.ycsb.TestByteIterator/methods-alphabetical.html Index: YCSB/core/target/surefire-reports/com.yahoo.ycsb.TestByteIterator/methods-alphabetical.html ================================================================== --- YCSB/core/target/surefire-reports/com.yahoo.ycsb.TestByteIterator/methods-alphabetical.html +++ /dev/null @@ -1,6 +0,0 @@ -

Methods run, sorted chronologically

>> means before, << means after


com.yahoo.ycsb.TestByteIterator

(Hover the method name to see the test class name)

- - - - -
TimeDelta (ms)Suite
configuration
Test
configuration
Class
configuration
Groups
configuration
Method
configuration
Test
method
ThreadInstances
13/03/12 07:16:57 0      testRandomByteIteratormain@1251696669
DELETED YCSB/core/target/surefire-reports/com.yahoo.ycsb.TestByteIterator/methods-not-run.html Index: YCSB/core/target/surefire-reports/com.yahoo.ycsb.TestByteIterator/methods-not-run.html ================================================================== --- YCSB/core/target/surefire-reports/com.yahoo.ycsb.TestByteIterator/methods-not-run.html +++ /dev/null @@ -1,2 +0,0 @@ -

Methods that were not run

-
DELETED YCSB/core/target/surefire-reports/com.yahoo.ycsb.TestByteIterator/methods.html Index: YCSB/core/target/surefire-reports/com.yahoo.ycsb.TestByteIterator/methods.html ================================================================== --- YCSB/core/target/surefire-reports/com.yahoo.ycsb.TestByteIterator/methods.html +++ /dev/null @@ -1,6 +0,0 @@ -

Methods run, sorted chronologically

>> means before, << means after


com.yahoo.ycsb.TestByteIterator

(Hover the method name to see the test class name)

- - - - -
TimeDelta (ms)Suite
configuration
Test
configuration
Class
configuration
Groups
configuration
Method
configuration
Test
method
ThreadInstances
13/03/12 07:16:57 0      testRandomByteIteratormain@1251696669
DELETED YCSB/core/target/surefire-reports/com.yahoo.ycsb.TestByteIterator/reporter-output.html Index: YCSB/core/target/surefire-reports/com.yahoo.ycsb.TestByteIterator/reporter-output.html ================================================================== --- YCSB/core/target/surefire-reports/com.yahoo.ycsb.TestByteIterator/reporter-output.html +++ /dev/null @@ -1,1 +0,0 @@ -

Reporter output

DELETED YCSB/core/target/surefire-reports/com.yahoo.ycsb.TestByteIterator/testng.xml.html Index: YCSB/core/target/surefire-reports/com.yahoo.ycsb.TestByteIterator/testng.xml.html ================================================================== --- YCSB/core/target/surefire-reports/com.yahoo.ycsb.TestByteIterator/testng.xml.html +++ /dev/null @@ -1,1 +0,0 @@ -testng.xml for com.yahoo.ycsb.TestByteIterator<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite verbose="0" name="com.yahoo.ycsb.TestByteIterator">
  <test name="Command line test" preserve-order="false">
    <classes>
      <class name="com.yahoo.ycsb.TestByteIterator"/>
    </classes>
  </test>
</suite>
DELETED YCSB/core/target/surefire-reports/com.yahoo.ycsb.TestByteIterator/toc.html Index: YCSB/core/target/surefire-reports/com.yahoo.ycsb.TestByteIterator/toc.html ================================================================== --- YCSB/core/target/surefire-reports/com.yahoo.ycsb.TestByteIterator/toc.html +++ /dev/null @@ -1,30 +0,0 @@ - - -Results for com.yahoo.ycsb.TestByteIterator - - - - -

Results for
com.yahoo.ycsb.TestByteIterator

- - - - - - - - - - -
1 test1 class1 method:
-  chronological
-  alphabetical
-  not run (0)
0 groupreporter outputtestng.xml
- -

-

-
Command line test (1/0/0) - Results -
-
- DELETED YCSB/core/target/surefire-reports/emailable-report.html Index: YCSB/core/target/surefire-reports/emailable-report.html ================================================================== --- YCSB/core/target/surefire-reports/emailable-report.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -TestNG: Unit Test - - - - - - -
TestMethods
Passed
Scenarios
Passed
# skipped# failedTotal
Time
Included
Groups
Excluded
Groups
Command line test11000.0 seconds
- - - - - -
ClassMethod# of
Scenarios
Time
(Msecs)
Command line test — passed
com.yahoo.ycsb.TestByteIteratortestRandomByteIterator 118
-

Command line test

-

com.yahoo.ycsb.TestByteIterator:testRandomByteIterator

-

back to summary

- DELETED YCSB/core/target/surefire-reports/index.html Index: YCSB/core/target/surefire-reports/index.html ================================================================== --- YCSB/core/target/surefire-reports/index.html +++ /dev/null @@ -1,9 +0,0 @@ - -Test results - - -

Test results

- - - -
SuitePassedFailedSkippedtestng.xml
Total100 
com.yahoo.ycsb.TestByteIterator100Link
DELETED YCSB/core/target/surefire-reports/junitreports/TEST-com.yahoo.ycsb.TestByteIterator.xml Index: YCSB/core/target/surefire-reports/junitreports/TEST-com.yahoo.ycsb.TestByteIterator.xml ================================================================== --- YCSB/core/target/surefire-reports/junitreports/TEST-com.yahoo.ycsb.TestByteIterator.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - DELETED YCSB/core/target/surefire-reports/testng-results.xml Index: YCSB/core/target/surefire-reports/testng-results.xml ================================================================== --- YCSB/core/target/surefire-reports/testng-results.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - DELETED YCSB/core/target/surefire-reports/testng.css Index: YCSB/core/target/surefire-reports/testng.css ================================================================== --- YCSB/core/target/surefire-reports/testng.css +++ /dev/null @@ -1,9 +0,0 @@ -.invocation-failed, .test-failed { background-color: #DD0000; } -.invocation-percent, .test-percent { background-color: #006600; } -.invocation-passed, .test-passed { background-color: #00AA00; } -.invocation-skipped, .test-skipped { background-color: #CCCC00; } - -.main-page { - font-size: x-large; -} - DELETED YCSB/core/target/test-classes/com/yahoo/ycsb/TestByteIterator.class Index: YCSB/core/target/test-classes/com/yahoo/ycsb/TestByteIterator.class ================================================================== --- YCSB/core/target/test-classes/com/yahoo/ycsb/TestByteIterator.class +++ /dev/null cannot compute difference between binary files DELETED YCSB/distribution/pom.xml Index: YCSB/distribution/pom.xml ================================================================== --- YCSB/distribution/pom.xml +++ /dev/null @@ -1,47 +0,0 @@ - - 4.0.0 - - - com.yahoo.ycsb - root - 0.1.4 - - - ycsb - YCSB Release Distribution Builder - pom - - - This module creates the release package of the YCSB with all DB library bindings. - It is only used by the build process and does not contain any real - code of itself. - - - - - - org.apache.maven.plugins - maven-assembly-plugin - ${maven.assembly.version} - - - src/main/assembly/distribution.xml - - false - - - - package - - single - - - - - - - - - - DELETED YCSB/distribution/src/main/assembly/distribution.xml Index: YCSB/distribution/src/main/assembly/distribution.xml ================================================================== --- YCSB/distribution/src/main/assembly/distribution.xml +++ /dev/null @@ -1,63 +0,0 @@ - - package - - tar.gz - - true - - - .. - . - 0644 - - README - CHANGELOG - LICENSE.txt - NOTICE.txt - - - - ../bin - bin - 0755 - - - ../workloads - workloads - 0644 - - - - - true - true - - true - - - - . - 0644 - - README - - - - src/main/conf - conf - 0644 - - - lib - target - - *.jar - - 0644 - - - - - - DELETED YCSB/distribution/target/ycsb-0.1.4.tar.gz Index: YCSB/distribution/target/ycsb-0.1.4.tar.gz ================================================================== --- YCSB/distribution/target/ycsb-0.1.4.tar.gz +++ /dev/null cannot compute difference between binary files DELETED YCSB/doc/coreproperties.html Index: YCSB/doc/coreproperties.html ================================================================== --- YCSB/doc/coreproperties.html +++ /dev/null @@ -1,30 +0,0 @@ - - -YCSB - Core workload package properties - - -

Yahoo! Cloud Serving Benchmark

-

Version 0.1.2

-
-Home - Core workloads - Tips and FAQ -
-

Core workload package properties

-The property files used with the core workload generator can specify values for the following properties:

-

    -
  • fieldcount: the number of fields in a record (default: 10) -
  • fieldlength: the size of each field (default: 100) -
  • readallfields: should reads read all fields (true) or just one (false) (default: true) -
  • readproportion: what proportion of operations should be reads (default: 0.95) -
  • updateproportion: what proportion of operations should be updates (default: 0.05) -
  • insertproportion: what proportion of operations should be inserts (default: 0) -
  • scanproportion: what proportion of operations should be scans (default: 0) -
  • readmodifywriteproportion: what proportion of operations should be read a record, modify it, write it back (default: 0) -
  • requestdistribution: what distribution should be used to select the records to operate on - uniform, zipfian or latest (default: uniform) -
  • maxscanlength: for scans, what is the maximum number of records to scan (default: 1000) -
  • scanlengthdistribution: for scans, what distribution should be used to choose the number of records to scan, for each scan, between 1 and maxscanlength (default: uniform) -
  • insertorder: should records be inserted in order by key ("ordered"), or in hashed order ("hashed") (default: hashed) -
-
-YCSB - Yahoo! Research - Contact cooperb@yahoo-inc.com. - - DELETED YCSB/doc/coreworkloads.html Index: YCSB/doc/coreworkloads.html ================================================================== --- YCSB/doc/coreworkloads.html +++ /dev/null @@ -1,59 +0,0 @@ - - -YCSB - Core workloads - - -

Yahoo! Cloud Serving Benchmark

-

Version 0.1.2

-
-Home - Core workloads - Tips and FAQ -
-

Core workloads

-YCSB includes a set of core workloads that define a basic benchmark for cloud systems. Of course, you can define your own workloads, as described here. However, -the core workloads are a useful first step, and obtaining these benchmark numbers for a variety of different systems would allow you to understand the performance -tradeoffs of different systems. -

-The core workloads consist of six different workloads: -

-Workload A: Update heavy workload -

-This workload has a mix of 50/50 reads and writes. An application example is a session store recording recent actions. -

-Workload B: Read mostly workload -

-This workload has a 95/5 reads/write mix. Application example: photo tagging; add a tag is an update, but most operations are to read tags. -

-Workload C: Read only -

-This workload is 100% read. Application example: user profile cache, where profiles are constructed elsewhere (e.g., Hadoop). -

-Workload D: Read latest workload -

-In this workload, new records are inserted, and the most recently inserted records are the most popular. Application example: user status updates; people want to read the latest. -

-Workload E: Short ranges -

-In this workload, short ranges of records are queried, instead of individual records. Application example: threaded conversations, where each scan is for the posts in a given thread (assumed to be clustered by thread id). -

-Workload F: Read-modify-write -

-In this workload, the client will read a record, modify it, and write back the changes. Application example: user database, where user records are read and modified by the user or to record user activity. - -


-

Running the workloads

-All six workloads have a data set which is similar. Workloads D and E insert records during the test run. Thus, to keep the database size consistent, we recommend the following sequence: -
    -
  1. Load the database, using workload A's parameter file (workloads/workloada) and the "-load" switch to the client. -
  2. Run workload A (using workloads/workloada and "-t") for a variety of throughputs. -
  3. Run workload B (using workloads/workloadb and "-t") for a variety of throughputs. -
  4. Run workload C (using workloads/workloadc and "-t") for a variety of throughputs. -
  5. Run workload F (using workloads/workloadf and "-t") for a variety of throughputs. -
  6. Run workload D (using workloads/workloadd and "-t") for a variety of throughputs. This workload inserts records, increasing the size of the database. -
  7. Delete the data in the database. -
  8. Reload the database, using workload E's parameter file (workloads/workloade) and the "-load switch to the client. -
  9. Run workload E (using workloads/workloadd and "-t") for a variety of throughputs. This workload inserts records, increasing the size of the database. -
-
-YCSB - Yahoo! Research - Contact cooperb@yahoo-inc.com. - - DELETED YCSB/doc/dblayer.html Index: YCSB/doc/dblayer.html ================================================================== --- YCSB/doc/dblayer.html +++ /dev/null @@ -1,98 +0,0 @@ - - -YCSB - DB Interface Layer - - -

Yahoo! Cloud Serving Benchmark

-

Version 0.1.2

-
-Home - Core workloads - Tips and FAQ -
-

Implementing a database interface layer - overview

-The database interface layer hides the details of the specific database you are benchmarking from the YCSB Client. This -allows the client to generate operations like "read record" or "update record" without having to understand -the specific API of your database. Thus, it is very easy to benchmark new database systems; once you have -created the database interface layer, the rest of the benchmark framework runs without having to change. -

-The database interface layer is a simple abstract class that provides read, insert, update, delete and scan operations for your -database. Implementing a database interface layer for your database means filling out the body of each of those methods. Once you -have compiled your layer, you can specify the name of your implemented class on the command line (or as a property) to the YCSB Client. -The YCSB Client will load your implementation dynamically when it starts. Thus, you do not need to recompile the YCSB Client itself -to add or change a database interface layer. -


-

Creating a new layer step-by-step

-

Step 1 - Extend com.yahoo.ycsb.DB

-The base class of all database interface layer implementations is com.yahoo.ycsb.DB. This is an abstract class, so you need to create a new -class which extends the DB class. Your class must have a public no-argument constructor, because the instances will be constructed inside a factory -which will use the no-argument constructor. -

-The YCSB Client framework will create one instance of your DB class per worker thread, but there might be multiple worker threads generating the workload, -so there might be multiple instances of your DB class created. - -

Step 2 - Implement init() if necessary

-You can perform any initialization of your DB object by implementing the following method -
 
-public void init() throws DBException
-
-to perform any initialization actions. The init() method will be called once per DB instance; so if there are multiple threads, each DB instance will have init() -called separately. -

-The init() method should be used to set up the connection to the database and do any other initialization. In particular, you can configure your database layer -using properties passed to the YCSB Client at runtime. In fact, the YCSB Client will pass to the DB interface layer -all of the -properties specified in all parameter files specified when the Client starts up. Thus, you can create new properties for configuring your DB interface layer, -set them in your parameter files (or on the command line), and -then retrieve them inside your implementation of the DB interface layer. -

-These properties will be passed to the DB instance after the constructor, so it is important to retrieve them only in the init() method and not the -constructor. You can get the set of properties using the -

-public Properties getProperties()
-
-method which is already implemented and inherited from the DB base class. - -

Step 3 - Implement the database query and update methods

- -The methods that you need to implement are: - -
-  //Read a single record
-  public int read(String table, String key, Set fields, HashMap result);
-
-  //Perform a range scan
-  public int scan(String table, String startkey, int recordcount, Set fields, Vector> result);
-	
-  //Update a single record
-  public int update(String table, String key, HashMap values);
-
-  //Insert a single record
-  public int insert(String table, String key, HashMap values);
-
-  //Delete a single record
-  public int delete(String table, String key);
-
-In each case, the method takes a table name and record key. (In the case of scan, the record key is the first key in the range to scan.) For the -read methods (read() and scan()) the methods additionally take a set of fields to be read, and provide a structure (HashMap or Vector of HashMaps) to store -the returned data. For the write methods (insert() and update()) the methods take HashMap which maps field names to values. -

-The database should have the appropriate tables created before you run the benchmark. So you can assume in your implementation of the above methods -that the appropriate tables already exist, and just write code to read or write from the tables named in the "table" parameter. -

Step 4 - Compile your database interface layer

-Your code can be compiled separately from the compilation of the YCSB Client and framework. In particular, you can make changes to your DB class and -recompile without having to recompile the YCSB Client. -

Step 5 - Use it with the YCSB Client

-Make sure that the classes for your implementation (or a jar containing those classes) are available on your CLASSPATH, as well as any libraries/jar files used -by your implementation. Now, when you run the YCSB Client, specify the "-db" argument on the command line and provide the fully qualified classname of your -DB class. For example, to run workloada with your DB class: -
-%  java -cp build/ycsb.jar:yourjarpath com.yahoo.ycsb.Client -t -db com.foo.YourDBClass -P workloads/workloada -P large.dat -s > transactions.dat
-
- -You can also specify the DB interface layer using the DB property in your parameter file: -
-db=com.foo.YourDBClass
-
-
-YCSB - Yahoo! Research - Contact cooperb@yahoo-inc.com. - - DELETED YCSB/doc/images/ycsb.jpg Index: YCSB/doc/images/ycsb.jpg ================================================================== --- YCSB/doc/images/ycsb.jpg +++ /dev/null cannot compute difference between binary files DELETED YCSB/doc/images/ycsblogo-small.png Index: YCSB/doc/images/ycsblogo-small.png ================================================================== --- YCSB/doc/images/ycsblogo-small.png +++ /dev/null cannot compute difference between binary files DELETED YCSB/doc/index.html Index: YCSB/doc/index.html ================================================================== --- YCSB/doc/index.html +++ /dev/null @@ -1,76 +0,0 @@ - - -YCSB - Yahoo! Cloud Serving Benchmark - - -

Yahoo! Cloud Serving Benchmark

-

Version 0.1.2

-
-Home - Core workloads - Tips and FAQ -
- -
- -

Overview

-There are many new serving databases available, including: -
-It is difficult to decide which system is right for your application, partially because the features differ between -systems, and partially because there is not an easy way to compare the performance of one system versus another. -

-The goal of the YCSB project is to develop a framework and common set of workloads for evaluating the performance of -different "key-value" and "cloud" serving stores. The project comprises two things: -

    -
  • The YCSB Client, an extensible workload generator -
  • The Core workloads, a set of workload scenarios to be executed by the generator -
-Although the core workloads provide a well rounded picture of a system's performance, the Client is extensible so that -you can define new and different workloads to examine system aspects, or application scenarios, not adequately covered by -the core workload. Similarly, the Client is extensible to support benchmarking different databases. Although we include -sample code for benchmarking HBase and Cassandra, it is straightforward to write a new interface layer to benchmark -your favorite database. -

-A common use of the tool is to benchmark multiple systems and compare them. For example, you can install multiple systems -on the same hardward configuration, and run the same workloads against each system. Then you can plot the performance -of each system (for example, as latency versus throughput curves) to see when one system does better than another. -


- -

Download YCSB

-YCSB is available -at
http://wiki.github.com/brianfrankcooper/YCSB/. -
- -

Getting started

-Detailed instructions for using YCSB are available on the GitHub wiki: -
http://wiki.github.com/brianfrankcooper/YCSB/getting-started. -
- -

Extending YCSB

-YCSB is designed to be extensible. It is easy to add a new database interface layer to support benchmarking a new database. It is also easy to define new workloads. -
-More details about the entire class structure of YCSB is available here: - -
-YCSB - Yahoo! Research - Contact cooperb@yahoo-inc.com. - - DELETED YCSB/doc/javadoc/allclasses-frame.html Index: YCSB/doc/javadoc/allclasses-frame.html ================================================================== --- YCSB/doc/javadoc/allclasses-frame.html +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - -All Classes - - - - - - - - - - - -All Classes -
- - - - - -
BasicDB -
-CassandraClient5 -
-CassandraClient6 -
-CassandraClient7 -
-Client -
-CommandLine -
-CoreWorkload -
-CounterGenerator -
-DB -
-DBException -
-DBFactory -
-DBWrapper -
-DiscreteGenerator -
-Generator -
-HBaseClient -
-IntegerGenerator -
-Measurements -
-MongoDbClient -
-OneMeasurement -
-OneMeasurementHistogram -
-OneMeasurementTimeSeries -
-ScrambledZipfianGenerator -
-SkewedLatestGenerator -
-UniformGenerator -
-UniformIntegerGenerator -
-UnknownDBException -
-Utils -
-Workload -
-WorkloadException -
-ZipfianGenerator -
-
- - - DELETED YCSB/doc/javadoc/allclasses-noframe.html Index: YCSB/doc/javadoc/allclasses-noframe.html ================================================================== --- YCSB/doc/javadoc/allclasses-noframe.html +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - -All Classes - - - - - - - - - - - -All Classes -
- - - - - -
BasicDB -
-CassandraClient5 -
-CassandraClient6 -
-CassandraClient7 -
-Client -
-CommandLine -
-CoreWorkload -
-CounterGenerator -
-DB -
-DBException -
-DBFactory -
-DBWrapper -
-DiscreteGenerator -
-Generator -
-HBaseClient -
-IntegerGenerator -
-Measurements -
-MongoDbClient -
-OneMeasurement -
-OneMeasurementHistogram -
-OneMeasurementTimeSeries -
-ScrambledZipfianGenerator -
-SkewedLatestGenerator -
-UniformGenerator -
-UniformIntegerGenerator -
-UnknownDBException -
-Utils -
-Workload -
-WorkloadException -
-ZipfianGenerator -
-
- - - DELETED YCSB/doc/javadoc/com/yahoo/ycsb/BasicDB.html Index: YCSB/doc/javadoc/com/yahoo/ycsb/BasicDB.html ================================================================== --- YCSB/doc/javadoc/com/yahoo/ycsb/BasicDB.html +++ /dev/null @@ -1,511 +0,0 @@ - - - - - - -BasicDB - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
- -
- - - -
- -

- -com.yahoo.ycsb -
-Class BasicDB

-
-java.lang.Object
-  extended by com.yahoo.ycsb.DB
-      extended by com.yahoo.ycsb.BasicDB
-
-
-
-
public class BasicDB
extends DB
- - -

-Basic DB that just prints out the requested operations, instead of doing them against a database. -

- -

-


- -

- - - - - - - - - - - - - - - - - - - - - - - -
-Field Summary
-static java.lang.StringSIMULATE_DELAY - -
-           
-static java.lang.StringSIMULATE_DELAY_DEFAULT - -
-           
-static java.lang.StringVERBOSE - -
-           
-static java.lang.StringVERBOSE_DEFAULT - -
-           
-  - - - - - - - - - - -
-Constructor Summary
BasicDB() - -
-           
-  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Method Summary
- intdelete(java.lang.String table, - java.lang.String key) - -
-          Delete a record from the database.
- voidinit() - -
-          Initialize any state for this DB.
- intinsert(java.lang.String table, - java.lang.String key, - java.util.HashMap<java.lang.String,java.lang.String> values) - -
-          Insert a record in the database.
- intread(java.lang.String table, - java.lang.String key, - java.util.Set<java.lang.String> fields, - java.util.HashMap<java.lang.String,java.lang.String> result) - -
-          Read a record from the database.
- intscan(java.lang.String table, - java.lang.String startkey, - int recordcount, - java.util.Set<java.lang.String> fields, - java.util.Vector<java.util.HashMap<java.lang.String,java.lang.String>> result) - -
-          Perform a range scan for a set of records in the database.
- intupdate(java.lang.String table, - java.lang.String key, - java.util.HashMap<java.lang.String,java.lang.String> values) - -
-          Update a record in the database.
- - - - - - - -
Methods inherited from class com.yahoo.ycsb.DB
cleanup, getProperties, setProperties
- - - - - - - -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-  -

- - - - - - - - -
-Field Detail
- -

-VERBOSE

-
-public static final java.lang.String VERBOSE
-
-
-
See Also:
Constant Field Values
-
-
- -

-VERBOSE_DEFAULT

-
-public static final java.lang.String VERBOSE_DEFAULT
-
-
-
See Also:
Constant Field Values
-
-
- -

-SIMULATE_DELAY

-
-public static final java.lang.String SIMULATE_DELAY
-
-
-
See Also:
Constant Field Values
-
-
- -

-SIMULATE_DELAY_DEFAULT

-
-public static final java.lang.String SIMULATE_DELAY_DEFAULT
-
-
-
See Also:
Constant Field Values
-
- - - - - - - - -
-Constructor Detail
- -

-BasicDB

-
-public BasicDB()
-
-
- - - - - - - - -
-Method Detail
- -

-init

-
-public void init()
-
-
Initialize any state for this DB. - Called once per DB instance; there is one DB instance per client thread. -

-

-
Overrides:
init in class DB
-
-
-
-
-
-
- -

-read

-
-public int read(java.lang.String table,
-                java.lang.String key,
-                java.util.Set<java.lang.String> fields,
-                java.util.HashMap<java.lang.String,java.lang.String> result)
-
-
Read a record from the database. Each field/value pair from the result will be stored in a HashMap. -

-

-
Specified by:
read in class DB
-
-
-
Parameters:
table - The name of the table
key - The record key of the record to read.
fields - The list of fields to read, or null for all of them
result - A HashMap of field/value pairs for the result -
Returns:
Zero on success, a non-zero error code on error
-
-
-
- -

-scan

-
-public int scan(java.lang.String table,
-                java.lang.String startkey,
-                int recordcount,
-                java.util.Set<java.lang.String> fields,
-                java.util.Vector<java.util.HashMap<java.lang.String,java.lang.String>> result)
-
-
Perform a range scan for a set of records in the database. Each field/value pair from the result will be stored in a HashMap. -

-

-
Specified by:
scan in class DB
-
-
-
Parameters:
table - The name of the table
startkey - The record key of the first record to read.
recordcount - The number of records to read
fields - The list of fields to read, or null for all of them
result - A Vector of HashMaps, where each HashMap is a set field/value pairs for one record -
Returns:
Zero on success, a non-zero error code on error
-
-
-
- -

-update

-
-public int update(java.lang.String table,
-                  java.lang.String key,
-                  java.util.HashMap<java.lang.String,java.lang.String> values)
-
-
Update a record in the database. Any field/value pairs in the specified values HashMap will be written into the record with the specified - record key, overwriting any existing values with the same field name. -

-

-
Specified by:
update in class DB
-
-
-
Parameters:
table - The name of the table
key - The record key of the record to write.
values - A HashMap of field/value pairs to update in the record -
Returns:
Zero on success, a non-zero error code on error
-
-
-
- -

-insert

-
-public int insert(java.lang.String table,
-                  java.lang.String key,
-                  java.util.HashMap<java.lang.String,java.lang.String> values)
-
-
Insert a record in the database. Any field/value pairs in the specified values HashMap will be written into the record with the specified - record key. -

-

-
Specified by:
insert in class DB
-
-
-
Parameters:
table - The name of the table
key - The record key of the record to insert.
values - A HashMap of field/value pairs to insert in the record -
Returns:
Zero on success, a non-zero error code on error
-
-
-
- -

-delete

-
-public int delete(java.lang.String table,
-                  java.lang.String key)
-
-
Delete a record from the database. -

-

-
Specified by:
delete in class DB
-
-
-
Parameters:
table - The name of the table
key - The record key of the record to delete. -
Returns:
Zero on success, a non-zero error code on error
-
-
- -
- - - - - - - - - - - - - - - - - - - -
- -
- - - -
- - - DELETED YCSB/doc/javadoc/com/yahoo/ycsb/Client.html Index: YCSB/doc/javadoc/com/yahoo/ycsb/Client.html ================================================================== --- YCSB/doc/javadoc/com/yahoo/ycsb/Client.html +++ /dev/null @@ -1,386 +0,0 @@ - - - - - - -Client - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
- -
- - - -
- -

- -com.yahoo.ycsb -
-Class Client

-
-java.lang.Object
-  extended by com.yahoo.ycsb.Client
-
-
-
-
public class Client
extends java.lang.Object
- - -

-Main class for executing YCSB. -

- -

-


- -

- - - - - - - - - - - - - - - - - - - - - - - -
-Field Summary
-static java.lang.StringINSERT_COUNT_PROPERTY - -
-          Indicates how many inserts to do, if less than recordcount.
-static java.lang.StringOPERATION_COUNT_PROPERTY - -
-           
-static java.lang.StringRECORD_COUNT_PROPERTY - -
-           
-static java.lang.StringWORKLOAD_PROPERTY - -
-           
-  - - - - - - - - - - -
-Constructor Summary
Client() - -
-           
-  - - - - - - - - - - - - - - - - - - - -
-Method Summary
-static booleancheckRequiredProperties(java.util.Properties props) - -
-           
-static voidmain(java.lang.String[] args) - -
-           
-static voidusageMessage() - -
-           
- - - - - - - -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-  -

- - - - - - - - -
-Field Detail
- -

-OPERATION_COUNT_PROPERTY

-
-public static final java.lang.String OPERATION_COUNT_PROPERTY
-
-
-
See Also:
Constant Field Values
-
-
- -

-RECORD_COUNT_PROPERTY

-
-public static final java.lang.String RECORD_COUNT_PROPERTY
-
-
-
See Also:
Constant Field Values
-
-
- -

-WORKLOAD_PROPERTY

-
-public static final java.lang.String WORKLOAD_PROPERTY
-
-
-
See Also:
Constant Field Values
-
-
- -

-INSERT_COUNT_PROPERTY

-
-public static final java.lang.String INSERT_COUNT_PROPERTY
-
-
Indicates how many inserts to do, if less than recordcount. Useful for partitioning - the load among multiple servers, if the client is the bottleneck. Additionally, workloads - should support the "insertstart" property, which tells them which record to start at. -

-

-
See Also:
Constant Field Values
-
- - - - - - - - -
-Constructor Detail
- -

-Client

-
-public Client()
-
-
- - - - - - - - -
-Method Detail
- -

-usageMessage

-
-public static void usageMessage()
-
-
-
-
-
-
- -

-checkRequiredProperties

-
-public static boolean checkRequiredProperties(java.util.Properties props)
-
-
-
-
-
-
- -

-main

-
-public static void main(java.lang.String[] args)
-
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - -
- -
- - - -
- - - DELETED YCSB/doc/javadoc/com/yahoo/ycsb/CounterGenerator.html Index: YCSB/doc/javadoc/com/yahoo/ycsb/CounterGenerator.html ================================================================== --- YCSB/doc/javadoc/com/yahoo/ycsb/CounterGenerator.html +++ /dev/null @@ -1,270 +0,0 @@ - - - - - - -CounterGenerator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - -
- -

- -com.yahoo.ycsb -
-Class CounterGenerator

-
-java.lang.Object
-  extended by com.yahoo.ycsb.Generator
-      extended by com.yahoo.ycsb.IntegerGenerator
-          extended by com.yahoo.ycsb.CounterGenerator
-
-
-
-
public class CounterGenerator
extends IntegerGenerator
- - -

-Generates a sequence of integers 0, 1, ... -

- -

-


- -

- - - - - - - - - - - -
-Constructor Summary
CounterGenerator(int countstart) - -
-          Create a counter that starts at countstart
-  - - - - - - - - - - - -
-Method Summary
- intnextInt() - -
-          If the generator returns numeric (integer) values, return the next value as an int.
- - - - - - - -
Methods inherited from class com.yahoo.ycsb.IntegerGenerator
lastInt, lastString, nextString, setLastInt
- - - - - - - -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-  -

- - - - - - - - -
-Constructor Detail
- -

-CounterGenerator

-
-public CounterGenerator(int countstart)
-
-
Create a counter that starts at countstart -

-

- - - - - - - - -
-Method Detail
- -

-nextInt

-
-public int nextInt()
-
-
If the generator returns numeric (integer) values, return the next value as an int. Default is to return -1, which - is appropriate for generators that do not return numeric values. -

-

-
Specified by:
nextInt in class IntegerGenerator
-
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - -
- -
- - - -
- - - DELETED YCSB/doc/javadoc/com/yahoo/ycsb/DB.html Index: YCSB/doc/javadoc/com/yahoo/ycsb/DB.html ================================================================== --- YCSB/doc/javadoc/com/yahoo/ycsb/DB.html +++ /dev/null @@ -1,482 +0,0 @@ - - - - - - -DB - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
- -
- - - -
- -

- -com.yahoo.ycsb -
-Class DB

-
-java.lang.Object
-  extended by com.yahoo.ycsb.DB
-
-
-
Direct Known Subclasses:
BasicDB, CassandraClient5, CassandraClient6, CassandraClient7, DBWrapper, HBaseClient, MongoDbClient
-
-
-
-
public abstract class DB
extends java.lang.Object
- - -

-A layer for accessing a database to be benchmarked. Each thread in the client - will be given its own instance of whatever DB class is to be used in the test. - This class should be constructed using a no-argument constructor, so we can - load it dynamically. Any argument-based initialization should be - done by init(). - - Note that YCSB does not make any use of the return codes returned by this class. - Instead, it keeps a count of the return values and presents them to the user. - - The semantics of methods such as insert, update and delete vary from database - to database. In particular, operations may or may not be durable once these - methods commit, and some systems may return 'success' regardless of whether - or not a tuple with a matching key existed before the call. Rather than dictate - the exact semantics of these methods, we recommend you either implement them - to match the database's default semantics, or the semantics of your - target application. For the sake of comparison between experiments we also - recommend you explain the semantics you chose when presenting performance results. -

- -

-


- -

- - - - - - - - - - - -
-Constructor Summary
DB() - -
-           
-  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Method Summary
- voidcleanup() - -
-          Cleanup any state for this DB.
-abstract  intdelete(java.lang.String table, - java.lang.String key) - -
-          Delete a record from the database.
- java.util.PropertiesgetProperties() - -
-          Get the set of properties for this DB.
- voidinit() - -
-          Initialize any state for this DB.
-abstract  intinsert(java.lang.String table, - java.lang.String key, - java.util.HashMap<java.lang.String,java.lang.String> values) - -
-          Insert a record in the database.
-abstract  intread(java.lang.String table, - java.lang.String key, - java.util.Set<java.lang.String> fields, - java.util.HashMap<java.lang.String,java.lang.String> result) - -
-          Read a record from the database.
-abstract  intscan(java.lang.String table, - java.lang.String startkey, - int recordcount, - java.util.Set<java.lang.String> fields, - java.util.Vector<java.util.HashMap<java.lang.String,java.lang.String>> result) - -
-          Perform a range scan for a set of records in the database.
- voidsetProperties(java.util.Properties p) - -
-          Set the properties for this DB.
-abstract  intupdate(java.lang.String table, - java.lang.String key, - java.util.HashMap<java.lang.String,java.lang.String> values) - -
-          Update a record in the database.
- - - - - - - -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-  -

- - - - - - - - -
-Constructor Detail
- -

-DB

-
-public DB()
-
-
- - - - - - - - -
-Method Detail
- -

-setProperties

-
-public void setProperties(java.util.Properties p)
-
-
Set the properties for this DB. -

-

-
-
-
-
- -

-getProperties

-
-public java.util.Properties getProperties()
-
-
Get the set of properties for this DB. -

-

-
-
-
-
- -

-init

-
-public void init()
-          throws DBException
-
-
Initialize any state for this DB. - Called once per DB instance; there is one DB instance per client thread. -

-

- -
Throws: -
DBException
-
-
-
- -

-cleanup

-
-public void cleanup()
-             throws DBException
-
-
Cleanup any state for this DB. - Called once per DB instance; there is one DB instance per client thread. -

-

- -
Throws: -
DBException
-
-
-
- -

-read

-
-public abstract int read(java.lang.String table,
-                         java.lang.String key,
-                         java.util.Set<java.lang.String> fields,
-                         java.util.HashMap<java.lang.String,java.lang.String> result)
-
-
Read a record from the database. Each field/value pair from the result will be stored in a HashMap. -

-

-
Parameters:
table - The name of the table
key - The record key of the record to read.
fields - The list of fields to read, or null for all of them
result - A HashMap of field/value pairs for the result -
Returns:
Zero on success, a non-zero error code on error or "not found".
-
-
-
- -

-scan

-
-public abstract int scan(java.lang.String table,
-                         java.lang.String startkey,
-                         int recordcount,
-                         java.util.Set<java.lang.String> fields,
-                         java.util.Vector<java.util.HashMap<java.lang.String,java.lang.String>> result)
-
-
Perform a range scan for a set of records in the database. Each field/value pair from the result will be stored in a HashMap. -

-

-
Parameters:
table - The name of the table
startkey - The record key of the first record to read.
recordcount - The number of records to read
fields - The list of fields to read, or null for all of them
result - A Vector of HashMaps, where each HashMap is a set field/value pairs for one record -
Returns:
Zero on success, a non-zero error code on error. See this class's description for a discussion of error codes.
-
-
-
- -

-update

-
-public abstract int update(java.lang.String table,
-                           java.lang.String key,
-                           java.util.HashMap<java.lang.String,java.lang.String> values)
-
-
Update a record in the database. Any field/value pairs in the specified values HashMap will be written into the record with the specified - record key, overwriting any existing values with the same field name. -

-

-
Parameters:
table - The name of the table
key - The record key of the record to write.
values - A HashMap of field/value pairs to update in the record -
Returns:
Zero on success, a non-zero error code on error. See this class's description for a discussion of error codes.
-
-
-
- -

-insert

-
-public abstract int insert(java.lang.String table,
-                           java.lang.String key,
-                           java.util.HashMap<java.lang.String,java.lang.String> values)
-
-
Insert a record in the database. Any field/value pairs in the specified values HashMap will be written into the record with the specified - record key. -

-

-
Parameters:
table - The name of the table
key - The record key of the record to insert.
values - A HashMap of field/value pairs to insert in the record -
Returns:
Zero on success, a non-zero error code on error. See this class's description for a discussion of error codes.
-
-
-
- -

-delete

-
-public abstract int delete(java.lang.String table,
-                           java.lang.String key)
-
-
Delete a record from the database. -

-

-
Parameters:
table - The name of the table
key - The record key of the record to delete. -
Returns:
Zero on success, a non-zero error code on error. See this class's description for a discussion of error codes.
-
-
- -
- - - - - - - - - - - - - - - - - - - -
- -
- - - -
- - - DELETED YCSB/doc/javadoc/com/yahoo/ycsb/DBException.html Index: YCSB/doc/javadoc/com/yahoo/ycsb/DBException.html ================================================================== --- YCSB/doc/javadoc/com/yahoo/ycsb/DBException.html +++ /dev/null @@ -1,286 +0,0 @@ - - - - - - -DBException - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
- -
- - - -
- -

- -com.yahoo.ycsb -
-Class DBException

-
-java.lang.Object
-  extended by java.lang.Throwable
-      extended by java.lang.Exception
-          extended by com.yahoo.ycsb.DBException
-
-
-
All Implemented Interfaces:
java.io.Serializable
-
-
-
-
public class DBException
extends java.lang.Exception
- - -

-Something bad happened while interacting with the database. -

- -

-

-
See Also:
Serialized Form
-
- -

- - - - - - - - - - - - - - - - - - - - -
-Constructor Summary
DBException() - -
-           
DBException(java.lang.String message) - -
-           
DBException(java.lang.String message, - java.lang.Throwable cause) - -
-           
DBException(java.lang.Throwable cause) - -
-           
-  - - - - - - - -
-Method Summary
- - - - - - - -
Methods inherited from class java.lang.Throwable
fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString
- - - - - - - -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-  -

- - - - - - - - -
-Constructor Detail
- -

-DBException

-
-public DBException(java.lang.String message)
-
-
-
- -

-DBException

-
-public DBException()
-
-
-
- -

-DBException

-
-public DBException(java.lang.String message,
-                   java.lang.Throwable cause)
-
-
-
- -

-DBException

-
-public DBException(java.lang.Throwable cause)
-
-
- -
- - - - - - - - - - - - - - - - - - - -
- -
- - - -
- - - DELETED YCSB/doc/javadoc/com/yahoo/ycsb/DBFactory.html Index: YCSB/doc/javadoc/com/yahoo/ycsb/DBFactory.html ================================================================== --- YCSB/doc/javadoc/com/yahoo/ycsb/DBFactory.html +++ /dev/null @@ -1,259 +0,0 @@ - - - - - - -DBFactory - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
- -
- - - -
- -

- -com.yahoo.ycsb -
-Class DBFactory

-
-java.lang.Object
-  extended by com.yahoo.ycsb.DBFactory
-
-
-
-
public class DBFactory
extends java.lang.Object
- - -

-Creates a DB layer by dynamically classloading the specified DB class. -

- -

-


- -

- - - - - - - - - - - -
-Constructor Summary
DBFactory() - -
-           
-  - - - - - - - - - - - -
-Method Summary
-static DBnewDB(java.lang.String dbname, - java.util.Properties properties) - -
-           
- - - - - - - -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-  -

- - - - - - - - -
-Constructor Detail
- -

-DBFactory

-
-public DBFactory()
-
-
- - - - - - - - -
-Method Detail
- -

-newDB

-
-public static DB newDB(java.lang.String dbname,
-                       java.util.Properties properties)
-                throws UnknownDBException
-
-
- -
Throws: -
UnknownDBException
-
-
- -
- - - - - - - - - - - - - - - - - - - -
- -
- - - -
- - - DELETED YCSB/doc/javadoc/com/yahoo/ycsb/DBWrapper.html Index: YCSB/doc/javadoc/com/yahoo/ycsb/DBWrapper.html ================================================================== --- YCSB/doc/javadoc/com/yahoo/ycsb/DBWrapper.html +++ /dev/null @@ -1,491 +0,0 @@ - - - - - - -DBWrapper - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
- -
- - - -
- -

- -com.yahoo.ycsb -
-Class DBWrapper

-
-java.lang.Object
-  extended by com.yahoo.ycsb.DB
-      extended by com.yahoo.ycsb.DBWrapper
-
-
-
-
public class DBWrapper
extends DB
- - -

-Wrapper around a "real" DB that measures latencies and counts return codes. -

- -

-


- -

- - - - - - - - - - - -
-Constructor Summary
DBWrapper(DB db) - -
-           
-  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Method Summary
- voidcleanup() - -
-          Cleanup any state for this DB.
- intdelete(java.lang.String table, - java.lang.String key) - -
-          Delete a record from the database.
- java.util.PropertiesgetProperties() - -
-          Get the set of properties for this DB.
- voidinit() - -
-          Initialize any state for this DB.
- intinsert(java.lang.String table, - java.lang.String key, - java.util.HashMap<java.lang.String,java.lang.String> values) - -
-          Insert a record in the database.
- intread(java.lang.String table, - java.lang.String key, - java.util.Set<java.lang.String> fields, - java.util.HashMap<java.lang.String,java.lang.String> result) - -
-          Read a record from the database.
- intscan(java.lang.String table, - java.lang.String startkey, - int recordcount, - java.util.Set<java.lang.String> fields, - java.util.Vector<java.util.HashMap<java.lang.String,java.lang.String>> result) - -
-          Perform a range scan for a set of records in the database.
- voidsetProperties(java.util.Properties p) - -
-          Set the properties for this DB.
- intupdate(java.lang.String table, - java.lang.String key, - java.util.HashMap<java.lang.String,java.lang.String> values) - -
-          Update a record in the database.
- - - - - - - -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-  -

- - - - - - - - -
-Constructor Detail
- -

-DBWrapper

-
-public DBWrapper(DB db)
-
-
- - - - - - - - -
-Method Detail
- -

-setProperties

-
-public void setProperties(java.util.Properties p)
-
-
Set the properties for this DB. -

-

-
Overrides:
setProperties in class DB
-
-
-
-
-
-
- -

-getProperties

-
-public java.util.Properties getProperties()
-
-
Get the set of properties for this DB. -

-

-
Overrides:
getProperties in class DB
-
-
-
-
-
-
- -

-init

-
-public void init()
-          throws DBException
-
-
Initialize any state for this DB. - Called once per DB instance; there is one DB instance per client thread. -

-

-
Overrides:
init in class DB
-
-
- -
Throws: -
DBException
-
-
-
- -

-cleanup

-
-public void cleanup()
-             throws DBException
-
-
Cleanup any state for this DB. - Called once per DB instance; there is one DB instance per client thread. -

-

-
Overrides:
cleanup in class DB
-
-
- -
Throws: -
DBException
-
-
-
- -

-read

-
-public int read(java.lang.String table,
-                java.lang.String key,
-                java.util.Set<java.lang.String> fields,
-                java.util.HashMap<java.lang.String,java.lang.String> result)
-
-
Read a record from the database. Each field/value pair from the result will be stored in a HashMap. -

-

-
Specified by:
read in class DB
-
-
-
Parameters:
table - The name of the table
key - The record key of the record to read.
fields - The list of fields to read, or null for all of them
result - A HashMap of field/value pairs for the result -
Returns:
Zero on success, a non-zero error code on error
-
-
-
- -

-scan

-
-public int scan(java.lang.String table,
-                java.lang.String startkey,
-                int recordcount,
-                java.util.Set<java.lang.String> fields,
-                java.util.Vector<java.util.HashMap<java.lang.String,java.lang.String>> result)
-
-
Perform a range scan for a set of records in the database. Each field/value pair from the result will be stored in a HashMap. -

-

-
Specified by:
scan in class DB
-
-
-
Parameters:
table - The name of the table
startkey - The record key of the first record to read.
recordcount - The number of records to read
fields - The list of fields to read, or null for all of them
result - A Vector of HashMaps, where each HashMap is a set field/value pairs for one record -
Returns:
Zero on success, a non-zero error code on error
-
-
-
- -

-update

-
-public int update(java.lang.String table,
-                  java.lang.String key,
-                  java.util.HashMap<java.lang.String,java.lang.String> values)
-
-
Update a record in the database. Any field/value pairs in the specified values HashMap will be written into the record with the specified - record key, overwriting any existing values with the same field name. -

-

-
Specified by:
update in class DB
-
-
-
Parameters:
table - The name of the table
key - The record key of the record to write.
values - A HashMap of field/value pairs to update in the record -
Returns:
Zero on success, a non-zero error code on error
-
-
-
- -

-insert

-
-public int insert(java.lang.String table,
-                  java.lang.String key,
-                  java.util.HashMap<java.lang.String,java.lang.String> values)
-
-
Insert a record in the database. Any field/value pairs in the specified values HashMap will be written into the record with the specified - record key. -

-

-
Specified by:
insert in class DB
-
-
-
Parameters:
table - The name of the table
key - The record key of the record to insert.
values - A HashMap of field/value pairs to insert in the record -
Returns:
Zero on success, a non-zero error code on error
-
-
-
- -

-delete

-
-public int delete(java.lang.String table,
-                  java.lang.String key)
-
-
Delete a record from the database. -

-

-
Specified by:
delete in class DB
-
-
-
Parameters:
table - The name of the table
key - The record key of the record to delete. -
Returns:
Zero on success, a non-zero error code on error
-
-
- -
- - - - - - - - - - - - - - - - - - - -
- -
- - - -
- - - DELETED YCSB/doc/javadoc/com/yahoo/ycsb/DiscreteGenerator.html Index: YCSB/doc/javadoc/com/yahoo/ycsb/DiscreteGenerator.html ================================================================== --- YCSB/doc/javadoc/com/yahoo/ycsb/DiscreteGenerator.html +++ /dev/null @@ -1,329 +0,0 @@ - - - - - - -DiscreteGenerator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - -
- -

- -com.yahoo.ycsb -
-Class DiscreteGenerator

-
-java.lang.Object
-  extended by com.yahoo.ycsb.Generator
-      extended by com.yahoo.ycsb.DiscreteGenerator
-
-
-
-
public class DiscreteGenerator
extends Generator
- - -

-Generates a distribution by choosing from a discrete set of values. -

- -

-


- -

- - - - - - - - - - - -
-Constructor Summary
DiscreteGenerator() - -
-           
-  - - - - - - - - - - - - - - - - - - - - - - - -
-Method Summary
- voidaddValue(double weight, - java.lang.String value) - -
-           
- java.lang.StringlastString() - -
-          Return the previous string generated by the distribution; e.g., returned from the last nextString() call.
- intnextInt() - -
-          If the generator returns numeric (integer) values, return the next value as an int.
- java.lang.StringnextString() - -
-          Generate the next string in the distribution.
- - - - - - - -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-  -

- - - - - - - - -
-Constructor Detail
- -

-DiscreteGenerator

-
-public DiscreteGenerator()
-
-
- - - - - - - - -
-Method Detail
- -

-nextString

-
-public java.lang.String nextString()
-
-
Generate the next string in the distribution. -

-

-
Specified by:
nextString in class Generator
-
-
-
-
-
-
- -

-nextInt

-
-public int nextInt()
-            throws WorkloadException
-
-
If the generator returns numeric (integer) values, return the next value as an int. Default is to return -1, which - is appropriate for generators that do not return numeric values. -

-

- -
Throws: -
WorkloadException - if this generator does not support integer values
-
-
-
- -

-lastString

-
-public java.lang.String lastString()
-
-
Return the previous string generated by the distribution; e.g., returned from the last nextString() call. - Calling lastString() should not advance the distribution or have any side effects. If nextString() has not yet - been called, lastString() should return something reasonable. -

-

-
Specified by:
lastString in class Generator
-
-
-
-
-
-
- -

-addValue

-
-public void addValue(double weight,
-                     java.lang.String value)
-
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - -
- -
- - - -
- - - DELETED YCSB/doc/javadoc/com/yahoo/ycsb/FindGoodAB.html Index: YCSB/doc/javadoc/com/yahoo/ycsb/FindGoodAB.html ================================================================== --- YCSB/doc/javadoc/com/yahoo/ycsb/FindGoodAB.html +++ /dev/null @@ -1,360 +0,0 @@ - - - - - - -FindGoodAB - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - -
- -

- -com.yahoo.ycsb -
-Class FindGoodAB

-
-java.lang.Object
-  extended by com.yahoo.ycsb.FindGoodAB
-
-
-
-
public class FindGoodAB
extends java.lang.Object
- - -

-


- -

- - - - - - - - - - - - - - - -
-Field Summary
-static inta - -
-           
-static intb - -
-           
-  - - - - - - - - - - -
-Constructor Summary
FindGoodAB() - -
-           
-  - - - - - - - - - - - - - - - - - - - - - - - -
-Method Summary
-static inthash(int val, - int itemcount) - -
-           
-static voidmain(java.lang.String[] args) - -
-           
-static intscramble(int val) - -
-           
-static inttestVector(int itemcount) - -
-           
- - - - - - - -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-  -

- - - - - - - - -
-Field Detail
- -

-a

-
-public static int a
-
-
-
-
-
- -

-b

-
-public static int b
-
-
-
-
- - - - - - - - -
-Constructor Detail
- -

-FindGoodAB

-
-public FindGoodAB()
-
-
- - - - - - - - -
-Method Detail
- -

-scramble

-
-public static int scramble(int val)
-
-
-
-
-
-
- -

-hash

-
-public static int hash(int val,
-                       int itemcount)
-
-
-
-
-
-
- -

-main

-
-public static void main(java.lang.String[] args)
-
-
-
-
-
-
- -

-testVector

-
-public static int testVector(int itemcount)
-
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - -
- -
- - - -
- - - DELETED YCSB/doc/javadoc/com/yahoo/ycsb/FindGoodScrambleVector.html Index: YCSB/doc/javadoc/com/yahoo/ycsb/FindGoodScrambleVector.html ================================================================== --- YCSB/doc/javadoc/com/yahoo/ycsb/FindGoodScrambleVector.html +++ /dev/null @@ -1,306 +0,0 @@ - - - - - - -FindGoodScrambleVector - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - -
- -

- -com.yahoo.ycsb -
-Class FindGoodScrambleVector

-
-java.lang.Object
-  extended by com.yahoo.ycsb.FindGoodScrambleVector
-
-
-
-
public class FindGoodScrambleVector
extends java.lang.Object
- - -

-


- -

- - - - - - - - - - - -
-Constructor Summary
FindGoodScrambleVector() - -
-           
-  - - - - - - - - - - - - - - - - - - - - - - - -
-Method Summary
-static inthash(int val, - int itemcount) - -
-           
-static voidmain(java.lang.String[] args) - -
-           
-static intscramble(int val) - -
-           
-static int[]scrambleArray() - -
-           
- - - - - - - -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-  -

- - - - - - - - -
-Constructor Detail
- -

-FindGoodScrambleVector

-
-public FindGoodScrambleVector()
-
-
- - - - - - - - -
-Method Detail
- -

-scrambleArray

-
-public static int[] scrambleArray()
-
-
-
-
-
-
- -

-scramble

-
-public static int scramble(int val)
-
-
-
-
-
-
- -

-hash

-
-public static int hash(int val,
-                       int itemcount)
-
-
-
-
-
-
- -

-main

-
-public static void main(java.lang.String[] args)
-
-
-
Parameters:
args -
-
-
- -
- - - - - - - - - - - - - - - - - - - -
- -
- - - -
- - - DELETED YCSB/doc/javadoc/com/yahoo/ycsb/Generator.html Index: YCSB/doc/javadoc/com/yahoo/ycsb/Generator.html ================================================================== --- YCSB/doc/javadoc/com/yahoo/ycsb/Generator.html +++ /dev/null @@ -1,279 +0,0 @@ - - - - - - -Generator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - -
- -

- -com.yahoo.ycsb -
-Class Generator

-
-java.lang.Object
-  extended by com.yahoo.ycsb.Generator
-
-
-
Direct Known Subclasses:
DiscreteGenerator, IntegerGenerator, UniformGenerator
-
-
-
-
public abstract class Generator
extends java.lang.Object
- - -

-An expression that generates a sequence of string values, following some distribution (Uniform, Zipfian, Sequential, etc.) -

- -

-


- -

- - - - - - - - - - - -
-Constructor Summary
Generator() - -
-           
-  - - - - - - - - - - - - - - - -
-Method Summary
-abstract  java.lang.StringlastString() - -
-          Return the previous string generated by the distribution; e.g., returned from the last nextString() call.
-abstract  java.lang.StringnextString() - -
-          Generate the next string in the distribution.
- - - - - - - -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-  -

- - - - - - - - -
-Constructor Detail
- -

-Generator

-
-public Generator()
-
-
- - - - - - - - -
-Method Detail
- -

-nextString

-
-public abstract java.lang.String nextString()
-
-
Generate the next string in the distribution. -

-

-
-
-
-
- -

-lastString

-
-public abstract java.lang.String lastString()
-
-
Return the previous string generated by the distribution; e.g., returned from the last nextString() call. - Calling lastString() should not advance the distribution or have any side effects. If nextString() has not yet - been called, lastString() should return something reasonable. -

-

-
-
-
- -
- - - - - - - - - - - - - - - - - - - -
- -
- - - -
- - - DELETED YCSB/doc/javadoc/com/yahoo/ycsb/IntegerGenerator.html Index: YCSB/doc/javadoc/com/yahoo/ycsb/IntegerGenerator.html ================================================================== --- YCSB/doc/javadoc/com/yahoo/ycsb/IntegerGenerator.html +++ /dev/null @@ -1,355 +0,0 @@ - - - - - - -IntegerGenerator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - -
- -

- -com.yahoo.ycsb -
-Class IntegerGenerator

-
-java.lang.Object
-  extended by com.yahoo.ycsb.Generator
-      extended by com.yahoo.ycsb.IntegerGenerator
-
-
-
Direct Known Subclasses:
CounterGenerator, ScrambledZipfianGenerator, SkewedLatestGenerator, UniformIntegerGenerator, ZipfianGenerator
-
-
-
-
public abstract class IntegerGenerator
extends Generator
- - -

-A generator that is capable of generating ints as well as strings -

- -

-

-
Author:
-
cooperb
-
-
- -

- - - - - - - - - - - -
-Constructor Summary
IntegerGenerator() - -
-           
-  - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Method Summary
- intlastInt() - -
-          Return the previous int generated by the distribution.
- java.lang.StringlastString() - -
-          Return the previous string generated by the distribution; e.g., returned from the last nextString() call.
-abstract  intnextInt() - -
-          Return the next value as an int.
- java.lang.StringnextString() - -
-          Generate the next string in the distribution.
- voidsetLastInt(int last) - -
-          Set the last value generated.
- - - - - - - -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-  -

- - - - - - - - -
-Constructor Detail
- -

-IntegerGenerator

-
-public IntegerGenerator()
-
-
- - - - - - - - -
-Method Detail
- -

-setLastInt

-
-public void setLastInt(int last)
-
-
Set the last value generated. IntegerGenerator subclasses must use this call - to properly set the last string value, or the lastString() and lastInt() calls won't work. -

-

-
-
-
-
- -

-nextInt

-
-public abstract int nextInt()
-
-
Return the next value as an int. When overriding this method, be sure to call setLastString() properly, or the lastString() call won't work. -

-

-
-
-
-
- -

-nextString

-
-public java.lang.String nextString()
-
-
Generate the next string in the distribution. -

-

-
Specified by:
nextString in class Generator
-
-
-
-
-
-
- -

-lastString

-
-public java.lang.String lastString()
-
-
Return the previous string generated by the distribution; e.g., returned from the last nextString() call. - Calling lastString() should not advance the distribution or have any side effects. If nextString() has not yet - been called, lastString() should return something reasonable. -

-

-
Specified by:
lastString in class Generator
-
-
-
-
-
-
- -

-lastInt

-
-public int lastInt()
-
-
Return the previous int generated by the distribution. This call is unique to IntegerGenerator subclasses, and assumes - IntegerGenerator subclasses always return ints for nextInt() (e.g. not arbitrary strings). -

-

-
-
-
- -
- - - - - - - - - - - - - - - - - - - -
- -
- - - -
- - - DELETED YCSB/doc/javadoc/com/yahoo/ycsb/Measurements.html Index: YCSB/doc/javadoc/com/yahoo/ycsb/Measurements.html ================================================================== --- YCSB/doc/javadoc/com/yahoo/ycsb/Measurements.html +++ /dev/null @@ -1,354 +0,0 @@ - - - - - - -Measurements - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - -
- -

- -com.yahoo.ycsb -
-Class Measurements

-
-java.lang.Object
-  extended by com.yahoo.ycsb.Measurements
-
-
-
-
public class Measurements
extends java.lang.Object
- - -

-Collects latency measurements, and reports them when requested. -

- -

-

-
Author:
-
cooperb
-
-
- -

- - - - - - - - - - - -
-Constructor Summary
Measurements(java.util.Properties props) - -
-           
-  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Method Summary
-static MeasurementsgetMeasurements() - -
-           
- java.lang.StringgetSummary() - -
-           
- voidmeasure(java.lang.String operation, - int latency) - -
-           
- voidprintReport(java.io.PrintStream out) - -
-           
- voidreportReturnCode(java.lang.String operation, - int code) - -
-           
-static voidsetProperties(java.util.Properties props) - -
-           
- - - - - - - -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-  -

- - - - - - - - -
-Constructor Detail
- -

-Measurements

-
-public Measurements(java.util.Properties props)
-
-
- - - - - - - - -
-Method Detail
- -

-setProperties

-
-public static void setProperties(java.util.Properties props)
-
-
-
-
-
-
- -

-getMeasurements

-
-public static Measurements getMeasurements()
-
-
-
-
-
-
- -

-measure

-
-public void measure(java.lang.String operation,
-                    int latency)
-
-
-
-
-
-
- -

-reportReturnCode

-
-public void reportReturnCode(java.lang.String operation,
-                             int code)
-
-
-
-
-
-
- -

-printReport

-
-public void printReport(java.io.PrintStream out)
-
-
-
-
-
-
- -

-getSummary

-
-public java.lang.String getSummary()
-
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - -
- -
- - - -
- - - DELETED YCSB/doc/javadoc/com/yahoo/ycsb/OneMeasurement.html Index: YCSB/doc/javadoc/com/yahoo/ycsb/OneMeasurement.html ================================================================== --- YCSB/doc/javadoc/com/yahoo/ycsb/OneMeasurement.html +++ /dev/null @@ -1,332 +0,0 @@ - - - - - - -OneMeasurement - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - -
- -

- -com.yahoo.ycsb -
-Class OneMeasurement

-
-java.lang.Object
-  extended by com.yahoo.ycsb.OneMeasurement
-
-
-
Direct Known Subclasses:
OneMeasurementHistogram, OneMeasurementTimeSeries
-
-
-
-
public abstract class OneMeasurement
extends java.lang.Object
- - -

-A single measured metric (e.g. READ LATENCY) -

- -

-


- -

- - - - - - - - - - - -
-Constructor Summary
OneMeasurement(java.lang.String _name) - -
-           
-  - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Method Summary
- java.lang.StringgetName() - -
-           
-abstract  java.lang.StringgetSummary() - -
-           
-abstract  voidmeasure(int latency) - -
-           
-abstract  voidprintReport(java.io.PrintStream out) - -
-           
-abstract  voidreportReturnCode(int code) - -
-           
- - - - - - - -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-  -

- - - - - - - - -
-Constructor Detail
- -

-OneMeasurement

-
-public OneMeasurement(java.lang.String _name)
-
-
-
Parameters:
_name -
-
- - - - - - - - -
-Method Detail
- -

-getName

-
-public java.lang.String getName()
-
-
-
-
-
-
- -

-reportReturnCode

-
-public abstract void reportReturnCode(int code)
-
-
-
-
-
-
- -

-measure

-
-public abstract void measure(int latency)
-
-
-
-
-
-
- -

-printReport

-
-public abstract void printReport(java.io.PrintStream out)
-
-
-
-
-
-
- -

-getSummary

-
-public abstract java.lang.String getSummary()
-
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - -
- -
- - - -
- - - DELETED YCSB/doc/javadoc/com/yahoo/ycsb/OneMeasurementHistogram.html Index: YCSB/doc/javadoc/com/yahoo/ycsb/OneMeasurementHistogram.html ================================================================== --- YCSB/doc/javadoc/com/yahoo/ycsb/OneMeasurementHistogram.html +++ /dev/null @@ -1,390 +0,0 @@ - - - - - - -OneMeasurementHistogram - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - -
- -

- -com.yahoo.ycsb -
-Class OneMeasurementHistogram

-
-java.lang.Object
-  extended by com.yahoo.ycsb.OneMeasurement
-      extended by com.yahoo.ycsb.OneMeasurementHistogram
-
-
-
-
public class OneMeasurementHistogram
extends OneMeasurement
- - -

-Take measurements and maintain a histogram of a given metric, such as READ LATENCY. -

- -

-

-
Author:
-
cooperb
-
-
- -

- - - - - - - - - - - - - - - -
-Field Summary
-static java.lang.StringBUCKETS - -
-           
-static java.lang.StringBUCKETS_DEFAULT - -
-           
-  - - - - - - - - - - -
-Constructor Summary
OneMeasurementHistogram(java.lang.String name, - java.util.Properties props) - -
-           
-  - - - - - - - - - - - - - - - - - - - - - - - -
-Method Summary
- java.lang.StringgetSummary() - -
-           
- voidmeasure(int latency) - -
-           
- voidprintReport(java.io.PrintStream out) - -
-           
- voidreportReturnCode(int code) - -
-           
- - - - - - - -
Methods inherited from class com.yahoo.ycsb.OneMeasurement
getName
- - - - - - - -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-  -

- - - - - - - - -
-Field Detail
- -

-BUCKETS

-
-public static final java.lang.String BUCKETS
-
-
-
See Also:
Constant Field Values
-
-
- -

-BUCKETS_DEFAULT

-
-public static final java.lang.String BUCKETS_DEFAULT
-
-
-
See Also:
Constant Field Values
-
- - - - - - - - -
-Constructor Detail
- -

-OneMeasurementHistogram

-
-public OneMeasurementHistogram(java.lang.String name,
-                               java.util.Properties props)
-
-
- - - - - - - - -
-Method Detail
- -

-reportReturnCode

-
-public void reportReturnCode(int code)
-
-
-
Specified by:
reportReturnCode in class OneMeasurement
-
-
-
-
-
-
- -

-measure

-
-public void measure(int latency)
-
-
-
Specified by:
measure in class OneMeasurement
-
-
-
-
-
-
- -

-printReport

-
-public void printReport(java.io.PrintStream out)
-
-
-
Specified by:
printReport in class OneMeasurement
-
-
-
-
-
-
- -

-getSummary

-
-public java.lang.String getSummary()
-
-
-
Specified by:
getSummary in class OneMeasurement
-
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - -
- -
- - - -
- - - DELETED YCSB/doc/javadoc/com/yahoo/ycsb/OneMeasurementTimeSeries.html Index: YCSB/doc/javadoc/com/yahoo/ycsb/OneMeasurementTimeSeries.html ================================================================== --- YCSB/doc/javadoc/com/yahoo/ycsb/OneMeasurementTimeSeries.html +++ /dev/null @@ -1,388 +0,0 @@ - - - - - - -OneMeasurementTimeSeries - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - -
- -

- -com.yahoo.ycsb -
-Class OneMeasurementTimeSeries

-
-java.lang.Object
-  extended by com.yahoo.ycsb.OneMeasurement
-      extended by com.yahoo.ycsb.OneMeasurementTimeSeries
-
-
-
-
public class OneMeasurementTimeSeries
extends OneMeasurement
- - -

-A time series measurement of a metric, such as READ LATENCY. -

- -

-


- -

- - - - - - - - - - - - - - - -
-Field Summary
-static java.lang.StringGRANULARITY - -
-          Granularity for time series; measurements will be averaged in chunks of this granularity.
-static java.lang.StringGRANULARITY_DEFAULT - -
-           
-  - - - - - - - - - - -
-Constructor Summary
OneMeasurementTimeSeries(java.lang.String name, - java.util.Properties props) - -
-           
-  - - - - - - - - - - - - - - - - - - - - - - - -
-Method Summary
- java.lang.StringgetSummary() - -
-           
- voidmeasure(int latency) - -
-           
- voidprintReport(java.io.PrintStream out) - -
-           
- voidreportReturnCode(int code) - -
-           
- - - - - - - -
Methods inherited from class com.yahoo.ycsb.OneMeasurement
getName
- - - - - - - -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-  -

- - - - - - - - -
-Field Detail
- -

-GRANULARITY

-
-public static final java.lang.String GRANULARITY
-
-
Granularity for time series; measurements will be averaged in chunks of this granularity. Units are milliseconds. -

-

-
See Also:
Constant Field Values
-
-
- -

-GRANULARITY_DEFAULT

-
-public static final java.lang.String GRANULARITY_DEFAULT
-
-
-
See Also:
Constant Field Values
-
- - - - - - - - -
-Constructor Detail
- -

-OneMeasurementTimeSeries

-
-public OneMeasurementTimeSeries(java.lang.String name,
-                                java.util.Properties props)
-
-
- - - - - - - - -
-Method Detail
- -

-measure

-
-public void measure(int latency)
-
-
-
Specified by:
measure in class OneMeasurement
-
-
-
-
-
-
- -

-printReport

-
-public void printReport(java.io.PrintStream out)
-
-
-
Specified by:
printReport in class OneMeasurement
-
-
-
-
-
-
- -

-reportReturnCode

-
-public void reportReturnCode(int code)
-
-
-
Specified by:
reportReturnCode in class OneMeasurement
-
-
-
-
-
-
- -

-getSummary

-
-public java.lang.String getSummary()
-
-
-
Specified by:
getSummary in class OneMeasurement
-
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - -
- -
- - - -
- - - DELETED YCSB/doc/javadoc/com/yahoo/ycsb/ScrambledZipfianGenerator.html Index: YCSB/doc/javadoc/com/yahoo/ycsb/ScrambledZipfianGenerator.html ================================================================== --- YCSB/doc/javadoc/com/yahoo/ycsb/ScrambledZipfianGenerator.html +++ /dev/null @@ -1,391 +0,0 @@ - - - - - - -ScrambledZipfianGenerator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - -
- -

- -com.yahoo.ycsb -
-Class ScrambledZipfianGenerator

-
-java.lang.Object
-  extended by com.yahoo.ycsb.Generator
-      extended by com.yahoo.ycsb.IntegerGenerator
-          extended by com.yahoo.ycsb.ScrambledZipfianGenerator
-
-
-
-
public class ScrambledZipfianGenerator
extends IntegerGenerator
- - -

-A generator of a zipfian distribution. It produces a sequence of items, such that some items are more popular than others, according - to a zipfian distribution. When you construct an instance of this class, you specify the number of items in the set to draw from, either - by specifying an itemcount (so that the sequence is of items from 0 to itemcount-1) or by specifying a min and a max (so that the sequence is of - items from min to max inclusive). After you construct the instance, you can change the number of items by calling nextInt(itemcount) or nextLong(itemcount). - - Unlike @ZipfianGenerator, this class scatters the "popular" items across the itemspace. Use this, instead of @ZipfianGenerator, if you - don't want the head of the distribution (the popular items) clustered together. -

- -

-


- -

- - - - - - - - - - - - - - - -
-Field Summary
-static longITEM_COUNT - -
-           
-static doubleZETAN - -
-           
-  - - - - - - - - - - - - - -
-Constructor Summary
ScrambledZipfianGenerator(long _items) - -
-          Create a zipfian generator for the specified number of items.
ScrambledZipfianGenerator(long _min, - long _max) - -
-          Create a zipfian generator for items between min and max.
-  - - - - - - - - - - - - - - - - - - - -
-Method Summary
-static voidmain(java.lang.String[] args) - -
-           
- intnextInt() - -
-          Return the next int in the sequence.
- longnextLong() - -
-          Return the next long in the sequence.
- - - - - - - -
Methods inherited from class com.yahoo.ycsb.IntegerGenerator
lastInt, lastString, nextString, setLastInt
- - - - - - - -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-  -

- - - - - - - - -
-Field Detail
- -

-ZETAN

-
-public static final double ZETAN
-
-
-
See Also:
Constant Field Values
-
-
- -

-ITEM_COUNT

-
-public static final long ITEM_COUNT
-
-
-
See Also:
Constant Field Values
-
- - - - - - - - -
-Constructor Detail
- -

-ScrambledZipfianGenerator

-
-public ScrambledZipfianGenerator(long _items)
-
-
Create a zipfian generator for the specified number of items. -

-

-
Parameters:
_items - The number of items in the distribution.
-
-
- -

-ScrambledZipfianGenerator

-
-public ScrambledZipfianGenerator(long _min,
-                                 long _max)
-
-
Create a zipfian generator for items between min and max. -

-

-
Parameters:
_min - The smallest integer to generate in the sequence.
_max - The largest integer to generate in the sequence.
-
- - - - - - - - -
-Method Detail
- -

-nextInt

-
-public int nextInt()
-
-
Return the next int in the sequence. -

-

-
Specified by:
nextInt in class IntegerGenerator
-
-
-
-
-
-
- -

-nextLong

-
-public long nextLong()
-
-
Return the next long in the sequence. -

-

-
-
-
-
- -

-main

-
-public static void main(java.lang.String[] args)
-
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - -
- -
- - - -
- - - DELETED YCSB/doc/javadoc/com/yahoo/ycsb/SkewedLatestGenerator.html Index: YCSB/doc/javadoc/com/yahoo/ycsb/SkewedLatestGenerator.html ================================================================== --- YCSB/doc/javadoc/com/yahoo/ycsb/SkewedLatestGenerator.html +++ /dev/null @@ -1,286 +0,0 @@ - - - - - - -SkewedLatestGenerator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - -
- -

- -com.yahoo.ycsb -
-Class SkewedLatestGenerator

-
-java.lang.Object
-  extended by com.yahoo.ycsb.Generator
-      extended by com.yahoo.ycsb.IntegerGenerator
-          extended by com.yahoo.ycsb.SkewedLatestGenerator
-
-
-
-
public class SkewedLatestGenerator
extends IntegerGenerator
- - -

-Generate a popularity distribution of items, skewed to favor recent items significantly more than older items. -

- -

-


- -

- - - - - - - - - - - -
-Constructor Summary
SkewedLatestGenerator(CounterGenerator basis) - -
-           
-  - - - - - - - - - - - - - - - -
-Method Summary
-static voidmain(java.lang.String[] args) - -
-           
- intnextInt() - -
-          Generate the next string in the distribution, skewed Zipfian favoring the items most recently returned by the basis generator.
- - - - - - - -
Methods inherited from class com.yahoo.ycsb.IntegerGenerator
lastInt, lastString, nextString, setLastInt
- - - - - - - -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-  -

- - - - - - - - -
-Constructor Detail
- -

-SkewedLatestGenerator

-
-public SkewedLatestGenerator(CounterGenerator basis)
-
-
- - - - - - - - -
-Method Detail
- -

-nextInt

-
-public int nextInt()
-
-
Generate the next string in the distribution, skewed Zipfian favoring the items most recently returned by the basis generator. -

-

-
Specified by:
nextInt in class IntegerGenerator
-
-
-
-
-
-
- -

-main

-
-public static void main(java.lang.String[] args)
-
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - -
- -
- - - -
- - - DELETED YCSB/doc/javadoc/com/yahoo/ycsb/TestCollisions.html Index: YCSB/doc/javadoc/com/yahoo/ycsb/TestCollisions.html ================================================================== --- YCSB/doc/javadoc/com/yahoo/ycsb/TestCollisions.html +++ /dev/null @@ -1,360 +0,0 @@ - - - - - - -TestCollisions - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - -
- -

- -com.yahoo.ycsb -
-Class TestCollisions

-
-java.lang.Object
-  extended by com.yahoo.ycsb.TestCollisions
-
-
-
-
public class TestCollisions
extends java.lang.Object
- - -

-


- -

- - - - - - - - - - - - - - - -
-Field Summary
-static inta - -
-           
-static intb - -
-           
-  - - - - - - - - - - -
-Constructor Summary
TestCollisions() - -
-           
-  - - - - - - - - - - - - - - - - - - - - - - - -
-Method Summary
-static inthash(int val, - int itemcount) - -
-           
-static voidmain(java.lang.String[] args) - -
-           
-static intscramble(int val) - -
-           
-static inttestVector(int itemcount) - -
-           
- - - - - - - -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-  -

- - - - - - - - -
-Field Detail
- -

-a

-
-public static int a
-
-
-
-
-
- -

-b

-
-public static int b
-
-
-
-
- - - - - - - - -
-Constructor Detail
- -

-TestCollisions

-
-public TestCollisions()
-
-
- - - - - - - - -
-Method Detail
- -

-scramble

-
-public static int scramble(int val)
-
-
-
-
-
-
- -

-hash

-
-public static int hash(int val,
-                       int itemcount)
-
-
-
-
-
-
- -

-main

-
-public static void main(java.lang.String[] args)
-
-
-
-
-
-
- -

-testVector

-
-public static int testVector(int itemcount)
-
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - -
- -
- - - -
- - - DELETED YCSB/doc/javadoc/com/yahoo/ycsb/TestExpandedZipfian.html Index: YCSB/doc/javadoc/com/yahoo/ycsb/TestExpandedZipfian.html ================================================================== --- YCSB/doc/javadoc/com/yahoo/ycsb/TestExpandedZipfian.html +++ /dev/null @@ -1,247 +0,0 @@ - - - - - - -TestExpandedZipfian - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - -
- -

- -com.yahoo.ycsb -
-Class TestExpandedZipfian

-
-java.lang.Object
-  extended by com.yahoo.ycsb.TestExpandedZipfian
-
-
-
-
public class TestExpandedZipfian
extends java.lang.Object
- - -

-


- -

- - - - - - - - - - - -
-Constructor Summary
TestExpandedZipfian() - -
-           
-  - - - - - - - - - - - -
-Method Summary
-static voidmain(java.lang.String[] args) - -
-           
- - - - - - - -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-  -

- - - - - - - - -
-Constructor Detail
- -

-TestExpandedZipfian

-
-public TestExpandedZipfian()
-
-
- - - - - - - - -
-Method Detail
- -

-main

-
-public static void main(java.lang.String[] args)
-
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - -
- -
- - - -
- - - DELETED YCSB/doc/javadoc/com/yahoo/ycsb/TestZipfian.html Index: YCSB/doc/javadoc/com/yahoo/ycsb/TestZipfian.html ================================================================== --- YCSB/doc/javadoc/com/yahoo/ycsb/TestZipfian.html +++ /dev/null @@ -1,247 +0,0 @@ - - - - - - -TestZipfian - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - -
- -

- -com.yahoo.ycsb -
-Class TestZipfian

-
-java.lang.Object
-  extended by com.yahoo.ycsb.TestZipfian
-
-
-
-
public class TestZipfian
extends java.lang.Object
- - -

-


- -

- - - - - - - - - - - -
-Constructor Summary
TestZipfian() - -
-           
-  - - - - - - - - - - - -
-Method Summary
-static voidmain(java.lang.String[] args) - -
-           
- - - - - - - -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-  -

- - - - - - - - -
-Constructor Detail
- -

-TestZipfian

-
-public TestZipfian()
-
-
- - - - - - - - -
-Method Detail
- -

-main

-
-public static void main(java.lang.String[] args)
-
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - -
- -
- - - -
- - - DELETED YCSB/doc/javadoc/com/yahoo/ycsb/UniformGenerator.html Index: YCSB/doc/javadoc/com/yahoo/ycsb/UniformGenerator.html ================================================================== --- YCSB/doc/javadoc/com/yahoo/ycsb/UniformGenerator.html +++ /dev/null @@ -1,285 +0,0 @@ - - - - - - -UniformGenerator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - -
- -

- -com.yahoo.ycsb -
-Class UniformGenerator

-
-java.lang.Object
-  extended by com.yahoo.ycsb.Generator
-      extended by com.yahoo.ycsb.UniformGenerator
-
-
-
-
public class UniformGenerator
extends Generator
- - -

-An expression that generates a random integer in the specified range -

- -

-


- -

- - - - - - - - - - - -
-Constructor Summary
UniformGenerator(java.util.Vector<java.lang.String> values) - -
-          Creates a generator that will return strings from the specified set uniformly randomly
-  - - - - - - - - - - - - - - - -
-Method Summary
- java.lang.StringlastString() - -
-          Return the previous string generated by the distribution; e.g., returned from the last nextString() call.
- java.lang.StringnextString() - -
-          Generate the next string in the distribution.
- - - - - - - -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-  -

- - - - - - - - -
-Constructor Detail
- -

-UniformGenerator

-
-public UniformGenerator(java.util.Vector<java.lang.String> values)
-
-
Creates a generator that will return strings from the specified set uniformly randomly -

-

- - - - - - - - -
-Method Detail
- -

-nextString

-
-public java.lang.String nextString()
-
-
Generate the next string in the distribution. -

-

-
Specified by:
nextString in class Generator
-
-
-
-
-
-
- -

-lastString

-
-public java.lang.String lastString()
-
-
Return the previous string generated by the distribution; e.g., returned from the last nextString() call. - Calling lastString() should not advance the distribution or have any side effects. If nextString() has not yet - been called, lastString() should return something reasonable. -

-

-
Specified by:
lastString in class Generator
-
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - -
- -
- - - -
- - - DELETED YCSB/doc/javadoc/com/yahoo/ycsb/UniformIntegerGenerator.html Index: YCSB/doc/javadoc/com/yahoo/ycsb/UniformIntegerGenerator.html ================================================================== --- YCSB/doc/javadoc/com/yahoo/ycsb/UniformIntegerGenerator.html +++ /dev/null @@ -1,274 +0,0 @@ - - - - - - -UniformIntegerGenerator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - -
- -

- -com.yahoo.ycsb -
-Class UniformIntegerGenerator

-
-java.lang.Object
-  extended by com.yahoo.ycsb.Generator
-      extended by com.yahoo.ycsb.IntegerGenerator
-          extended by com.yahoo.ycsb.UniformIntegerGenerator
-
-
-
-
public class UniformIntegerGenerator
extends IntegerGenerator
- - -

-Generates integers randomly uniform from an interval. -

- -

-


- -

- - - - - - - - - - - -
-Constructor Summary
UniformIntegerGenerator(int lb, - int ub) - -
-          Creates a generator that will return integers uniformly randomly from the interval [lb,ub] inclusive (that is, lb and ub are possible values)
-  - - - - - - - - - - - -
-Method Summary
- intnextInt() - -
-          Return the next value as an int.
- - - - - - - -
Methods inherited from class com.yahoo.ycsb.IntegerGenerator
lastInt, lastString, nextString, setLastInt
- - - - - - - -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-  -

- - - - - - - - -
-Constructor Detail
- -

-UniformIntegerGenerator

-
-public UniformIntegerGenerator(int lb,
-                               int ub)
-
-
Creates a generator that will return integers uniformly randomly from the interval [lb,ub] inclusive (that is, lb and ub are possible values) -

-

-
Parameters:
lb - the lower bound (inclusive) of generated values
ub - the upper bound (inclusive) of generated values
-
- - - - - - - - -
-Method Detail
- -

-nextInt

-
-public int nextInt()
-
-
Description copied from class: IntegerGenerator
-
Return the next value as an int. When overriding this method, be sure to call setLastString() properly, or the lastString() call won't work. -

-

-
Specified by:
nextInt in class IntegerGenerator
-
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - -
- -
- - - -
- - - DELETED YCSB/doc/javadoc/com/yahoo/ycsb/UnknownDBException.html Index: YCSB/doc/javadoc/com/yahoo/ycsb/UnknownDBException.html ================================================================== --- YCSB/doc/javadoc/com/yahoo/ycsb/UnknownDBException.html +++ /dev/null @@ -1,286 +0,0 @@ - - - - - - -UnknownDBException - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
- -
- - - -
- -

- -com.yahoo.ycsb -
-Class UnknownDBException

-
-java.lang.Object
-  extended by java.lang.Throwable
-      extended by java.lang.Exception
-          extended by com.yahoo.ycsb.UnknownDBException
-
-
-
All Implemented Interfaces:
java.io.Serializable
-
-
-
-
public class UnknownDBException
extends java.lang.Exception
- - -

-Could not create the specified DB. -

- -

-

-
See Also:
Serialized Form
-
- -

- - - - - - - - - - - - - - - - - - - - -
-Constructor Summary
UnknownDBException() - -
-           
UnknownDBException(java.lang.String message) - -
-           
UnknownDBException(java.lang.String message, - java.lang.Throwable cause) - -
-           
UnknownDBException(java.lang.Throwable cause) - -
-           
-  - - - - - - - -
-Method Summary
- - - - - - - -
Methods inherited from class java.lang.Throwable
fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString
- - - - - - - -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-  -

- - - - - - - - -
-Constructor Detail
- -

-UnknownDBException

-
-public UnknownDBException(java.lang.String message)
-
-
-
- -

-UnknownDBException

-
-public UnknownDBException()
-
-
-
- -

-UnknownDBException

-
-public UnknownDBException(java.lang.String message,
-                          java.lang.Throwable cause)
-
-
-
- -

-UnknownDBException

-
-public UnknownDBException(java.lang.Throwable cause)
-
-
- -
- - - - - - - - - - - - - - - - - - - -
- -
- - - -
- - - DELETED YCSB/doc/javadoc/com/yahoo/ycsb/Utils.html Index: YCSB/doc/javadoc/com/yahoo/ycsb/Utils.html ================================================================== --- YCSB/doc/javadoc/com/yahoo/ycsb/Utils.html +++ /dev/null @@ -1,411 +0,0 @@ - - - - - - -Utils - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
- -
- - - -
- -

- -com.yahoo.ycsb -
-Class Utils

-
-java.lang.Object
-  extended by com.yahoo.ycsb.Utils
-
-
-
-
public class Utils
extends java.lang.Object
- - -

-Utility functions. -

- -

-


- -

- - - - - - - - - - - - - - - - - - - - - - - -
-Field Summary
-static intFNV_offset_basis_32 - -
-           
-static longFNV_offset_basis_64 - -
-           
-static intFNV_prime_32 - -
-           
-static longFNV_prime_64 - -
-           
-  - - - - - - - - - - -
-Constructor Summary
Utils() - -
-           
-  - - - - - - - - - - - - - - - - - - - - - - - -
-Method Summary
-static java.lang.StringASCIIString(int length) - -
-          Generate a random ASCII string of a given length.
-static intFNVhash32(int val) - -
-          32 bit FNV hash.
-static longFNVhash64(long val) - -
-          64 bit FNV hash.
-static inthash(int val) - -
-          Hash an integer value.
- - - - - - - -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-  -

- - - - - - - - -
-Field Detail
- -

-FNV_offset_basis_32

-
-public static final int FNV_offset_basis_32
-
-
-
See Also:
Constant Field Values
-
-
- -

-FNV_prime_32

-
-public static final int FNV_prime_32
-
-
-
See Also:
Constant Field Values
-
-
- -

-FNV_offset_basis_64

-
-public static final long FNV_offset_basis_64
-
-
-
See Also:
Constant Field Values
-
-
- -

-FNV_prime_64

-
-public static final long FNV_prime_64
-
-
-
See Also:
Constant Field Values
-
- - - - - - - - -
-Constructor Detail
- -

-Utils

-
-public Utils()
-
-
- - - - - - - - -
-Method Detail
- -

-ASCIIString

-
-public static java.lang.String ASCIIString(int length)
-
-
Generate a random ASCII string of a given length. -

-

-
-
-
-
- -

-hash

-
-public static int hash(int val)
-
-
Hash an integer value. -

-

-
-
-
-
- -

-FNVhash32

-
-public static int FNVhash32(int val)
-
-
32 bit FNV hash. Produces more "random" hashes than (say) String.hashCode(). -

-

-
Parameters:
val - The value to hash. -
Returns:
The hash value
-
-
-
- -

-FNVhash64

-
-public static long FNVhash64(long val)
-
-
64 bit FNV hash. Produces more "random" hashes than (say) String.hashCode(). -

-

-
Parameters:
val - The value to hash. -
Returns:
The hash value
-
-
- -
- - - - - - - - - - - - - - - - - - - -
- -
- - - -
- - - DELETED YCSB/doc/javadoc/com/yahoo/ycsb/Workload.html Index: YCSB/doc/javadoc/com/yahoo/ycsb/Workload.html ================================================================== --- YCSB/doc/javadoc/com/yahoo/ycsb/Workload.html +++ /dev/null @@ -1,443 +0,0 @@ - - - - - - -Workload - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
- -
- - - -
- -

- -com.yahoo.ycsb -
-Class Workload

-
-java.lang.Object
-  extended by com.yahoo.ycsb.Workload
-
-
-
Direct Known Subclasses:
CoreWorkload
-
-
-
-
public abstract class Workload
extends java.lang.Object
- - -

-One experiment scenario. One object of this type will - be instantiated and shared among all client threads. This class - should be constructed using a no-argument constructor, so we can - load it dynamically. Any argument-based initialization should be - done by init(). - - If you extend this class, you should support the "insertstart" property. This - allows the load phase to proceed from multiple clients on different machines, in case - the client is the bottleneck. For example, if we want to load 1 million records from - 2 machines, the first machine should have insertstart=0 and the second insertstart=500000. Additionally, - the "insertcount" property, which is interpreted by Client, can be used to tell each instance of the - client how many inserts to do. In the example above, both clients should have insertcount=500000. -

- -

-


- -

- - - - - - - - - - - - - - - -
-Field Summary
-static java.lang.StringINSERT_START_PROPERTY - -
-           
-static java.lang.StringINSERT_START_PROPERTY_DEFAULT - -
-           
-  - - - - - - - - - - -
-Constructor Summary
Workload() - -
-           
-  - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Method Summary
- voidcleanup() - -
-          Cleanup the scenario.
-abstract  booleandoInsert(DB db, - java.lang.Object threadstate) - -
-          Do one insert operation.
-abstract  booleandoTransaction(DB db, - java.lang.Object threadstate) - -
-          Do one transaction operation.
- voidinit(java.util.Properties p) - -
-          Initialize the scenario.
- java.lang.ObjectinitThread(java.util.Properties p, - int mythreadid, - int threadcount) - -
-          Initialize any state for a particular client thread.
- - - - - - - -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-  -

- - - - - - - - -
-Field Detail
- -

-INSERT_START_PROPERTY

-
-public static final java.lang.String INSERT_START_PROPERTY
-
-
-
See Also:
Constant Field Values
-
-
- -

-INSERT_START_PROPERTY_DEFAULT

-
-public static final java.lang.String INSERT_START_PROPERTY_DEFAULT
-
-
-
See Also:
Constant Field Values
-
- - - - - - - - -
-Constructor Detail
- -

-Workload

-
-public Workload()
-
-
- - - - - - - - -
-Method Detail
- -

-init

-
-public void init(java.util.Properties p)
-          throws WorkloadException
-
-
Initialize the scenario. Create any generators and other shared objects here. - Called once, in the main client thread, before any operations are started. -

-

- -
Throws: -
WorkloadException
-
-
-
- -

-initThread

-
-public java.lang.Object initThread(java.util.Properties p,
-                                   int mythreadid,
-                                   int threadcount)
-                            throws WorkloadException
-
-
Initialize any state for a particular client thread. Since the scenario object - will be shared among all threads, this is the place to create any state that is specific - to one thread. To be clear, this means the returned object should be created anew on each - call to initThread(); do not return the same object multiple times. - The returned object will be passed to invocations of doInsert() and doTransaction() - for this thread. There should be no side effects from this call; all state should be encapsulated - in the returned object. If you have no state to retain for this thread, return null. (But if you have - no state to retain for this thread, probably you don't need to override initThread().) -

-

- -
Returns:
false if the workload knows it is done for this thread. Client will terminate the thread. Return true otherwise. Return true for workloads that rely on operationcount. For workloads that read traces from a file, return true when there are more to do, false when you are done. -
Throws: -
WorkloadException
-
-
-
- -

-cleanup

-
-public void cleanup()
-             throws WorkloadException
-
-
Cleanup the scenario. Called once, in the main client thread, after all operations have completed. -

-

- -
Throws: -
WorkloadException
-
-
-
- -

-doInsert

-
-public abstract boolean doInsert(DB db,
-                                 java.lang.Object threadstate)
-
-
Do one insert operation. Because it will be called concurrently from multiple client threads, this - function must be thread safe. However, avoid synchronized, or the threads will block waiting for each - other, and it will be difficult to reach the target throughput. Ideally, this function would have no side - effects other than DB operations and mutations on threadstate. Mutations to threadstate do not need to be - synchronized, since each thread has its own threadstate instance. -

-

-
-
-
-
- -

-doTransaction

-
-public abstract boolean doTransaction(DB db,
-                                      java.lang.Object threadstate)
-
-
Do one transaction operation. Because it will be called concurrently from multiple client threads, this - function must be thread safe. However, avoid synchronized, or the threads will block waiting for each - other, and it will be difficult to reach the target throughput. Ideally, this function would have no side - effects other than DB operations and mutations on threadstate. Mutations to threadstate do not need to be - synchronized, since each thread has its own threadstate instance. -

-

- -
Returns:
false if the workload knows it is done for this thread. Client will terminate the thread. Return true otherwise. Return true for workloads that rely on operationcount. For workloads that read traces from a file, return true when there are more to do, false when you are done.
-
-
- -
- - - - - - - - - - - - - - - - - - - -
- -
- - - -
- - - DELETED YCSB/doc/javadoc/com/yahoo/ycsb/WorkloadException.html Index: YCSB/doc/javadoc/com/yahoo/ycsb/WorkloadException.html ================================================================== --- YCSB/doc/javadoc/com/yahoo/ycsb/WorkloadException.html +++ /dev/null @@ -1,286 +0,0 @@ - - - - - - -WorkloadException - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
- -
- - - -
- -

- -com.yahoo.ycsb -
-Class WorkloadException

-
-java.lang.Object
-  extended by java.lang.Throwable
-      extended by java.lang.Exception
-          extended by com.yahoo.ycsb.WorkloadException
-
-
-
All Implemented Interfaces:
java.io.Serializable
-
-
-
-
public class WorkloadException
extends java.lang.Exception
- - -

-The workload tried to do something bad. -

- -

-

-
See Also:
Serialized Form
-
- -

- - - - - - - - - - - - - - - - - - - - -
-Constructor Summary
WorkloadException() - -
-           
WorkloadException(java.lang.String message) - -
-           
WorkloadException(java.lang.String message, - java.lang.Throwable cause) - -
-           
WorkloadException(java.lang.Throwable cause) - -
-           
-  - - - - - - - -
-Method Summary
- - - - - - - -
Methods inherited from class java.lang.Throwable
fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString
- - - - - - - -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-  -

- - - - - - - - -
-Constructor Detail
- -

-WorkloadException

-
-public WorkloadException(java.lang.String message)
-
-
-
- -

-WorkloadException

-
-public WorkloadException()
-
-
-
- -

-WorkloadException

-
-public WorkloadException(java.lang.String message,
-                         java.lang.Throwable cause)
-
-
-
- -

-WorkloadException

-
-public WorkloadException(java.lang.Throwable cause)
-
-
- -
- - - - - - - - - - - - - - - - - - - -
- -
- - - -
- - - DELETED YCSB/doc/javadoc/com/yahoo/ycsb/ZipfianGenerator.html Index: YCSB/doc/javadoc/com/yahoo/ycsb/ZipfianGenerator.html ================================================================== --- YCSB/doc/javadoc/com/yahoo/ycsb/ZipfianGenerator.html +++ /dev/null @@ -1,495 +0,0 @@ - - - - - - -ZipfianGenerator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - -
- -

- -com.yahoo.ycsb -
-Class ZipfianGenerator

-
-java.lang.Object
-  extended by com.yahoo.ycsb.Generator
-      extended by com.yahoo.ycsb.IntegerGenerator
-          extended by com.yahoo.ycsb.ZipfianGenerator
-
-
-
-
public class ZipfianGenerator
extends IntegerGenerator
- - -

-A generator of a zipfian distribution. It produces a sequence of items, such that some items are more popular than others, according - to a zipfian distribution. When you construct an instance of this class, you specify the number of items in the set to draw from, either - by specifying an itemcount (so that the sequence is of items from 0 to itemcount-1) or by specifying a min and a max (so that the sequence is of - items from min to max inclusive). After you construct the instance, you can change the number of items by calling nextInt(itemcount) or nextLong(itemcount). - - Note that the popular items will be clustered together, e.g. item 0 is the most popular, item 1 the second most popular, and so on (or min is the most - popular, min+1 the next most popular, etc.) If you don't want this clustering, and instead want the popular items scattered throughout the - item space, then use ScrambledZipfianGenerator instead. - - Be aware: initializing this generator may take a long time if there are lots of items to choose from (e.g. over a minute - for 100 million objects). This is because certain mathematical values need to be computed to properly generate a zipfian skew, and one of those - values (zeta) is a sum sequence from 1 to n, where n is the itemcount. Note that if you increase the number of items in the set, we can compute - a new zeta incrementally, so it should be fast unless you have added millions of items. However, if you decrease the number of items, we recompute - zeta from scratch, so this can take a long time. -

- -

-


- -

- - - - - - - - - - - -
-Field Summary
-static doubleZIPFIAN_CONSTANT - -
-           
-  - - - - - - - - - - - - - - - - - - - - - - -
-Constructor Summary
ZipfianGenerator(long _items) - -
-          Create a zipfian generator for the specified number of items.
ZipfianGenerator(long _items, - double _zipfianconstant) - -
-          Create a zipfian generator for the specified number of items using the specified zipfian constant.
ZipfianGenerator(long _min, - long _max) - -
-          Create a zipfian generator for items between min and max.
ZipfianGenerator(long min, - long max, - double _zipfianconstant) - -
-          Create a zipfian generator for items between min and max (inclusive) for the specified zipfian constant.
ZipfianGenerator(long min, - long max, - double _zipfianconstant, - double _zetan) - -
-          Create a zipfian generator for items between min and max (inclusive) for the specified zipfian constant, using the precomputed value of zeta.
-  - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Method Summary
-static voidmain(java.lang.String[] args) - -
-           
- intnextInt() - -
-          Return the next value, skewed by the Zipfian distribution.
- intnextInt(int itemcount) - -
-          Generate the next item.
- longnextLong() - -
-          Return the next value, skewed by the Zipfian distribution.
- longnextLong(long itemcount) - -
-          Generate the next item as a long.
- - - - - - - -
Methods inherited from class com.yahoo.ycsb.IntegerGenerator
lastInt, lastString, nextString, setLastInt
- - - - - - - -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-  -

- - - - - - - - -
-Field Detail
- -

-ZIPFIAN_CONSTANT

-
-public static final double ZIPFIAN_CONSTANT
-
-
-
See Also:
Constant Field Values
-
- - - - - - - - -
-Constructor Detail
- -

-ZipfianGenerator

-
-public ZipfianGenerator(long _items)
-
-
Create a zipfian generator for the specified number of items. -

-

-
Parameters:
_items - The number of items in the distribution.
-
-
- -

-ZipfianGenerator

-
-public ZipfianGenerator(long _min,
-                        long _max)
-
-
Create a zipfian generator for items between min and max. -

-

-
Parameters:
_min - The smallest integer to generate in the sequence.
_max - The largest integer to generate in the sequence.
-
-
- -

-ZipfianGenerator

-
-public ZipfianGenerator(long _items,
-                        double _zipfianconstant)
-
-
Create a zipfian generator for the specified number of items using the specified zipfian constant. -

-

-
Parameters:
_items - The number of items in the distribution.
_zipfianconstant - The zipfian constant to use.
-
-
- -

-ZipfianGenerator

-
-public ZipfianGenerator(long min,
-                        long max,
-                        double _zipfianconstant)
-
-
Create a zipfian generator for items between min and max (inclusive) for the specified zipfian constant. -

-

-
Parameters:
min - The smallest integer to generate in the sequence.
max - The largest integer to generate in the sequence.
_zipfianconstant - The zipfian constant to use.
-
-
- -

-ZipfianGenerator

-
-public ZipfianGenerator(long min,
-                        long max,
-                        double _zipfianconstant,
-                        double _zetan)
-
-
Create a zipfian generator for items between min and max (inclusive) for the specified zipfian constant, using the precomputed value of zeta. -

-

-
Parameters:
min - The smallest integer to generate in the sequence.
max - The largest integer to generate in the sequence.
_zipfianconstant - The zipfian constant to use.
_zetan - The precomputed zeta constant.
-
- - - - - - - - -
-Method Detail
- -

-nextInt

-
-public int nextInt(int itemcount)
-
-
Generate the next item. this distribution will be skewed toward lower integers; e.g. 0 will - be the most popular, 1 the next most popular, etc. -

-

-
Parameters:
itemcount - The number of items in the distribution. -
Returns:
The next item in the sequence.
-
-
-
- -

-nextLong

-
-public long nextLong(long itemcount)
-
-
Generate the next item as a long. -

-

-
Parameters:
itemcount - The number of items in the distribution. -
Returns:
The next item in the sequence.
-
-
-
- -

-nextInt

-
-public int nextInt()
-
-
Return the next value, skewed by the Zipfian distribution. The 0th item will be the most popular, followed by the 1st, followed - by the 2nd, etc. (Or, if min != 0, the min-th item is the most popular, the min+1th item the next most popular, etc.) If you want the - popular items scattered throughout the item space, use ScrambledZipfianGenerator instead. -

-

-
Specified by:
nextInt in class IntegerGenerator
-
-
-
-
-
-
- -

-nextLong

-
-public long nextLong()
-
-
Return the next value, skewed by the Zipfian distribution. The 0th item will be the most popular, followed by the 1st, followed - by the 2nd, etc. (Or, if min != 0, the min-th item is the most popular, the min+1th item the next most popular, etc.) If you want the - popular items scattered throughout the item space, use ScrambledZipfianGenerator instead. -

-

-
-
-
-
- -

-main

-
-public static void main(java.lang.String[] args)
-
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - -
- -
- - - -
- - - DELETED YCSB/doc/javadoc/com/yahoo/ycsb/db/CassandraClient.html Index: YCSB/doc/javadoc/com/yahoo/ycsb/db/CassandraClient.html ================================================================== --- YCSB/doc/javadoc/com/yahoo/ycsb/db/CassandraClient.html +++ /dev/null @@ -1,630 +0,0 @@ - - - - - - -CassandraClient - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - -
- -

- -com.yahoo.ycsb.db -
-Class CassandraClient

-
-java.lang.Object
-  extended by com.yahoo.ycsb.DB
-      extended by com.yahoo.ycsb.db.CassandraClient
-
-
-
-
public class CassandraClient
extends DB
- - -

-XXXX if we do replication, fix the consistency levels -

- -

-


- -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Summary
-static java.lang.StringCONNECTION_RETRY_PROPERTY - -
-           
-static java.lang.StringCONNECTION_RETRY_PROPERTY_DEFAULT - -
-           
- intConnectionRetries - -
-           
-static intError - -
-           
-static intOk - -
-           
-static java.lang.StringOPERATION_RETRY_PROPERTY - -
-           
-static java.lang.StringOPERATION_RETRY_PROPERTY_DEFAULT - -
-           
- intOperationRetries - -
-           
-  - - - - - - - - - - -
-Constructor Summary
CassandraClient() - -
-           
-  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Method Summary
- voidcleanup() - -
-          Cleanup any state for this DB.
- intdelete(java.lang.String table, - java.lang.String key) - -
-          Delete a record from the database.
- voidinit() - -
-          Initialize any state for this DB.
- intinsert(java.lang.String table, - java.lang.String key, - java.util.HashMap<java.lang.String,java.lang.String> values) - -
-          Insert a record in the database.
-static voidmain(java.lang.String[] args) - -
-           
- intread(java.lang.String table, - java.lang.String key, - java.util.Set<java.lang.String> fields, - java.util.HashMap<java.lang.String,java.lang.String> result) - -
-          Read a record from the database.
- intscan(java.lang.String table, - java.lang.String startkey, - int recordcount, - java.util.Set<java.lang.String> fields, - java.util.Vector<java.util.HashMap<java.lang.String,java.lang.String>> result) - -
-          Perform a range scan for a set of records in the database.
- intupdate(java.lang.String table, - java.lang.String key, - java.util.HashMap<java.lang.String,java.lang.String> values) - -
-          Update a record in the database.
- - - - - - - -
Methods inherited from class com.yahoo.ycsb.DB
getProperties, setProperties
- - - - - - - -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-  -

- - - - - - - - -
-Field Detail
- -

-Ok

-
-public static final int Ok
-
-
-
See Also:
Constant Field Values
-
-
- -

-Error

-
-public static final int Error
-
-
-
See Also:
Constant Field Values
-
-
- -

-ConnectionRetries

-
-public int ConnectionRetries
-
-
-
-
-
- -

-OperationRetries

-
-public int OperationRetries
-
-
-
-
-
- -

-CONNECTION_RETRY_PROPERTY

-
-public static final java.lang.String CONNECTION_RETRY_PROPERTY
-
-
-
See Also:
Constant Field Values
-
-
- -

-CONNECTION_RETRY_PROPERTY_DEFAULT

-
-public static final java.lang.String CONNECTION_RETRY_PROPERTY_DEFAULT
-
-
-
See Also:
Constant Field Values
-
-
- -

-OPERATION_RETRY_PROPERTY

-
-public static final java.lang.String OPERATION_RETRY_PROPERTY
-
-
-
See Also:
Constant Field Values
-
-
- -

-OPERATION_RETRY_PROPERTY_DEFAULT

-
-public static final java.lang.String OPERATION_RETRY_PROPERTY_DEFAULT
-
-
-
See Also:
Constant Field Values
-
- - - - - - - - -
-Constructor Detail
- -

-CassandraClient

-
-public CassandraClient()
-
-
- - - - - - - - -
-Method Detail
- -

-init

-
-public void init()
-          throws DBException
-
-
Initialize any state for this DB. - Called once per DB instance; there is one DB instance per client thread. -

-

-
Overrides:
init in class DB
-
-
- -
Throws: -
DBException
-
-
-
- -

-cleanup

-
-public void cleanup()
-             throws DBException
-
-
Cleanup any state for this DB. - Called once per DB instance; there is one DB instance per client thread. -

-

-
Overrides:
cleanup in class DB
-
-
- -
Throws: -
DBException
-
-
-
- -

-read

-
-public int read(java.lang.String table,
-                java.lang.String key,
-                java.util.Set<java.lang.String> fields,
-                java.util.HashMap<java.lang.String,java.lang.String> result)
-
-
Read a record from the database. Each field/value pair from the result will be stored in a HashMap. -

-

-
Specified by:
read in class DB
-
-
-
Parameters:
table - The name of the table
key - The record key of the record to read.
fields - The list of fields to read, or null for all of them
result - A HashMap of field/value pairs for the result -
Returns:
Zero on success, a non-zero error code on error
-
-
-
- -

-scan

-
-public int scan(java.lang.String table,
-                java.lang.String startkey,
-                int recordcount,
-                java.util.Set<java.lang.String> fields,
-                java.util.Vector<java.util.HashMap<java.lang.String,java.lang.String>> result)
-
-
Perform a range scan for a set of records in the database. Each field/value pair from the result will be stored in a HashMap. -

-

-
Specified by:
scan in class DB
-
-
-
Parameters:
table - The name of the table
startkey - The record key of the first record to read.
recordcount - The number of records to read
fields - The list of fields to read, or null for all of them
result - A Vector of HashMaps, where each HashMap is a set field/value pairs for one record -
Returns:
Zero on success, a non-zero error code on error
-
-
-
- -

-update

-
-public int update(java.lang.String table,
-                  java.lang.String key,
-                  java.util.HashMap<java.lang.String,java.lang.String> values)
-
-
Update a record in the database. Any field/value pairs in the specified values HashMap will be written into the record with the specified - record key, overwriting any existing values with the same field name. -

-

-
Specified by:
update in class DB
-
-
-
Parameters:
table - The name of the table
key - The record key of the record to write.
values - A HashMap of field/value pairs to update in the record -
Returns:
Zero on success, a non-zero error code on error
-
-
-
- -

-insert

-
-public int insert(java.lang.String table,
-                  java.lang.String key,
-                  java.util.HashMap<java.lang.String,java.lang.String> values)
-
-
Insert a record in the database. Any field/value pairs in the specified values HashMap will be written into the record with the specified - record key. -

-

-
Specified by:
insert in class DB
-
-
-
Parameters:
table - The name of the table
key - The record key of the record to insert.
values - A HashMap of field/value pairs to insert in the record -
Returns:
Zero on success, a non-zero error code on error
-
-
-
- -

-delete

-
-public int delete(java.lang.String table,
-                  java.lang.String key)
-
-
Delete a record from the database. -

-

-
Specified by:
delete in class DB
-
-
-
Parameters:
table - The name of the table
key - The record key of the record to delete. -
Returns:
Zero on success, a non-zero error code on error
-
-
-
- -

-main

-
-public static void main(java.lang.String[] args)
-
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - -
- -
- - - -
- - - DELETED YCSB/doc/javadoc/com/yahoo/ycsb/db/HBaseClient.html Index: YCSB/doc/javadoc/com/yahoo/ycsb/db/HBaseClient.html ================================================================== --- YCSB/doc/javadoc/com/yahoo/ycsb/db/HBaseClient.html +++ /dev/null @@ -1,691 +0,0 @@ - - - - - - -HBaseClient - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
- -
- - - -
- -

- -com.yahoo.ycsb.db -
-Class HBaseClient

-
-java.lang.Object
-  extended by com.yahoo.ycsb.DB
-      extended by com.yahoo.ycsb.db.HBaseClient
-
-
-
-
public class HBaseClient
extends DB
- - -

-HBase client for YCSB framework -

- -

-


- -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Summary
- java.lang.String_columnFamily - -
-           
- byte[]_columnFamilyBytes - -
-           
- boolean_debug - -
-           
- HTable_hTable - -
-           
- java.lang.String_table - -
-           
-static intHttpError - -
-           
-static intNoMatchingRecord - -
-           
-static intOk - -
-           
-static intServerError - -
-           
-static java.lang.ObjecttableLock - -
-           
-  - - - - - - - - - - -
-Constructor Summary
HBaseClient() - -
-           
-  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Method Summary
- voidcleanup() - -
-          Cleanup any state for this DB.
- intdelete(java.lang.String table, - java.lang.String key) - -
-          Delete a record from the database.
- voidgetHTable(java.lang.String table) - -
-           
- voidinit() - -
-          Initialize any state for this DB.
- intinsert(java.lang.String table, - java.lang.String key, - java.util.HashMap<java.lang.String,java.lang.String> values) - -
-          Insert a record in the database.
-static voidmain(java.lang.String[] args) - -
-           
- intread(java.lang.String table, - java.lang.String key, - java.util.Set<java.lang.String> fields, - java.util.HashMap<java.lang.String,java.lang.String> result) - -
-          Read a record from the database.
- intscan(java.lang.String table, - java.lang.String startkey, - int recordcount, - java.util.Set<java.lang.String> fields, - java.util.Vector<java.util.HashMap<java.lang.String,java.lang.String>> result) - -
-          Perform a range scan for a set of records in the database.
- intupdate(java.lang.String table, - java.lang.String key, - java.util.HashMap<java.lang.String,java.lang.String> values) - -
-          Update a record in the database.
- - - - - - - -
Methods inherited from class com.yahoo.ycsb.DB
getProperties, setProperties
- - - - - - - -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-  -

- - - - - - - - -
-Field Detail
- -

-_debug

-
-public boolean _debug
-
-
-
-
-
- -

-_table

-
-public java.lang.String _table
-
-
-
-
-
- -

-_hTable

-
-public HTable _hTable
-
-
-
-
-
- -

-_columnFamily

-
-public java.lang.String _columnFamily
-
-
-
-
-
- -

-_columnFamilyBytes

-
-public byte[] _columnFamilyBytes
-
-
-
-
-
- -

-Ok

-
-public static final int Ok
-
-
-
See Also:
Constant Field Values
-
-
- -

-ServerError

-
-public static final int ServerError
-
-
-
See Also:
Constant Field Values
-
-
- -

-HttpError

-
-public static final int HttpError
-
-
-
See Also:
Constant Field Values
-
-
- -

-NoMatchingRecord

-
-public static final int NoMatchingRecord
-
-
-
See Also:
Constant Field Values
-
-
- -

-tableLock

-
-public static java.lang.Object tableLock
-
-
-
-
- - - - - - - - -
-Constructor Detail
- -

-HBaseClient

-
-public HBaseClient()
-
-
- - - - - - - - -
-Method Detail
- -

-init

-
-public void init()
-          throws DBException
-
-
Initialize any state for this DB. - Called once per DB instance; there is one DB instance per client thread. -

-

-
Overrides:
init in class DB
-
-
- -
Throws: -
DBException
-
-
-
- -

-cleanup

-
-public void cleanup()
-             throws DBException
-
-
Cleanup any state for this DB. - Called once per DB instance; there is one DB instance per client thread. -

-

-
Overrides:
cleanup in class DB
-
-
- -
Throws: -
DBException
-
-
-
- -

-getHTable

-
-public void getHTable(java.lang.String table)
-               throws java.io.IOException
-
-
- -
Throws: -
java.io.IOException
-
-
-
- -

-read

-
-public int read(java.lang.String table,
-                java.lang.String key,
-                java.util.Set<java.lang.String> fields,
-                java.util.HashMap<java.lang.String,java.lang.String> result)
-
-
Read a record from the database. Each field/value pair from the result will be stored in a HashMap. -

-

-
Specified by:
read in class DB
-
-
-
Parameters:
table - The name of the table
key - The record key of the record to read.
fields - The list of fields to read, or null for all of them
result - A HashMap of field/value pairs for the result -
Returns:
Zero on success, a non-zero error code on error
-
-
-
- -

-scan

-
-public int scan(java.lang.String table,
-                java.lang.String startkey,
-                int recordcount,
-                java.util.Set<java.lang.String> fields,
-                java.util.Vector<java.util.HashMap<java.lang.String,java.lang.String>> result)
-
-
Perform a range scan for a set of records in the database. Each field/value pair from the result will be stored in a HashMap. -

-

-
Specified by:
scan in class DB
-
-
-
Parameters:
table - The name of the table
startkey - The record key of the first record to read.
recordcount - The number of records to read
fields - The list of fields to read, or null for all of them
result - A Vector of HashMaps, where each HashMap is a set field/value pairs for one record -
Returns:
Zero on success, a non-zero error code on error
-
-
-
- -

-update

-
-public int update(java.lang.String table,
-                  java.lang.String key,
-                  java.util.HashMap<java.lang.String,java.lang.String> values)
-
-
Update a record in the database. Any field/value pairs in the specified values HashMap will be written into the record with the specified - record key, overwriting any existing values with the same field name. -

-

-
Specified by:
update in class DB
-
-
-
Parameters:
table - The name of the table
key - The record key of the record to write
values - A HashMap of field/value pairs to update in the record -
Returns:
Zero on success, a non-zero error code on error
-
-
-
- -

-insert

-
-public int insert(java.lang.String table,
-                  java.lang.String key,
-                  java.util.HashMap<java.lang.String,java.lang.String> values)
-
-
Insert a record in the database. Any field/value pairs in the specified values HashMap will be written into the record with the specified - record key. -

-

-
Specified by:
insert in class DB
-
-
-
Parameters:
table - The name of the table
key - The record key of the record to insert.
values - A HashMap of field/value pairs to insert in the record -
Returns:
Zero on success, a non-zero error code on error
-
-
-
- -

-delete

-
-public int delete(java.lang.String table,
-                  java.lang.String key)
-
-
Delete a record from the database. -

-

-
Specified by:
delete in class DB
-
-
-
Parameters:
table - The name of the table
key - The record key of the record to delete. -
Returns:
Zero on success, a non-zero error code on error
-
-
-
- -

-main

-
-public static void main(java.lang.String[] args)
-
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - -
- -
- - - -
- - - DELETED YCSB/doc/javadoc/com/yahoo/ycsb/db/ShardClient.html Index: YCSB/doc/javadoc/com/yahoo/ycsb/db/ShardClient.html ================================================================== --- YCSB/doc/javadoc/com/yahoo/ycsb/db/ShardClient.html +++ /dev/null @@ -1,757 +0,0 @@ - - - - - - -ShardClient - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
- -
- - - -
- -

- -com.yahoo.ycsb.db -
-Class ShardClient

-
-java.lang.Object
-  extended by com.yahoo.ycsb.DB
-      extended by com.yahoo.ycsb.db.ShardClient
-
-
-
-
public class ShardClient
extends DB
- - -

-A client for the simple sharded MySQL called shardserver. -

- -

-


- -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Summary
- boolean_debug - -
-           
- boolean_donothing - -
-           
-static intHttpError - -
-           
-static intNoMatchingRecord - -
-           
-static java.lang.StringNoMatchingRecordString - -
-           
-static intOk - -
-           
-static intServerError - -
-           
- longTotalGetOps - -
-           
- longTotalGetTime - -
-           
- longTotalPostOps - -
-           
- longTotalPostTime - -
-           
-static java.lang.StringUrlPrefix - -
-           
-  - - - - - - - - - - -
-Constructor Summary
ShardClient() - -
-           
-  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Method Summary
- voidcleanup() - -
-          Cleanup any state for this DB.
- intdelete(java.lang.String table, - java.lang.String key) - -
-          Delete a record from the database.
- java.util.Vector<char[]>doGet(java.lang.String url) - -
-          Do a GET HTTP call.
- java.lang.StringdoPost(java.lang.String url, - java.lang.String postbody) - -
-          Do a POST HTTP call.
- voidinit() - -
-          Initialize any state for this DB.
- intinsert(java.lang.String table, - java.lang.String key, - java.util.HashMap<java.lang.String,java.lang.String> values) - -
-          Insert a record in the database.
-static voidmain(java.lang.String[] args) - -
-          Simple test.
- intread(java.lang.String table, - java.lang.String key, - java.util.Set<java.lang.String> fields, - java.util.HashMap<java.lang.String,java.lang.String> result) - -
-          Read a record from the database.
- intscan(java.lang.String table, - java.lang.String startkey, - int recordcount, - java.util.Set<java.lang.String> fields, - java.util.Vector<java.util.HashMap<java.lang.String,java.lang.String>> result) - -
-          Perform a range scan for a set of records in the database.
- intupdate(java.lang.String table, - java.lang.String key, - java.util.HashMap<java.lang.String,java.lang.String> values) - -
-          Update a record in the database.
- - - - - - - -
Methods inherited from class com.yahoo.ycsb.DB
getProperties, setProperties
- - - - - - - -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-  -

- - - - - - - - -
-Field Detail
- -

-UrlPrefix

-
-public static final java.lang.String UrlPrefix
-
-
-
See Also:
Constant Field Values
-
-
- -

-NoMatchingRecordString

-
-public static final java.lang.String NoMatchingRecordString
-
-
-
See Also:
Constant Field Values
-
-
- -

-Ok

-
-public static final int Ok
-
-
-
See Also:
Constant Field Values
-
-
- -

-ServerError

-
-public static final int ServerError
-
-
-
See Also:
Constant Field Values
-
-
- -

-HttpError

-
-public static final int HttpError
-
-
-
See Also:
Constant Field Values
-
-
- -

-NoMatchingRecord

-
-public static final int NoMatchingRecord
-
-
-
See Also:
Constant Field Values
-
-
- -

-_debug

-
-public boolean _debug
-
-
-
-
-
- -

-_donothing

-
-public boolean _donothing
-
-
-
-
-
- -

-TotalGetTime

-
-public long TotalGetTime
-
-
-
-
-
- -

-TotalGetOps

-
-public long TotalGetOps
-
-
-
-
-
- -

-TotalPostTime

-
-public long TotalPostTime
-
-
-
-
-
- -

-TotalPostOps

-
-public long TotalPostOps
-
-
-
-
- - - - - - - - -
-Constructor Detail
- -

-ShardClient

-
-public ShardClient()
-
-
- - - - - - - - -
-Method Detail
- -

-init

-
-public void init()
-          throws DBException
-
-
Initialize any state for this DB. - Called once per DB instance; there is one DB instance per client thread. -

-

-
Overrides:
init in class DB
-
-
- -
Throws: -
DBException
-
-
-
- -

-cleanup

-
-public void cleanup()
-             throws DBException
-
-
Cleanup any state for this DB. - Called once per DB instance; there is one DB instance per client thread. -

-

-
Overrides:
cleanup in class DB
-
-
- -
Throws: -
DBException
-
-
-
- -

-doGet

-
-public java.util.Vector<char[]> doGet(java.lang.String url)
-                               throws DBException
-
-
Do a GET HTTP call. Returns the results in a Vector of char[] blocks. -

-

- -
Throws: -
DBException
-
-
-
- -

-doPost

-
-public java.lang.String doPost(java.lang.String url,
-                               java.lang.String postbody)
-                        throws DBException
-
-
Do a POST HTTP call. Returns the result as a String. -

-

- -
Throws: -
DBException
-
-
-
- -

-read

-
-public int read(java.lang.String table,
-                java.lang.String key,
-                java.util.Set<java.lang.String> fields,
-                java.util.HashMap<java.lang.String,java.lang.String> result)
-
-
Read a record from the database. Each field/value pair from the result will be stored in a HashMap. -

-

-
Specified by:
read in class DB
-
-
-
Parameters:
table - The name of the table
key - The record key of the record to read.
fields - The list of fields to read, or null for all of them
result - A HashMap of field/value pairs for the result -
Returns:
Zero on success, a non-zero error code on error
-
-
-
- -

-scan

-
-public int scan(java.lang.String table,
-                java.lang.String startkey,
-                int recordcount,
-                java.util.Set<java.lang.String> fields,
-                java.util.Vector<java.util.HashMap<java.lang.String,java.lang.String>> result)
-
-
Perform a range scan for a set of records in the database. Each field/value pair from the result will be stored in a HashMap. -

-

-
Specified by:
scan in class DB
-
-
-
Parameters:
table - The name of the table
startkey - The record key of the first record to read.
recordcount - The number of records to read
fields - The list of fields to read, or null for all of them
result - A Vector of HashMaps, where each HashMap is a set field/value pairs for one record -
Returns:
Zero on success, a non-zero error code on error
-
-
-
- -

-update

-
-public int update(java.lang.String table,
-                  java.lang.String key,
-                  java.util.HashMap<java.lang.String,java.lang.String> values)
-
-
Update a record in the database. Any field/value pairs in the specified values HashMap will be written into the record with the specified - record key, overwriting any existing values with the same field name. -

-

-
Specified by:
update in class DB
-
-
-
Parameters:
table - The name of the table
key - The record key of the record to write.
values - A HashMap of field/value pairs to update in the record -
Returns:
Zero on success, a non-zero error code on error
-
-
-
- -

-insert

-
-public int insert(java.lang.String table,
-                  java.lang.String key,
-                  java.util.HashMap<java.lang.String,java.lang.String> values)
-
-
Insert a record in the database. Any field/value pairs in the specified values HashMap will be written into the record with the specified - record key. -

-

-
Specified by:
insert in class DB
-
-
-
Parameters:
table - The name of the table
key - The record key of the record to insert.
values - A HashMap of field/value pairs to insert in the record -
Returns:
Zero on success, a non-zero error code on error
-
-
-
- -

-delete

-
-public int delete(java.lang.String table,
-                  java.lang.String key)
-
-
Delete a record from the database. -

-

-
Specified by:
delete in class DB
-
-
-
Parameters:
table - The name of the table
key - The record key of the record to delete. -
Returns:
Zero on success, a non-zero error code on error
-
-
-
- -

-main

-
-public static void main(java.lang.String[] args)
-
-
Simple test. -

-

-
-
-
- -
- - - - - - - - - - - - - - - - - - - -
- -
- - - -
- - - DELETED YCSB/doc/javadoc/com/yahoo/ycsb/db/SherpaClient.html Index: YCSB/doc/javadoc/com/yahoo/ycsb/db/SherpaClient.html ================================================================== --- YCSB/doc/javadoc/com/yahoo/ycsb/db/SherpaClient.html +++ /dev/null @@ -1,1280 +0,0 @@ - - - - - - -SherpaClient - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
- -
- - - -
- -

- -com.yahoo.ycsb.db -
-Class SherpaClient

-
-java.lang.Object
-  extended by com.yahoo.ycsb.DB
-      extended by com.yahoo.ycsb.db.SherpaClient
-
-
-
-
public class SherpaClient
extends DB
- - -

-This is a Java Sherpa client to be used for the Benchmark app. Since Sherpa - is a RESful service, this class will make use of Apache's HttpClient 4.x to - make the web service calls. -

- -

-


- -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Summary
-protected static java.lang.StringADDITIONAL_FIELD - -
-           
-protected static java.lang.StringCODE - -
-           
-protected static java.lang.StringCONTINUATION - -
-           
-protected static java.lang.StringDELETE - -
-           
-protected static java.lang.StringEND_HASH_KEY - -
-           
-protected static java.lang.StringEND_HASH_KEY_VALUE - -
-           
-protected static java.lang.StringFIELDS - -
-           
-protected static java.lang.StringFIRST_FIELD - -
-           
-protected static java.lang.StringGET - -
-           
-protected static java.lang.StringHASH_SCAN - -
-           
-protected static java.lang.StringHOSTS - -
-           
-protected static java.lang.StringHTTP - -
-           
-protected static intHTTP_ERROR - -
-           
-protected static intJSON_ERROR - -
-           
-protected static java.lang.StringNAMESPACE - -
-           
-protected static intOK - -
-           
-protected static java.lang.StringORDERED_SCAN - -
-           
-protected static java.lang.StringPREDICATE - -
-           
-protected static java.lang.StringRECORD_LIMIT - -
-           
-protected static java.lang.StringRECORDS - -
-           
-protected static java.lang.StringSCAN_COMPLETED - -
-           
-protected static java.lang.StringSCANTYPE - -
-           
-protected static java.lang.StringSET - -
-           
-protected static java.lang.StringSTART_HASH_KEY - -
-           
-protected static java.lang.StringSTART_HASH_KEY_HEADER - -
-           
-protected static java.lang.StringSTART_HASH_KEY_VALUE - -
-           
-protected static java.lang.StringSTART_KEY_ADDITIONAL - -
-           
-protected static java.lang.StringSTART_KEY_FIRST - -
-           
-protected static java.lang.StringSTATUS - -
-           
-protected static java.lang.StringURI_PATH - -
-           
-protected static java.lang.StringUTF8 - -
-           
-protected static java.lang.StringVALUE - -
-           
-protected static java.lang.StringYDHT - -
-           
-  - - - - - - - - - - -
-Constructor Summary
SherpaClient() - -
-           
-  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Method Summary
- voidcleanup() - -
-          Cleanup any state for this DB.
-static java.lang.StringcreateRecordBody(java.util.HashMap<java.lang.String,java.lang.String> values) - -
-          Method to create the Sherpa JSON record body from an input HashMap of - key/values.
- intdelete(java.lang.String table, - java.lang.String key) - -
-          Delete a record from the database.
-static java.lang.StringencodeFields(java.util.Set<java.lang.String> fields) - -
-          Method to encode a set of fields to retrieve from a Sherpa Get or Scan - request.
-static java.lang.StringencodeString(java.lang.String key) - -
-          Method to encode a String to UTF8.
-static java.lang.StringgetHashKey(java.lang.String key) - -
-          Method to return the hex string representation of a 32-bit unsigned key - value used for doing Sherpa scans.
-static intgetResponseCode(JSONObject jsonObject) - -
-          Helper method to retrieve the response status code from a JSON Response - to determine if it was successful or not.
- voidinit() - -
-          Initialize any state for this DB.
- intinsert(java.lang.String table, - java.lang.String key, - java.util.HashMap<java.lang.String,java.lang.String> values) - -
-          Insert a record in the database.
-static voidpopulateHashScanRecords(JSONObject curResult, - java.util.Vector<java.util.HashMap<java.lang.String,java.lang.String>> result) - -
-          Method to parse and store a JSON response from a hash scan request.
-static voidpopulateOrderedScanRecords(JSONObject curResult, - java.util.Vector<java.util.HashMap<java.lang.String,java.lang.String>> result) - -
-          Method to parse and store a JSON response from an ordered scan request.
-static voidpopulateReadRecord(JSONObject response, - java.util.HashMap<java.lang.String,java.lang.String> result) - -
-          Method to parse and store a JSON response from reading a single Sherpa - record into the corresponding HashMap key/value pairs.
- intread(java.lang.String table, - java.lang.String key, - java.util.Set<java.lang.String> fields, - java.util.HashMap<java.lang.String,java.lang.String> result) - -
-          Read a record from the database.
- intscan(java.lang.String table, - java.lang.String startkey, - int recordcount, - java.util.Set<java.lang.String> fields, - java.util.Vector<java.util.HashMap<java.lang.String,java.lang.String>> result) - -
-          Perform a range scan for a set of records in the database.
- intupdate(java.lang.String table, - java.lang.String key, - java.util.HashMap<java.lang.String,java.lang.String> values) - -
-          Update a record in the database.
- - - - - - - -
Methods inherited from class com.yahoo.ycsb.DB
getProperties, setProperties
- - - - - - - -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-  -

- - - - - - - - -
-Field Detail
- -

-GET

-
-protected static final java.lang.String GET
-
-
-
See Also:
Constant Field Values
-
-
- -

-SET

-
-protected static final java.lang.String SET
-
-
-
See Also:
Constant Field Values
-
-
- -

-DELETE

-
-protected static final java.lang.String DELETE
-
-
-
See Also:
Constant Field Values
-
-
- -

-HASH_SCAN

-
-protected static final java.lang.String HASH_SCAN
-
-
-
See Also:
Constant Field Values
-
-
- -

-ORDERED_SCAN

-
-protected static final java.lang.String ORDERED_SCAN
-
-
-
See Also:
Constant Field Values
-
-
- -

-FIRST_FIELD

-
-protected static final java.lang.String FIRST_FIELD
-
-
-
See Also:
Constant Field Values
-
-
- -

-ADDITIONAL_FIELD

-
-protected static final java.lang.String ADDITIONAL_FIELD
-
-
-
See Also:
Constant Field Values
-
-
- -

-START_KEY_FIRST

-
-protected static final java.lang.String START_KEY_FIRST
-
-
-
See Also:
Constant Field Values
-
-
- -

-START_KEY_ADDITIONAL

-
-protected static final java.lang.String START_KEY_ADDITIONAL
-
-
-
See Also:
Constant Field Values
-
-
- -

-UTF8

-
-protected static final java.lang.String UTF8
-
-
-
See Also:
Constant Field Values
-
-
- -

-START_HASH_KEY_HEADER

-
-protected static final java.lang.String START_HASH_KEY_HEADER
-
-
-
See Also:
Constant Field Values
-
-
- -

-CONTINUATION

-
-protected static final java.lang.String CONTINUATION
-
-
-
See Also:
Constant Field Values
-
-
- -

-START_HASH_KEY

-
-protected static final java.lang.String START_HASH_KEY
-
-
-
See Also:
Constant Field Values
-
-
- -

-END_HASH_KEY

-
-protected static final java.lang.String END_HASH_KEY
-
-
-
See Also:
Constant Field Values
-
-
- -

-START_HASH_KEY_VALUE

-
-protected static final java.lang.String START_HASH_KEY_VALUE
-
-
-
See Also:
Constant Field Values
-
-
- -

-END_HASH_KEY_VALUE

-
-protected static final java.lang.String END_HASH_KEY_VALUE
-
-
-
See Also:
Constant Field Values
-
-
- -

-RECORD_LIMIT

-
-protected static final java.lang.String RECORD_LIMIT
-
-
-
See Also:
Constant Field Values
-
-
- -

-PREDICATE

-
-protected static final java.lang.String PREDICATE
-
-
-
See Also:
Constant Field Values
-
-
- -

-SCAN_COMPLETED

-
-protected static final java.lang.String SCAN_COMPLETED
-
-
-
See Also:
Constant Field Values
-
-
- -

-RECORDS

-
-protected static final java.lang.String RECORDS
-
-
-
See Also:
Constant Field Values
-
-
- -

-URI_PATH

-
-protected static final java.lang.String URI_PATH
-
-
-
See Also:
Constant Field Values
-
-
- -

-YDHT

-
-protected static final java.lang.String YDHT
-
-
-
See Also:
Constant Field Values
-
-
- -

-STATUS

-
-protected static final java.lang.String STATUS
-
-
-
See Also:
Constant Field Values
-
-
- -

-CODE

-
-protected static final java.lang.String CODE
-
-
-
See Also:
Constant Field Values
-
-
- -

-FIELDS

-
-protected static final java.lang.String FIELDS
-
-
-
See Also:
Constant Field Values
-
-
- -

-VALUE

-
-protected static final java.lang.String VALUE
-
-
-
See Also:
Constant Field Values
-
-
- -

-OK

-
-protected static final int OK
-
-
-
See Also:
Constant Field Values
-
-
- -

-JSON_ERROR

-
-protected static final int JSON_ERROR
-
-
-
See Also:
Constant Field Values
-
-
- -

-HTTP_ERROR

-
-protected static final int HTTP_ERROR
-
-
-
See Also:
Constant Field Values
-
-
- -

-HOSTS

-
-protected static final java.lang.String HOSTS
-
-
-
See Also:
Constant Field Values
-
-
- -

-HTTP

-
-protected static final java.lang.String HTTP
-
-
-
See Also:
Constant Field Values
-
-
- -

-NAMESPACE

-
-protected static final java.lang.String NAMESPACE
-
-
-
See Also:
Constant Field Values
-
-
- -

-SCANTYPE

-
-protected static final java.lang.String SCANTYPE
-
-
-
See Also:
Constant Field Values
-
- - - - - - - - -
-Constructor Detail
- -

-SherpaClient

-
-public SherpaClient()
-
-
- - - - - - - - -
-Method Detail
- -

-init

-
-public void init()
-          throws DBException
-
-
Initialize any state for this DB. Called once per DB instance; there is - one DB instance per client thread. -

-

-
Overrides:
init in class DB
-
-
- -
Throws: -
DBException
-
-
-
- -

-cleanup

-
-public void cleanup()
-             throws DBException
-
-
Cleanup any state for this DB. Called once per DB instance; there is one - DB instance per client thread. -

-

-
Overrides:
cleanup in class DB
-
-
- -
Throws: -
DBException
-
-
-
- -

-encodeString

-
-public static java.lang.String encodeString(java.lang.String key)
-
-
Method to encode a String to UTF8. All Sherpa table/record/field and - record body data must be UTF8 since access is done via HTTP REST calls. -

-

-
Parameters:
key - Key string we want to encode to UTF8 -
Returns:
UTF8 encoding of the input string
-
-
-
- -

-encodeFields

-
-public static java.lang.String encodeFields(java.util.Set<java.lang.String> fields)
-
-
Method to encode a set of fields to retrieve from a Sherpa Get or Scan - request. -

-

-
Parameters:
fields - Set of String fields to retrieve from a Sherpa Get or Scan - request -
Returns:
String encoding of the set of fields to retrieve from a Sherpa - request. This has the format of ?field=&field=...
-
-
-
- -

-getHashKey

-
-public static java.lang.String getHashKey(java.lang.String key)
-
-
Method to return the hex string representation of a 32-bit unsigned key - value used for doing Sherpa scans. This needs to match how Sherpa in the - backend is hashing the keys to determine which tablet it is stored in. -

-

-
Parameters:
key - Key string to be hashed -
Returns:
String hex representation of the hashing of the input key
-
-
-
- -

-getResponseCode

-
-public static int getResponseCode(JSONObject jsonObject)
-
-
Helper method to retrieve the response status code from a JSON Response - to determine if it was successful or not. -

-

-
Parameters:
jsonObject - JSONObject response from Sherpa -
Returns:
int Response status code indicating if the request was successful - or not
-
-
-
- -

-createRecordBody

-
-public static java.lang.String createRecordBody(java.util.HashMap<java.lang.String,java.lang.String> values)
-
-
Method to create the Sherpa JSON record body from an input HashMap of - key/values. -

-

-
Parameters:
values - HashMap of key/values to be stored in a Sherpa record -
Returns:
Sherpa JSON record representation of the input key/values HashMap
-
-
-
- -

-populateReadRecord

-
-public static void populateReadRecord(JSONObject response,
-                                      java.util.HashMap<java.lang.String,java.lang.String> result)
-                               throws JSONException
-
-
Method to parse and store a JSON response from reading a single Sherpa - record into the corresponding HashMap key/value pairs. -

-

-
Parameters:
response - JSONObject response from reading a single Sherpa record
result - HashMap key/value pairs for the record's field/values -
Throws: -
JSONException - If there is an error parsing the JSON response
-
-
-
- -

-populateHashScanRecords

-
-public static void populateHashScanRecords(JSONObject curResult,
-                                           java.util.Vector<java.util.HashMap<java.lang.String,java.lang.String>> result)
-                                    throws JSONException
-
-
Method to parse and store a JSON response from a hash scan request. This - consists of multiple records each of which will be stored in the input - result Vector as a HashMap of key/value pairs. -

-

-
Parameters:
curResult - JSONObject response from a Sherpa hash scan request
result - Vector of Sherpa records each stored as a HashMap of - key/values for the record's field/values -
Throws: -
JSONException - If there is an error parsing the JSON response
-
-
-
- -

-populateOrderedScanRecords

-
-public static void populateOrderedScanRecords(JSONObject curResult,
-                                              java.util.Vector<java.util.HashMap<java.lang.String,java.lang.String>> result)
-                                       throws JSONException
-
-
Method to parse and store a JSON response from an ordered scan request. - This consists of multiple records each of which will be stored in the - input result Vector as a HashMap of key/value pairs. -

-

-
Parameters:
curResult - JSONObject response from a Sherpa ordered scan request
result - Vector of Sherpa records each stored as a HashMap of - key/values for the record's field/values -
Throws: -
JSONException - If there is an error parsing the JSON response
-
-
-
- -

-delete

-
-public int delete(java.lang.String table,
-                  java.lang.String key)
-
-
Description copied from class: DB
-
Delete a record from the database. -

-

-
Specified by:
delete in class DB
-
-
-
Parameters:
table - The name of the table
key - The record key of the record to delete. -
Returns:
Zero on success, a non-zero error code on error
-
-
-
- -

-insert

-
-public int insert(java.lang.String table,
-                  java.lang.String key,
-                  java.util.HashMap<java.lang.String,java.lang.String> values)
-
-
Description copied from class: DB
-
Insert a record in the database. Any field/value pairs in the specified values HashMap will be written into the record with the specified - record key. -

-

-
Specified by:
insert in class DB
-
-
-
Parameters:
table - The name of the table
key - The record key of the record to insert.
values - A HashMap of field/value pairs to insert in the record -
Returns:
Zero on success, a non-zero error code on error
-
-
-
- -

-read

-
-public int read(java.lang.String table,
-                java.lang.String key,
-                java.util.Set<java.lang.String> fields,
-                java.util.HashMap<java.lang.String,java.lang.String> result)
-
-
Description copied from class: DB
-
Read a record from the database. Each field/value pair from the result will be stored in a HashMap. -

-

-
Specified by:
read in class DB
-
-
-
Parameters:
table - The name of the table
key - The record key of the record to read.
fields - The list of fields to read, or null for all of them
result - A HashMap of field/value pairs for the result -
Returns:
Zero on success, a non-zero error code on error
-
-
-
- -

-scan

-
-public int scan(java.lang.String table,
-                java.lang.String startkey,
-                int recordcount,
-                java.util.Set<java.lang.String> fields,
-                java.util.Vector<java.util.HashMap<java.lang.String,java.lang.String>> result)
-
-
Description copied from class: DB
-
Perform a range scan for a set of records in the database. Each field/value pair from the result will be stored in a HashMap. -

-

-
Specified by:
scan in class DB
-
-
-
Parameters:
table - The name of the table
startkey - The record key of the first record to read.
recordcount - The number of records to read
fields - The list of fields to read, or null for all of them
result - A Vector of HashMaps, where each HashMap is a set field/value pairs for one record -
Returns:
Zero on success, a non-zero error code on error
-
-
-
- -

-update

-
-public int update(java.lang.String table,
-                  java.lang.String key,
-                  java.util.HashMap<java.lang.String,java.lang.String> values)
-
-
Description copied from class: DB
-
Update a record in the database. Any field/value pairs in the specified values HashMap will be written into the record with the specified - record key, overwriting any existing values with the same field name. -

-

-
Specified by:
update in class DB
-
-
-
Parameters:
table - The name of the table
key - The record key of the record to write.
values - A HashMap of field/value pairs to update in the record -
Returns:
Zero on success, a non-zero error code on error
-
-
- -
- - - - - - - - - - - - - - - - - - - -
- -
- - - -
- - - DELETED YCSB/doc/javadoc/com/yahoo/ycsb/db/package-frame.html Index: YCSB/doc/javadoc/com/yahoo/ycsb/db/package-frame.html ================================================================== --- YCSB/doc/javadoc/com/yahoo/ycsb/db/package-frame.html +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - -com.yahoo.ycsb.db - - - - - - - - - - - -com.yahoo.ycsb.db - - - - -
-Classes  - -
-CassandraClient5 -
-CassandraClient6 -
-CassandraClient7 -
-HBaseClient -
-MongoDbClient
- - - - DELETED YCSB/doc/javadoc/com/yahoo/ycsb/db/package-summary.html Index: YCSB/doc/javadoc/com/yahoo/ycsb/db/package-summary.html ================================================================== --- YCSB/doc/javadoc/com/yahoo/ycsb/db/package-summary.html +++ /dev/null @@ -1,171 +0,0 @@ - - - - - - -com.yahoo.ycsb.db - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
- -
- - - -
-

-Package com.yahoo.ycsb.db -

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Class Summary
CassandraClient5Cassandra 0.5 client for YCSB framework
CassandraClient6Cassandra 0.6 client for YCSB framework
CassandraClient7Cassandra 0.7 client for YCSB framework
HBaseClientHBase client for YCSB framework
MongoDbClientMongoDB client for YCSB framework.
-  - -

-

-
-
- - - - - - - - - - - - - - - -
- -
- - - -
- - - DELETED YCSB/doc/javadoc/com/yahoo/ycsb/db/package-tree.html Index: YCSB/doc/javadoc/com/yahoo/ycsb/db/package-tree.html ================================================================== --- YCSB/doc/javadoc/com/yahoo/ycsb/db/package-tree.html +++ /dev/null @@ -1,153 +0,0 @@ - - - - - - -com.yahoo.ycsb.db Class Hierarchy - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
- -
- - - -
-
-

-Hierarchy For Package com.yahoo.ycsb.db -

-
-
-
Package Hierarchies:
All Packages
-
-

-Class Hierarchy -

- -
- - - - - - - - - - - - - - - -
- -
- - - -
- - - DELETED YCSB/doc/javadoc/com/yahoo/ycsb/package-frame.html Index: YCSB/doc/javadoc/com/yahoo/ycsb/package-frame.html ================================================================== --- YCSB/doc/javadoc/com/yahoo/ycsb/package-frame.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - -com.yahoo.ycsb - - - - - - - - - - - -com.yahoo.ycsb - - - - -
-Classes  - -
-BasicDB -
-Client -
-CommandLine -
-DB -
-DBFactory -
-DBWrapper -
-Utils -
-Workload
- - - - - - -
-Exceptions  - -
-DBException -
-UnknownDBException -
-WorkloadException
- - - - DELETED YCSB/doc/javadoc/com/yahoo/ycsb/package-summary.html Index: YCSB/doc/javadoc/com/yahoo/ycsb/package-summary.html ================================================================== --- YCSB/doc/javadoc/com/yahoo/ycsb/package-summary.html +++ /dev/null @@ -1,205 +0,0 @@ - - - - - - -com.yahoo.ycsb - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
- -
- - - -
-

-Package com.yahoo.ycsb -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Class Summary
BasicDBBasic DB that just prints out the requested operations, instead of doing them against a database.
ClientMain class for executing YCSB.
CommandLineA simple command line client to a database, using the appropriate com.yahoo.ycsb.DB implementation.
DBA layer for accessing a database to be benchmarked.
DBFactoryCreates a DB layer by dynamically classloading the specified DB class.
DBWrapperWrapper around a "real" DB that measures latencies and counts return codes.
UtilsUtility functions.
WorkloadOne experiment scenario.
-  - -

- - - - - - - - - - - - - - - - - -
-Exception Summary
DBExceptionSomething bad happened while interacting with the database.
UnknownDBExceptionCould not create the specified DB.
WorkloadExceptionThe workload tried to do something bad.
-  - -

-

-
-
- - - - - - - - - - - - - - - -
- -
- - - -
- - - DELETED YCSB/doc/javadoc/com/yahoo/ycsb/package-tree.html Index: YCSB/doc/javadoc/com/yahoo/ycsb/package-tree.html ================================================================== --- YCSB/doc/javadoc/com/yahoo/ycsb/package-tree.html +++ /dev/null @@ -1,158 +0,0 @@ - - - - - - -com.yahoo.ycsb Class Hierarchy - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
- -
- - - -
-
-

-Hierarchy For Package com.yahoo.ycsb -

-
-
-
Package Hierarchies:
All Packages
-
-

-Class Hierarchy -

- -
- - - - - - - - - - - - - - - -
- -
- - - -
- - - DELETED YCSB/doc/javadoc/com/yahoo/ycsb/workloads/CoreWorkload.html Index: YCSB/doc/javadoc/com/yahoo/ycsb/workloads/CoreWorkload.html ================================================================== --- YCSB/doc/javadoc/com/yahoo/ycsb/workloads/CoreWorkload.html +++ /dev/null @@ -1,972 +0,0 @@ - - - - - - -CoreWorkload - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
- -
- - - -
- -

- -com.yahoo.ycsb.workloads -
-Class CoreWorkload

-
-java.lang.Object
-  extended by com.yahoo.ycsb.Workload
-      extended by com.yahoo.ycsb.workloads.CoreWorkload
-
-
-
-
public class CoreWorkload
extends Workload
- - -

-The core benchmark scenario. Represents a set of clients doing simple CRUD operations. The relative - proportion of different kinds of operations, and other properties of the workload, are controlled - by parameters specified at runtime. - - Properties to control the client: -

    -
  • fieldcount: the number of fields in a record (default: 10) -
  • fieldlength: the size of each field (default: 100) -
  • readallfields: should reads read all fields (true) or just one (false) (default: true) -
  • readproportion: what proportion of operations should be reads (default: 0.95) -
  • updateproportion: what proportion of operations should be updates (default: 0.05) -
  • insertproportion: what proportion of operations should be inserts (default: 0) -
  • scanproportion: what proportion of operations should be scans (default: 0) -
  • readmodifywriteproportion: what proportion of operations should be read a record, modify it, write it back (default: 0) -
  • requestdistribution: what distribution should be used to select the records to operate on - uniform, zipfian or latest (default: uniform) -
  • maxscanlength: for scans, what is the maximum number of records to scan (default: 1000) -
  • scanlengthdistribution: for scans, what distribution should be used to choose the number of records to scan, for each scan, between 1 and maxscanlength (default: uniform) -
  • insertorder: should records be inserted in order by key ("ordered"), or in hashed order ("hashed") (default: hashed) -
-

- -

-


- -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Field Summary
-static java.lang.StringFIELD_COUNT_PROPERTY - -
-          The name of the property for the number of fields in a record.
-static java.lang.StringFIELD_COUNT_PROPERTY_DEFAULT - -
-          Default number of fields in a record.
-static java.lang.StringFIELD_LENGTH_PROPERTY - -
-          The name of the property for the length of a field in bytes.
-static java.lang.StringFIELD_LENGTH_PROPERTY_DEFAULT - -
-          The default length of a field in bytes.
-static java.lang.StringINSERT_ORDER_PROPERTY - -
-          The name of the property for the order to insert records.
-static java.lang.StringINSERT_ORDER_PROPERTY_DEFAULT - -
-          Default insert order.
-static java.lang.StringINSERT_PROPORTION_PROPERTY - -
-          The name of the property for the proportion of transactions that are inserts.
-static java.lang.StringINSERT_PROPORTION_PROPERTY_DEFAULT - -
-          The default proportion of transactions that are inserts.
-static java.lang.StringMAX_SCAN_LENGTH_PROPERTY - -
-          The name of the property for the max scan length (number of records)
-static java.lang.StringMAX_SCAN_LENGTH_PROPERTY_DEFAULT - -
-          The default max scan length.
-static java.lang.StringREAD_ALL_FIELDS_PROPERTY - -
-          The name of the property for deciding whether to read one field (false) or all fields (true) of a record.
-static java.lang.StringREAD_ALL_FIELDS_PROPERTY_DEFAULT - -
-          The default value for the readallfields property.
-static java.lang.StringREAD_PROPORTION_PROPERTY - -
-          The name of the property for the proportion of transactions that are reads.
-static java.lang.StringREAD_PROPORTION_PROPERTY_DEFAULT - -
-          The default proportion of transactions that are reads.
-static java.lang.StringREADMODIFYWRITE_PROPORTION_PROPERTY - -
-          The name of the property for the proportion of transactions that are read-modify-write.
-static java.lang.StringREADMODIFYWRITE_PROPORTION_PROPERTY_DEFAULT - -
-          The default proportion of transactions that are scans.
-static java.lang.StringREQUEST_DISTRIBUTION_PROPERTY - -
-          The name of the property for the the distribution of requests across the keyspace.
-static java.lang.StringREQUEST_DISTRIBUTION_PROPERTY_DEFAULT - -
-          The default distribution of requests across the keyspace
-static java.lang.StringSCAN_LENGTH_DISTRIBUTION_PROPERTY - -
-          The name of the property for the scan length distribution.
-static java.lang.StringSCAN_LENGTH_DISTRIBUTION_PROPERTY_DEFAULT - -
-          The default max scan length.
-static java.lang.StringSCAN_PROPORTION_PROPERTY - -
-          The name of the property for the proportion of transactions that are scans.
-static java.lang.StringSCAN_PROPORTION_PROPERTY_DEFAULT - -
-          The default proportion of transactions that are scans.
-static java.lang.StringTABLENAME - -
-          The name of the database table to run queries against.
-static java.lang.StringUPDATE_PROPORTION_PROPERTY - -
-          The name of the property for the proportion of transactions that are updates.
-static java.lang.StringUPDATE_PROPORTION_PROPERTY_DEFAULT - -
-          The default proportion of transactions that are updates.
- - - - - - - -
Fields inherited from class com.yahoo.ycsb.Workload
INSERT_START_PROPERTY, INSERT_START_PROPERTY_DEFAULT
-  - - - - - - - - - - -
-Constructor Summary
CoreWorkload() - -
-           
-  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Method Summary
- booleandoInsert(DB db, - java.lang.Object threadstate) - -
-          Do one insert operation.
- booleandoTransaction(DB db, - java.lang.Object threadstate) - -
-          Do one transaction operation.
- voiddoTransactionInsert(DB db) - -
-           
- voiddoTransactionRead(DB db) - -
-           
- voiddoTransactionReadModifyWrite(DB db) - -
-           
- voiddoTransactionScan(DB db) - -
-           
- voiddoTransactionUpdate(DB db) - -
-           
- voidinit(java.util.Properties p) - -
-          Initialize the scenario.
- - - - - - - -
Methods inherited from class com.yahoo.ycsb.Workload
cleanup, initThread
- - - - - - - -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-  -

- - - - - - - - -
-Field Detail
- -

-TABLENAME

-
-public static final java.lang.String TABLENAME
-
-
The name of the database table to run queries against. -

-

-
See Also:
Constant Field Values
-
-
- -

-FIELD_COUNT_PROPERTY

-
-public static final java.lang.String FIELD_COUNT_PROPERTY
-
-
The name of the property for the number of fields in a record. -

-

-
See Also:
Constant Field Values
-
-
- -

-FIELD_COUNT_PROPERTY_DEFAULT

-
-public static final java.lang.String FIELD_COUNT_PROPERTY_DEFAULT
-
-
Default number of fields in a record. -

-

-
See Also:
Constant Field Values
-
-
- -

-FIELD_LENGTH_PROPERTY

-
-public static final java.lang.String FIELD_LENGTH_PROPERTY
-
-
The name of the property for the length of a field in bytes. -

-

-
See Also:
Constant Field Values
-
-
- -

-FIELD_LENGTH_PROPERTY_DEFAULT

-
-public static final java.lang.String FIELD_LENGTH_PROPERTY_DEFAULT
-
-
The default length of a field in bytes. -

-

-
See Also:
Constant Field Values
-
-
- -

-READ_ALL_FIELDS_PROPERTY

-
-public static final java.lang.String READ_ALL_FIELDS_PROPERTY
-
-
The name of the property for deciding whether to read one field (false) or all fields (true) of a record. -

-

-
See Also:
Constant Field Values
-
-
- -

-READ_ALL_FIELDS_PROPERTY_DEFAULT

-
-public static final java.lang.String READ_ALL_FIELDS_PROPERTY_DEFAULT
-
-
The default value for the readallfields property. -

-

-
See Also:
Constant Field Values
-
-
- -

-READ_PROPORTION_PROPERTY

-
-public static final java.lang.String READ_PROPORTION_PROPERTY
-
-
The name of the property for the proportion of transactions that are reads. -

-

-
See Also:
Constant Field Values
-
-
- -

-READ_PROPORTION_PROPERTY_DEFAULT

-
-public static final java.lang.String READ_PROPORTION_PROPERTY_DEFAULT
-
-
The default proportion of transactions that are reads. -

-

-
See Also:
Constant Field Values
-
-
- -

-UPDATE_PROPORTION_PROPERTY

-
-public static final java.lang.String UPDATE_PROPORTION_PROPERTY
-
-
The name of the property for the proportion of transactions that are updates. -

-

-
See Also:
Constant Field Values
-
-
- -

-UPDATE_PROPORTION_PROPERTY_DEFAULT

-
-public static final java.lang.String UPDATE_PROPORTION_PROPERTY_DEFAULT
-
-
The default proportion of transactions that are updates. -

-

-
See Also:
Constant Field Values
-
-
- -

-INSERT_PROPORTION_PROPERTY

-
-public static final java.lang.String INSERT_PROPORTION_PROPERTY
-
-
The name of the property for the proportion of transactions that are inserts. -

-

-
See Also:
Constant Field Values
-
-
- -

-INSERT_PROPORTION_PROPERTY_DEFAULT

-
-public static final java.lang.String INSERT_PROPORTION_PROPERTY_DEFAULT
-
-
The default proportion of transactions that are inserts. -

-

-
See Also:
Constant Field Values
-
-
- -

-SCAN_PROPORTION_PROPERTY

-
-public static final java.lang.String SCAN_PROPORTION_PROPERTY
-
-
The name of the property for the proportion of transactions that are scans. -

-

-
See Also:
Constant Field Values
-
-
- -

-SCAN_PROPORTION_PROPERTY_DEFAULT

-
-public static final java.lang.String SCAN_PROPORTION_PROPERTY_DEFAULT
-
-
The default proportion of transactions that are scans. -

-

-
See Also:
Constant Field Values
-
-
- -

-READMODIFYWRITE_PROPORTION_PROPERTY

-
-public static final java.lang.String READMODIFYWRITE_PROPORTION_PROPERTY
-
-
The name of the property for the proportion of transactions that are read-modify-write. -

-

-
See Also:
Constant Field Values
-
-
- -

-READMODIFYWRITE_PROPORTION_PROPERTY_DEFAULT

-
-public static final java.lang.String READMODIFYWRITE_PROPORTION_PROPERTY_DEFAULT
-
-
The default proportion of transactions that are scans. -

-

-
See Also:
Constant Field Values
-
-
- -

-REQUEST_DISTRIBUTION_PROPERTY

-
-public static final java.lang.String REQUEST_DISTRIBUTION_PROPERTY
-
-
The name of the property for the the distribution of requests across the keyspace. Options are "uniform", "zipfian" and "latest" -

-

-
See Also:
Constant Field Values
-
-
- -

-REQUEST_DISTRIBUTION_PROPERTY_DEFAULT

-
-public static final java.lang.String REQUEST_DISTRIBUTION_PROPERTY_DEFAULT
-
-
The default distribution of requests across the keyspace -

-

-
See Also:
Constant Field Values
-
-
- -

-MAX_SCAN_LENGTH_PROPERTY

-
-public static final java.lang.String MAX_SCAN_LENGTH_PROPERTY
-
-
The name of the property for the max scan length (number of records) -

-

-
See Also:
Constant Field Values
-
-
- -

-MAX_SCAN_LENGTH_PROPERTY_DEFAULT

-
-public static final java.lang.String MAX_SCAN_LENGTH_PROPERTY_DEFAULT
-
-
The default max scan length. -

-

-
See Also:
Constant Field Values
-
-
- -

-SCAN_LENGTH_DISTRIBUTION_PROPERTY

-
-public static final java.lang.String SCAN_LENGTH_DISTRIBUTION_PROPERTY
-
-
The name of the property for the scan length distribution. Options are "uniform" and "zipfian" (favoring short scans) -

-

-
See Also:
Constant Field Values
-
-
- -

-SCAN_LENGTH_DISTRIBUTION_PROPERTY_DEFAULT

-
-public static final java.lang.String SCAN_LENGTH_DISTRIBUTION_PROPERTY_DEFAULT
-
-
The default max scan length. -

-

-
See Also:
Constant Field Values
-
-
- -

-INSERT_ORDER_PROPERTY

-
-public static final java.lang.String INSERT_ORDER_PROPERTY
-
-
The name of the property for the order to insert records. Options are "ordered" or "hashed" -

-

-
See Also:
Constant Field Values
-
-
- -

-INSERT_ORDER_PROPERTY_DEFAULT

-
-public static final java.lang.String INSERT_ORDER_PROPERTY_DEFAULT
-
-
Default insert order. -

-

-
See Also:
Constant Field Values
-
- - - - - - - - -
-Constructor Detail
- -

-CoreWorkload

-
-public CoreWorkload()
-
-
- - - - - - - - -
-Method Detail
- -

-init

-
-public void init(java.util.Properties p)
-          throws WorkloadException
-
-
Initialize the scenario. - Called once, in the main client thread, before any operations are started. -

-

-
Overrides:
init in class Workload
-
-
- -
Throws: -
WorkloadException
-
-
-
- -

-doInsert

-
-public boolean doInsert(DB db,
-                        java.lang.Object threadstate)
-
-
Do one insert operation. Because it will be called concurrently from multiple client threads, this - function must be thread safe. However, avoid synchronized, or the threads will block waiting for each - other, and it will be difficult to reach the target throughput. Ideally, this function would have no side - effects other than DB operations. -

-

-
Specified by:
doInsert in class Workload
-
-
-
-
-
-
- -

-doTransaction

-
-public boolean doTransaction(DB db,
-                             java.lang.Object threadstate)
-
-
Do one transaction operation. Because it will be called concurrently from multiple client threads, this - function must be thread safe. However, avoid synchronized, or the threads will block waiting for each - other, and it will be difficult to reach the target throughput. Ideally, this function would have no side - effects other than DB operations. -

-

-
Specified by:
doTransaction in class Workload
-
-
- -
Returns:
false if the workload knows it is done for this thread. Client will terminate the thread. Return true otherwise. Return true for workloads that rely on operationcount. For workloads that read traces from a file, return true when there are more to do, false when you are done.
-
-
-
- -

-doTransactionRead

-
-public void doTransactionRead(DB db)
-
-
-
-
-
-
- -

-doTransactionReadModifyWrite

-
-public void doTransactionReadModifyWrite(DB db)
-
-
-
-
-
-
- -

-doTransactionScan

-
-public void doTransactionScan(DB db)
-
-
-
-
-
-
- -

-doTransactionUpdate

-
-public void doTransactionUpdate(DB db)
-
-
-
-
-
-
- -

-doTransactionInsert

-
-public void doTransactionInsert(DB db)
-
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - -
- -
- - - -
- - - DELETED YCSB/doc/javadoc/com/yahoo/ycsb/workloads/package-frame.html Index: YCSB/doc/javadoc/com/yahoo/ycsb/workloads/package-frame.html ================================================================== --- YCSB/doc/javadoc/com/yahoo/ycsb/workloads/package-frame.html +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - -com.yahoo.ycsb.workloads - - - - - - - - - - - -com.yahoo.ycsb.workloads - - - - -
-Classes  - -
-CoreWorkload
- - - - DELETED YCSB/doc/javadoc/com/yahoo/ycsb/workloads/package-summary.html Index: YCSB/doc/javadoc/com/yahoo/ycsb/workloads/package-summary.html ================================================================== --- YCSB/doc/javadoc/com/yahoo/ycsb/workloads/package-summary.html +++ /dev/null @@ -1,155 +0,0 @@ - - - - - - -com.yahoo.ycsb.workloads - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
- -
- - - -
-

-Package com.yahoo.ycsb.workloads -

- - - - - - - - - -
-Class Summary
CoreWorkloadThe core benchmark scenario.
-  - -

-

-
-
- - - - - - - - - - - - - - - -
- -
- - - -
- - - DELETED YCSB/doc/javadoc/com/yahoo/ycsb/workloads/package-tree.html Index: YCSB/doc/javadoc/com/yahoo/ycsb/workloads/package-tree.html ================================================================== --- YCSB/doc/javadoc/com/yahoo/ycsb/workloads/package-tree.html +++ /dev/null @@ -1,153 +0,0 @@ - - - - - - -com.yahoo.ycsb.workloads Class Hierarchy - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
- -
- - - -
-
-

-Hierarchy For Package com.yahoo.ycsb.workloads -

-
-
-
Package Hierarchies:
All Packages
-
-

-Class Hierarchy -

- -
- - - - - - - - - - - - - - - -
- -
- - - -
- - - DELETED YCSB/doc/javadoc/constant-values.html Index: YCSB/doc/javadoc/constant-values.html ================================================================== --- YCSB/doc/javadoc/constant-values.html +++ /dev/null @@ -1,736 +0,0 @@ - - - - - - -Constant Field Values - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
- -
- - - -
-
-

-Constant Field Values

-
-
-Contents - - - - - - -
-com.yahoo.*
- -

- - - - - - - - - - - - - - - - - - - - - - - - - - - -
com.yahoo.ycsb.BasicDB
-public static final java.lang.StringSIMULATE_DELAY"basicdb.simulatedelay"
-public static final java.lang.StringSIMULATE_DELAY_DEFAULT"0"
-public static final java.lang.StringVERBOSE"basicdb.verbose"
-public static final java.lang.StringVERBOSE_DEFAULT"true"
- -

- -

- - - - - - - - - - - - - - - - - - - - - - - - - - - -
com.yahoo.ycsb.Client
-public static final java.lang.StringINSERT_COUNT_PROPERTY"insertcount"
-public static final java.lang.StringOPERATION_COUNT_PROPERTY"operationcount"
-public static final java.lang.StringRECORD_COUNT_PROPERTY"recordcount"
-public static final java.lang.StringWORKLOAD_PROPERTY"workload"
- -

- -

- - - - - - - - - - - - -
com.yahoo.ycsb.CommandLine
-public static final java.lang.StringDEFAULT_DB"com.yahoo.ycsb.BasicDB"
- -

- -

- - - - - - - - - - - - - - - - - - - - - - - - - - - -
com.yahoo.ycsb.Utils
-public static final intFNV_offset_basis_32-2128831035
-public static final longFNV_offset_basis_64-3750763034362895579L
-public static final intFNV_prime_3216777619
-public static final longFNV_prime_641099511628211L
- -

- -

- - - - - - - - - - - - - - - - - -
com.yahoo.ycsb.Workload
-public static final java.lang.StringINSERT_START_PROPERTY"insertstart"
-public static final java.lang.StringINSERT_START_PROPERTY_DEFAULT"0"
- -

- -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
com.yahoo.ycsb.db.CassandraClient5
-public static final java.lang.StringCONNECTION_RETRY_PROPERTY"cassandra.connectionretries"
-public static final java.lang.StringCONNECTION_RETRY_PROPERTY_DEFAULT"300"
-public static final intError-1
-public static final intOk0
-public static final java.lang.StringOPERATION_RETRY_PROPERTY"cassandra.operationretries"
-public static final java.lang.StringOPERATION_RETRY_PROPERTY_DEFAULT"300"
- -

- -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
com.yahoo.ycsb.db.CassandraClient6
-public static final java.lang.StringCONNECTION_RETRY_PROPERTY"cassandra.connectionretries"
-public static final java.lang.StringCONNECTION_RETRY_PROPERTY_DEFAULT"300"
-public static final intError-1
-public static final intOk0
-public static final java.lang.StringOPERATION_RETRY_PROPERTY"cassandra.operationretries"
-public static final java.lang.StringOPERATION_RETRY_PROPERTY_DEFAULT"300"
- -

- -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
com.yahoo.ycsb.db.CassandraClient7
-public static final java.lang.StringCONNECTION_RETRY_PROPERTY"cassandra.connectionretries"
-public static final java.lang.StringCONNECTION_RETRY_PROPERTY_DEFAULT"300"
-public static final intError-1
-public static final intOk0
-public static final java.lang.StringOPERATION_RETRY_PROPERTY"cassandra.operationretries"
-public static final java.lang.StringOPERATION_RETRY_PROPERTY_DEFAULT"300"
- -

- -

- - - - - - - - - - - - - - - - - - - - - - - - - - - -
com.yahoo.ycsb.db.HBaseClient
-public static final intHttpError-2
-public static final intNoMatchingRecord-3
-public static final intOk0
-public static final intServerError-1
- -

- -

- - - - - - - - - - - - - - - - - -
com.yahoo.ycsb.generator.ScrambledZipfianGenerator
-public static final longITEM_COUNT10000000000L
-public static final doubleZETAN52.93805640344461
- -

- -

- - - - - - - - - - - - -
com.yahoo.ycsb.generator.ZipfianGenerator
-public static final doubleZIPFIAN_CONSTANT0.99
- -

- -

- - - - - - - - - - - - - - - - - -
com.yahoo.ycsb.measurements.OneMeasurementHistogram
-public static final java.lang.StringBUCKETS"histogram.buckets"
-public static final java.lang.StringBUCKETS_DEFAULT"1000"
- -

- -

- - - - - - - - - - - - - - - - - -
com.yahoo.ycsb.measurements.OneMeasurementTimeSeries
-public static final java.lang.StringGRANULARITY"timeseries.granularity"
-public static final java.lang.StringGRANULARITY_DEFAULT"1000"
- -

- -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
com.yahoo.ycsb.workloads.CoreWorkload
-public static final java.lang.StringFIELD_COUNT_PROPERTY"fieldcount"
-public static final java.lang.StringFIELD_COUNT_PROPERTY_DEFAULT"10"
-public static final java.lang.StringFIELD_LENGTH_PROPERTY"fieldlength"
-public static final java.lang.StringFIELD_LENGTH_PROPERTY_DEFAULT"100"
-public static final java.lang.StringINSERT_ORDER_PROPERTY"insertorder"
-public static final java.lang.StringINSERT_ORDER_PROPERTY_DEFAULT"hashed"
-public static final java.lang.StringINSERT_PROPORTION_PROPERTY"insertproportion"
-public static final java.lang.StringINSERT_PROPORTION_PROPERTY_DEFAULT"0.0"
-public static final java.lang.StringMAX_SCAN_LENGTH_PROPERTY"maxscanlength"
-public static final java.lang.StringMAX_SCAN_LENGTH_PROPERTY_DEFAULT"1000"
-public static final java.lang.StringREAD_ALL_FIELDS_PROPERTY"readallfields"
-public static final java.lang.StringREAD_ALL_FIELDS_PROPERTY_DEFAULT"true"
-public static final java.lang.StringREAD_PROPORTION_PROPERTY"readproportion"
-public static final java.lang.StringREAD_PROPORTION_PROPERTY_DEFAULT"0.95"
-public static final java.lang.StringREADMODIFYWRITE_PROPORTION_PROPERTY"readmodifywriteproportion"
-public static final java.lang.StringREADMODIFYWRITE_PROPORTION_PROPERTY_DEFAULT"0.0"
-public static final java.lang.StringREQUEST_DISTRIBUTION_PROPERTY"requestdistribution"
-public static final java.lang.StringREQUEST_DISTRIBUTION_PROPERTY_DEFAULT"uniform"
-public static final java.lang.StringSCAN_LENGTH_DISTRIBUTION_PROPERTY"scanlengthdistribution"
-public static final java.lang.StringSCAN_LENGTH_DISTRIBUTION_PROPERTY_DEFAULT"uniform"
-public static final java.lang.StringSCAN_PROPORTION_PROPERTY"scanproportion"
-public static final java.lang.StringSCAN_PROPORTION_PROPERTY_DEFAULT"0.0"
-public static final java.lang.StringTABLENAME"usertable"
-public static final java.lang.StringUPDATE_PROPORTION_PROPERTY"updateproportion"
-public static final java.lang.StringUPDATE_PROPORTION_PROPERTY_DEFAULT"0.05"
- -

- -

-


- - - - - - - - - - - - - - - -
- -
- - - -
- - - DELETED YCSB/doc/javadoc/deprecated-list.html Index: YCSB/doc/javadoc/deprecated-list.html ================================================================== --- YCSB/doc/javadoc/deprecated-list.html +++ /dev/null @@ -1,144 +0,0 @@ - - - - - - -Deprecated List - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
- -
- - - -
-
-

-Deprecated API

-
-
-Contents
    -
- -
- - - - - - - - - - - - - - - -
- -
- - - -
- - - DELETED YCSB/doc/javadoc/help-doc.html Index: YCSB/doc/javadoc/help-doc.html ================================================================== --- YCSB/doc/javadoc/help-doc.html +++ /dev/null @@ -1,217 +0,0 @@ - - - - - - -API Help - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
- -
- - - -
-
-

-How This API Document Is Organized

-
-This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.

-Overview

-
- -

-The Overview page is the front page of this API document and provides a list of all packages with a summary for each. This page can also contain an overall description of the set of packages.

-

-Package

-
- -

-Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain four categories:

    -
  • Interfaces (italic)
  • Classes
  • Enums
  • Exceptions
  • Errors
  • Annotation Types
-
-

-Class/Interface

-
- -

-Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:

    -
  • Class inheritance diagram
  • Direct Subclasses
  • All Known Subinterfaces
  • All Known Implementing Classes
  • Class/interface declaration
  • Class/interface description -

    -

  • Nested Class Summary
  • Field Summary
  • Constructor Summary
  • Method Summary -

    -

  • Field Detail
  • Constructor Detail
  • Method Detail
-Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.
- -

-Annotation Type

-
- -

-Each annotation type has its own separate page with the following sections:

    -
  • Annotation Type declaration
  • Annotation Type description
  • Required Element Summary
  • Optional Element Summary
  • Element Detail
-
- -

-Enum

-
- -

-Each enum has its own separate page with the following sections:

    -
  • Enum declaration
  • Enum description
  • Enum Constant Summary
  • Enum Constant Detail
-
-

-Tree (Class Hierarchy)

-
-There is a Class Hierarchy page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with java.lang.Object. The interfaces do not inherit from java.lang.Object.
    -
  • When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.
  • When viewing a particular package, class or interface page, clicking "Tree" displays the hierarchy for only that package.
-
-

-Deprecated API

-
-The Deprecated API page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.
-

-Index

-
-The Index contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.
-

-Prev/Next

-These links take you to the next or previous class, interface, package, or related page.

-Frames/No Frames

-These links show and hide the HTML frames. All pages are available with or without frames. -

-

-Serialized Form

-Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description. -

-

-Constant Field Values

-The Constant Field Values page lists the static final fields and their values. -

- - -This help file applies to API documentation generated using the standard doclet. - -
-


- - - - - - - - - - - - - - - -
- -
- - - -
- - - DELETED YCSB/doc/javadoc/index-all.html Index: YCSB/doc/javadoc/index-all.html ================================================================== --- YCSB/doc/javadoc/index-all.html +++ /dev/null @@ -1,1013 +0,0 @@ - - - - - - -Index - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
- -
- - - -A B C D E F G H I L M N O P R S T U V W Z _
-

-A

-
-
addValue(double, String) - -Method in class com.yahoo.ycsb.generator.DiscreteGenerator -
  -
ASCIIString(int) - -Static method in class com.yahoo.ycsb.Utils -
Generate a random ASCII string of a given length. -
-
-

-B

-
-
BasicDB - Class in com.yahoo.ycsb
Basic DB that just prints out the requested operations, instead of doing them against a database.
BasicDB() - -Constructor for class com.yahoo.ycsb.BasicDB -
  -
BUCKETS - -Static variable in class com.yahoo.ycsb.measurements.OneMeasurementHistogram -
  -
BUCKETS_DEFAULT - -Static variable in class com.yahoo.ycsb.measurements.OneMeasurementHistogram -
  -
-
-

-C

-
-
CassandraClient5 - Class in com.yahoo.ycsb.db
Cassandra 0.5 client for YCSB framework
CassandraClient5() - -Constructor for class com.yahoo.ycsb.db.CassandraClient5 -
  -
CassandraClient6 - Class in com.yahoo.ycsb.db
Cassandra 0.6 client for YCSB framework
CassandraClient6() - -Constructor for class com.yahoo.ycsb.db.CassandraClient6 -
  -
CassandraClient7 - Class in com.yahoo.ycsb.db
Cassandra 0.7 client for YCSB framework
CassandraClient7() - -Constructor for class com.yahoo.ycsb.db.CassandraClient7 -
  -
checkRequiredProperties(Properties) - -Static method in class com.yahoo.ycsb.Client -
  -
cleanup() - -Method in class com.yahoo.ycsb.db.CassandraClient5 -
Cleanup any state for this DB. -
cleanup() - -Method in class com.yahoo.ycsb.db.CassandraClient6 -
Cleanup any state for this DB. -
cleanup() - -Method in class com.yahoo.ycsb.db.CassandraClient7 -
Cleanup any state for this DB. -
cleanup() - -Method in class com.yahoo.ycsb.DB -
Cleanup any state for this DB. -
cleanup() - -Method in class com.yahoo.ycsb.db.HBaseClient -
Cleanup any state for this DB. -
cleanup() - -Method in class com.yahoo.ycsb.DBWrapper -
Cleanup any state for this DB. -
cleanup() - -Method in class com.yahoo.ycsb.Workload -
Cleanup the scenario. -
Client - Class in com.yahoo.ycsb
Main class for executing YCSB.
Client() - -Constructor for class com.yahoo.ycsb.Client -
  -
com.yahoo.ycsb - package com.yahoo.ycsb
 
com.yahoo.ycsb.db - package com.yahoo.ycsb.db
 
com.yahoo.ycsb.generator - package com.yahoo.ycsb.generator
 
com.yahoo.ycsb.measurements - package com.yahoo.ycsb.measurements
 
com.yahoo.ycsb.workloads - package com.yahoo.ycsb.workloads
 
CommandLine - Class in com.yahoo.ycsb
A simple command line client to a database, using the appropriate com.yahoo.ycsb.DB implementation.
CommandLine() - -Constructor for class com.yahoo.ycsb.CommandLine -
  -
CONNECTION_RETRY_PROPERTY - -Static variable in class com.yahoo.ycsb.db.CassandraClient5 -
  -
CONNECTION_RETRY_PROPERTY - -Static variable in class com.yahoo.ycsb.db.CassandraClient6 -
  -
CONNECTION_RETRY_PROPERTY - -Static variable in class com.yahoo.ycsb.db.CassandraClient7 -
  -
CONNECTION_RETRY_PROPERTY_DEFAULT - -Static variable in class com.yahoo.ycsb.db.CassandraClient5 -
  -
CONNECTION_RETRY_PROPERTY_DEFAULT - -Static variable in class com.yahoo.ycsb.db.CassandraClient6 -
  -
CONNECTION_RETRY_PROPERTY_DEFAULT - -Static variable in class com.yahoo.ycsb.db.CassandraClient7 -
  -
ConnectionRetries - -Variable in class com.yahoo.ycsb.db.CassandraClient5 -
  -
ConnectionRetries - -Variable in class com.yahoo.ycsb.db.CassandraClient6 -
  -
ConnectionRetries - -Variable in class com.yahoo.ycsb.db.CassandraClient7 -
  -
CoreWorkload - Class in com.yahoo.ycsb.workloads
The core benchmark scenario.
CoreWorkload() - -Constructor for class com.yahoo.ycsb.workloads.CoreWorkload -
  -
CounterGenerator - Class in com.yahoo.ycsb.generator
Generates a sequence of integers 0, 1, ...
CounterGenerator(int) - -Constructor for class com.yahoo.ycsb.generator.CounterGenerator -
Create a counter that starts at countstart -
-
-

-D

-
-
DB - Class in com.yahoo.ycsb
A layer for accessing a database to be benchmarked.
DB() - -Constructor for class com.yahoo.ycsb.DB -
  -
DBException - Exception in com.yahoo.ycsb
Something bad happened while interacting with the database.
DBException(String) - -Constructor for exception com.yahoo.ycsb.DBException -
  -
DBException() - -Constructor for exception com.yahoo.ycsb.DBException -
  -
DBException(String, Throwable) - -Constructor for exception com.yahoo.ycsb.DBException -
  -
DBException(Throwable) - -Constructor for exception com.yahoo.ycsb.DBException -
  -
DBFactory - Class in com.yahoo.ycsb
Creates a DB layer by dynamically classloading the specified DB class.
DBFactory() - -Constructor for class com.yahoo.ycsb.DBFactory -
  -
DBWrapper - Class in com.yahoo.ycsb
Wrapper around a "real" DB that measures latencies and counts return codes.
DBWrapper(DB) - -Constructor for class com.yahoo.ycsb.DBWrapper -
  -
DEFAULT_DB - -Static variable in class com.yahoo.ycsb.CommandLine -
  -
delete(String, String) - -Method in class com.yahoo.ycsb.BasicDB -
Delete a record from the database. -
delete(String, String) - -Method in class com.yahoo.ycsb.db.CassandraClient5 -
Delete a record from the database. -
delete(String, String) - -Method in class com.yahoo.ycsb.db.CassandraClient6 -
Delete a record from the database. -
delete(String, String) - -Method in class com.yahoo.ycsb.db.CassandraClient7 -
Delete a record from the database. -
delete(String, String) - -Method in class com.yahoo.ycsb.DB -
Delete a record from the database. -
delete(String, String) - -Method in class com.yahoo.ycsb.db.HBaseClient -
Delete a record from the database. -
delete(String, String) - -Method in class com.yahoo.ycsb.db.MongoDbClient -
  -
delete(String, String) - -Method in class com.yahoo.ycsb.DBWrapper -
Delete a record from the database. -
DiscreteGenerator - Class in com.yahoo.ycsb.generator
Generates a distribution by choosing from a discrete set of values.
DiscreteGenerator() - -Constructor for class com.yahoo.ycsb.generator.DiscreteGenerator -
  -
doInsert(DB, Object) - -Method in class com.yahoo.ycsb.Workload -
Do one insert operation. -
doInsert(DB, Object) - -Method in class com.yahoo.ycsb.workloads.CoreWorkload -
Do one insert operation. -
doTransaction(DB, Object) - -Method in class com.yahoo.ycsb.Workload -
Do one transaction operation. -
doTransaction(DB, Object) - -Method in class com.yahoo.ycsb.workloads.CoreWorkload -
Do one transaction operation. -
doTransactionInsert(DB) - -Method in class com.yahoo.ycsb.workloads.CoreWorkload -
  -
doTransactionRead(DB) - -Method in class com.yahoo.ycsb.workloads.CoreWorkload -
  -
doTransactionReadModifyWrite(DB) - -Method in class com.yahoo.ycsb.workloads.CoreWorkload -
  -
doTransactionScan(DB) - -Method in class com.yahoo.ycsb.workloads.CoreWorkload -
  -
doTransactionUpdate(DB) - -Method in class com.yahoo.ycsb.workloads.CoreWorkload -
  -
-
-

-E

-
-
Error - -Static variable in class com.yahoo.ycsb.db.CassandraClient5 -
  -
Error - -Static variable in class com.yahoo.ycsb.db.CassandraClient6 -
  -
Error - -Static variable in class com.yahoo.ycsb.db.CassandraClient7 -
  -
-
-

-F

-
-
FIELD_COUNT_PROPERTY - -Static variable in class com.yahoo.ycsb.workloads.CoreWorkload -
The name of the property for the number of fields in a record. -
FIELD_COUNT_PROPERTY_DEFAULT - -Static variable in class com.yahoo.ycsb.workloads.CoreWorkload -
Default number of fields in a record. -
FIELD_LENGTH_PROPERTY - -Static variable in class com.yahoo.ycsb.workloads.CoreWorkload -
The name of the property for the length of a field in bytes. -
FIELD_LENGTH_PROPERTY_DEFAULT - -Static variable in class com.yahoo.ycsb.workloads.CoreWorkload -
The default length of a field in bytes. -
FNV_offset_basis_32 - -Static variable in class com.yahoo.ycsb.Utils -
  -
FNV_offset_basis_64 - -Static variable in class com.yahoo.ycsb.Utils -
  -
FNV_prime_32 - -Static variable in class com.yahoo.ycsb.Utils -
  -
FNV_prime_64 - -Static variable in class com.yahoo.ycsb.Utils -
  -
FNVhash32(int) - -Static method in class com.yahoo.ycsb.Utils -
32 bit FNV hash. -
FNVhash64(long) - -Static method in class com.yahoo.ycsb.Utils -
64 bit FNV hash. -
-
-

-G

-
-
Generator - Class in com.yahoo.ycsb.generator
An expression that generates a sequence of string values, following some distribution (Uniform, Zipfian, Sequential, etc.)
Generator() - -Constructor for class com.yahoo.ycsb.generator.Generator -
  -
getHTable(String) - -Method in class com.yahoo.ycsb.db.HBaseClient -
  -
getMeasurements() - -Static method in class com.yahoo.ycsb.measurements.Measurements -
Return the singleton Measurements object. -
getName() - -Method in class com.yahoo.ycsb.measurements.OneMeasurement -
  -
getProperties() - -Method in class com.yahoo.ycsb.DB -
Get the set of properties for this DB. -
getProperties() - -Method in class com.yahoo.ycsb.DBWrapper -
Get the set of properties for this DB. -
getSummary() - -Method in class com.yahoo.ycsb.measurements.Measurements -
Return a one line summary of the measurements. -
getSummary() - -Method in class com.yahoo.ycsb.measurements.OneMeasurement -
  -
getSummary() - -Method in class com.yahoo.ycsb.measurements.OneMeasurementHistogram -
  -
getSummary() - -Method in class com.yahoo.ycsb.measurements.OneMeasurementTimeSeries -
  -
GRANULARITY - -Static variable in class com.yahoo.ycsb.measurements.OneMeasurementTimeSeries -
Granularity for time series; measurements will be averaged in chunks of this granularity. -
GRANULARITY_DEFAULT - -Static variable in class com.yahoo.ycsb.measurements.OneMeasurementTimeSeries -
  -
-
-

-H

-
-
hash(int) - -Static method in class com.yahoo.ycsb.Utils -
Hash an integer value. -
HBaseClient - Class in com.yahoo.ycsb.db
HBase client for YCSB framework
HBaseClient() - -Constructor for class com.yahoo.ycsb.db.HBaseClient -
  -
help() - -Static method in class com.yahoo.ycsb.CommandLine -
  -
HttpError - -Static variable in class com.yahoo.ycsb.db.HBaseClient -
  -
-
-

-I

-
-
init() - -Method in class com.yahoo.ycsb.BasicDB -
Initialize any state for this DB. -
init() - -Method in class com.yahoo.ycsb.db.CassandraClient5 -
Initialize any state for this DB. -
init() - -Method in class com.yahoo.ycsb.db.CassandraClient6 -
Initialize any state for this DB. -
init() - -Method in class com.yahoo.ycsb.db.CassandraClient7 -
Initialize any state for this DB. -
init() - -Method in class com.yahoo.ycsb.db.HBaseClient -
Initialize any state for this DB. -
init() - -Method in class com.yahoo.ycsb.DB -
Initialize any state for this DB. -
init() - -Method in class com.yahoo.ycsb.db.MongoDbClient -
Initialize any state for this DB. -
init() - -Method in class com.yahoo.ycsb.DBWrapper -
Initialize any state for this DB. -
init(Properties) - -Method in class com.yahoo.ycsb.Workload -
Initialize the scenario. -
init(Properties) - -Method in class com.yahoo.ycsb.workloads.CoreWorkload -
Initialize the scenario. -
initThread(Properties, int, int) - -Method in class com.yahoo.ycsb.Workload -
Initialize any state for a particular client thread. -
insert(String, String, HashMap<String, String>) - -Method in class com.yahoo.ycsb.BasicDB -
Insert a record in the database. -
insert(String, String, HashMap<String, String>) - -Method in class com.yahoo.ycsb.db.CassandraClient5 -
Insert a record in the database. -
insert(String, String, HashMap<String, String>) - -Method in class com.yahoo.ycsb.db.CassandraClient6 -
Insert a record in the database. -
insert(String, String, HashMap<String, String>) - -Method in class com.yahoo.ycsb.db.CassandraClient7 -
Insert a record in the database. -
insert(String, String, HashMap<String, String>) - -Method in class com.yahoo.ycsb.db.HBaseClient -
Insert a record in the database. -
insert(String, String, HashMap<String, String>) - -Method in class com.yahoo.ycsb.DB -
Insert a record in the database. -
insert(String, String, HashMap<String, String>) - -Method in class com.yahoo.ycsb.db.MongoDbClient -
  -
insert(String, String, HashMap<String, String>) - -Method in class com.yahoo.ycsb.DBWrapper -
Insert a record in the database. -
INSERT_COUNT_PROPERTY - -Static variable in class com.yahoo.ycsb.Client -
Indicates how many inserts to do, if less than recordcount. -
INSERT_ORDER_PROPERTY - -Static variable in class com.yahoo.ycsb.workloads.CoreWorkload -
The name of the property for the order to insert records. -
INSERT_ORDER_PROPERTY_DEFAULT - -Static variable in class com.yahoo.ycsb.workloads.CoreWorkload -
Default insert order. -
INSERT_PROPORTION_PROPERTY - -Static variable in class com.yahoo.ycsb.workloads.CoreWorkload -
The name of the property for the proportion of transactions that are inserts. -
INSERT_PROPORTION_PROPERTY_DEFAULT - -Static variable in class com.yahoo.ycsb.workloads.CoreWorkload -
The default proportion of transactions that are inserts. -
INSERT_START_PROPERTY - -Static variable in class com.yahoo.ycsb.Workload -
  -
INSERT_START_PROPERTY_DEFAULT - -Static variable in class com.yahoo.ycsb.Workload -
  -
IntegerGenerator - Class in com.yahoo.ycsb.generator
A generator that is capable of generating ints as well as strings
IntegerGenerator() - -Constructor for class com.yahoo.ycsb.generator.IntegerGenerator -
  -
ITEM_COUNT - -Static variable in class com.yahoo.ycsb.generator.ScrambledZipfianGenerator -
  -
-
-

-L

-
-
lastInt() - -Method in class com.yahoo.ycsb.generator.IntegerGenerator -
Return the previous int generated by the distribution. -
lastString() - -Method in class com.yahoo.ycsb.generator.DiscreteGenerator -
Return the previous string generated by the distribution; e.g., returned from the last nextString() call. -
lastString() - -Method in class com.yahoo.ycsb.generator.Generator -
Return the previous string generated by the distribution; e.g., returned from the last nextString() call. -
lastString() - -Method in class com.yahoo.ycsb.generator.IntegerGenerator -
Return the previous string generated by the distribution; e.g., returned from the last nextString() call. -
lastString() - -Method in class com.yahoo.ycsb.generator.UniformGenerator -
Return the previous string generated by the distribution; e.g., returned from the last nextString() call. -
-
-

-M

-
-
main(String[]) - -Static method in class com.yahoo.ycsb.Client -
  -
main(String[]) - -Static method in class com.yahoo.ycsb.CommandLine -
  -
main(String[]) - -Static method in class com.yahoo.ycsb.db.CassandraClient5 -
  -
main(String[]) - -Static method in class com.yahoo.ycsb.db.CassandraClient6 -
  -
main(String[]) - -Static method in class com.yahoo.ycsb.db.CassandraClient7 -
  -
main(String[]) - -Static method in class com.yahoo.ycsb.db.HBaseClient -
  -
main(String[]) - -Static method in class com.yahoo.ycsb.generator.ScrambledZipfianGenerator -
  -
main(String[]) - -Static method in class com.yahoo.ycsb.generator.SkewedLatestGenerator -
  -
main(String[]) - -Static method in class com.yahoo.ycsb.generator.ZipfianGenerator -
  -
MAX_SCAN_LENGTH_PROPERTY - -Static variable in class com.yahoo.ycsb.workloads.CoreWorkload -
The name of the property for the max scan length (number of records) -
MAX_SCAN_LENGTH_PROPERTY_DEFAULT - -Static variable in class com.yahoo.ycsb.workloads.CoreWorkload -
The default max scan length. -
measure(String, int) - -Method in class com.yahoo.ycsb.measurements.Measurements -
Report a single value of a single metric. -
measure(int) - -Method in class com.yahoo.ycsb.measurements.OneMeasurement -
  -
measure(int) - -Method in class com.yahoo.ycsb.measurements.OneMeasurementHistogram -
  -
measure(int) - -Method in class com.yahoo.ycsb.measurements.OneMeasurementTimeSeries -
  -
Measurements - Class in com.yahoo.ycsb.measurements
Collects latency measurements, and reports them when requested.
Measurements(Properties) - -Constructor for class com.yahoo.ycsb.measurements.Measurements -
Create a new object with the specified properties. -
MongoDbClient - Class in com.yahoo.ycsb.db
MongoDB client for YCSB framework.
MongoDbClient() - -Constructor for class com.yahoo.ycsb.db.MongoDbClient -
  -
-
-

-N

-
-
newDB(String, Properties) - -Static method in class com.yahoo.ycsb.DBFactory -
  -
nextInt() - -Method in class com.yahoo.ycsb.generator.CounterGenerator -
If the generator returns numeric (integer) values, return the next value as an int. -
nextInt() - -Method in class com.yahoo.ycsb.generator.DiscreteGenerator -
If the generator returns numeric (integer) values, return the next value as an int. -
nextInt() - -Method in class com.yahoo.ycsb.generator.IntegerGenerator -
Return the next value as an int. -
nextInt() - -Method in class com.yahoo.ycsb.generator.ScrambledZipfianGenerator -
Return the next int in the sequence. -
nextInt() - -Method in class com.yahoo.ycsb.generator.SkewedLatestGenerator -
Generate the next string in the distribution, skewed Zipfian favoring the items most recently returned by the basis generator. -
nextInt() - -Method in class com.yahoo.ycsb.generator.UniformIntegerGenerator -
  -
nextInt(int) - -Method in class com.yahoo.ycsb.generator.ZipfianGenerator -
Generate the next item. -
nextInt() - -Method in class com.yahoo.ycsb.generator.ZipfianGenerator -
Return the next value, skewed by the Zipfian distribution. -
nextLong() - -Method in class com.yahoo.ycsb.generator.ScrambledZipfianGenerator -
Return the next long in the sequence. -
nextLong(long) - -Method in class com.yahoo.ycsb.generator.ZipfianGenerator -
Generate the next item as a long. -
nextLong() - -Method in class com.yahoo.ycsb.generator.ZipfianGenerator -
Return the next value, skewed by the Zipfian distribution. -
nextString() - -Method in class com.yahoo.ycsb.generator.DiscreteGenerator -
Generate the next string in the distribution. -
nextString() - -Method in class com.yahoo.ycsb.generator.Generator -
Generate the next string in the distribution. -
nextString() - -Method in class com.yahoo.ycsb.generator.IntegerGenerator -
Generate the next string in the distribution. -
nextString() - -Method in class com.yahoo.ycsb.generator.UniformGenerator -
Generate the next string in the distribution. -
NoMatchingRecord - -Static variable in class com.yahoo.ycsb.db.HBaseClient -
  -
-
-

-O

-
-
Ok - -Static variable in class com.yahoo.ycsb.db.CassandraClient5 -
  -
Ok - -Static variable in class com.yahoo.ycsb.db.CassandraClient6 -
  -
Ok - -Static variable in class com.yahoo.ycsb.db.CassandraClient7 -
  -
Ok - -Static variable in class com.yahoo.ycsb.db.HBaseClient -
  -
OneMeasurement - Class in com.yahoo.ycsb.measurements
A single measured metric (such as READ LATENCY)
OneMeasurement(String) - -Constructor for class com.yahoo.ycsb.measurements.OneMeasurement -
  -
OneMeasurementHistogram - Class in com.yahoo.ycsb.measurements
Take measurements and maintain a histogram of a given metric, such as READ LATENCY.
OneMeasurementHistogram(String, Properties) - -Constructor for class com.yahoo.ycsb.measurements.OneMeasurementHistogram -
  -
OneMeasurementTimeSeries - Class in com.yahoo.ycsb.measurements
A time series measurement of a metric, such as READ LATENCY.
OneMeasurementTimeSeries(String, Properties) - -Constructor for class com.yahoo.ycsb.measurements.OneMeasurementTimeSeries -
  -
OPERATION_COUNT_PROPERTY - -Static variable in class com.yahoo.ycsb.Client -
  -
OPERATION_RETRY_PROPERTY - -Static variable in class com.yahoo.ycsb.db.CassandraClient5 -
  -
OPERATION_RETRY_PROPERTY - -Static variable in class com.yahoo.ycsb.db.CassandraClient6 -
  -
OPERATION_RETRY_PROPERTY - -Static variable in class com.yahoo.ycsb.db.CassandraClient7 -
  -
OPERATION_RETRY_PROPERTY_DEFAULT - -Static variable in class com.yahoo.ycsb.db.CassandraClient5 -
  -
OPERATION_RETRY_PROPERTY_DEFAULT - -Static variable in class com.yahoo.ycsb.db.CassandraClient6 -
  -
OPERATION_RETRY_PROPERTY_DEFAULT - -Static variable in class com.yahoo.ycsb.db.CassandraClient7 -
  -
OperationRetries - -Variable in class com.yahoo.ycsb.db.CassandraClient5 -
  -
OperationRetries - -Variable in class com.yahoo.ycsb.db.CassandraClient6 -
  -
OperationRetries - -Variable in class com.yahoo.ycsb.db.CassandraClient7 -
  -
-
-

-P

-
-
printReport(PrintStream) - -Method in class com.yahoo.ycsb.measurements.Measurements -
Print the full report to the listed PrintStream. -
printReport(PrintStream) - -Method in class com.yahoo.ycsb.measurements.OneMeasurement -
  -
printReport(PrintStream) - -Method in class com.yahoo.ycsb.measurements.OneMeasurementHistogram -
  -
printReport(PrintStream) - -Method in class com.yahoo.ycsb.measurements.OneMeasurementTimeSeries -
  -
-
-

-R

-
-
read(String, String, Set<String>, HashMap<String, String>) - -Method in class com.yahoo.ycsb.BasicDB -
Read a record from the database. -
read(String, String, Set<String>, HashMap<String, String>) - -Method in class com.yahoo.ycsb.db.CassandraClient5 -
Read a record from the database. -
read(String, String, Set<String>, HashMap<String, String>) - -Method in class com.yahoo.ycsb.db.CassandraClient6 -
Read a record from the database. -
read(String, String, Set<String>, HashMap<String, String>) - -Method in class com.yahoo.ycsb.db.CassandraClient7 -
Read a record from the database. -
read(String, String, Set<String>, HashMap<String, String>) - -Method in class com.yahoo.ycsb.db.HBaseClient -
Read a record from the database. -
read(String, String, Set<String>, HashMap<String, String>) - -Method in class com.yahoo.ycsb.db.MongoDbClient -
  -
read(String, String, Set<String>, HashMap<String, String>) - -Method in class com.yahoo.ycsb.DB -
Read a record from the database. -
read(String, String, Set<String>, HashMap<String, String>) - -Method in class com.yahoo.ycsb.DBWrapper -
Read a record from the database. -
READ_ALL_FIELDS_PROPERTY - -Static variable in class com.yahoo.ycsb.workloads.CoreWorkload -
The name of the property for deciding whether to read one field (false) or all fields (true) of a record. -
READ_ALL_FIELDS_PROPERTY_DEFAULT - -Static variable in class com.yahoo.ycsb.workloads.CoreWorkload -
The default value for the readallfields property. -
READ_PROPORTION_PROPERTY - -Static variable in class com.yahoo.ycsb.workloads.CoreWorkload -
The name of the property for the proportion of transactions that are reads. -
READ_PROPORTION_PROPERTY_DEFAULT - -Static variable in class com.yahoo.ycsb.workloads.CoreWorkload -
The default proportion of transactions that are reads. -
READMODIFYWRITE_PROPORTION_PROPERTY - -Static variable in class com.yahoo.ycsb.workloads.CoreWorkload -
The name of the property for the proportion of transactions that are read-modify-write. -
READMODIFYWRITE_PROPORTION_PROPERTY_DEFAULT - -Static variable in class com.yahoo.ycsb.workloads.CoreWorkload -
The default proportion of transactions that are scans. -
RECORD_COUNT_PROPERTY - -Static variable in class com.yahoo.ycsb.Client -
  -
reportReturnCode(String, int) - -Method in class com.yahoo.ycsb.measurements.Measurements -
Report a return code for a single DB operaiton. -
reportReturnCode(int) - -Method in class com.yahoo.ycsb.measurements.OneMeasurement -
  -
reportReturnCode(int) - -Method in class com.yahoo.ycsb.measurements.OneMeasurementHistogram -
  -
reportReturnCode(int) - -Method in class com.yahoo.ycsb.measurements.OneMeasurementTimeSeries -
  -
REQUEST_DISTRIBUTION_PROPERTY - -Static variable in class com.yahoo.ycsb.workloads.CoreWorkload -
The name of the property for the the distribution of requests across the keyspace. -
REQUEST_DISTRIBUTION_PROPERTY_DEFAULT - -Static variable in class com.yahoo.ycsb.workloads.CoreWorkload -
The default distribution of requests across the keyspace -
-
-

-S

-
-
scan(String, String, int, Set<String>, Vector<HashMap<String, String>>) - -Method in class com.yahoo.ycsb.BasicDB -
Perform a range scan for a set of records in the database. -
scan(String, String, int, Set<String>, Vector<HashMap<String, String>>) - -Method in class com.yahoo.ycsb.db.CassandraClient5 -
Perform a range scan for a set of records in the database. -
scan(String, String, int, Set<String>, Vector<HashMap<String, String>>) - -Method in class com.yahoo.ycsb.db.CassandraClient6 -
Perform a range scan for a set of records in the database. -
scan(String, String, int, Set<String>, Vector<HashMap<String, String>>) - -Method in class com.yahoo.ycsb.db.CassandraClient7 -
Perform a range scan for a set of records in the database. -
scan(String, String, int, Set<String>, Vector<HashMap<String, String>>) - -Method in class com.yahoo.ycsb.db.HBaseClient -
Perform a range scan for a set of records in the database. -
scan(String, String, int, Set<String>, Vector<HashMap<String, String>>) - -Method in class com.yahoo.ycsb.db.MongoDbClient -
  -
scan(String, String, int, Set<String>, Vector<HashMap<String, String>>) - -Method in class com.yahoo.ycsb.DB -
Perform a range scan for a set of records in the database. -
scan(String, String, int, Set<String>, Vector<HashMap<String, String>>) - -Method in class com.yahoo.ycsb.DBWrapper -
Perform a range scan for a set of records in the database. -
SCAN_LENGTH_DISTRIBUTION_PROPERTY - -Static variable in class com.yahoo.ycsb.workloads.CoreWorkload -
The name of the property for the scan length distribution. -
SCAN_LENGTH_DISTRIBUTION_PROPERTY_DEFAULT - -Static variable in class com.yahoo.ycsb.workloads.CoreWorkload -
The default max scan length. -
SCAN_PROPORTION_PROPERTY - -Static variable in class com.yahoo.ycsb.workloads.CoreWorkload -
The name of the property for the proportion of transactions that are scans. -
SCAN_PROPORTION_PROPERTY_DEFAULT - -Static variable in class com.yahoo.ycsb.workloads.CoreWorkload -
The default proportion of transactions that are scans. -
ScrambledZipfianGenerator - Class in com.yahoo.ycsb.generator
A generator of a zipfian distribution.
ScrambledZipfianGenerator(long) - -Constructor for class com.yahoo.ycsb.generator.ScrambledZipfianGenerator -
Create a zipfian generator for the specified number of items. -
ScrambledZipfianGenerator(long, long) - -Constructor for class com.yahoo.ycsb.generator.ScrambledZipfianGenerator -
Create a zipfian generator for items between min and max. -
ServerError - -Static variable in class com.yahoo.ycsb.db.HBaseClient -
  -
setLastInt(int) - -Method in class com.yahoo.ycsb.generator.IntegerGenerator -
Set the last value generated. -
setProperties(Properties) - -Method in class com.yahoo.ycsb.DB -
Set the properties for this DB. -
setProperties(Properties) - -Method in class com.yahoo.ycsb.DBWrapper -
Set the properties for this DB. -
setProperties(Properties) - -Static method in class com.yahoo.ycsb.measurements.Measurements -
  -
SIMULATE_DELAY - -Static variable in class com.yahoo.ycsb.BasicDB -
  -
SIMULATE_DELAY_DEFAULT - -Static variable in class com.yahoo.ycsb.BasicDB -
  -
SkewedLatestGenerator - Class in com.yahoo.ycsb.generator
Generate a popularity distribution of items, skewed to favor recent items significantly more than older items.
SkewedLatestGenerator(CounterGenerator) - -Constructor for class com.yahoo.ycsb.generator.SkewedLatestGenerator -
  -
-
-

-T

-
-
tableLock - -Static variable in class com.yahoo.ycsb.db.HBaseClient -
  -
TABLENAME - -Static variable in class com.yahoo.ycsb.workloads.CoreWorkload -
The name of the database table to run queries against. -
-
-

-U

-
-
UniformGenerator - Class in com.yahoo.ycsb.generator
An expression that generates a random integer in the specified range
UniformGenerator(Vector<String>) - -Constructor for class com.yahoo.ycsb.generator.UniformGenerator -
Creates a generator that will return strings from the specified set uniformly randomly -
UniformIntegerGenerator - Class in com.yahoo.ycsb.generator
Generates integers randomly uniform from an interval.
UniformIntegerGenerator(int, int) - -Constructor for class com.yahoo.ycsb.generator.UniformIntegerGenerator -
Creates a generator that will return integers uniformly randomly from the interval [lb,ub] inclusive (that is, lb and ub are possible values) -
UnknownDBException - Exception in com.yahoo.ycsb
Could not create the specified DB.
UnknownDBException(String) - -Constructor for exception com.yahoo.ycsb.UnknownDBException -
  -
UnknownDBException() - -Constructor for exception com.yahoo.ycsb.UnknownDBException -
  -
UnknownDBException(String, Throwable) - -Constructor for exception com.yahoo.ycsb.UnknownDBException -
  -
UnknownDBException(Throwable) - -Constructor for exception com.yahoo.ycsb.UnknownDBException -
  -
update(String, String, HashMap<String, String>) - -Method in class com.yahoo.ycsb.BasicDB -
Update a record in the database. -
update(String, String, HashMap<String, String>) - -Method in class com.yahoo.ycsb.db.CassandraClient5 -
Update a record in the database. -
update(String, String, HashMap<String, String>) - -Method in class com.yahoo.ycsb.db.CassandraClient6 -
Update a record in the database. -
update(String, String, HashMap<String, String>) - -Method in class com.yahoo.ycsb.db.CassandraClient7 -
Update a record in the database. -
update(String, String, HashMap<String, String>) - -Method in class com.yahoo.ycsb.db.HBaseClient -
Update a record in the database. -
update(String, String, HashMap<String, String>) - -Method in class com.yahoo.ycsb.db.MongoDbClient -
  -
update(String, String, HashMap<String, String>) - -Method in class com.yahoo.ycsb.DB -
Update a record in the database. -
update(String, String, HashMap<String, String>) - -Method in class com.yahoo.ycsb.DBWrapper -
Update a record in the database. -
UPDATE_PROPORTION_PROPERTY - -Static variable in class com.yahoo.ycsb.workloads.CoreWorkload -
The name of the property for the proportion of transactions that are updates. -
UPDATE_PROPORTION_PROPERTY_DEFAULT - -Static variable in class com.yahoo.ycsb.workloads.CoreWorkload -
The default proportion of transactions that are updates. -
usageMessage() - -Static method in class com.yahoo.ycsb.Client -
  -
usageMessage() - -Static method in class com.yahoo.ycsb.CommandLine -
  -
Utils - Class in com.yahoo.ycsb
Utility functions.
Utils() - -Constructor for class com.yahoo.ycsb.Utils -
  -
-
-

-V

-
-
VERBOSE - -Static variable in class com.yahoo.ycsb.BasicDB -
  -
VERBOSE_DEFAULT - -Static variable in class com.yahoo.ycsb.BasicDB -
  -
-
-

-W

-
-
Workload - Class in com.yahoo.ycsb
One experiment scenario.
Workload() - -Constructor for class com.yahoo.ycsb.Workload -
  -
WORKLOAD_PROPERTY - -Static variable in class com.yahoo.ycsb.Client -
  -
WorkloadException - Exception in com.yahoo.ycsb
The workload tried to do something bad.
WorkloadException(String) - -Constructor for exception com.yahoo.ycsb.WorkloadException -
  -
WorkloadException() - -Constructor for exception com.yahoo.ycsb.WorkloadException -
  -
WorkloadException(String, Throwable) - -Constructor for exception com.yahoo.ycsb.WorkloadException -
  -
WorkloadException(Throwable) - -Constructor for exception com.yahoo.ycsb.WorkloadException -
  -
-
-

-Z

-
-
ZETAN - -Static variable in class com.yahoo.ycsb.generator.ScrambledZipfianGenerator -
  -
ZIPFIAN_CONSTANT - -Static variable in class com.yahoo.ycsb.generator.ZipfianGenerator -
  -
ZipfianGenerator - Class in com.yahoo.ycsb.generator
A generator of a zipfian distribution.
ZipfianGenerator(long) - -Constructor for class com.yahoo.ycsb.generator.ZipfianGenerator -
Create a zipfian generator for the specified number of items. -
ZipfianGenerator(long, long) - -Constructor for class com.yahoo.ycsb.generator.ZipfianGenerator -
Create a zipfian generator for items between min and max. -
ZipfianGenerator(long, double) - -Constructor for class com.yahoo.ycsb.generator.ZipfianGenerator -
Create a zipfian generator for the specified number of items using the specified zipfian constant. -
ZipfianGenerator(long, long, double) - -Constructor for class com.yahoo.ycsb.generator.ZipfianGenerator -
Create a zipfian generator for items between min and max (inclusive) for the specified zipfian constant. -
ZipfianGenerator(long, long, double, double) - -Constructor for class com.yahoo.ycsb.generator.ZipfianGenerator -
Create a zipfian generator for items between min and max (inclusive) for the specified zipfian constant, using the precomputed value of zeta. -
-
-

-_

-
-
_columnFamily - -Variable in class com.yahoo.ycsb.db.HBaseClient -
  -
_columnFamilyBytes - -Variable in class com.yahoo.ycsb.db.HBaseClient -
  -
_debug - -Variable in class com.yahoo.ycsb.db.HBaseClient -
  -
_hTable - -Variable in class com.yahoo.ycsb.db.HBaseClient -
  -
_table - -Variable in class com.yahoo.ycsb.db.HBaseClient -
  -
-
-A B C D E F G H I L M N O P R S T U V W Z _ - - - - - - - - - - - - - - -
- -
- - - -
- - - DELETED YCSB/doc/javadoc/index.html Index: YCSB/doc/javadoc/index.html ================================================================== --- YCSB/doc/javadoc/index.html +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - -Generated Documentation (Untitled) - - - - - - - - - - - -<H2> -Frame Alert</H2> - -<P> -This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client. -<BR> -Link to<A HREF="overview-summary.html">Non-frame version.</A> - - - DELETED YCSB/doc/javadoc/overview-frame.html Index: YCSB/doc/javadoc/overview-frame.html ================================================================== --- YCSB/doc/javadoc/overview-frame.html +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - -Overview List - - - - - - - - - - - - - - - -
-
- - - - - -
All Classes -

- -Packages -
-com.yahoo.ycsb -
-com.yahoo.ycsb.db -
-com.yahoo.ycsb.generator -
-com.yahoo.ycsb.measurements -
-com.yahoo.ycsb.workloads -
-

- -

-  - - DELETED YCSB/doc/javadoc/overview-summary.html Index: YCSB/doc/javadoc/overview-summary.html ================================================================== --- YCSB/doc/javadoc/overview-summary.html +++ /dev/null @@ -1,165 +0,0 @@ - - - - - - -Overview - - - - - - - - - - - - -


- - - - - - - - - - - - - - - -
- -
- - - -
- - - - - - - - - - - - - - - - - - - - - - - - - -
-Packages
com.yahoo.ycsb 
com.yahoo.ycsb.db 
com.yahoo.ycsb.generator 
com.yahoo.ycsb.measurements 
com.yahoo.ycsb.workloads 
- -


- - - - - - - - - - - - - - - -
- -
- - - -
- - - DELETED YCSB/doc/javadoc/overview-tree.html Index: YCSB/doc/javadoc/overview-tree.html ================================================================== --- YCSB/doc/javadoc/overview-tree.html +++ /dev/null @@ -1,165 +0,0 @@ - - - - - - -Class Hierarchy - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
- -
- - - -
-
-

-Hierarchy For All Packages

-
-
-
Package Hierarchies:
com.yahoo.ycsb, com.yahoo.ycsb.db, com.yahoo.ycsb.generator, com.yahoo.ycsb.measurements, com.yahoo.ycsb.workloads
-
-

-Class Hierarchy -

- -
- - - - - - - - - - - - - - - -
- -
- - - -
- - - DELETED YCSB/doc/javadoc/package-list Index: YCSB/doc/javadoc/package-list ================================================================== --- YCSB/doc/javadoc/package-list +++ /dev/null @@ -1,5 +0,0 @@ -com.yahoo.ycsb -com.yahoo.ycsb.db -com.yahoo.ycsb.generator -com.yahoo.ycsb.measurements -com.yahoo.ycsb.workloads DELETED YCSB/doc/javadoc/resources/inherit.gif Index: YCSB/doc/javadoc/resources/inherit.gif ================================================================== --- YCSB/doc/javadoc/resources/inherit.gif +++ /dev/null cannot compute difference between binary files DELETED YCSB/doc/javadoc/serialized-form.html Index: YCSB/doc/javadoc/serialized-form.html ================================================================== --- YCSB/doc/javadoc/serialized-form.html +++ /dev/null @@ -1,192 +0,0 @@ - - - - - - -Serialized Form - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
- -
- - - -
-
-

-Serialized Form

-
-
- - - - - -
-Package com.yahoo.ycsb
- -

- - - - - -
-Class com.yahoo.ycsb.DBException extends java.lang.Exception implements Serializable
- -

-serialVersionUID: 6646883591588721475L - -

- -

- - - - - -
-Class com.yahoo.ycsb.UnknownDBException extends java.lang.Exception implements Serializable
- -

-serialVersionUID: 459099842269616836L - -

- -

- - - - - -
-Class com.yahoo.ycsb.WorkloadException extends java.lang.Exception implements Serializable
- -

-serialVersionUID: 8844396756042772132L - -

- -

-


- - - - - - - - - - - - - - - -
- -
- - - -
- - - DELETED YCSB/doc/javadoc/stylesheet.css Index: YCSB/doc/javadoc/stylesheet.css ================================================================== --- YCSB/doc/javadoc/stylesheet.css +++ /dev/null @@ -1,29 +0,0 @@ -/* Javadoc style sheet */ - -/* Define colors, fonts and other style attributes here to override the defaults */ - -/* Page background color */ -body { background-color: #FFFFFF; color:#000000 } - -/* Headings */ -h1 { font-size: 145% } - -/* Table colors */ -.TableHeadingColor { background: #CCCCFF; color:#000000 } /* Dark mauve */ -.TableSubHeadingColor { background: #EEEEFF; color:#000000 } /* Light mauve */ -.TableRowColor { background: #FFFFFF; color:#000000 } /* White */ - -/* Font used in left-hand frame lists */ -.FrameTitleFont { font-size: 100%; font-family: Helvetica, Arial, sans-serif; color:#000000 } -.FrameHeadingFont { font-size: 90%; font-family: Helvetica, Arial, sans-serif; color:#000000 } -.FrameItemFont { font-size: 90%; font-family: Helvetica, Arial, sans-serif; color:#000000 } - -/* Navigation bar fonts and colors */ -.NavBarCell1 { background-color:#EEEEFF; color:#000000} /* Light mauve */ -.NavBarCell1Rev { background-color:#00008B; color:#FFFFFF} /* Dark Blue */ -.NavBarFont1 { font-family: Arial, Helvetica, sans-serif; color:#000000;color:#000000;} -.NavBarFont1Rev { font-family: Arial, Helvetica, sans-serif; color:#FFFFFF;color:#FFFFFF;} - -.NavBarCell2 { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF; color:#000000} -.NavBarCell3 { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF; color:#000000} - DELETED YCSB/doc/parallelclients.html Index: YCSB/doc/parallelclients.html ================================================================== --- YCSB/doc/parallelclients.html +++ /dev/null @@ -1,46 +0,0 @@ - - -YCSB - Parallel clients - - -

Yahoo! Cloud Serving Benchmark

-

Version 0.1.2

-
-Home - Core workloads - Tips and FAQ -
-

Running multiple clients in parallel

-It is straightforward to run the transaction phase of the workload from multiple servers - just start up clients on different servers, each running the same workload. Each client will -produce performance statistics when it is done, and you'll have to aggregate these individual files into a single set of results. -

-In some cases it makes sense to load the database using multiple servers. In this case, you will want to partition the records to be loaded among the clients. Normally, YCSB just loads -all of the records (as defined by the recordcount property). However, if you want to partition the load you need to additionally specify two other properties for each client: -

    -
  • insertstart: The index of the record to start at. -
  • insertcount: The number of records to insert. -
-These properties can be specified in a property file or on the command line using the -p option. -

-For example, imagine you want to load 100 million records (so recordcount=100000000). Imagine you want to load with four clients. For the first client: -

-insertstart=0
-insertcount=25000000
-
-For the second client: -
-insertstart=25000000
-insertcount=25000000
-
-For the third client: -
-insertstart=50000000
-insertcount=25000000
-
-And for the fourth client: -
-insertstart=75000000
-insertcount=25000000
-
-
-YCSB - Yahoo! Research - Contact cooperb@yahoo-inc.com. - - DELETED YCSB/doc/tipsfaq.html Index: YCSB/doc/tipsfaq.html ================================================================== --- YCSB/doc/tipsfaq.html +++ /dev/null @@ -1,31 +0,0 @@ - - -YCSB - Tips and FAQ - - -

Yahoo! Cloud Serving Benchmark

-

Version 0.1.2

-
-Home - Core workloads - Tips and FAQ -
-

Tips

-Tip 1 - Carefully adjust the number of threads -

-The number of threads determines how much workload you can generate against the database. Imagine that you are trying to run a test with 10,000 operations per second, -but you are only achieving 8,000 operations per second. Is this because the database can't keep up with the load? Not necessarily. Imagine that you are running with 100 -client threads (e.g. "-threads 100") and each operation is taking 12 milliseconds on average. Each thread will only be able to generate 83 operations per second, because each -thread operates sequentially. Over 100 threads, your client will only generate 8300 operations per second, even if the database can support more. Increasing the number of threads -ensures there are enough parallel clients hitting the database so that the database, not the client, is the bottleneck. -

-To calculate the number of threads needed, you should have some idea of the expected latency. For example, at 10,000 operations per second, we might expect the database -to have a latency of 10-30 milliseconds on average. So you to generate 10,000 operations per second, you will need (Ops per sec / (1000 / avg latency in ms) ), or (10000/(1000/30))=300 threads. -In fact, to be conservative, you might consider having 400 threads. Although this is a lot of threads, each thread will spend most of its time waiting for the database to respond, -so the context switching overhead will be low. -

-Experiment with increasing the number of threads, especially if you find you are not reaching your target throughput. Eventually, of course, you will saturate the database -and there will be no way to increase the number of threads to get more throughput (in fact, increasing the number of client threads may make things worse) but you need to have -enough threads to ensure it is the database, not the client, that is the bottleneck. -


-YCSB - Yahoo! Research - Contact cooperb@yahoo-inc.com. - - DELETED YCSB/doc/workload.html Index: YCSB/doc/workload.html ================================================================== --- YCSB/doc/workload.html +++ /dev/null @@ -1,129 +0,0 @@ - - -YCSB - Implementing new workloads - - -

Yahoo! Cloud Serving Benchmark

-

Version 0.1.2

-
-Home - Core workloads - Tips and FAQ -
-

Implementing new workloads - overview

-A workload represents the load that a given application will put on the database system. For benchmarking purposes, we must define -workloads that are relatively simple compared to real applications, so that we can better reason about the benchmarking results -we get. However, a workload should be detailed enough so that once we measure the database's performance, we know what kinds of applications -might experience similar performance. -

-In the context of YCSB, a workload defines both a data set, which is a set of records to be loaded into the database, and a transaction set, -which are the set of read and write operations against the database. Creating the transactions requires understanding the structure of the records, which -is why both the data and the transactions must be defined in the workload. -

-For a complete benchmark, multiple important (but distinct) workloads might be grouped together into a workload package. The CoreWorkload -package included with the YCSB client is an example of such a collection of workloads. -

-Typically a workload consists of two files: -

    -
  • A java class which contains the code to create data records and generate transactions against them -
  • A parameter file which tunes the specifics of the workload -
-For example, a workload class file might generate some combination of read and update operations against the database. The parameter -file might specify whether the mix of reads and updates is 50/50, 80/20, etc. -

-There are two ways to create a new workload or package of workloads. -

-

Option 1: new parameter files

-

-The core workloads included with YCSB are defined by a set of parameter files (workloada, workloadb, etc.) You can create your own parameter file with new values -for the read/write mix, request distribution, etc. For example, the workloada file has the following contents: - -

-workload=com.yahoo.ycsb.workloads.CoreWorkload
-
-readallfields=false
-
-readproportion=0.5
-updateproportion=0.5
-scanproportion=0
-insertproportion=0
-
-requestdistribution=zipfian
-
- -Creating a new file that changes any of these values will produce a new workload with different characteristics. The set of properties that can be specified is here. -

-

Option 2: new java class

-

-The workload java class will be created by the YCSB Client at runtime, and will use an instance of the DB interface layer -to generate the actual operations against the database. Thus, the java class only needs to decide (based on settings in the parameter file) what records -to create for the data set, and what reads, updates etc. to generate for the transaction phase. The YCSB Client will take care of creating the workload java class, -passing it to a worker thread for executing, deciding how many records to create or how many operations to execute, and measuring the resulting -performance. -

-If the CoreWorkload (or some other existing package) does not have the ability to generate the workload you desire, you can create a new workload java class. -This is done using the following steps: -

Step 1. Extend com.yahoo.ycsb.Workload

-The base class of all workload classes is com.yahoo.ycsb.Workload. This is an abstract class, so you create a new workload that extends this base class. Your -class must have a public no-argument constructor, because the workload will be created in a factory using the no-argument constructor. The YCSB Client will -create one Workload object for each worker thread, so if you run the Client with multiple threads, multiple workload objects will be created. -

Step 2. Write code to initialize your workload class

-The parameter fill will be passed to the workload object after the constructor has been called, so if you are using any parameter properties, you must -use them to initialize your workload using either the init() or initThread() methods. -
    -
  • init() - called once for all workload instances. Used to initialize any objects shared by all threads. -
  • initThread() - called once per workload instance in the context of the worker thread. Used to initialize any objects specific to a single Workload instance -and single worker thread. -
-In either case, you can access the parameter properties using the Properties object passed in to both methods. These properties will include all properties defined -in any property file passed to the YCSB Client or defined on the client command line. -

Step 3. Write any cleanup code

-The cleanup() method is called once for all workload instances, after the workload has completed. -

Step 4. Define the records to be inserted

-The YCSB Client will call the doInsert() method once for each record to be inserted into the database. So you should implement this method -to create and insert a single record. The DB object you can use to perform the insert will be passed to the doInsert() method. -

Step 5. Define the transactions

-The YCSB Client will call the doTransaction() method once for every transaction that is to be executed. So you should implement this method to execute -a single transaction, using the DB object passed in to access the database. Your implementation of this method can choose between different types of -transactions, and can make multiple calls to the DB interface layer. However, each invocation of the method should be a logical transaction. In particular, when you run the client, -you'll specify the number of operations to execute; if you request 1000 operations then doTransaction() will be executed 1000 times. -

-Note that you do not have to do any throttling of your transactions (or record insertions) to achieve the target throughput. The YCSB Client will do the throttling -for you. -

-Note also that it is allowable to insert records inside the doTransaction() method. You might do this if you wish the database to grow during the workload. In this case, -the initial dataset will be constructed using calls to the doInsert() method, while additional records would be inserted using calls to the doTransaction() method. -

Step 6 - Measure latency, if necessary

-The YCSB client will automatically measure the latency and throughput of database operations, even for workloads that you define. However, the client will only measure -the latency of individual calls to the database, not of more complex transactions. Consider for example a workload that reads a record, modifies it, and writes -the changes back to the database. The YCSB client will automatically measure the latency of the read operation to the database; and separately will automatically measure the -latency of the update operation. However, if you would like to measure the latency of the entire read-modify-write transaction, you will need to add an additional timing step to your -code. -

-Measurements are gathered using the Measurements.measure() call. There is a singleton instance of Measurements, which can be obtained using the -Measurements.getMeasurements() static method. For each metric you are measuring, you need to assign a string tag; this tag will label the resulting -average, min, max, histogram etc. measurements output by the tool at the end of the workload. For example, consider the following code: - -

-long st=System.currentTimeMillis();
-db.read(TABLENAME,keyname,fields,new HashMap());
-db.update(TABLENAME,keyname,values);
-long en=System.currentTimeMillis();
-Measurements.getMeasurements().measure("READ-MODIFY-WRITE", (int)(en-st));
-
- -In this code, the calls to System.currentTimeMillis() are used to time the read and write transaction. Then, the call to measure() reports the latency to the -measurement component. -

-Using this pattern, your custom measurements will be gathered and aggregated using the same mechanism that is used to gather measurements for individual READ, UPDATE etc. operations. - -

Step 7 - Use it with the YCSB Client

-Make sure that the classes for your implementation (or a jar containing those classes) are available on your CLASSPATH, as well as any libraries/jar files used -by your implementation. Now, when you run the YCSB Client, specify the "workload" property to provide the fully qualified classname of your -DB class. For example: - -
-workload=com.foo.YourWorkloadClass
-
-
-YCSB - Yahoo! Research - Contact cooperb@yahoo-inc.com. - - DELETED YCSB/dynamodb/README Index: YCSB/dynamodb/README ================================================================== --- YCSB/dynamodb/README +++ /dev/null @@ -1,54 +0,0 @@ -CONFIGURE - -YCSB_HOME - YCSB home directory -DYNAMODB_HOME - Amazon DynamoDB package files - -Please refer to https://github.com/brianfrankcooper/YCSB/wiki/Using-the-Database-Libraries -for more information on setup. - -BENCHMARK - -$YCSB_HOME/bin/ycsb load dynamodb -P workloads/workloada -P dynamodb.properties -$YCSB_HOME/bin/ycsb run dynamodb -P workloads/workloada -P dynamodb.properties - -PROPERTIES - -$DYNAMODB_HOME/conf/dynamodb.properties -$DYNAMODB_HOME/conf/AWSCredentials.properties - -FAQs -* Why is the recommended workload distribution set to 'uniform'? - This is to conform with the best practices for using DynamoDB - uniform, -evenly distributed workload is the recommended pattern for scaling and -getting predictable performance out of DynamoDB - -For more information refer to -http://docs.amazonwebservices.com/amazondynamodb/latest/developerguide/BestPractices.html - -* How does workload size affect provisioned throughput? - The default payload size requires double the provisioned throughput to execute -the workload. This translates to double the provisioned throughput cost for testing. -The default item size in YCSB are 1000 bytes plus metadata overhead, which makes the -item exceed 1024 bytes. DynamoDB charges one capacity unit per 1024 bytes for read -or writes. An item that is greater than 1024 bytes but less than or equal to 2048 bytes -would cost 2 capacity units. With the change in payload size, each request would cost -1 capacity unit as opposed to 2, saving the cost of running the benchmark. - -For more information refer to -http://docs.amazonwebservices.com/amazondynamodb/latest/developerguide/WorkingWithDDTables.html - -* How do you know if DynamoDB throttling is affecting benchmarking? - Monitor CloudWatch for ThrottledRequests and if ThrottledRequests is greater -than zero, either increase the DynamoDB table provisioned throughput or reduce -YCSB throughput by reducing YCSB target throughput, adjusting the number of YCSB -client threads, or combination of both. - -For more information please refer to -https://github.com/brianfrankcooper/YCSB/blob/master/doc/tipsfaq.html - -When requests are throttled, latency measurements by YCSB can increase. - -Please refer to http://aws.amazon.com/dynamodb/faqs/ for more information. - -Please refer to Amazon DynamoDB docs here: -http://aws.amazon.com/documentation/dynamodb/ DELETED YCSB/dynamodb/conf/AWSCredentials.properties Index: YCSB/dynamodb/conf/AWSCredentials.properties ================================================================== --- YCSB/dynamodb/conf/AWSCredentials.properties +++ /dev/null @@ -1,4 +0,0 @@ -# Fill in your AWS Access Key ID and Secret Access Key -# http://aws.amazon.com/security-credentials -#accessKey = -#secretKey = DELETED YCSB/dynamodb/conf/dynamodb.properties Index: YCSB/dynamodb/conf/dynamodb.properties ================================================================== --- YCSB/dynamodb/conf/dynamodb.properties +++ /dev/null @@ -1,37 +0,0 @@ -# -# Sample property file for Amazon DynamoDB database client - -## Mandatory parameters - -# AWS credentials associated with your aws account. -#dynamodb.awsCredentialsFile = - -# Primarykey of table 'usertable' -#dynamodb.primaryKey = - -## Optional parameters - -# Endpoint to connect to.For best latency, it is recommended -# to choose the endpoint which is closer to the client. -# Default is us-east-1 -#dynamodb.endpoint = http://dynamodb.us-east-1.amazonaws.com - -# Strongly recommended to set to uniform.Refer FAQs in README -#requestdistribution = uniform - -# Enable/disable debug messages.Defaults to false -# "true" or "false" -#dynamodb.debug = false - -# Maximum number of concurrent connections -#dynamodb.connectMax = 50 - -# Read consistency.Consistent reads are expensive and consume twice -# as many resources as eventually consistent reads. Defaults to false. -# "true" or "false" -#dynamodb.consistentReads = false - -# Workload size has implications on provisioned read and write -# capacity units.Refer FAQs in README -#fieldcount = 10 -#fieldlength = 90 DELETED YCSB/dynamodb/pom.xml Index: YCSB/dynamodb/pom.xml ================================================================== --- YCSB/dynamodb/pom.xml +++ /dev/null @@ -1,55 +0,0 @@ - - - 4.0.0 - - com.yahoo.ycsb - root - 0.1.4 - - - dynamodb-binding - DynamoDB DB Binding - - - - com.amazonaws - aws-java-sdk - 1.3.14 - - - log4j - log4j - 1.2.17 - - - com.yahoo.ycsb - core - ${project.version} - - - - - - - org.apache.maven.plugins - maven-assembly-plugin - ${maven.assembly.version} - - - jar-with-dependencies - - false - - - - package - - single - - - - - - - - DELETED YCSB/dynamodb/src/main/java/com/yahoo/ycsb/db/DynamoDBClient.java Index: YCSB/dynamodb/src/main/java/com/yahoo/ycsb/db/DynamoDBClient.java ================================================================== --- YCSB/dynamodb/src/main/java/com/yahoo/ycsb/db/DynamoDBClient.java +++ /dev/null @@ -1,300 +0,0 @@ -/* - - * Copyright 2012 Amazon.com, Inc. or its affiliates. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"). - * You may not use this file except in compliance with the License. - * A copy of the License is located at - * - * http://aws.amazon.com/apache2.0 - * - * or in the "license" file accompanying this file. This file is distributed - * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. See the License for the specific language governing - * permissions and limitations under the License. - */ - -package com.yahoo.ycsb.db; - -import java.io.FileInputStream; -import java.util.HashMap; -import java.util.Map; -import java.util.Map.Entry; -import java.util.Properties; -import java.util.Set; -import java.util.Vector; -import java.io.File; - -import org.apache.log4j.Level; -import org.apache.log4j.Logger; - -import com.amazonaws.auth.AWSCredentials; -import com.amazonaws.auth.PropertiesCredentials; -import com.amazonaws.ClientConfiguration; -import com.amazonaws.services.dynamodb.AmazonDynamoDBClient; -import com.amazonaws.AmazonClientException; -import com.amazonaws.AmazonServiceException; -import com.amazonaws.services.dynamodb.model.AttributeValue; -import com.amazonaws.services.dynamodb.model.AttributeValueUpdate; -import com.amazonaws.services.dynamodb.model.DeleteItemRequest; -import com.amazonaws.services.dynamodb.model.DeleteItemResult; -import com.amazonaws.services.dynamodb.model.GetItemRequest; -import com.amazonaws.services.dynamodb.model.GetItemResult; -import com.amazonaws.services.dynamodb.model.Key; -import com.amazonaws.services.dynamodb.model.PutItemRequest; -import com.amazonaws.services.dynamodb.model.PutItemResult; -import com.amazonaws.services.dynamodb.model.ScanRequest; -import com.amazonaws.services.dynamodb.model.ScanResult; -import com.amazonaws.services.dynamodb.model.UpdateItemRequest; -import com.yahoo.ycsb.ByteIterator; -import com.yahoo.ycsb.DB; -import com.yahoo.ycsb.DBException; -import com.yahoo.ycsb.StringByteIterator; - -/** - * DynamoDB v1.3.14 client for YCSB - */ - -public class DynamoDBClient extends DB { - - private static final int OK = 0; - private static final int SERVER_ERROR = 1; - private static final int CLIENT_ERROR = 2; - private AmazonDynamoDBClient dynamoDB; - private String primaryKeyName; - private boolean debug = false; - private boolean consistentRead = false; - private String endpoint = "http://dynamodb.us-east-1.amazonaws.com"; - private int maxConnects = 50; - private static Logger logger = Logger.getLogger(DynamoDBClient.class); - public DynamoDBClient() {} - - /** - * Initialize any state for this DB. Called once per DB instance; there is - * one DB instance per client thread. - */ - public void init() throws DBException { - // initialize DynamoDb driver & table. - String debug = getProperties().getProperty("dynamodb.debug",null); - - if (null != debug && "true".equalsIgnoreCase(debug)) { - logger.setLevel(Level.DEBUG); - } - - String endpoint = getProperties().getProperty("dynamodb.endpoint",null); - String credentialsFile = getProperties().getProperty("dynamodb.awsCredentialsFile",null); - String primaryKey = getProperties().getProperty("dynamodb.primaryKey",null); - String consistentReads = getProperties().getProperty("dynamodb.consistentReads",null); - String connectMax = getProperties().getProperty("dynamodb.connectMax",null); - - if (null != connectMax) { - this.maxConnects = Integer.parseInt(connectMax); - } - - if (null != consistentReads && "true".equalsIgnoreCase(consistentReads)) { - this.consistentRead = true; - } - - if (null != endpoint) { - this.endpoint = endpoint; - } - - if (null == primaryKey || primaryKey.length() < 1) { - String errMsg = "Missing primary key attribute name, cannot continue"; - logger.error(errMsg); - } - - try { - AWSCredentials credentials = new PropertiesCredentials(new File(credentialsFile)); - ClientConfiguration cconfig = new ClientConfiguration(); - cconfig.setMaxConnections(maxConnects); - dynamoDB = new AmazonDynamoDBClient(credentials,cconfig); - dynamoDB.setEndpoint(this.endpoint); - primaryKeyName = primaryKey; - logger.info("dynamodb connection created with " + this.endpoint); - } catch (Exception e1) { - String errMsg = "DynamoDBClient.init(): Could not initialize DynamoDB client: " + e1.getMessage(); - logger.error(errMsg); - } - } - - @Override - public int read(String table, String key, Set fields, - HashMap result) { - - logger.debug("readkey: " + key + " from table: " + table); - GetItemRequest req = new GetItemRequest(table, createPrimaryKey(key)); - req.setAttributesToGet(fields); - req.setConsistentRead(consistentRead); - GetItemResult res = null; - - try { - res = dynamoDB.getItem(req); - }catch (AmazonServiceException ex) { - logger.error(ex.getMessage()); - return SERVER_ERROR; - }catch (AmazonClientException ex){ - logger.error(ex.getMessage()); - return CLIENT_ERROR; - } - - if (null != res.getItem()) - { - result.putAll(extractResult(res.getItem())); - logger.debug("Result: " + res.toString()); - } - return OK; - } - - @Override - public int scan(String table, String startkey, int recordcount, - Set fields, Vector> result) { - logger.debug("scan " + recordcount + " records from key: " + startkey + " on table: " + table); - /* - * on DynamoDB's scan, startkey is *exclusive* so we need to - * getItem(startKey) and then use scan for the res - */ - GetItemRequest greq = new GetItemRequest(table, createPrimaryKey(startkey)); - greq.setAttributesToGet(fields); - - GetItemResult gres = null; - - try { - gres = dynamoDB.getItem(greq); - }catch (AmazonServiceException ex) { - logger.error(ex.getMessage()); - return SERVER_ERROR; - }catch (AmazonClientException ex){ - logger.error(ex.getMessage()); - return CLIENT_ERROR; - } - - if (null != gres.getItem()) { - result.add(extractResult(gres.getItem())); - } - - int count = 1; // startKey is done, rest to go. - - Key startKey = createPrimaryKey(startkey); - ScanRequest req = new ScanRequest(table); - req.setAttributesToGet(fields); - while (count < recordcount) { - req.setExclusiveStartKey(startKey); - req.setLimit(recordcount - count); - ScanResult res = null; - try { - res = dynamoDB.scan(req); - }catch (AmazonServiceException ex) { - logger.error(ex.getMessage()); - ex.printStackTrace(); - return SERVER_ERROR; - }catch (AmazonClientException ex){ - logger.error(ex.getMessage()); - ex.printStackTrace(); - return CLIENT_ERROR; - } - - count += res.getCount(); - for (Map items : res.getItems()) { - result.add(extractResult(items)); - } - startKey = res.getLastEvaluatedKey(); - - } - - return OK; - } - - @Override - public int update(String table, String key, HashMap values) { - logger.debug("updatekey: " + key + " from table: " + table); - - Map attributes = new HashMap( - values.size()); - for (Entry val : values.entrySet()) { - AttributeValue v = new AttributeValue(val.getValue().toString()); - attributes.put(val.getKey(), new AttributeValueUpdate() - .withValue(v).withAction("PUT")); - } - - UpdateItemRequest req = new UpdateItemRequest(table, createPrimaryKey(key), attributes); - - try { - dynamoDB.updateItem(req); - }catch (AmazonServiceException ex) { - logger.error(ex.getMessage()); - return SERVER_ERROR; - }catch (AmazonClientException ex){ - logger.error(ex.getMessage()); - return CLIENT_ERROR; - } - return OK; - } - - @Override - public int insert(String table, String key,HashMap values) { - logger.debug("insertkey: " + primaryKeyName + "-" + key + " from table: " + table); - Map attributes = createAttributes(values); - // adding primary key - attributes.put(primaryKeyName, new AttributeValue(key)); - - PutItemRequest putItemRequest = new PutItemRequest(table, attributes); - PutItemResult res = null; - try { - res = dynamoDB.putItem(putItemRequest); - }catch (AmazonServiceException ex) { - logger.error(ex.getMessage()); - return SERVER_ERROR; - }catch (AmazonClientException ex){ - logger.error(ex.getMessage()); - return CLIENT_ERROR; - } - return OK; - } - - @Override - public int delete(String table, String key) { - logger.debug("deletekey: " + key + " from table: " + table); - DeleteItemRequest req = new DeleteItemRequest(table, createPrimaryKey(key)); - DeleteItemResult res = null; - - try { - res = dynamoDB.deleteItem(req); - }catch (AmazonServiceException ex) { - logger.error(ex.getMessage()); - return SERVER_ERROR; - }catch (AmazonClientException ex){ - logger.error(ex.getMessage()); - return CLIENT_ERROR; - } - return OK; - } - - private static Map createAttributes( - HashMap values) { - Map attributes = new HashMap( - values.size() + 1); //leave space for the PrimaryKey - for (Entry val : values.entrySet()) { - attributes.put(val.getKey(), new AttributeValue(val.getValue() - .toString())); - } - return attributes; - } - - private HashMap extractResult(Map item) { - if(null == item) - return null; - HashMap rItems = new HashMap(item.size()); - - for (Entry attr : item.entrySet()) { - logger.debug(String.format("Result- key: %s, value: %s", attr.getKey(), attr.getValue()) ); - rItems.put(attr.getKey(), new StringByteIterator(attr.getValue().getS())); - } - return rItems; - } - - private static Key createPrimaryKey(String key) { - Key k = new Key().withHashKeyElement(new AttributeValue().withS(key)); - return k; - } -} DELETED YCSB/dynamodb/src/main/resources/log4j.properties Index: YCSB/dynamodb/src/main/resources/log4j.properties ================================================================== --- YCSB/dynamodb/src/main/resources/log4j.properties +++ /dev/null @@ -1,10 +0,0 @@ -#define the console appender -log4j.appender.consoleAppender = org.apache.log4j.ConsoleAppender - -# now define the layout for the appender -log4j.appender.consoleAppender.layout = org.apache.log4j.PatternLayout -log4j.appender.consoleAppender.layout.ConversionPattern=%-4r [%t] %-5p %c %x -%m%n - -# now map our console appender as a root logger, means all log messages will go -# to this appender -log4j.rootLogger = INFO, consoleAppender DELETED YCSB/dynamodb/target/archive-tmp/dynamodb-binding-0.1.4.jar Index: YCSB/dynamodb/target/archive-tmp/dynamodb-binding-0.1.4.jar ================================================================== --- YCSB/dynamodb/target/archive-tmp/dynamodb-binding-0.1.4.jar +++ /dev/null cannot compute difference between binary files DELETED YCSB/dynamodb/target/checkstyle-cachefile Index: YCSB/dynamodb/target/checkstyle-cachefile ================================================================== --- YCSB/dynamodb/target/checkstyle-cachefile +++ /dev/null @@ -1,2 +0,0 @@ -#Tue Mar 12 07:17:45 UTC 2013 -configuration*?=12868115F91BAC774D9925672615C9812D54929A DELETED YCSB/dynamodb/target/checkstyle-checker.xml Index: YCSB/dynamodb/target/checkstyle-checker.xml ================================================================== --- YCSB/dynamodb/target/checkstyle-checker.xml +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DELETED YCSB/dynamodb/target/checkstyle-header.txt Index: YCSB/dynamodb/target/checkstyle-header.txt ================================================================== --- YCSB/dynamodb/target/checkstyle-header.txt +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. DELETED YCSB/dynamodb/target/checkstyle-result.xml Index: YCSB/dynamodb/target/checkstyle-result.xml ================================================================== --- YCSB/dynamodb/target/checkstyle-result.xml +++ /dev/null @@ -1,232 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DELETED YCSB/dynamodb/target/classes/com/yahoo/ycsb/db/DynamoDBClient.class Index: YCSB/dynamodb/target/classes/com/yahoo/ycsb/db/DynamoDBClient.class ================================================================== --- YCSB/dynamodb/target/classes/com/yahoo/ycsb/db/DynamoDBClient.class +++ /dev/null cannot compute difference between binary files DELETED YCSB/dynamodb/target/classes/log4j.properties Index: YCSB/dynamodb/target/classes/log4j.properties ================================================================== --- YCSB/dynamodb/target/classes/log4j.properties +++ /dev/null @@ -1,10 +0,0 @@ -#define the console appender -log4j.appender.consoleAppender = org.apache.log4j.ConsoleAppender - -# now define the layout for the appender -log4j.appender.consoleAppender.layout = org.apache.log4j.PatternLayout -log4j.appender.consoleAppender.layout.ConversionPattern=%-4r [%t] %-5p %c %x -%m%n - -# now map our console appender as a root logger, means all log messages will go -# to this appender -log4j.rootLogger = INFO, consoleAppender DELETED YCSB/dynamodb/target/dynamodb-binding-0.1.4.jar Index: YCSB/dynamodb/target/dynamodb-binding-0.1.4.jar ================================================================== --- YCSB/dynamodb/target/dynamodb-binding-0.1.4.jar +++ /dev/null cannot compute difference between binary files DELETED YCSB/dynamodb/target/maven-archiver/pom.properties Index: YCSB/dynamodb/target/maven-archiver/pom.properties ================================================================== --- YCSB/dynamodb/target/maven-archiver/pom.properties +++ /dev/null @@ -1,5 +0,0 @@ -#Generated by Maven -#Tue Mar 12 07:17:47 UTC 2013 -version=0.1.4 -groupId=com.yahoo.ycsb -artifactId=dynamodb-binding DELETED YCSB/dynamodb/target/site/checkstyle.html Index: YCSB/dynamodb/target/site/checkstyle.html ================================================================== --- YCSB/dynamodb/target/site/checkstyle.html +++ /dev/null cannot compute difference between binary files DELETED YCSB/dynamodb/target/site/checkstyle.rss Index: YCSB/dynamodb/target/site/checkstyle.rss ================================================================== --- YCSB/dynamodb/target/site/checkstyle.rss +++ /dev/null @@ -1,51 +0,0 @@ - - - - - DynamoDB DB Binding - Checkstyle report - ${project.url} - DynamoDB DB Binding - Checkstyle report - en-us - ©2013 - - File: 1, - Errors: 227, - Warnings: 0, - Infos: 0 - - ${project.url}/checkstyle.html - -

Click here for the full Checkstyle report.

- - - - - - - - - - - - - - - - - - -
FilesIWE
- com/yahoo/ycsb/db/DynamoDBClient.java - - 0 - - 0 - - 227 -
- -
-
-
-
- DELETED YCSB/dynamodb/target/site/images/rss.png Index: YCSB/dynamodb/target/site/images/rss.png ================================================================== --- YCSB/dynamodb/target/site/images/rss.png +++ /dev/null cannot compute difference between binary files DELETED YCSB/elasticsearch/README.md Index: YCSB/elasticsearch/README.md ================================================================== --- YCSB/elasticsearch/README.md +++ /dev/null @@ -1,65 +0,0 @@ -## Quick Start - -This section describes how to run YCSB on ElasticSearch running locally. - -### 1. Set Up YCSB - -Clone the YCSB git repository and compile: - - git clone git://github.com/brianfrankcooper/YCSB.git - cd YCSB - mvn clean package - -### 2. Run YCSB - -Now you are ready to run! First, load the data: - - ./bin/ycsb load elasticsearch -s -P workloads/workloada - -Then, run the workload: - - ./bin/ycsb run elasticsearch -s -P workloads/workloada - -For further configuration see below: - -### Defaults Configuration -The default setting for the ElasticSearch node that is created is as follows: - - cluster.name=es.ycsb.cluster - node.local=true - path.data=$TEMP_DIR/esdata - discovery.zen.ping.multicast.enabled=false - index.mapping._id.indexed=true - index.gateway.type=none - gateway.type=none - index.number_of_shards=1 - index.number_of_replicas=0 - es.index.key=es.ycsb - -### Custom Configuration -If you wish to customize the settings used to create the ElasticSerach node -you can created a new property file that contains your desired ElasticSearch -node settings and pass it in via the parameter to 'bin/ycsb' script. Note that -the default properties will be kept if you don't explicitly overwrite them. - -Assuming that we have a properties file named "myproperties.data" that contains -custom ElasticSearch node configuration you can execute the following to -pass it into the ElasticSearch client: - - - ./bin/ycsb run elasticsearch -P workloads/workloada -P myproperties.data -s - - -If you wish to use a in-memory store type rather than the default disk store add -the following properties to your custom properties file. For a large number of -insert operations insure that you have sufficient memory on your test system -otherwise you will run out of memory. - - index.store.type=memory - index.store.fs.memory.enabled=true - cache.memory.small_buffer_size=4mb - cache.memory.large_cache_size=1024mb - -If you wish to change the default index name you can set the following property: - - es.index.key=my_index_key DELETED YCSB/elasticsearch/pom.xml Index: YCSB/elasticsearch/pom.xml ================================================================== --- YCSB/elasticsearch/pom.xml +++ /dev/null @@ -1,71 +0,0 @@ - - - 4.0.0 - - com.yahoo.ycsb - root - 0.1.4 - - - elasticsearch-binding - ElasticSearch Binding - jar - - 0.19.8 - - - - sonatype-nexus-snapshots - Sonatype Nexus Snapshots - https://oss.sonatype.org/content/repositories/releases - - - - - com.yahoo.ycsb - core - ${project.version} - - - org.elasticsearch - elasticsearch - ${elasticsearch-version} - - - org.testng - testng - 6.1.1 - test - - - org.slf4j - slf4j-nop - 1.6.4 - - - - - - - org.apache.maven.plugins - maven-assembly-plugin - ${maven.assembly.version} - - - jar-with-dependencies - - false - - - - package - - single - - - - - - - - DELETED YCSB/elasticsearch/src/main/java/com/yahoo/ycsb/db/ElasticSearchClient.java Index: YCSB/elasticsearch/src/main/java/com/yahoo/ycsb/db/ElasticSearchClient.java ================================================================== --- YCSB/elasticsearch/src/main/java/com/yahoo/ycsb/db/ElasticSearchClient.java +++ /dev/null @@ -1,266 +0,0 @@ -package com.yahoo.ycsb.db; - -import com.yahoo.ycsb.ByteIterator; -import com.yahoo.ycsb.DB; -import com.yahoo.ycsb.DBException; -import com.yahoo.ycsb.StringByteIterator; -import java.util.HashMap; -import java.util.Map.Entry; -import java.util.Properties; -import java.util.Set; -import java.util.Vector; -import org.elasticsearch.action.get.GetResponse; -import org.elasticsearch.action.search.SearchResponse; -import org.elasticsearch.client.Client; -import org.elasticsearch.client.Requests; -import static org.elasticsearch.common.settings.ImmutableSettings.*; -import org.elasticsearch.common.settings.ImmutableSettings.Builder; -import org.elasticsearch.common.xcontent.XContentBuilder; -import static org.elasticsearch.common.xcontent.XContentFactory.*; -import static org.elasticsearch.index.query.FilterBuilders.*; -import static org.elasticsearch.index.query.QueryBuilders.*; -import org.elasticsearch.index.query.RangeFilterBuilder; -import org.elasticsearch.node.Node; -import static org.elasticsearch.node.NodeBuilder.*; -import org.elasticsearch.search.SearchHit; - -/** - * ElasticSearch client for YCSB framework. - * - *

Default properties to set:

  • es.cluster.name = es.ycsb.cluster - *
  • es.client = true
  • es.index.key = es.ycsb
- * - * @author Sharmarke Aden - * - */ -public class ElasticSearchClient extends DB { - - public static final String DEFAULT_CLUSTER_NAME = "es.ycsb.cluster"; - public static final String DEFAULT_INDEX_KEY = "es.ycsb"; - private Node node; - private Client client; - private String indexKey; - - /** - * Initialize any state for this DB. Called once per DB instance; there is - * one DB instance per client thread. - */ - @Override - public void init() throws DBException { - // initialize OrientDB driver - Properties props = getProperties(); - this.indexKey = props.getProperty("es.index.key", DEFAULT_INDEX_KEY); - String clusterName = props.getProperty("cluster.name", DEFAULT_CLUSTER_NAME); - Boolean newdb = Boolean.parseBoolean(props.getProperty("elasticsearch.newdb", "false")); - Builder settings = settingsBuilder() - .put("node.local", "true") - .put("path.data", System.getProperty("java.io.tmpdir") + "/esdata") - .put("discovery.zen.ping.multicast.enabled", "false") - .put("index.mapping._id.indexed", "true") - .put("index.gateway.type", "none") - .put("gateway.type", "none") - .put("index.number_of_shards", "1") - .put("index.number_of_replicas", "0"); - - - //if properties file contains elasticsearch user defined properties - //add it to the settings file (will overwrite the defaults). - settings.put(props); - System.out.println("ElasticSearch starting node = " + settings.get("cluster.name")); - System.out.println("ElasticSearch node data path = " + settings.get("path.data")); - - node = nodeBuilder().clusterName(clusterName).settings(settings).node(); - node.start(); - client = node.client(); - - if (newdb) { - client.admin().indices().prepareDelete(indexKey).execute().actionGet(); - client.admin().indices().prepareCreate(indexKey).execute().actionGet(); - } else { - boolean exists = client.admin().indices().exists(Requests.indicesExistsRequest(indexKey)).actionGet().isExists(); - if (!exists) { - client.admin().indices().prepareCreate(indexKey).execute().actionGet(); - } - } - } - - @Override - public void cleanup() throws DBException { - if (!node.isClosed()) { - client.close(); - node.stop(); - node.close(); - } - } - - /** - * Insert a record in the database. Any field/value pairs in the specified - * values HashMap will be written into the record with the specified record - * key. - * - * @param table The name of the table - * @param key The record key of the record to insert. - * @param values A HashMap of field/value pairs to insert in the record - * @return Zero on success, a non-zero error code on error. See this class's - * description for a discussion of error codes. - */ - @Override - public int insert(String table, String key, HashMap values) { - try { - final XContentBuilder doc = jsonBuilder().startObject(); - - for (Entry entry : StringByteIterator.getStringMap(values).entrySet()) { - doc.field(entry.getKey(), entry.getValue()); - } - - doc.endObject(); - - client.prepareIndex(indexKey, table, key) - .setSource(doc) - .execute() - .actionGet(); - - return 0; - } catch (Exception e) { - e.printStackTrace(); - } - return 1; - } - - /** - * Delete a record from the database. - * - * @param table The name of the table - * @param key The record key of the record to delete. - * @return Zero on success, a non-zero error code on error. See this class's - * description for a discussion of error codes. - */ - @Override - public int delete(String table, String key) { - try { - client.prepareDelete(indexKey, table, key) - .execute() - .actionGet(); - return 0; - } catch (Exception e) { - e.printStackTrace(); - } - return 1; - } - - /** - * Read a record from the database. Each field/value pair from the result - * will be stored in a HashMap. - * - * @param table The name of the table - * @param key The record key of the record to read. - * @param fields The list of fields to read, or null for all of them - * @param result A HashMap of field/value pairs for the result - * @return Zero on success, a non-zero error code on error or "not found". - */ - @Override - public int read(String table, String key, Set fields, HashMap result) { - try { - final GetResponse response = client.prepareGet(indexKey, table, key) - .execute() - .actionGet(); - - if (response.isExists()) { - if (fields != null) { - for (String field : fields) { - result.put(field, new StringByteIterator((String) response.getSource().get(field))); - } - } else { - for (String field : response.getSource().keySet()) { - result.put(field, new StringByteIterator((String) response.getSource().get(field))); - } - } - return 0; - } - } catch (Exception e) { - e.printStackTrace(); - } - return 1; - } - - /** - * Update a record in the database. Any field/value pairs in the specified - * values HashMap will be written into the record with the specified record - * key, overwriting any existing values with the same field name. - * - * @param table The name of the table - * @param key The record key of the record to write. - * @param values A HashMap of field/value pairs to update in the record - * @return Zero on success, a non-zero error code on error. See this class's - * description for a discussion of error codes. - */ - @Override - public int update(String table, String key, HashMap values) { - try { - final GetResponse response = client.prepareGet(indexKey, table, key) - .execute() - .actionGet(); - - if (response.isExists()) { - for (Entry entry : StringByteIterator.getStringMap(values).entrySet()) { - response.getSource().put(entry.getKey(), entry.getValue()); - } - - client.prepareIndex(indexKey, table, key) - .setSource(response.getSource()) - .execute() - .actionGet(); - - return 0; - } - - } catch (Exception e) { - e.printStackTrace(); - } - return 1; - } - - /** - * Perform a range scan for a set of records in the database. Each - * field/value pair from the result will be stored in a HashMap. - * - * @param table The name of the table - * @param startkey The record key of the first record to read. - * @param recordcount The number of records to read - * @param fields The list of fields to read, or null for all of them - * @param result A Vector of HashMaps, where each HashMap is a set - * field/value pairs for one record - * @return Zero on success, a non-zero error code on error. See this class's - * description for a discussion of error codes. - */ - @Override - public int scan(String table, String startkey, int recordcount, Set fields, Vector> result) { - try { - final RangeFilterBuilder filter = rangeFilter("_id").gte(startkey); - final SearchResponse response = client.prepareSearch(indexKey) - .setTypes(table) - .setQuery(matchAllQuery()) - .setFilter(filter) - .setSize(recordcount) - .execute() - .actionGet(); - - HashMap entry; - - for (SearchHit hit : response.getHits()) { - entry = new HashMap(fields.size()); - - for (String field : fields) { - entry.put(field, new StringByteIterator((String) hit.getSource().get(field))); - } - - result.add(entry); - } - - return 0; - } catch (Exception e) { - e.printStackTrace(); - } - return 1; - } -} DELETED YCSB/elasticsearch/src/test/java/com/yahoo/ycsb/db/ElasticSearchClientTest.java Index: YCSB/elasticsearch/src/test/java/com/yahoo/ycsb/db/ElasticSearchClientTest.java ================================================================== --- YCSB/elasticsearch/src/test/java/com/yahoo/ycsb/db/ElasticSearchClientTest.java +++ /dev/null @@ -1,137 +0,0 @@ -/* - * To change this template, choose Tools | Templates - * and open the template in the editor. - */ -package com.yahoo.ycsb.db; - -import com.yahoo.ycsb.ByteIterator; -import com.yahoo.ycsb.DBException; -import com.yahoo.ycsb.StringByteIterator; -import java.util.HashMap; -import java.util.Set; -import java.util.Vector; -import static org.testng.AssertJUnit.*; -import org.testng.annotations.AfterClass; -import org.testng.annotations.AfterMethod; -import org.testng.annotations.BeforeClass; -import org.testng.annotations.BeforeMethod; -import org.testng.annotations.Test; - -/** - * - * @author saden - */ -public class ElasticSearchClientTest { - - protected final static ElasticSearchClient instance = new ElasticSearchClient(); - protected final static HashMap MOCK_DATA; - protected final static String MOCK_TABLE = "MOCK_TABLE"; - protected final static String MOCK_KEY0 = "0"; - protected final static String MOCK_KEY1 = "1"; - protected final static String MOCK_KEY2 = "2"; - - static { - MOCK_DATA = new HashMap(10); - for (int i = 1; i <= 10; i++) { - MOCK_DATA.put("field" + i, new StringByteIterator("value" + i)); - } - } - - @BeforeClass - public static void setUpClass() throws DBException { - instance.init(); - } - - @AfterClass - public static void tearDownClass() throws DBException { - instance.cleanup(); - } - - @BeforeMethod - public void setUp() { - instance.insert(MOCK_TABLE, MOCK_KEY1, MOCK_DATA); - instance.insert(MOCK_TABLE, MOCK_KEY2, MOCK_DATA); - } - - @AfterMethod - public void tearDown() { - instance.delete(MOCK_TABLE, MOCK_KEY1); - instance.delete(MOCK_TABLE, MOCK_KEY2); - } - - /** - * Test of insert method, of class ElasticSearchClient. - */ - @Test - public void testInsert() { - System.out.println("insert"); - int expResult = 0; - int result = instance.insert(MOCK_TABLE, MOCK_KEY0, MOCK_DATA); - assertEquals(expResult, result); - } - - /** - * Test of delete method, of class ElasticSearchClient. - */ - @Test - public void testDelete() { - System.out.println("delete"); - int expResult = 0; - int result = instance.delete(MOCK_TABLE, MOCK_KEY1); - assertEquals(expResult, result); - } - - /** - * Test of read method, of class ElasticSearchClient. - */ - @Test - public void testRead() { - System.out.println("read"); - Set fields = MOCK_DATA.keySet(); - HashMap resultParam = new HashMap(10); - int expResult = 0; - int result = instance.read(MOCK_TABLE, MOCK_KEY1, fields, resultParam); - assertEquals(expResult, result); - } - - /** - * Test of update method, of class ElasticSearchClient. - */ - @Test - public void testUpdate() { - System.out.println("update"); - int i; - HashMap newValues = new HashMap(10); - - for (i = 1; i <= 10; i++) { - newValues.put("field" + i, new StringByteIterator("newvalue" + i)); - } - - int expResult = 0; - int result = instance.update(MOCK_TABLE, MOCK_KEY1, newValues); - assertEquals(expResult, result); - - //validate that the values changed - HashMap resultParam = new HashMap(10); - instance.read(MOCK_TABLE, MOCK_KEY1, MOCK_DATA.keySet(), resultParam); - - for (i = 1; i <= 10; i++) { - assertEquals("newvalue" + i, resultParam.get("field" + i).toString()); - } - - } - - /** - * Test of scan method, of class ElasticSearchClient. - */ - @Test - public void testScan() { - System.out.println("scan"); - int recordcount = 10; - Set fields = MOCK_DATA.keySet(); - Vector> resultParam = new Vector>(10); - int expResult = 0; - int result = instance.scan(MOCK_TABLE, MOCK_KEY1, recordcount, fields, resultParam); - assertEquals(expResult, result); - } -} DELETED YCSB/elasticsearch/target/archive-tmp/elasticsearch-binding-0.1.4.jar Index: YCSB/elasticsearch/target/archive-tmp/elasticsearch-binding-0.1.4.jar ================================================================== --- YCSB/elasticsearch/target/archive-tmp/elasticsearch-binding-0.1.4.jar +++ /dev/null cannot compute difference between binary files DELETED YCSB/elasticsearch/target/checkstyle-cachefile Index: YCSB/elasticsearch/target/checkstyle-cachefile ================================================================== --- YCSB/elasticsearch/target/checkstyle-cachefile +++ /dev/null @@ -1,2 +0,0 @@ -#Tue Mar 12 07:17:54 UTC 2013 -configuration*?=F6BED754B0E8CEFF7CD794D63A0CB4D7E463AFA8 DELETED YCSB/elasticsearch/target/checkstyle-checker.xml Index: YCSB/elasticsearch/target/checkstyle-checker.xml ================================================================== --- YCSB/elasticsearch/target/checkstyle-checker.xml +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DELETED YCSB/elasticsearch/target/checkstyle-header.txt Index: YCSB/elasticsearch/target/checkstyle-header.txt ================================================================== --- YCSB/elasticsearch/target/checkstyle-header.txt +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. DELETED YCSB/elasticsearch/target/checkstyle-result.xml Index: YCSB/elasticsearch/target/checkstyle-result.xml ================================================================== --- YCSB/elasticsearch/target/checkstyle-result.xml +++ /dev/null @@ -1,141 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DELETED YCSB/elasticsearch/target/classes/com/yahoo/ycsb/db/ElasticSearchClient.class Index: YCSB/elasticsearch/target/classes/com/yahoo/ycsb/db/ElasticSearchClient.class ================================================================== --- YCSB/elasticsearch/target/classes/com/yahoo/ycsb/db/ElasticSearchClient.class +++ /dev/null cannot compute difference between binary files DELETED YCSB/elasticsearch/target/elasticsearch-binding-0.1.4.jar Index: YCSB/elasticsearch/target/elasticsearch-binding-0.1.4.jar ================================================================== --- YCSB/elasticsearch/target/elasticsearch-binding-0.1.4.jar +++ /dev/null cannot compute difference between binary files DELETED YCSB/elasticsearch/target/maven-archiver/pom.properties Index: YCSB/elasticsearch/target/maven-archiver/pom.properties ================================================================== --- YCSB/elasticsearch/target/maven-archiver/pom.properties +++ /dev/null @@ -1,5 +0,0 @@ -#Generated by Maven -#Tue Mar 12 07:18:04 UTC 2013 -version=0.1.4 -groupId=com.yahoo.ycsb -artifactId=elasticsearch-binding DELETED YCSB/elasticsearch/target/site/checkstyle.html Index: YCSB/elasticsearch/target/site/checkstyle.html ================================================================== --- YCSB/elasticsearch/target/site/checkstyle.html +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - Checkstyle Results - - - - - - - - - -
- -
-
-
-

Checkstyle Results

The following document contains the results of Checkstylerss feed

Summary

FilesInfos InfosWarnings WarningsErrors Errors
100136

Rules

RulesViolationsSeverity
JavadocPackage1Errors Error
Translation0Errors Error
FileLength0Errors Error
FileTabCharacter0Errors Error
JavadocType
  • allowMissingParamTags: "true"
  • scope: "public"
0Errors Error
JavadocStyle0Errors Error
ConstantName0Errors Error
LocalFinalVariableName0Errors Error
LocalVariableName0Errors Error
MemberName0Errors Error
MethodName0Errors Error
PackageName0Errors Error
ParameterName0Errors Error
StaticVariableName0Errors Error
TypeName0Errors Error
IllegalImport0Errors Error
RedundantImport0Errors Error
UnusedImports0Errors Error
LineLength18Errors Error
MethodLength0Errors Error
ParameterNumber0Errors Error
EmptyForIteratorPad0Errors Error
MethodParamPad0Errors Error
NoWhitespaceAfter0Errors Error
NoWhitespaceBefore0Errors Error
ParenPad0Errors Error
TypecastParenPad0Errors Error
WhitespaceAfter
  • tokens: "COMMA, SEMI"
0Errors Error
ModifierOrder0Errors Error
RedundantModifier0Errors Error
AvoidNestedBlocks0Errors Error
EmptyBlock0Errors Error
LeftCurly0Errors Error
NeedBraces0Errors Error
RightCurly0Errors Error
DoubleCheckedLocking0Errors Error
EmptyStatement0Errors Error
EqualsHashCode0Errors Error
HiddenField
  • ignoreConstructorParameter: "true"
0Errors Error
IllegalInstantiation0Errors Error
InnerAssignment0Errors Error
MissingSwitchDefault0Errors Error
RedundantThrows0Errors Error
SimplifyBooleanExpression0Errors Error
SimplifyBooleanReturn0Errors Error
FinalClass0Errors Error
HideUtilityClassConstructor0Errors Error
InterfaceIsType0Errors Error
VisibilityModifier0Errors Error
ArrayTypeStyle0Errors Error
Indentation
  • caseIndent: "0"
  • basicOffset: "2"
117Errors Error
TodoComment0Errors Error
UpperEll0Errors Error

Details

com/yahoo/ycsb/db/ElasticSearchClient.java

ViolationMessageLine
ErrorsMissing package-info.java file.0
Errorsmember def modifier at indentation level 4 not at correct indentation, 238
Errorsmember def modifier at indentation level 4 not at correct indentation, 239
Errorsmember def modifier at indentation level 4 not at correct indentation, 240
Errorsmember def modifier at indentation level 4 not at correct indentation, 241
Errorsmember def modifier at indentation level 4 not at correct indentation, 242
Errorsmethod def modifier at indentation level 4 not at correct indentation, 248
Errorsmethod def modifier at indentation level 4 not at correct indentation, 249
Errorsmethod def child at indentation level 8 not at correct indentation, 451
Errorsmethod def child at indentation level 8 not at correct indentation, 452
ErrorsLine is longer than 80 characters.53
Errorsmethod def child at indentation level 8 not at correct indentation, 453
ErrorsLine is longer than 80 characters.54
Errorsmethod def child at indentation level 8 not at correct indentation, 454
Errorsmethod def child at indentation level 8 not at correct indentation, 455
ErrorsLine is longer than 80 characters.57
Errorsmethod def child at indentation level 8 not at correct indentation, 468
ErrorsLine is longer than 80 characters.69
Errorsmethod def child at indentation level 8 not at correct indentation, 469
ErrorsLine is longer than 80 characters.70
Errorsmethod def child at indentation level 8 not at correct indentation, 470
Errorsmethod def child at indentation level 8 not at correct indentation, 472
Errorsmethod def child at indentation level 8 not at correct indentation, 473
Errorsmethod def child at indentation level 8 not at correct indentation, 474
Errorsif at indentation level 8 not at correct indentation, 476
ErrorsLine is longer than 80 characters.77
Errorsif child at indentation level 12 not at correct indentation, 677
ErrorsLine is longer than 80 characters.78
Errorsif child at indentation level 12 not at correct indentation, 678
Errorsif rcurly at indentation level 8 not at correct indentation, 479
ErrorsLine is longer than 80 characters.80
Errorselse child at indentation level 12 not at correct indentation, 680
Errorsif at indentation level 12 not at correct indentation, 681
ErrorsLine is longer than 80 characters.82
Errorsif child at indentation level 16 not at correct indentation, 882
Errorsif rcurly at indentation level 12 not at correct indentation, 683
Errorselse rcurly at indentation level 8 not at correct indentation, 484
Errorsmethod def rcurly at indentation level 4 not at correct indentation, 285
Errorsmethod def modifier at indentation level 4 not at correct indentation, 287
Errorsmethod def modifier at indentation level 4 not at correct indentation, 288
Errorsif at indentation level 8 not at correct indentation, 489
Errorsif child at indentation level 12 not at correct indentation, 690
Errorsif child at indentation level 12 not at correct indentation, 691
Errorsif child at indentation level 12 not at correct indentation, 692
Errorsif rcurly at indentation level 8 not at correct indentation, 493
Errorsmethod def rcurly at indentation level 4 not at correct indentation, 294
Errorsmethod def modifier at indentation level 4 not at correct indentation, 2107
ErrorsLine is longer than 80 characters.108
Errorsmethod def modifier at indentation level 4 not at correct indentation, 2108
Errorstry at indentation level 8 not at correct indentation, 4109
Errorstry child at indentation level 12 not at correct indentation, 6110
ErrorsLine is longer than 80 characters.112
Errorsfor at indentation level 12 not at correct indentation, 6112
Errorsfor child at indentation level 16 not at correct indentation, 8113
Errorsfor rcurly at indentation level 12 not at correct indentation, 6114
Errorstry child at indentation level 12 not at correct indentation, 6116
Errorstry child at indentation level 12 not at correct indentation, 6118
Errorstry child at indentation level 12 not at correct indentation, 6123
Errorstry rcurly at indentation level 8 not at correct indentation, 4124
Errorscatch child at indentation level 12 not at correct indentation, 6125
Errorscatch rcurly at indentation level 8 not at correct indentation, 4126
Errorsmethod def child at indentation level 8 not at correct indentation, 4127
Errorsmethod def rcurly at indentation level 4 not at correct indentation, 2128
Errorsmethod def modifier at indentation level 4 not at correct indentation, 2138
Errorsmethod def modifier at indentation level 4 not at correct indentation, 2139
Errorstry at indentation level 8 not at correct indentation, 4140
Errorstry child at indentation level 12 not at correct indentation, 6141
Errorstry child at indentation level 12 not at correct indentation, 6144
Errorstry rcurly at indentation level 8 not at correct indentation, 4145
Errorscatch child at indentation level 12 not at correct indentation, 6146
Errorscatch rcurly at indentation level 8 not at correct indentation, 4147
Errorsmethod def child at indentation level 8 not at correct indentation, 4148
Errorsmethod def rcurly at indentation level 4 not at correct indentation, 2149
Errorsmethod def modifier at indentation level 4 not at correct indentation, 2161
ErrorsLine is longer than 80 characters.162
Errorsmethod def modifier at indentation level 4 not at correct indentation, 2162
Errorstry at indentation level 8 not at correct indentation, 4163
Errorstry child at indentation level 12 not at correct indentation, 6164
Errorsif at indentation level 12 not at correct indentation, 6168
Errorsif at indentation level 16 not at correct indentation, 8169
Errorsfor at indentation level 20 not at correct indentation, 10170
ErrorsLine is longer than 80 characters.171
Errorsfor child at indentation level 24 not at correct indentation, 12171
Errorsfor rcurly at indentation level 20 not at correct indentation, 10172
Errorsif rcurly at indentation level 16 not at correct indentation, 8173
Errorsfor at indentation level 20 not at correct indentation, 10174
ErrorsLine is longer than 80 characters.175
Errorsfor child at indentation level 24 not at correct indentation, 12175
Errorsfor rcurly at indentation level 20 not at correct indentation, 10176
Errorselse rcurly at indentation level 16 not at correct indentation, 8177
Errorsif child at indentation level 16 not at correct indentation, 8178
Errorsif rcurly at indentation level 12 not at correct indentation, 6179
Errorstry rcurly at indentation level 8 not at correct indentation, 4180
Errorscatch child at indentation level 12 not at correct indentation, 6181
Errorscatch rcurly at indentation level 8 not at correct indentation, 4182
Errorsmethod def child at indentation level 8 not at correct indentation, 4183
Errorsmethod def rcurly at indentation level 4 not at correct indentation, 2184
Errorsmethod def modifier at indentation level 4 not at correct indentation, 2197
ErrorsLine is longer than 80 characters.198
Errorsmethod def modifier at indentation level 4 not at correct indentation, 2198
Errorstry at indentation level 8 not at correct indentation, 4199
Errorstry child at indentation level 12 not at correct indentation, 6200
Errorsif at indentation level 12 not at correct indentation, 6204
ErrorsLine is longer than 80 characters.205
Errorsfor at indentation level 16 not at correct indentation, 8205
Errorsfor child at indentation level 20 not at correct indentation, 10206
Errorsfor rcurly at indentation level 16 not at correct indentation, 8207
Errorsif child at indentation level 16 not at correct indentation, 8209
Errorsif child at indentation level 16 not at correct indentation, 8214
Errorsif rcurly at indentation level 12 not at correct indentation, 6215
Errorstry rcurly at indentation level 8 not at correct indentation, 4217
Errorscatch child at indentation level 12 not at correct indentation, 6218
Errorscatch rcurly at indentation level 8 not at correct indentation, 4219
Errorsmethod def child at indentation level 8 not at correct indentation, 4220
Errorsmethod def rcurly at indentation level 4 not at correct indentation, 2221
Errorsmethod def modifier at indentation level 4 not at correct indentation, 2236
ErrorsLine is longer than 80 characters.237
Errorsmethod def modifier at indentation level 4 not at correct indentation, 2237
Errorstry at indentation level 8 not at correct indentation, 4238
Errorstry child at indentation level 12 not at correct indentation, 6239
Errorstry child at indentation level 12 not at correct indentation, 6240
Errorstry child at indentation level 12 not at correct indentation, 6248
Errorsfor at indentation level 12 not at correct indentation, 6250
Errorsfor child at indentation level 16 not at correct indentation, 8251
Errorsfor at indentation level 16 not at correct indentation, 8253
ErrorsLine is longer than 80 characters.254
Errorsfor child at indentation level 20 not at correct indentation, 10254
Errorsfor rcurly at indentation level 16 not at correct indentation, 8255
Errorsfor child at indentation level 16 not at correct indentation, 8257
Errorsfor rcurly at indentation level 12 not at correct indentation, 6258
Errorstry child at indentation level 12 not at correct indentation, 6260
Errorstry rcurly at indentation level 8 not at correct indentation, 4261
Errorscatch child at indentation level 12 not at correct indentation, 6262
Errorscatch rcurly at indentation level 8 not at correct indentation, 4263
Errorsmethod def child at indentation level 8 not at correct indentation, 4264
Errorsmethod def rcurly at indentation level 4 not at correct indentation, 2265
-
-
-
-
-
- - - DELETED YCSB/elasticsearch/target/site/checkstyle.rss Index: YCSB/elasticsearch/target/site/checkstyle.rss ================================================================== --- YCSB/elasticsearch/target/site/checkstyle.rss +++ /dev/null @@ -1,51 +0,0 @@ - - - - - ElasticSearch Binding - Checkstyle report - ${project.url} - ElasticSearch Binding - Checkstyle report - en-us - ©2013 - - File: 1, - Errors: 136, - Warnings: 0, - Infos: 0 - - ${project.url}/checkstyle.html - -

Click here for the full Checkstyle report.

- - - - - - - - - - - - - - - - - - -
FilesIWE
- com/yahoo/ycsb/db/ElasticSearchClient.java - - 0 - - 0 - - 136 -
- -
-
-
-
- DELETED YCSB/elasticsearch/target/site/images/rss.png Index: YCSB/elasticsearch/target/site/images/rss.png ================================================================== --- YCSB/elasticsearch/target/site/images/rss.png +++ /dev/null cannot compute difference between binary files DELETED YCSB/elasticsearch/target/surefire-reports/TEST-com.yahoo.ycsb.db.ElasticSearchClientTest.xml Index: YCSB/elasticsearch/target/surefire-reports/TEST-com.yahoo.ycsb.db.ElasticSearchClientTest.xml ================================================================== --- YCSB/elasticsearch/target/surefire-reports/TEST-com.yahoo.ycsb.db.ElasticSearchClientTest.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DELETED YCSB/elasticsearch/target/surefire-reports/com.yahoo.ycsb.db.ElasticSearchClientTest.txt Index: YCSB/elasticsearch/target/surefire-reports/com.yahoo.ycsb.db.ElasticSearchClientTest.txt ================================================================== --- YCSB/elasticsearch/target/surefire-reports/com.yahoo.ycsb.db.ElasticSearchClientTest.txt +++ /dev/null @@ -1,4 +0,0 @@ -------------------------------------------------------------------------------- -Test set: com.yahoo.ycsb.db.ElasticSearchClientTest -------------------------------------------------------------------------------- -Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 5.741 sec DELETED YCSB/elasticsearch/target/surefire-reports/com.yahoo.ycsb.db.ElasticSearchClientTest/Command line test.html Index: YCSB/elasticsearch/target/surefire-reports/com.yahoo.ycsb.db.ElasticSearchClientTest/Command line test.html ================================================================== --- YCSB/elasticsearch/target/surefire-reports/com.yahoo.ycsb.db.ElasticSearchClientTest/Command line test.html +++ /dev/null @@ -1,104 +0,0 @@ - - -TestNG: Command line test - - - - - - - - -

Command line test

- - - - - - - - - - - -
Tests passed/Failed/Skipped:5/0/0
Started on:Tue Mar 12 07:17:59 UTC 2013
Total time:5 seconds (5062 ms)
Included groups:
Excluded groups:

-(Hover the method name to see the test class name)

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PASSED TESTS
Test methodExceptionTime (seconds)Instance
testDelete
Test class: com.yahoo.ycsb.db.ElasticSearchClientTest
0com.yahoo.ycsb.db.ElasticSearchClientTest@9a8d9b
testInsert
Test class: com.yahoo.ycsb.db.ElasticSearchClientTest
0com.yahoo.ycsb.db.ElasticSearchClientTest@9a8d9b
testRead
Test class: com.yahoo.ycsb.db.ElasticSearchClientTest
0com.yahoo.ycsb.db.ElasticSearchClientTest@9a8d9b
testScan
Test class: com.yahoo.ycsb.db.ElasticSearchClientTest
0com.yahoo.ycsb.db.ElasticSearchClientTest@9a8d9b
testUpdate
Test class: com.yahoo.ycsb.db.ElasticSearchClientTest
0com.yahoo.ycsb.db.ElasticSearchClientTest@9a8d9b

- - DELETED YCSB/elasticsearch/target/surefire-reports/com.yahoo.ycsb.db.ElasticSearchClientTest/Command line test.properties Index: YCSB/elasticsearch/target/surefire-reports/com.yahoo.ycsb.db.ElasticSearchClientTest/Command line test.properties ================================================================== --- YCSB/elasticsearch/target/surefire-reports/com.yahoo.ycsb.db.ElasticSearchClientTest/Command line test.properties +++ /dev/null @@ -1,1 +0,0 @@ -[SuiteResult Command line test] DELETED YCSB/elasticsearch/target/surefire-reports/com.yahoo.ycsb.db.ElasticSearchClientTest/Command line test.xml Index: YCSB/elasticsearch/target/surefire-reports/com.yahoo.ycsb.db.ElasticSearchClientTest/Command line test.xml ================================================================== --- YCSB/elasticsearch/target/surefire-reports/com.yahoo.ycsb.db.ElasticSearchClientTest/Command line test.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - DELETED YCSB/elasticsearch/target/surefire-reports/com.yahoo.ycsb.db.ElasticSearchClientTest/classes.html Index: YCSB/elasticsearch/target/surefire-reports/com.yahoo.ycsb.db.ElasticSearchClientTest/classes.html ================================================================== --- YCSB/elasticsearch/target/surefire-reports/com.yahoo.ycsb.db.ElasticSearchClientTest/classes.html +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Class nameMethod nameGroups
com.yahoo.ycsb.db.ElasticSearchClientTest  
@Test
 testUpdate 
 testInsert 
 testScan 
 testDelete 
 testRead 
@BeforeClass
 setUpClass 
@BeforeMethod
 setUp 
@AfterMethod
 tearDown 
@AfterClass
 tearDownClass 
DELETED YCSB/elasticsearch/target/surefire-reports/com.yahoo.ycsb.db.ElasticSearchClientTest/groups.html Index: YCSB/elasticsearch/target/surefire-reports/com.yahoo.ycsb.db.ElasticSearchClientTest/groups.html ================================================================== --- YCSB/elasticsearch/target/surefire-reports/com.yahoo.ycsb.db.ElasticSearchClientTest/groups.html +++ /dev/null @@ -1,1 +0,0 @@ -

Groups used for this test run

DELETED YCSB/elasticsearch/target/surefire-reports/com.yahoo.ycsb.db.ElasticSearchClientTest/index.html Index: YCSB/elasticsearch/target/surefire-reports/com.yahoo.ycsb.db.ElasticSearchClientTest/index.html ================================================================== --- YCSB/elasticsearch/target/surefire-reports/com.yahoo.ycsb.db.ElasticSearchClientTest/index.html +++ /dev/null @@ -1,6 +0,0 @@ -Results for com.yahoo.ycsb.db.ElasticSearchClientTest - - - - - DELETED YCSB/elasticsearch/target/surefire-reports/com.yahoo.ycsb.db.ElasticSearchClientTest/main.html Index: YCSB/elasticsearch/target/surefire-reports/com.yahoo.ycsb.db.ElasticSearchClientTest/main.html ================================================================== --- YCSB/elasticsearch/target/surefire-reports/com.yahoo.ycsb.db.ElasticSearchClientTest/main.html +++ /dev/null @@ -1,2 +0,0 @@ -Results for com.yahoo.ycsb.db.ElasticSearchClientTest -Select a result on the left-hand pane. DELETED YCSB/elasticsearch/target/surefire-reports/com.yahoo.ycsb.db.ElasticSearchClientTest/methods-alphabetical.html Index: YCSB/elasticsearch/target/surefire-reports/com.yahoo.ycsb.db.ElasticSearchClientTest/methods-alphabetical.html ================================================================== --- YCSB/elasticsearch/target/surefire-reports/com.yahoo.ycsb.db.ElasticSearchClientTest/methods-alphabetical.html +++ /dev/null @@ -1,38 +0,0 @@ -

Methods run, sorted chronologically

>> means before, << means after


com.yahoo.ycsb.db.ElasticSearchClientTest

(Hover the method name to see the test class name)

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
TimeDelta (ms)Suite
configuration
Test
configuration
Class
configuration
Groups
configuration
Method
configuration
Test
method
ThreadInstances
13/03/12 07:18:03 0     >>setUp  main@1251696669
13/03/12 07:18:03 351     >>setUp  main@1251696669
13/03/12 07:18:03 364     >>setUp  main@1251696669
13/03/12 07:18:03 384     >>setUp  main@1251696669
13/03/12 07:18:04 564     >>setUp  main@1251696669
13/03/12 07:17:59 -4376   >>setUpClass    main@1251696669
13/03/12 07:18:03 349     <<tearDown  main@1251696669
13/03/12 07:18:03 362     <<tearDown  main@1251696669
13/03/12 07:18:03 383     <<tearDown  main@1251696669
13/03/12 07:18:04 561     <<tearDown  main@1251696669
13/03/12 07:18:04 572     <<tearDown  main@1251696669
13/03/12 07:18:04 573   <<tearDownClass    main@1251696669
13/03/12 07:18:03 336      testDeletemain@1251696669
13/03/12 07:18:03 357      testInsertmain@1251696669
13/03/12 07:18:03 368      testReadmain@1251696669
13/03/12 07:18:03 388      testScanmain@1251696669
13/03/12 07:18:04 567      testUpdatemain@1251696669
DELETED YCSB/elasticsearch/target/surefire-reports/com.yahoo.ycsb.db.ElasticSearchClientTest/methods-not-run.html Index: YCSB/elasticsearch/target/surefire-reports/com.yahoo.ycsb.db.ElasticSearchClientTest/methods-not-run.html ================================================================== --- YCSB/elasticsearch/target/surefire-reports/com.yahoo.ycsb.db.ElasticSearchClientTest/methods-not-run.html +++ /dev/null @@ -1,2 +0,0 @@ -

Methods that were not run

-
DELETED YCSB/elasticsearch/target/surefire-reports/com.yahoo.ycsb.db.ElasticSearchClientTest/methods.html Index: YCSB/elasticsearch/target/surefire-reports/com.yahoo.ycsb.db.ElasticSearchClientTest/methods.html ================================================================== --- YCSB/elasticsearch/target/surefire-reports/com.yahoo.ycsb.db.ElasticSearchClientTest/methods.html +++ /dev/null @@ -1,38 +0,0 @@ -

Methods run, sorted chronologically

>> means before, << means after


com.yahoo.ycsb.db.ElasticSearchClientTest

(Hover the method name to see the test class name)

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
TimeDelta (ms)Suite
configuration
Test
configuration
Class
configuration
Groups
configuration
Method
configuration
Test
method
ThreadInstances
13/03/12 07:17:59 0   >>setUpClass    main@1251696669
13/03/12 07:18:03 4376     >>setUp  main@1251696669
13/03/12 07:18:03 4712      testDeletemain@1251696669
13/03/12 07:18:03 4725     <<tearDown  main@1251696669
13/03/12 07:18:03 4727     >>setUp  main@1251696669
13/03/12 07:18:03 4733      testInsertmain@1251696669
13/03/12 07:18:03 4738     <<tearDown  main@1251696669
13/03/12 07:18:03 4740     >>setUp  main@1251696669
13/03/12 07:18:03 4744      testReadmain@1251696669
13/03/12 07:18:03 4759     <<tearDown  main@1251696669
13/03/12 07:18:03 4760     >>setUp  main@1251696669
13/03/12 07:18:03 4764      testScanmain@1251696669
13/03/12 07:18:04 4937     <<tearDown  main@1251696669
13/03/12 07:18:04 4940     >>setUp  main@1251696669
13/03/12 07:18:04 4943      testUpdatemain@1251696669
13/03/12 07:18:04 4948     <<tearDown  main@1251696669
13/03/12 07:18:04 4949   <<tearDownClass    main@1251696669
DELETED YCSB/elasticsearch/target/surefire-reports/com.yahoo.ycsb.db.ElasticSearchClientTest/reporter-output.html Index: YCSB/elasticsearch/target/surefire-reports/com.yahoo.ycsb.db.ElasticSearchClientTest/reporter-output.html ================================================================== --- YCSB/elasticsearch/target/surefire-reports/com.yahoo.ycsb.db.ElasticSearchClientTest/reporter-output.html +++ /dev/null @@ -1,1 +0,0 @@ -

Reporter output

DELETED YCSB/elasticsearch/target/surefire-reports/com.yahoo.ycsb.db.ElasticSearchClientTest/testng.xml.html Index: YCSB/elasticsearch/target/surefire-reports/com.yahoo.ycsb.db.ElasticSearchClientTest/testng.xml.html ================================================================== --- YCSB/elasticsearch/target/surefire-reports/com.yahoo.ycsb.db.ElasticSearchClientTest/testng.xml.html +++ /dev/null @@ -1,1 +0,0 @@ -testng.xml for com.yahoo.ycsb.db.ElasticSearchClientTest<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite verbose="0" name="com.yahoo.ycsb.db.ElasticSearchClientTest">
  <test name="Command line test" preserve-order="false">
    <classes>
      <class name="com.yahoo.ycsb.db.ElasticSearchClientTest"/>
    </classes>
  </test>
</suite>
DELETED YCSB/elasticsearch/target/surefire-reports/com.yahoo.ycsb.db.ElasticSearchClientTest/toc.html Index: YCSB/elasticsearch/target/surefire-reports/com.yahoo.ycsb.db.ElasticSearchClientTest/toc.html ================================================================== --- YCSB/elasticsearch/target/surefire-reports/com.yahoo.ycsb.db.ElasticSearchClientTest/toc.html +++ /dev/null @@ -1,30 +0,0 @@ - - -Results for com.yahoo.ycsb.db.ElasticSearchClientTest - - - - -

Results for
com.yahoo.ycsb.db.ElasticSearchClientTest

- - - - - - - - - - -
1 test1 class5 methods:
-  chronological
-  alphabetical
-  not run (0)
0 groupreporter outputtestng.xml
- -

-

-
Command line test (5/0/0) - Results -
-
- DELETED YCSB/elasticsearch/target/surefire-reports/emailable-report.html Index: YCSB/elasticsearch/target/surefire-reports/emailable-report.html ================================================================== --- YCSB/elasticsearch/target/surefire-reports/emailable-report.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -TestNG: Unit Test - - - - - - -
TestMethods
Passed
Scenarios
Passed
# skipped# failedTotal
Time
Included
Groups
Excluded
Groups
Command line test55005.1 seconds
- - - - - -
ClassMethod# of
Scenarios
Time
(Msecs)
Command line test — passed
com.yahoo.ycsb.db.ElasticSearchClientTesttestDelete 16
testUpdate 14
testRead 114
testScan 1173
testInsert 15
-

Command line test

-

com.yahoo.ycsb.db.ElasticSearchClientTest:testDelete

-

back to summary

-

com.yahoo.ycsb.db.ElasticSearchClientTest:testUpdate

-

back to summary

-

com.yahoo.ycsb.db.ElasticSearchClientTest:testRead

-

back to summary

-

com.yahoo.ycsb.db.ElasticSearchClientTest:testScan

-

back to summary

-

com.yahoo.ycsb.db.ElasticSearchClientTest:testInsert

-

back to summary

- DELETED YCSB/elasticsearch/target/surefire-reports/index.html Index: YCSB/elasticsearch/target/surefire-reports/index.html ================================================================== --- YCSB/elasticsearch/target/surefire-reports/index.html +++ /dev/null @@ -1,9 +0,0 @@ - -Test results - - -

Test results

- - - -
SuitePassedFailedSkippedtestng.xml
Total500 
com.yahoo.ycsb.db.ElasticSearchClientTest500Link
DELETED YCSB/elasticsearch/target/surefire-reports/junitreports/TEST-com.yahoo.ycsb.db.ElasticSearchClientTest.xml Index: YCSB/elasticsearch/target/surefire-reports/junitreports/TEST-com.yahoo.ycsb.db.ElasticSearchClientTest.xml ================================================================== --- YCSB/elasticsearch/target/surefire-reports/junitreports/TEST-com.yahoo.ycsb.db.ElasticSearchClientTest.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - DELETED YCSB/elasticsearch/target/surefire-reports/testng-results.xml Index: YCSB/elasticsearch/target/surefire-reports/testng-results.xml ================================================================== --- YCSB/elasticsearch/target/surefire-reports/testng-results.xml +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DELETED YCSB/elasticsearch/target/surefire-reports/testng.css Index: YCSB/elasticsearch/target/surefire-reports/testng.css ================================================================== --- YCSB/elasticsearch/target/surefire-reports/testng.css +++ /dev/null @@ -1,9 +0,0 @@ -.invocation-failed, .test-failed { background-color: #DD0000; } -.invocation-percent, .test-percent { background-color: #006600; } -.invocation-passed, .test-passed { background-color: #00AA00; } -.invocation-skipped, .test-skipped { background-color: #CCCC00; } - -.main-page { - font-size: x-large; -} - DELETED YCSB/elasticsearch/target/test-classes/com/yahoo/ycsb/db/ElasticSearchClientTest.class Index: YCSB/elasticsearch/target/test-classes/com/yahoo/ycsb/db/ElasticSearchClientTest.class ================================================================== --- YCSB/elasticsearch/target/test-classes/com/yahoo/ycsb/db/ElasticSearchClientTest.class +++ /dev/null cannot compute difference between binary files DELETED YCSB/gemfire/pom.xml Index: YCSB/gemfire/pom.xml ================================================================== --- YCSB/gemfire/pom.xml +++ /dev/null @@ -1,58 +0,0 @@ - - - 4.0.0 - - com.yahoo.ycsb - root - 0.1.4 - - - gemfire-binding - Gemfire DB Binding - jar - - - - com.gemstone.gemfire - gemfire - 6.6 - - - com.yahoo.ycsb - core - ${project.version} - - - - - - gemstone - http://dist.gemstone.com.s3.amazonaws.com/maven/release/ - - - - - - - org.apache.maven.plugins - maven-assembly-plugin - ${maven.assembly.version} - - - jar-with-dependencies - - false - - - - package - - single - - - - - - - - DELETED YCSB/gemfire/src/main/conf/cache.xml Index: YCSB/gemfire/src/main/conf/cache.xml ================================================================== --- YCSB/gemfire/src/main/conf/cache.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - DELETED YCSB/gemfire/src/main/java/com/yahoo/ycsb/db/GemFireClient.java Index: YCSB/gemfire/src/main/java/com/yahoo/ycsb/db/GemFireClient.java ================================================================== --- YCSB/gemfire/src/main/java/com/yahoo/ycsb/db/GemFireClient.java +++ /dev/null @@ -1,200 +0,0 @@ -package com.yahoo.ycsb.db; - -import java.util.HashMap; -import java.util.Map; -import java.util.Properties; -import java.util.Set; -import java.util.Vector; - -import com.gemstone.gemfire.cache.Cache; -import com.gemstone.gemfire.cache.CacheFactory; -import com.gemstone.gemfire.cache.GemFireCache; -import com.gemstone.gemfire.cache.Region; -import com.gemstone.gemfire.cache.RegionExistsException; -import com.gemstone.gemfire.cache.RegionFactory; -import com.gemstone.gemfire.cache.RegionShortcut; -import com.gemstone.gemfire.cache.client.ClientCache; -import com.gemstone.gemfire.cache.client.ClientCacheFactory; -import com.gemstone.gemfire.cache.client.ClientRegionFactory; -import com.gemstone.gemfire.cache.client.ClientRegionShortcut; -import com.gemstone.gemfire.internal.admin.remote.DistributionLocatorId; -import com.yahoo.ycsb.ByteArrayByteIterator; -import com.yahoo.ycsb.ByteIterator; -import com.yahoo.ycsb.DB; -import com.yahoo.ycsb.DBException; -import com.yahoo.ycsb.StringByteIterator; - -/** - * VMware vFabric GemFire client for the YCSB benchmark.
- *

By default acts as a GemFire client and tries to connect - * to GemFire cache server running on localhost with default - * cache server port. Hostname and port of a GemFire cacheServer - * can be provided using gemfire.serverport=port and - * gemfire.serverhost=host properties on YCSB command line. - * A locator may also be used for discovering a cacheServer - * by using the property gemfire.locator=host[port]

- * - *

To run this client in a peer-to-peer topology with other GemFire - * nodes, use the property gemfire.topology=p2p. Running - * in p2p mode will enable embedded caching in this client.

- * - *

YCSB by default does its operations against "usertable". When running - * as a client this is a ClientRegionShortcut.PROXY region, - * when running in p2p mode it is a RegionShortcut.PARTITION - * region. A cache.xml defining "usertable" region can be placed in the - * working directory to override these region definitions.

- * - * @author Swapnil Bawaskar (sbawaska at vmware) - * - */ -public class GemFireClient extends DB { - - /** Return code when operation succeeded */ - private static final int SUCCESS = 0; - - /** Return code when operation did not succeed */ - private static final int ERROR = -1; - - /** property name of the port where GemFire server is listening for connections */ - private static final String SERVERPORT_PROPERTY_NAME = "gemfire.serverport"; - - /** property name of the host where GemFire server is running */ - private static final String SERVERHOST_PROPERTY_NAME = "gemfire.serverhost"; - - /** default value of {@link #SERVERHOST_PROPERTY_NAME} */ - private static final String SERVERHOST_PROPERTY_DEFAULT = "localhost"; - - /** property name to specify a GemFire locator. This property can be used in both - * client server and p2p topology */ - private static final String LOCATOR_PROPERTY_NAME = "gemfire.locator"; - - /** property name to specify GemFire topology */ - private static final String TOPOLOGY_PROPERTY_NAME = "gemfire.topology"; - - /** value of {@value #TOPOLOGY_PROPERTY_NAME} when peer to peer topology should be used. - * (client-server topology is default) */ - private static final String TOPOLOGY_P2P_VALUE = "p2p"; - - private GemFireCache cache; - - /** - * true if ycsb client runs as a client to a - * GemFire cache server - */ - private boolean isClient; - - @Override - public void init() throws DBException { - Properties props = getProperties(); - // hostName where GemFire cacheServer is running - String serverHost = null; - // port of GemFire cacheServer - int serverPort = 0; - String locatorStr = null; - - if (props != null && !props.isEmpty()) { - String serverPortStr = props.getProperty(SERVERPORT_PROPERTY_NAME); - if (serverPortStr != null) { - serverPort = Integer.parseInt(serverPortStr); - } - serverHost = props.getProperty(SERVERHOST_PROPERTY_NAME, SERVERHOST_PROPERTY_DEFAULT); - locatorStr = props.getProperty(LOCATOR_PROPERTY_NAME); - - String topology = props.getProperty(TOPOLOGY_PROPERTY_NAME); - if (topology != null && topology.equals(TOPOLOGY_P2P_VALUE)) { - CacheFactory cf = new CacheFactory(); - if (locatorStr != null) { - cf.set("locators", locatorStr); - } - cache = cf.create(); - isClient = false; - return; - } - } - isClient = true; - DistributionLocatorId locator = null; - if (locatorStr != null) { - locator = new DistributionLocatorId(locatorStr); - } - ClientCacheFactory ccf = new ClientCacheFactory(); - if (serverPort != 0) { - ccf.addPoolServer(serverHost, serverPort); - } else if (locator != null) { - ccf.addPoolLocator(locator.getHost().getCanonicalHostName(), locator.getPort()); - } - cache = ccf.create(); - } - - @Override - public int read(String table, String key, Set fields, - HashMap result) { - Region> r = getRegion(table); - Map val = r.get(key); - if (val != null) { - if (fields == null) { - for (String k : val.keySet()) { - result.put(key, new ByteArrayByteIterator(val.get(key))); - } - } else { - for (String field : fields) { - result.put(field, new ByteArrayByteIterator(val.get(field))); - } - } - return SUCCESS; - } - return ERROR; - } - - @Override - public int scan(String table, String startkey, int recordcount, - Set fields, Vector> result) { - // GemFire does not support scan - return ERROR; - } - - @Override - public int update(String table, String key, HashMap values) { - getRegion(table).put(key, convertToBytearrayMap(values)); - return 0; - } - - @Override - public int insert(String table, String key, HashMap values) { - getRegion(table).put(key, convertToBytearrayMap(values)); - return 0; - } - - @Override - public int delete(String table, String key) { - getRegion(table).destroy(key); - return 0; - } - - private Map convertToBytearrayMap(Map values) { - Map retVal = new HashMap(); - for (String key : values.keySet()) { - retVal.put(key, values.get(key).toArray()); - } - return retVal; - } - - private Region> getRegion(String table) { - Region> r = cache.getRegion(table); - if (r == null) { - try { - if (isClient) { - ClientRegionFactory> crf = ((ClientCache) cache).createClientRegionFactory(ClientRegionShortcut.PROXY); - r = crf.create(table); - } else { - RegionFactory> rf = ((Cache)cache).createRegionFactory(RegionShortcut.PARTITION); - r = rf.create(table); - } - } catch (RegionExistsException e) { - // another thread created the region - r = cache.getRegion(table); - } - } - return r; - } - -} DELETED YCSB/hbase/pom.xml Index: YCSB/hbase/pom.xml ================================================================== --- YCSB/hbase/pom.xml +++ /dev/null @@ -1,55 +0,0 @@ - - - 4.0.0 - - com.yahoo.ycsb - root - 0.1.4 - - - hbase-binding - HBase DB Binding - - - - org.apache.hbase - hbase - ${hbase.version} - - - org.apache.hadoop - hadoop-core - 1.0.0 - - - com.yahoo.ycsb - core - ${project.version} - - - - - - - org.apache.maven.plugins - maven-assembly-plugin - ${maven.assembly.version} - - - jar-with-dependencies - - false - - - - package - - single - - - - - - - - DELETED YCSB/hbase/src/main/conf/hbase-site.xml Index: YCSB/hbase/src/main/conf/hbase-site.xml ================================================================== --- YCSB/hbase/src/main/conf/hbase-site.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - hbase.rootdir - hdfs://:20001/hbase - The directory shared by region servers. - - - - hbase.master - :60000 - The host and port that the HBase master runs at. - - - - hbase.zookeeper.quorum - - - DELETED YCSB/hbase/src/main/java/com/yahoo/ycsb/db/HBaseClient.java Index: YCSB/hbase/src/main/java/com/yahoo/ycsb/db/HBaseClient.java ================================================================== --- YCSB/hbase/src/main/java/com/yahoo/ycsb/db/HBaseClient.java +++ /dev/null @@ -1,527 +0,0 @@ -/** - * Copyright (c) 2010 Yahoo! Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you - * may not use this file except in compliance with the License. You - * may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - * implied. See the License for the specific language governing - * permissions and limitations under the License. See accompanying - * LICENSE file. - */ - -package com.yahoo.ycsb.db; - - -import com.yahoo.ycsb.DBException; -import com.yahoo.ycsb.ByteIterator; -import com.yahoo.ycsb.ByteArrayByteIterator; -import com.yahoo.ycsb.StringByteIterator; - -import java.io.IOException; -import java.util.*; -//import java.util.HashMap; -//import java.util.Properties; -//import java.util.Set; -//import java.util.Vector; - -import com.yahoo.ycsb.measurements.Measurements; -import org.apache.hadoop.conf.Configuration; -import org.apache.hadoop.hbase.KeyValue; -import org.apache.hadoop.hbase.client.HTable; -//import org.apache.hadoop.hbase.client.Scanner; -import org.apache.hadoop.hbase.client.Get; -import org.apache.hadoop.hbase.client.Put; -import org.apache.hadoop.hbase.client.Delete; -import org.apache.hadoop.hbase.client.Scan; -import org.apache.hadoop.hbase.client.Result; -import org.apache.hadoop.hbase.client.ResultScanner; -//import org.apache.hadoop.hbase.io.Cell; -//import org.apache.hadoop.hbase.io.RowResult; -import org.apache.hadoop.hbase.util.Bytes; -import org.apache.hadoop.hbase.HBaseConfiguration; - -/** - * HBase client for YCSB framework - */ -public class HBaseClient extends com.yahoo.ycsb.DB -{ - // BFC: Change to fix broken build (with HBase 0.20.6) - //private static final Configuration config = HBaseConfiguration.create(); - private static final Configuration config = HBaseConfiguration.create(); //new HBaseConfiguration(); - - public boolean _debug=false; - - public String _table=""; - public HTable _hTable=null; - public String _columnFamily=""; - public byte _columnFamilyBytes[]; - - public static final int Ok=0; - public static final int ServerError=-1; - public static final int HttpError=-2; - public static final int NoMatchingRecord=-3; - - public static final Object tableLock = new Object(); - - /** - * Initialize any state for this DB. - * Called once per DB instance; there is one DB instance per client thread. - */ - public void init() throws DBException - { - if ( (getProperties().getProperty("debug")!=null) && - (getProperties().getProperty("debug").compareTo("true")==0) ) - { - _debug=true; - } - - _columnFamily = getProperties().getProperty("columnfamily"); - if (_columnFamily == null) - { - System.err.println("Error, must specify a columnfamily for HBase table"); - throw new DBException("No columnfamily specified"); - } - _columnFamilyBytes = Bytes.toBytes(_columnFamily); - - } - - /** - * Cleanup any state for this DB. - * Called once per DB instance; there is one DB instance per client thread. - */ - public void cleanup() throws DBException - { - // Get the measurements instance as this is the only client that should - // count clean up time like an update since autoflush is off. - Measurements _measurements = Measurements.getMeasurements(); - try { - long st=System.nanoTime(); - if (_hTable != null) { - _hTable.flushCommits(); - } - long en=System.nanoTime(); - _measurements.measure("UPDATE", (int)((en-st)/1000)); - } catch (IOException e) { - throw new DBException(e); - } - } - - public void getHTable(String table) throws IOException - { - synchronized (tableLock) { - _hTable = new HTable(config, table); - //2 suggestions from http://ryantwopointoh.blogspot.com/2009/01/performance-of-hbase-importing.html - _hTable.setAutoFlush(false); - _hTable.setWriteBufferSize(1024*1024*12); - //return hTable; - } - - } - - /** - * Read a record from the database. Each field/value pair from the result will be stored in a HashMap. - * - * @param table The name of the table - * @param key The record key of the record to read. - * @param fields The list of fields to read, or null for all of them - * @param result A HashMap of field/value pairs for the result - * @return Zero on success, a non-zero error code on error - */ - public int read(String table, String key, Set fields, HashMap result) - { - //if this is a "new" table, init HTable object. Else, use existing one - if (!_table.equals(table)) { - _hTable = null; - try - { - getHTable(table); - _table = table; - } - catch (IOException e) - { - System.err.println("Error accessing HBase table: "+e); - return ServerError; - } - } - - Result r = null; - try - { - if (_debug) { - System.out.println("Doing read from HBase columnfamily "+_columnFamily); - System.out.println("Doing read for key: "+key); - } - Get g = new Get(Bytes.toBytes(key)); - if (fields == null) { - g.addFamily(_columnFamilyBytes); - } else { - for (String field : fields) { - g.addColumn(_columnFamilyBytes, Bytes.toBytes(field)); - } - } - r = _hTable.get(g); - } - catch (IOException e) - { - System.err.println("Error doing get: "+e); - return ServerError; - } - catch (ConcurrentModificationException e) - { - //do nothing for now...need to understand HBase concurrency model better - return ServerError; - } - - for (KeyValue kv : r.raw()) { - result.put( - Bytes.toString(kv.getQualifier()), - new ByteArrayByteIterator(kv.getValue())); - if (_debug) { - System.out.println("Result for field: "+Bytes.toString(kv.getQualifier())+ - " is: "+Bytes.toString(kv.getValue())); - } - - } - return Ok; - } - - /** - * Perform a range scan for a set of records in the database. Each field/value pair from the result will be stored in a HashMap. - * - * @param table The name of the table - * @param startkey The record key of the first record to read. - * @param recordcount The number of records to read - * @param fields The list of fields to read, or null for all of them - * @param result A Vector of HashMaps, where each HashMap is a set field/value pairs for one record - * @return Zero on success, a non-zero error code on error - */ - public int scan(String table, String startkey, int recordcount, Set fields, Vector> result) - { - //if this is a "new" table, init HTable object. Else, use existing one - if (!_table.equals(table)) { - _hTable = null; - try - { - getHTable(table); - _table = table; - } - catch (IOException e) - { - System.err.println("Error accessing HBase table: "+e); - return ServerError; - } - } - - Scan s = new Scan(Bytes.toBytes(startkey)); - //HBase has no record limit. Here, assume recordcount is small enough to bring back in one call. - //We get back recordcount records - s.setCaching(recordcount); - - //add specified fields or else all fields - if (fields == null) - { - s.addFamily(_columnFamilyBytes); - } - else - { - for (String field : fields) - { - s.addColumn(_columnFamilyBytes,Bytes.toBytes(field)); - } - } - - //get results - ResultScanner scanner = null; - try { - scanner = _hTable.getScanner(s); - int numResults = 0; - for (Result rr = scanner.next(); rr != null; rr = scanner.next()) - { - //get row key - String key = Bytes.toString(rr.getRow()); - if (_debug) - { - System.out.println("Got scan result for key: "+key); - } - - HashMap rowResult = new HashMap(); - - for (KeyValue kv : rr.raw()) { - rowResult.put( - Bytes.toString(kv.getQualifier()), - new ByteArrayByteIterator(kv.getValue())); - } - //add rowResult to result vector - result.add(rowResult); - numResults++; - if (numResults >= recordcount) //if hit recordcount, bail out - { - break; - } - } //done with row - - } - - catch (IOException e) { - if (_debug) - { - System.out.println("Error in getting/parsing scan result: "+e); - } - return ServerError; - } - - finally { - scanner.close(); - } - - return Ok; - } - - /** - * Update a record in the database. Any field/value pairs in the specified values HashMap will be written into the record with the specified - * record key, overwriting any existing values with the same field name. - * - * @param table The name of the table - * @param key The record key of the record to write - * @param values A HashMap of field/value pairs to update in the record - * @return Zero on success, a non-zero error code on error - */ - public int update(String table, String key, HashMap values) - { - //if this is a "new" table, init HTable object. Else, use existing one - if (!_table.equals(table)) { - _hTable = null; - try - { - getHTable(table); - _table = table; - } - catch (IOException e) - { - System.err.println("Error accessing HBase table: "+e); - return ServerError; - } - } - - - if (_debug) { - System.out.println("Setting up put for key: "+key); - } - Put p = new Put(Bytes.toBytes(key)); - for (Map.Entry entry : values.entrySet()) - { - if (_debug) { - System.out.println("Adding field/value " + entry.getKey() + "/"+ - entry.getValue() + " to put request"); - } - p.add(_columnFamilyBytes,Bytes.toBytes(entry.getKey()),entry.getValue().toArray()); - } - - try - { - _hTable.put(p); - } - catch (IOException e) - { - if (_debug) { - System.err.println("Error doing put: "+e); - } - return ServerError; - } - catch (ConcurrentModificationException e) - { - //do nothing for now...hope this is rare - return ServerError; - } - - return Ok; - } - - /** - * Insert a record in the database. Any field/value pairs in the specified values HashMap will be written into the record with the specified - * record key. - * - * @param table The name of the table - * @param key The record key of the record to insert. - * @param values A HashMap of field/value pairs to insert in the record - * @return Zero on success, a non-zero error code on error - */ - public int insert(String table, String key, HashMap values) - { - return update(table,key,values); - } - - /** - * Delete a record from the database. - * - * @param table The name of the table - * @param key The record key of the record to delete. - * @return Zero on success, a non-zero error code on error - */ - public int delete(String table, String key) - { - //if this is a "new" table, init HTable object. Else, use existing one - if (!_table.equals(table)) { - _hTable = null; - try - { - getHTable(table); - _table = table; - } - catch (IOException e) - { - System.err.println("Error accessing HBase table: "+e); - return ServerError; - } - } - - if (_debug) { - System.out.println("Doing delete for key: "+key); - } - - Delete d = new Delete(Bytes.toBytes(key)); - try - { - _hTable.delete(d); - } - catch (IOException e) - { - if (_debug) { - System.err.println("Error doing delete: "+e); - } - return ServerError; - } - - return Ok; - } - - public static void main(String[] args) - { - if (args.length!=3) - { - System.out.println("Please specify a threadcount, columnfamily and operation count"); - System.exit(0); - } - - final int keyspace=10000; //120000000; - - final int threadcount=Integer.parseInt(args[0]); - - final String columnfamily=args[1]; - - - final int opcount=Integer.parseInt(args[2])/threadcount; - - Vector allthreads=new Vector(); - - for (int i=0; i result=new HashMap(); - - long accum=0; - - for (int i=0; i s = new HashSet(); - s.add("field1"); - s.add("field2"); - - rescode=cli.read("table1", key, s, result); - //rescode=cli.delete("table1",key); - rescode=cli.read("table1", key, s, result); - */ - HashSet scanFields = new HashSet(); - scanFields.add("field1"); - scanFields.add("field3"); - Vector> scanResults = new Vector>(); - rescode = cli.scan("table1","user2",20,null,scanResults); - - long en=System.currentTimeMillis(); - - accum+=(en-st); - - if (rescode!=Ok) - { - System.out.println("Error "+rescode+" for "+key); - } - - if (i%1==0) - { - System.out.println(i+" operations, average latency: "+(((double)accum)/((double)i))); - } - } - - //System.out.println("Average latency: "+(((double)accum)/((double)opcount))); - //System.out.println("Average get latency: "+(((double)cli.TotalGetTime)/((double)cli.TotalGetOps))); - } - catch (Exception e) - { - e.printStackTrace(); - } - } - }; - allthreads.add(t); - } - - long st=System.currentTimeMillis(); - for (Thread t: allthreads) - { - t.start(); - } - - for (Thread t: allthreads) - { - try - { - t.join(); - } - catch (InterruptedException e) - { - } - } - long en=System.currentTimeMillis(); - - System.out.println("Throughput: "+((1000.0)*(((double)(opcount*threadcount))/((double)(en-st))))+" ops/sec"); - - } -} - -/* For customized vim control - * set autoindent - * set si - * set shiftwidth=4 -*/ - DELETED YCSB/hbase/target/archive-tmp/hbase-binding-0.1.4.jar Index: YCSB/hbase/target/archive-tmp/hbase-binding-0.1.4.jar ================================================================== --- YCSB/hbase/target/archive-tmp/hbase-binding-0.1.4.jar +++ /dev/null cannot compute difference between binary files DELETED YCSB/hbase/target/checkstyle-cachefile Index: YCSB/hbase/target/checkstyle-cachefile ================================================================== --- YCSB/hbase/target/checkstyle-cachefile +++ /dev/null @@ -1,2 +0,0 @@ -#Tue Mar 12 07:17:13 UTC 2013 -configuration*?=B454374BAC07BD47D5176B507938B3E85DB3639C DELETED YCSB/hbase/target/checkstyle-checker.xml Index: YCSB/hbase/target/checkstyle-checker.xml ================================================================== --- YCSB/hbase/target/checkstyle-checker.xml +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DELETED YCSB/hbase/target/checkstyle-header.txt Index: YCSB/hbase/target/checkstyle-header.txt ================================================================== --- YCSB/hbase/target/checkstyle-header.txt +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. DELETED YCSB/hbase/target/checkstyle-result.xml Index: YCSB/hbase/target/checkstyle-result.xml ================================================================== --- YCSB/hbase/target/checkstyle-result.xml +++ /dev/null @@ -1,441 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DELETED YCSB/hbase/target/classes/com/yahoo/ycsb/db/HBaseClient$1.class Index: YCSB/hbase/target/classes/com/yahoo/ycsb/db/HBaseClient$1.class ================================================================== --- YCSB/hbase/target/classes/com/yahoo/ycsb/db/HBaseClient$1.class +++ /dev/null cannot compute difference between binary files DELETED YCSB/hbase/target/classes/com/yahoo/ycsb/db/HBaseClient.class Index: YCSB/hbase/target/classes/com/yahoo/ycsb/db/HBaseClient.class ================================================================== --- YCSB/hbase/target/classes/com/yahoo/ycsb/db/HBaseClient.class +++ /dev/null cannot compute difference between binary files DELETED YCSB/hbase/target/hbase-binding-0.1.4.jar Index: YCSB/hbase/target/hbase-binding-0.1.4.jar ================================================================== --- YCSB/hbase/target/hbase-binding-0.1.4.jar +++ /dev/null cannot compute difference between binary files DELETED YCSB/hbase/target/maven-archiver/pom.properties Index: YCSB/hbase/target/maven-archiver/pom.properties ================================================================== --- YCSB/hbase/target/maven-archiver/pom.properties +++ /dev/null @@ -1,5 +0,0 @@ -#Generated by Maven -#Tue Mar 12 07:17:16 UTC 2013 -version=0.1.4 -groupId=com.yahoo.ycsb -artifactId=hbase-binding DELETED YCSB/hbase/target/site/checkstyle.html Index: YCSB/hbase/target/site/checkstyle.html ================================================================== --- YCSB/hbase/target/site/checkstyle.html +++ /dev/null cannot compute difference between binary files DELETED YCSB/hbase/target/site/checkstyle.rss Index: YCSB/hbase/target/site/checkstyle.rss ================================================================== --- YCSB/hbase/target/site/checkstyle.rss +++ /dev/null @@ -1,51 +0,0 @@ - - - - - HBase DB Binding - Checkstyle report - ${project.url} - HBase DB Binding - Checkstyle report - en-us - ©2013 - - File: 1, - Errors: 436, - Warnings: 0, - Infos: 0 - - ${project.url}/checkstyle.html - -

Click here for the full Checkstyle report.

- - - - - - - - - - - - - - - - - - -
FilesIWE
- com/yahoo/ycsb/db/HBaseClient.java - - 0 - - 0 - - 436 -
- -
-
-
-
- DELETED YCSB/hbase/target/site/images/rss.png Index: YCSB/hbase/target/site/images/rss.png ================================================================== --- YCSB/hbase/target/site/images/rss.png +++ /dev/null cannot compute difference between binary files DELETED YCSB/hypertable/README Index: YCSB/hypertable/README ================================================================== --- YCSB/hypertable/README +++ /dev/null @@ -1,84 +0,0 @@ -1 Install Hypertable - -Installation instructions for Hypertable can be found at: - -code.google.com/p/hypertable/wiki/HypertableManual - - - -2 Set Up YCSB - -Clone the YCSB git repository and compile: - -]$ git clone git://github.com/brianfrankcooper/YCSB.git -]$ cd YCSB -]$ mvn clean package - - - -3 Run Hypertable - -Once it has been installed, start Hypertable by running - -]$ ./bin/ht start all-servers hadoop - -if an instance of HDFS is running or - -]$ ./bin/ht start all-servers local - -if the database is backed by the local file system. YCSB accesses -a table called 'usertable' by default. Create this table through the -Hypertable shell by running - -]$ ./bin/ht shell -hypertable> use '/ycsb'; -hypertable> create table usertable(family); -hypertable> quit - -All iteractions by YCSB take place under the Hypertable namespace '/ycsb'. -Hypertable also uses an additional data grouping structure called a column -family that must be set. YCSB doesn't offer fine grained operations on -column families so in this example the table is created with a single -column family named 'family' to which all column families will belong. -The name of this column family must be passed to YCSB. The table can be -manipulated from within the hypertable shell without interfering with the -operation of YCSB. - - - -4 Run YCSB - -Make sure that an instance of Hypertable is running. To access the database -through the YCSB shell, from the YCSB directory run: - -]$ ./bin/ycsb shell hypertable -p columnfamily=family - -where the value passed to columnfamily matches that used in the table -creation. To run a workload, first load the data: - -]$ ./bin/ycsb load hypertable -P workloads/workloada -p columnfamily=family - -Then run the workload: - -]$ ./bin/ycsb run hypertable -P workloads/workloada -p columnfamily=family - -This example runs the core workload 'workloada' that comes packaged with YCSB. -The state of the YCSB data in the Hypertable database can be reset by dropping -usertable and recreating it. - - - -+ Configuration Parameters - -Hypertable configuration settings can be found in conf/hypertable.cfg under -your main hypertable directory. Make sure that the constant THRIFTBROKER_PORT -in the class HypertableClient matches the setting ThriftBroker.Port in -hypertable.cfg. - -To change the amount of data returned on each call to the ThriftClient on -a Hypertable scan, one must add a new parameter to hypertable.cfg. Include -ThriftBroker.NextThreshold=x where x is set to the size desired in bytes. -The default setting of this parameter is 128000. - -To alter the Hypertable namespace YCSB operates under, change the constant -NAMESPACE in the class HypertableClient. DELETED YCSB/hypertable/pom.xml Index: YCSB/hypertable/pom.xml ================================================================== --- YCSB/hypertable/pom.xml +++ /dev/null @@ -1,63 +0,0 @@ - - - 4.0.0 - - com.yahoo.ycsb - root - 0.1.4 - - - hypertable-binding - Hypertable DB Binding - jar - - - - com.yahoo.ycsb - core - ${project.version} - - - org.apache.thrift - libthrift - ${thrift.version} - - - org.hypertable - hypertable - ${hypertable.version} - - - - - - clojars.org - http://clojars.org/repo - - - - - - - org.apache.maven.plugins - maven-assembly-plugin - ${maven.assembly.version} - - - jar-with-dependencies - - false - - - - package - - single - - - - - - - - DELETED YCSB/hypertable/src/main/java/com/yahoo/ycsb/db/HypertableClient.java Index: YCSB/hypertable/src/main/java/com/yahoo/ycsb/db/HypertableClient.java ================================================================== --- YCSB/hypertable/src/main/java/com/yahoo/ycsb/db/HypertableClient.java +++ /dev/null @@ -1,345 +0,0 @@ -/** - * Licensed under the Apache License, Version 2.0 (the "License"); you - * may not use this file except in compliance with the License. You - * may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - * implied. See the License for the specific language governing - * permissions and limitations under the License. See accompanying - * LICENSE file. - */ - -package com.yahoo.ycsb.db; - - -import java.nio.ByteBuffer; -import java.util.HashMap; -import java.util.Map; -import java.util.Set; -import java.util.Vector; - -import org.apache.thrift.TException; -import org.hypertable.thrift.SerializedCellsFlag; -import org.hypertable.thrift.SerializedCellsWriter; -import org.hypertable.thrift.ThriftClient; -import org.hypertable.thriftgen.Cell; -import org.hypertable.thriftgen.ClientException; -import org.hypertable.thriftgen.Key; -import org.hypertable.thriftgen.KeyFlag; -import org.hypertable.thriftgen.RowInterval; -import org.hypertable.thriftgen.ScanSpec; -import org.hypertable.thrift.SerializedCellsReader; - -import com.yahoo.ycsb.ByteArrayByteIterator; -import com.yahoo.ycsb.ByteIterator; -import com.yahoo.ycsb.DBException; - -/** - * Hypertable client for YCSB framework - */ -public class HypertableClient extends com.yahoo.ycsb.DB -{ - private boolean _debug = false; - - private ThriftClient connection; - private long ns; - - private String _columnFamily = ""; - - public static final int OK = 0; - public static final int SERVERERROR = -1; - - public static final String NAMESPACE = "/ycsb"; - public static final int THRIFTBROKER_PORT = 38080; - - //TODO: make dynamic - public static final int BUFFER_SIZE = 4096; - - /** - * Initialize any state for this DB. - * Called once per DB instance; there is one DB instance per client thread. - */ - @Override - public void init() throws DBException - { - if ( (getProperties().getProperty("debug") != null) && - (getProperties().getProperty("debug").equals("true")) ) - { - _debug = true; - } - - try { - connection = ThriftClient.create("localhost", THRIFTBROKER_PORT); - - if (!connection.namespace_exists(NAMESPACE)) { - connection.namespace_create(NAMESPACE); - } - ns = connection.open_namespace(NAMESPACE); - } catch (ClientException e) { - throw new DBException("Could not open namespace", e); - } catch (TException e) { - throw new DBException("Could not open namespace", e); - } - - - _columnFamily = getProperties().getProperty("columnfamily"); - if (_columnFamily == null) - { - System.err.println("Error, must specify a " + - "columnfamily for Hypertable table"); - throw new DBException("No columnfamily specified"); - } - } - - /** - * Cleanup any state for this DB. - * Called once per DB instance; there is one DB instance per client thread. - */ - @Override - public void cleanup() throws DBException - { - try { - connection.namespace_close(ns); - } catch (ClientException e) { - throw new DBException("Could not close namespace", e); - } catch (TException e) { - throw new DBException("Could not close namespace", e); - } - } - - /** - * Read a record from the database. Each field/value pair from the result - * will be stored in a HashMap. - * - * @param table The name of the table - * @param key The record key of the record to read. - * @param fields The list of fields to read, or null for all of them - * @param result A HashMap of field/value pairs for the result - * @return Zero on success, a non-zero error code on error - */ - @Override - public int read(String table, String key, Set fields, - HashMap result) - { - //SELECT _column_family:field[i] - // FROM table WHERE ROW=key MAX_VERSIONS 1; - - if (_debug) { - System.out.println("Doing read from Hypertable columnfamily " + - _columnFamily); - System.out.println("Doing read for key: " + key); - } - - try { - if (null != fields) { - Vector> resMap = - new Vector>(); - if (0 != scan(table, key, 1, fields, resMap)) { - return SERVERERROR; - } - if (!resMap.isEmpty()) - result.putAll(resMap.firstElement()); - } else { - SerializedCellsReader reader = new SerializedCellsReader(null); - reader.reset(connection.get_row_serialized(ns, table, key)); - while (reader.next()) { - result.put(new String(reader.get_column_qualifier()), - new ByteArrayByteIterator(reader.get_value())); - } - } - } catch (ClientException e) { - if (_debug) { - System.err.println("Error doing read: " + e.message); - } - return SERVERERROR; - } catch (TException e) { - if (_debug) - System.err.println("Error doing read"); - return SERVERERROR; - } - - return OK; - } - - /** - * Perform a range scan for a set of records in the database. Each - * field/value pair from the result will be stored in a HashMap. - * - * @param table The name of the table - * @param startkey The record key of the first record to read. - * @param recordcount The number of records to read - * @param fields The list of fields to read, or null for all of them - * @param result A Vector of HashMaps, where each HashMap is a set - * field/value pairs for one record - * @return Zero on success, a non-zero error code on error - */ - @Override - public int scan(String table, String startkey, int recordcount, - Set fields, - Vector> result) - { - //SELECT _columnFamily:fields FROM table WHERE (ROW >= startkey) - // LIMIT recordcount MAX_VERSIONS 1; - - ScanSpec spec = new ScanSpec(); - RowInterval elem = new RowInterval(); - elem.setStart_inclusive(true); - elem.setStart_row(startkey); - spec.addToRow_intervals(elem); - if (null != fields) { - for (String field : fields) { - spec.addToColumns(_columnFamily + ":" + field); - } - } - spec.setVersions(1); - spec.setRow_limit(recordcount); - - SerializedCellsReader reader = new SerializedCellsReader(null); - - try { - long sc = connection.scanner_open(ns, table, spec); - - String lastRow = null; - boolean eos = false; - while (!eos) { - reader.reset(connection.scanner_get_cells_serialized(sc)); - while (reader.next()) { - String currentRow = new String(reader.get_row()); - if (!currentRow.equals(lastRow)) { - result.add(new HashMap()); - lastRow = currentRow; - } - result.lastElement().put( - new String(reader.get_column_qualifier()), - new ByteArrayByteIterator(reader.get_value())); - } - eos = reader.eos(); - - - if (_debug) { - System.out.println("Number of rows retrieved so far: " + - result.size()); - } - } - connection.scanner_close(sc); - } catch (ClientException e) { - if (_debug) { - System.err.println("Error doing scan: " + e.message); - } - return SERVERERROR; - } catch (TException e) { - if (_debug) - System.err.println("Error doing scan"); - return SERVERERROR; - } - - return OK; - } - - /** - * Update a record in the database. Any field/value pairs in the specified - * values HashMap will be written into the record with the specified - * record key, overwriting any existing values with the same field name. - * - * @param table The name of the table - * @param key The record key of the record to write - * @param values A HashMap of field/value pairs to update in the record - * @return Zero on success, a non-zero error code on error - */ - @Override - public int update(String table, String key, - HashMap values) - { - return insert(table, key, values); - } - - /** - * Insert a record in the database. Any field/value pairs in the specified - * values HashMap will be written into the record with the specified - * record key. - * - * @param table The name of the table - * @param key The record key of the record to insert. - * @param values A HashMap of field/value pairs to insert in the record - * @return Zero on success, a non-zero error code on error - */ - @Override - public int insert(String table, String key, - HashMap values) - { - //INSERT INTO table VALUES - // (key, _column_family:entry,getKey(), entry.getValue()), (...); - - if (_debug) { - System.out.println("Setting up put for key: " + key); - } - - try { - long mutator = connection.mutator_open(ns, table, 0, 0); - SerializedCellsWriter writer = - new SerializedCellsWriter(BUFFER_SIZE*values.size(), true); - for (Map.Entry entry : values.entrySet()) { - writer.add(key, _columnFamily, entry.getKey(), - SerializedCellsFlag.AUTO_ASSIGN, - ByteBuffer.wrap(entry.getValue().toArray())); - } - connection.mutator_set_cells_serialized(mutator, - writer.buffer(), true); - connection.mutator_close(mutator); - } catch (ClientException e) { - if (_debug) { - System.err.println("Error doing set: " + e.message); - } - return SERVERERROR; - } catch (TException e) { - if (_debug) - System.err.println("Error doing set"); - return SERVERERROR; - } - - return OK; - } - - /** - * Delete a record from the database. - * - * @param table The name of the table - * @param key The record key of the record to delete. - * @return Zero on success, a non-zero error code on error - */ - @Override - public int delete(String table, String key) - { - //DELETE * FROM table WHERE ROW=key; - - if (_debug) { - System.out.println("Doing delete for key: "+key); - } - - Cell entry = new Cell(); - entry.key = new Key(); - entry.key.row = key; - entry.key.flag = KeyFlag.DELETE_ROW; - - try { - connection.set_cell(ns, table, entry); - } catch (ClientException e) { - if (_debug) { - System.err.println("Error doing delete: " + e.message); - } - return SERVERERROR; - } catch (TException e) { - if (_debug) - System.err.println("Error doing delete"); - return SERVERERROR; - } - - return OK; - } -} - - DELETED YCSB/hypertable/target/archive-tmp/hypertable-binding-0.1.4.jar Index: YCSB/hypertable/target/archive-tmp/hypertable-binding-0.1.4.jar ================================================================== --- YCSB/hypertable/target/archive-tmp/hypertable-binding-0.1.4.jar +++ /dev/null cannot compute difference between binary files DELETED YCSB/hypertable/target/checkstyle-cachefile Index: YCSB/hypertable/target/checkstyle-cachefile ================================================================== --- YCSB/hypertable/target/checkstyle-cachefile +++ /dev/null @@ -1,2 +0,0 @@ -#Tue Mar 12 07:17:39 UTC 2013 -configuration*?=5C2E999311C722AB18EF484C140102E5D48BC388 DELETED YCSB/hypertable/target/checkstyle-checker.xml Index: YCSB/hypertable/target/checkstyle-checker.xml ================================================================== --- YCSB/hypertable/target/checkstyle-checker.xml +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DELETED YCSB/hypertable/target/checkstyle-header.txt Index: YCSB/hypertable/target/checkstyle-header.txt ================================================================== --- YCSB/hypertable/target/checkstyle-header.txt +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. DELETED YCSB/hypertable/target/checkstyle-result.xml Index: YCSB/hypertable/target/checkstyle-result.xml ================================================================== --- YCSB/hypertable/target/checkstyle-result.xml +++ /dev/null @@ -1,206 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DELETED YCSB/hypertable/target/classes/com/yahoo/ycsb/db/HypertableClient.class Index: YCSB/hypertable/target/classes/com/yahoo/ycsb/db/HypertableClient.class ================================================================== --- YCSB/hypertable/target/classes/com/yahoo/ycsb/db/HypertableClient.class +++ /dev/null cannot compute difference between binary files DELETED YCSB/hypertable/target/hypertable-binding-0.1.4.jar Index: YCSB/hypertable/target/hypertable-binding-0.1.4.jar ================================================================== --- YCSB/hypertable/target/hypertable-binding-0.1.4.jar +++ /dev/null cannot compute difference between binary files DELETED YCSB/hypertable/target/maven-archiver/pom.properties Index: YCSB/hypertable/target/maven-archiver/pom.properties ================================================================== --- YCSB/hypertable/target/maven-archiver/pom.properties +++ /dev/null @@ -1,5 +0,0 @@ -#Generated by Maven -#Tue Mar 12 07:17:41 UTC 2013 -version=0.1.4 -groupId=com.yahoo.ycsb -artifactId=hypertable-binding DELETED YCSB/hypertable/target/site/checkstyle.html Index: YCSB/hypertable/target/site/checkstyle.html ================================================================== --- YCSB/hypertable/target/site/checkstyle.html +++ /dev/null cannot compute difference between binary files DELETED YCSB/hypertable/target/site/checkstyle.rss Index: YCSB/hypertable/target/site/checkstyle.rss ================================================================== --- YCSB/hypertable/target/site/checkstyle.rss +++ /dev/null @@ -1,51 +0,0 @@ - - - - - Hypertable DB Binding - Checkstyle report - ${project.url} - Hypertable DB Binding - Checkstyle report - en-us - ©2013 - - File: 1, - Errors: 201, - Warnings: 0, - Infos: 0 - - ${project.url}/checkstyle.html - -

Click here for the full Checkstyle report.

- - - - - - - - - - - - - - - - - - -
FilesIWE
- com/yahoo/ycsb/db/HypertableClient.java - - 0 - - 0 - - 201 -
- -
-
-
-
- DELETED YCSB/hypertable/target/site/images/rss.png Index: YCSB/hypertable/target/site/images/rss.png ================================================================== --- YCSB/hypertable/target/site/images/rss.png +++ /dev/null cannot compute difference between binary files DELETED YCSB/infinispan/pom.xml Index: YCSB/infinispan/pom.xml ================================================================== --- YCSB/infinispan/pom.xml +++ /dev/null @@ -1,51 +0,0 @@ - - - 4.0.0 - - com.yahoo.ycsb - root - 0.1.4 - - - infinispan-binding - Infinispan DB Binding - jar - - - - org.jboss.as - jboss-as-clustering-infinispan - ${infinispan.version} - - - com.yahoo.ycsb - core - ${project.version} - - - - - - - org.apache.maven.plugins - maven-assembly-plugin - ${maven.assembly.version} - - - jar-with-dependencies - - false - - - - package - - single - - - - - - - - DELETED YCSB/infinispan/src/main/conf/infinispan-config.xml Index: YCSB/infinispan/src/main/conf/infinispan-config.xml ================================================================== --- YCSB/infinispan/src/main/conf/infinispan-config.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - DELETED YCSB/infinispan/src/main/java/com/yahoo/ycsb/db/InfinispanClient.java Index: YCSB/infinispan/src/main/java/com/yahoo/ycsb/db/InfinispanClient.java ================================================================== --- YCSB/infinispan/src/main/java/com/yahoo/ycsb/db/InfinispanClient.java +++ /dev/null @@ -1,136 +0,0 @@ -package com.yahoo.ycsb.db; - -import com.yahoo.ycsb.DB; -import com.yahoo.ycsb.DBException; -import com.yahoo.ycsb.ByteIterator; -import com.yahoo.ycsb.StringByteIterator; - -import org.infinispan.Cache; -import org.infinispan.atomic.AtomicMap; -import org.infinispan.atomic.AtomicMapLookup; -import org.infinispan.manager.DefaultCacheManager; -import org.infinispan.manager.EmbeddedCacheManager; -import org.infinispan.util.logging.Log; -import org.infinispan.util.logging.LogFactory; - -import java.io.IOException; -import java.util.HashMap; -import java.util.Map; -import java.util.Set; -import java.util.Vector; - -/** - * This is a client implementation for Infinispan 5.x. - * - * Some settings: - * - * @author Manik Surtani (manik AT jboss DOT org) - */ -public class InfinispanClient extends DB { - - private static final int OK = 0; - private static final int ERROR = -1; - private static final int NOT_FOUND = -2; - - // An optimisation for clustered mode - private final boolean clustered; - - private EmbeddedCacheManager infinispanManager; - - private static final Log logger = LogFactory.getLog(InfinispanClient.class); - - public InfinispanClient() { - clustered = Boolean.getBoolean("infinispan.clustered"); - } - - public void init() throws DBException { - try { - infinispanManager = new DefaultCacheManager("infinispan-config.xml"); - } catch (IOException e) { - throw new DBException(e); - } - } - - public void cleanup() { - infinispanManager.stop(); - infinispanManager = null; - } - - public int read(String table, String key, Set fields, HashMap result) { - try { - Map row; - if (clustered) { - row = AtomicMapLookup.getAtomicMap(infinispanManager.getCache(table), key, false); - } else { - Cache> cache = infinispanManager.getCache(table); - row = cache.get(key); - } - if (row != null) { - result.clear(); - if (fields == null || fields.isEmpty()) { - StringByteIterator.putAllAsByteIterators(result, row); - } else { - for (String field : fields) result.put(field, new StringByteIterator(row.get(field))); - } - } - return OK; - } catch (Exception e) { - return ERROR; - } - } - - public int scan(String table, String startkey, int recordcount, Set fields, Vector> result) { - logger.warn("Infinispan does not support scan semantics"); - return OK; - } - - public int update(String table, String key, HashMap values) { - try { - if (clustered) { - AtomicMap row = AtomicMapLookup.getAtomicMap(infinispanManager.getCache(table), key); - StringByteIterator.putAllAsStrings(row, values); - } else { - Cache> cache = infinispanManager.getCache(table); - Map row = cache.get(key); - if (row == null) { - row = StringByteIterator.getStringMap(values); - cache.put(key, row); - } else { - StringByteIterator.putAllAsStrings(row, values); - } - } - - return OK; - } catch (Exception e) { - return ERROR; - } - } - - public int insert(String table, String key, HashMap values) { - try { - if (clustered) { - AtomicMap row = AtomicMapLookup.getAtomicMap(infinispanManager.getCache(table), key); - row.clear(); - StringByteIterator.putAllAsStrings(row, values); - } else { - infinispanManager.getCache(table).put(key, values); - } - - return OK; - } catch (Exception e) { - return ERROR; - } - } - - public int delete(String table, String key) { - try { - if (clustered) - AtomicMapLookup.removeAtomicMap(infinispanManager.getCache(table), key); - else - infinispanManager.getCache(table).remove(key); - return OK; - } catch (Exception e) { - return ERROR; - } - } -} DELETED YCSB/infinispan/target/archive-tmp/infinispan-binding-0.1.4.jar Index: YCSB/infinispan/target/archive-tmp/infinispan-binding-0.1.4.jar ================================================================== --- YCSB/infinispan/target/archive-tmp/infinispan-binding-0.1.4.jar +++ /dev/null cannot compute difference between binary files DELETED YCSB/infinispan/target/checkstyle-cachefile Index: YCSB/infinispan/target/checkstyle-cachefile ================================================================== --- YCSB/infinispan/target/checkstyle-cachefile +++ /dev/null @@ -1,2 +0,0 @@ -#Tue Mar 12 07:18:14 UTC 2013 -configuration*?=ADD95C5EFBEBF7FC31CEDC635E98C4AB47C33E16 DELETED YCSB/infinispan/target/checkstyle-checker.xml Index: YCSB/infinispan/target/checkstyle-checker.xml ================================================================== --- YCSB/infinispan/target/checkstyle-checker.xml +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DELETED YCSB/infinispan/target/checkstyle-header.txt Index: YCSB/infinispan/target/checkstyle-header.txt ================================================================== --- YCSB/infinispan/target/checkstyle-header.txt +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. DELETED YCSB/infinispan/target/checkstyle-result.xml Index: YCSB/infinispan/target/checkstyle-result.xml ================================================================== --- YCSB/infinispan/target/checkstyle-result.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DELETED YCSB/infinispan/target/classes/com/yahoo/ycsb/db/InfinispanClient.class Index: YCSB/infinispan/target/classes/com/yahoo/ycsb/db/InfinispanClient.class ================================================================== --- YCSB/infinispan/target/classes/com/yahoo/ycsb/db/InfinispanClient.class +++ /dev/null cannot compute difference between binary files DELETED YCSB/infinispan/target/infinispan-binding-0.1.4.jar Index: YCSB/infinispan/target/infinispan-binding-0.1.4.jar ================================================================== --- YCSB/infinispan/target/infinispan-binding-0.1.4.jar +++ /dev/null cannot compute difference between binary files DELETED YCSB/infinispan/target/maven-archiver/pom.properties Index: YCSB/infinispan/target/maven-archiver/pom.properties ================================================================== --- YCSB/infinispan/target/maven-archiver/pom.properties +++ /dev/null @@ -1,5 +0,0 @@ -#Generated by Maven -#Tue Mar 12 07:18:17 UTC 2013 -version=0.1.4 -groupId=com.yahoo.ycsb -artifactId=infinispan-binding DELETED YCSB/infinispan/target/site/checkstyle.html Index: YCSB/infinispan/target/site/checkstyle.html ================================================================== --- YCSB/infinispan/target/site/checkstyle.html +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - Checkstyle Results - - - - - - - - - -
- -
-
-
-

Checkstyle Results

The following document contains the results of Checkstylerss feed

Summary

FilesInfos InfosWarnings WarningsErrors Errors
100106

Rules

RulesViolationsSeverity
JavadocPackage1Errors Error
Translation0Errors Error
FileLength0Errors Error
FileTabCharacter1Errors Error
JavadocType
  • allowMissingParamTags: "true"
  • scope: "public"
0Errors Error
JavadocStyle0Errors Error
ConstantName1Errors Error
LocalFinalVariableName0Errors Error
LocalVariableName0Errors Error
MemberName0Errors Error
MethodName0Errors Error
PackageName0Errors Error
ParameterName0Errors Error
StaticVariableName0Errors Error
TypeName0Errors Error
IllegalImport0Errors Error
RedundantImport0Errors Error
UnusedImports0Errors Error
LineLength11Errors Error
MethodLength0Errors Error
ParameterNumber0Errors Error
EmptyForIteratorPad0Errors Error
MethodParamPad0Errors Error
NoWhitespaceAfter0Errors Error
NoWhitespaceBefore0Errors Error
ParenPad0Errors Error
TypecastParenPad0Errors Error
WhitespaceAfter
  • tokens: "COMMA, SEMI"
0Errors Error
ModifierOrder0Errors Error
RedundantModifier0Errors Error
AvoidNestedBlocks0Errors Error
EmptyBlock0Errors Error
LeftCurly0Errors Error
NeedBraces3Errors Error
RightCurly0Errors Error
DoubleCheckedLocking0Errors Error
EmptyStatement0Errors Error
EqualsHashCode0Errors Error
HiddenField
  • ignoreConstructorParameter: "true"
0Errors Error
IllegalInstantiation0Errors Error
InnerAssignment0Errors Error
MissingSwitchDefault0Errors Error
RedundantThrows0Errors Error
SimplifyBooleanExpression0Errors Error
SimplifyBooleanReturn0Errors Error
FinalClass0Errors Error
HideUtilityClassConstructor0Errors Error
InterfaceIsType0Errors Error
VisibilityModifier0Errors Error
ArrayTypeStyle0Errors Error
Indentation
  • caseIndent: "0"
  • basicOffset: "2"
89Errors Error
TodoComment0Errors Error
UpperEll0Errors Error

Details

com/yahoo/ycsb/db/InfinispanClient.java

ViolationMessageLine
ErrorsMissing package-info.java file.0
Errorsmember def modifier at indentation level 3 not at correct indentation, 231
Errorsmember def modifier at indentation level 3 not at correct indentation, 232
Errorsmember def modifier at indentation level 3 not at correct indentation, 233
Errorsmember def modifier at indentation level 3 not at correct indentation, 236
Errorsmember def modifier at indentation level 3 not at correct indentation, 238
Errorsmember def modifier at indentation level 3 not at correct indentation, 240
ErrorsName 'logger' must match pattern '^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$'.40
Errorsctor def modifier at indentation level 3 not at correct indentation, 242
Errorsctor def child at indentation level 6 not at correct indentation, 443
Errorsctor def rcurly at indentation level 3 not at correct indentation, 244
Errorsmethod def modifier at indentation level 3 not at correct indentation, 246
Errorstry at indentation level 6 not at correct indentation, 447
Errorstry child at indentation level 9 not at correct indentation, 648
Errorstry rcurly at indentation level 6 not at correct indentation, 449
Errorscatch child at indentation level 9 not at correct indentation, 650
Errorscatch rcurly at indentation level 6 not at correct indentation, 451
Errorsmethod def rcurly at indentation level 3 not at correct indentation, 252
Errorsmethod def modifier at indentation level 3 not at correct indentation, 254
Errorsmethod def child at indentation level 6 not at correct indentation, 455
Errorsmethod def child at indentation level 6 not at correct indentation, 456
Errorsmethod def rcurly at indentation level 3 not at correct indentation, 257
ErrorsLine is longer than 80 characters.59
Errorsmethod def modifier at indentation level 3 not at correct indentation, 259
Errorstry at indentation level 6 not at correct indentation, 460
Errorstry child at indentation level 9 not at correct indentation, 661
Errorsif at indentation level 9 not at correct indentation, 662
ErrorsLine is longer than 80 characters.63
Errorsif child at indentation level 12 not at correct indentation, 863
Errorsif rcurly at indentation level 9 not at correct indentation, 664
ErrorsLine is longer than 80 characters.65
Errorselse child at indentation level 12 not at correct indentation, 865
Errorselse child at indentation level 12 not at correct indentation, 866
Errorselse rcurly at indentation level 9 not at correct indentation, 667
Errorsif at indentation level 9 not at correct indentation, 668
Errorsif child at indentation level 12 not at correct indentation, 869
Errorsif at indentation level 12 not at correct indentation, 870
Errorsif child at indentation level 16 not at correct indentation, 1071
ErrorsFile contains tab characters (this is the first instance).71
Errorsif rcurly at indentation level 12 not at correct indentation, 872
Errors'for' construct must use '{}'s.73
ErrorsLine is longer than 80 characters.73
Errorsfor at indentation level 15 not at correct indentation, 1073
Errorselse rcurly at indentation level 12 not at correct indentation, 874
Errorsif rcurly at indentation level 9 not at correct indentation, 675
Errorstry child at indentation level 9 not at correct indentation, 676
Errorstry rcurly at indentation level 6 not at correct indentation, 477
Errorscatch child at indentation level 9 not at correct indentation, 678
Errorscatch rcurly at indentation level 6 not at correct indentation, 479
Errorsmethod def rcurly at indentation level 3 not at correct indentation, 280
ErrorsLine is longer than 80 characters.82
Errorsmethod def modifier at indentation level 3 not at correct indentation, 282
Errorsmethod def child at indentation level 6 not at correct indentation, 483
Errorsmethod def child at indentation level 6 not at correct indentation, 484
Errorsmethod def rcurly at indentation level 3 not at correct indentation, 285
ErrorsLine is longer than 80 characters.87
Errorsmethod def modifier at indentation level 3 not at correct indentation, 287
Errorstry at indentation level 6 not at correct indentation, 488
Errorsif at indentation level 9 not at correct indentation, 689
ErrorsLine is longer than 80 characters.90
Errorsif child at indentation level 12 not at correct indentation, 890
Errorsif child at indentation level 12 not at correct indentation, 891
Errorsif rcurly at indentation level 9 not at correct indentation, 692
ErrorsLine is longer than 80 characters.93
Errorselse child at indentation level 12 not at correct indentation, 893
Errorselse child at indentation level 12 not at correct indentation, 894
Errorsif at indentation level 12 not at correct indentation, 895
Errorsif child at indentation level 15 not at correct indentation, 1096
Errorsif child at indentation level 15 not at correct indentation, 1097
Errorsif rcurly at indentation level 12 not at correct indentation, 898
Errorselse child at indentation level 15 not at correct indentation, 1099
Errorselse rcurly at indentation level 12 not at correct indentation, 8100
Errorselse rcurly at indentation level 9 not at correct indentation, 6101
Errorstry child at indentation level 9 not at correct indentation, 6103
Errorstry rcurly at indentation level 6 not at correct indentation, 4104
Errorscatch child at indentation level 9 not at correct indentation, 6105
Errorscatch rcurly at indentation level 6 not at correct indentation, 4106
Errorsmethod def rcurly at indentation level 3 not at correct indentation, 2107
ErrorsLine is longer than 80 characters.109
Errorsmethod def modifier at indentation level 3 not at correct indentation, 2109
Errorstry at indentation level 6 not at correct indentation, 4110
Errorsif at indentation level 9 not at correct indentation, 6111
ErrorsLine is longer than 80 characters.112
Errorsif child at indentation level 12 not at correct indentation, 8112
Errorsif child at indentation level 12 not at correct indentation, 8113
Errorsif child at indentation level 12 not at correct indentation, 8114
Errorsif rcurly at indentation level 9 not at correct indentation, 6115
Errorselse child at indentation level 12 not at correct indentation, 8116
Errorselse rcurly at indentation level 9 not at correct indentation, 6117
Errorstry child at indentation level 9 not at correct indentation, 6119
Errorstry rcurly at indentation level 6 not at correct indentation, 4120
Errorscatch child at indentation level 9 not at correct indentation, 6121
Errorscatch rcurly at indentation level 6 not at correct indentation, 4122
Errorsmethod def rcurly at indentation level 3 not at correct indentation, 2123
Errorsmethod def modifier at indentation level 3 not at correct indentation, 2125
Errorstry at indentation level 6 not at correct indentation, 4126
Errors'if' construct must use '{}'s.127
Errorsif at indentation level 9 not at correct indentation, 6127
ErrorsLine is longer than 80 characters.128
Errors'else' construct must use '{}'s.129
Errorselse at indentation level 9 not at correct indentation, 6129
Errorstry child at indentation level 9 not at correct indentation, 6131
Errorstry rcurly at indentation level 6 not at correct indentation, 4132
Errorscatch child at indentation level 9 not at correct indentation, 6133
Errorscatch rcurly at indentation level 6 not at correct indentation, 4134
Errorsmethod def rcurly at indentation level 3 not at correct indentation, 2135
-
-
-
-
-
- - - DELETED YCSB/infinispan/target/site/checkstyle.rss Index: YCSB/infinispan/target/site/checkstyle.rss ================================================================== --- YCSB/infinispan/target/site/checkstyle.rss +++ /dev/null @@ -1,51 +0,0 @@ - - - - - Infinispan DB Binding - Checkstyle report - ${project.url} - Infinispan DB Binding - Checkstyle report - en-us - ©2013 - - File: 1, - Errors: 106, - Warnings: 0, - Infos: 0 - - ${project.url}/checkstyle.html - -

Click here for the full Checkstyle report.

- - - - - - - - - - - - - - - - - - -
FilesIWE
- com/yahoo/ycsb/db/InfinispanClient.java - - 0 - - 0 - - 106 -
- -
-
-
-
- DELETED YCSB/infinispan/target/site/images/rss.png Index: YCSB/infinispan/target/site/images/rss.png ================================================================== --- YCSB/infinispan/target/site/images/rss.png +++ /dev/null cannot compute difference between binary files DELETED YCSB/jdbc/pom.xml Index: YCSB/jdbc/pom.xml ================================================================== --- YCSB/jdbc/pom.xml +++ /dev/null @@ -1,51 +0,0 @@ - - - 4.0.0 - - com.yahoo.ycsb - root - 0.1.4 - - - jdbc-binding - JDBC DB Binding - jar - - - - org.apache.openjpa - openjpa-jdbc - ${openjpa.jdbc.version} - - - com.yahoo.ycsb - core - ${project.version} - - - - - - - org.apache.maven.plugins - maven-assembly-plugin - ${maven.assembly.version} - - - jar-with-dependencies - - false - - - - package - - single - - - - - - - - DELETED YCSB/jdbc/src/main/conf/db.properties Index: YCSB/jdbc/src/main/conf/db.properties ================================================================== --- YCSB/jdbc/src/main/conf/db.properties +++ /dev/null @@ -1,7 +0,0 @@ -# Properties file that contains database connection information. - -jdbc.driver=org.h2.Driver -# jdbc.fetchsize=20 -db.url=jdbc:h2:tcp://foo.com:9092/~/h2/ycsb -db.user=sa -db.passwd= DELETED YCSB/jdbc/src/main/conf/h2.properties Index: YCSB/jdbc/src/main/conf/h2.properties ================================================================== --- YCSB/jdbc/src/main/conf/h2.properties +++ /dev/null @@ -1,6 +0,0 @@ -# Properties file that contains database connection information. - -jdbc.driver=org.h2.Driver -db.url=jdbc:h2:tcp://foo.com:9092/~/h2/ycsb -db.user=sa -db.passwd= DELETED YCSB/jdbc/src/main/java/com/yahoo/ycsb/db/JdbcDBCli.java Index: YCSB/jdbc/src/main/java/com/yahoo/ycsb/db/JdbcDBCli.java ================================================================== --- YCSB/jdbc/src/main/java/com/yahoo/ycsb/db/JdbcDBCli.java +++ /dev/null @@ -1,178 +0,0 @@ -/** - * Copyright (c) 2010 Yahoo! Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you - * may not use this file except in compliance with the License. You - * may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - * implied. See the License for the specific language governing - * permissions and limitations under the License. See accompanying - * LICENSE file. - */ -package com.yahoo.ycsb.db; - -import java.io.FileInputStream; -import java.io.IOException; -import java.sql.Connection; -import java.sql.DriverManager; -import java.sql.SQLException; -import java.sql.Statement; -import java.util.Enumeration; -import java.util.Properties; - -/** - * Execute a JDBC command line. - * - * @author sudipto - * - */ -public class JdbcDBCli implements JdbcDBClientConstants { - - private static void usageMessage() { - System.out.println("JdbcCli. Options:"); - System.out.println(" -p key=value properties defined."); - System.out.println(" -P location of the properties file to load."); - System.out.println(" -c SQL command to execute."); - } - - private static void executeCommand(Properties props, String sql) - throws SQLException { - String driver = props.getProperty(DRIVER_CLASS); - String username = props.getProperty(CONNECTION_USER); - String password = props.getProperty(CONNECTION_PASSWD, ""); - String url = props.getProperty(CONNECTION_URL); - if (driver == null || username == null || url == null) { - throw new SQLException("Missing connection information."); - } - - Connection conn = null; - - try { - Class.forName(driver); - - conn = DriverManager.getConnection(url, username, password); - Statement stmt = conn.createStatement(); - stmt.execute(sql); - System.out.println("Command \"" + sql + "\" successfully executed."); - } catch (ClassNotFoundException e) { - throw new SQLException("JDBC Driver class not found."); - } finally { - if (conn != null) { - System.out.println("Closing database connection."); - conn.close(); - } - } - } - - /** - * @param args - */ - public static void main(String[] args) { - - if (args.length == 0) { - usageMessage(); - System.exit(0); - } - - Properties props = new Properties(); - Properties fileprops = new Properties(); - String sql = null; - - // parse arguments - int argindex = 0; - while (args[argindex].startsWith("-")) { - if (args[argindex].compareTo("-P") == 0) { - argindex++; - if (argindex >= args.length) { - usageMessage(); - System.exit(0); - } - String propfile = args[argindex]; - argindex++; - - Properties myfileprops = new Properties(); - try { - myfileprops.load(new FileInputStream(propfile)); - } catch (IOException e) { - System.out.println(e.getMessage()); - System.exit(0); - } - - // Issue #5 - remove call to stringPropertyNames to make compilable - // under Java 1.5 - for (Enumeration e = myfileprops.propertyNames(); e - .hasMoreElements();) { - String prop = (String) e.nextElement(); - - fileprops.setProperty(prop, myfileprops.getProperty(prop)); - } - - } else if (args[argindex].compareTo("-p") == 0) { - argindex++; - if (argindex >= args.length) { - usageMessage(); - System.exit(0); - } - int eq = args[argindex].indexOf('='); - if (eq < 0) { - usageMessage(); - System.exit(0); - } - - String name = args[argindex].substring(0, eq); - String value = args[argindex].substring(eq + 1); - props.put(name, value); - argindex++; - } else if (args[argindex].compareTo("-c") == 0) { - argindex++; - if (argindex >= args.length) { - usageMessage(); - System.exit(0); - } - sql = args[argindex++]; - } else { - System.out.println("Unknown option " + args[argindex]); - usageMessage(); - System.exit(0); - } - - if (argindex >= args.length) { - break; - } - } - - if (argindex != args.length) { - usageMessage(); - System.exit(0); - } - - // overwrite file properties with properties from the command line - - // Issue #5 - remove call to stringPropertyNames to make compilable under - // Java 1.5 - for (Enumeration e = props.propertyNames(); e.hasMoreElements();) { - String prop = (String) e.nextElement(); - - fileprops.setProperty(prop, props.getProperty(prop)); - } - - if (sql == null) { - System.err.println("Missing command."); - usageMessage(); - System.exit(1); - } - - try { - executeCommand(fileprops, sql); - } catch (SQLException e) { - System.err.println("Error in executing command. " + e); - System.exit(1); - } - } - -} DELETED YCSB/jdbc/src/main/java/com/yahoo/ycsb/db/JdbcDBClient.java Index: YCSB/jdbc/src/main/java/com/yahoo/ycsb/db/JdbcDBClient.java ================================================================== --- YCSB/jdbc/src/main/java/com/yahoo/ycsb/db/JdbcDBClient.java +++ /dev/null @@ -1,468 +0,0 @@ -/** - * Copyright (c) 2010 Yahoo! Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you - * may not use this file except in compliance with the License. You - * may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - * implied. See the License for the specific language governing - * permissions and limitations under the License. See accompanying - * LICENSE file. - */ - -package com.yahoo.ycsb.db; - -import com.yahoo.ycsb.DB; -import com.yahoo.ycsb.DBException; -import com.yahoo.ycsb.ByteIterator; -import com.yahoo.ycsb.StringByteIterator; - -import java.sql.*; -import java.util.*; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.ConcurrentMap; - -/** - * A class that wraps a JDBC compliant database to allow it to be interfaced with YCSB. - * This class extends {@link DB} and implements the database interface used by YCSB client. - * - *
Each client will have its own instance of this class. This client is - * not thread safe. - * - *
This interface expects a schema ... - * All attributes are of type VARCHAR. All accesses are through the primary key. Therefore, - * only one index on the primary key is needed. - * - *

The following options must be passed when using this database client. - * - *

    - *
  • db.driver The JDBC driver class to use.
  • - *
  • db.url The Database connection URL.
  • - *
  • db.user User name for the connection.
  • - *
  • db.passwd Password for the connection.
  • - *
- * - * @author sudipto - * - */ -public class JdbcDBClient extends DB implements JdbcDBClientConstants { - - private ArrayList conns; - private boolean initialized = false; - private Properties props; - private Integer jdbcFetchSize; - private static final String DEFAULT_PROP = ""; - private ConcurrentMap cachedStatements; - - /** - * The statement type for the prepared statements. - */ - private static class StatementType { - - enum Type { - INSERT(1), - DELETE(2), - READ(3), - UPDATE(4), - SCAN(5), - ; - int internalType; - private Type(int type) { - internalType = type; - } - - int getHashCode() { - final int prime = 31; - int result = 1; - result = prime * result + internalType; - return result; - } - } - - Type type; - int shardIndex; - int numFields; - String tableName; - - StatementType(Type type, String tableName, int numFields, int _shardIndex) { - this.type = type; - this.tableName = tableName; - this.numFields = numFields; - this.shardIndex = _shardIndex; - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + numFields + 100 * shardIndex; - result = prime * result - + ((tableName == null) ? 0 : tableName.hashCode()); - result = prime * result + ((type == null) ? 0 : type.getHashCode()); - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - StatementType other = (StatementType) obj; - if (numFields != other.numFields) - return false; - if (shardIndex != other.shardIndex) - return false; - if (tableName == null) { - if (other.tableName != null) - return false; - } else if (!tableName.equals(other.tableName)) - return false; - if (type != other.type) - return false; - return true; - } - } - - /** - * For the given key, returns what shard contains data for this key - * - * @param key Data key to do operation on - * @return Shard index - */ - private int getShardIndexByKey(String key) { - int ret = Math.abs(key.hashCode()) % conns.size(); - //System.out.println(conns.size() + ": Shard instance for "+ key + " (hash " + key.hashCode()+ " ) " + " is " + ret); - return ret; - } - - /** - * For the given key, returns Connection object that holds connection - * to the shard that contains this key - * - * @param key Data key to get information for - * @return Connection object - */ - private Connection getShardConnectionByKey(String key) { - return conns.get(getShardIndexByKey(key)); - } - - private void cleanupAllConnections() throws SQLException { - for(Connection conn: conns) { - conn.close(); - } - } - - /** - * Initialize the database connection and set it up for sending requests to the database. - * This must be called once per client. - * @throws - */ - @Override - public void init() throws DBException { - if (initialized) { - System.err.println("Client connection already initialized."); - return; - } - props = getProperties(); - String urls = props.getProperty(CONNECTION_URL, DEFAULT_PROP); - String user = props.getProperty(CONNECTION_USER, DEFAULT_PROP); - String passwd = props.getProperty(CONNECTION_PASSWD, DEFAULT_PROP); - String driver = props.getProperty(DRIVER_CLASS); - - String jdbcFetchSizeStr = props.getProperty(JDBC_FETCH_SIZE); - if (jdbcFetchSizeStr != null) { - try { - this.jdbcFetchSize = Integer.parseInt(jdbcFetchSizeStr); - } catch (NumberFormatException nfe) { - System.err.println("Invalid JDBC fetch size specified: " + jdbcFetchSizeStr); - throw new DBException(nfe); - } - } - - String autoCommitStr = props.getProperty(JDBC_AUTO_COMMIT, Boolean.TRUE.toString()); - Boolean autoCommit = Boolean.parseBoolean(autoCommitStr); - - try { - if (driver != null) { - Class.forName(driver); - } - int shardCount = 0; - conns = new ArrayList(3); - for (String url: urls.split(",")) { - System.out.println("Adding shard node URL: " + url); - Connection conn = DriverManager.getConnection(url, user, passwd); - - // Since there is no explicit commit method in the DB interface, all - // operations should auto commit, except when explicitly told not to - // (this is necessary in cases such as for PostgreSQL when running a - // scan workload with fetchSize) - conn.setAutoCommit(autoCommit); - - shardCount++; - conns.add(conn); - } - - System.out.println("Using " + shardCount + " shards"); - - cachedStatements = new ConcurrentHashMap(); - } catch (ClassNotFoundException e) { - System.err.println("Error in initializing the JDBS driver: " + e); - throw new DBException(e); - } catch (SQLException e) { - System.err.println("Error in database operation: " + e); - throw new DBException(e); - } catch (NumberFormatException e) { - System.err.println("Invalid value for fieldcount property. " + e); - throw new DBException(e); - } - initialized = true; - } - - @Override - public void cleanup() throws DBException { - try { - cleanupAllConnections(); - } catch (SQLException e) { - System.err.println("Error in closing the connection. " + e); - throw new DBException(e); - } - } - - private PreparedStatement createAndCacheInsertStatement(StatementType insertType, String key) - throws SQLException { - StringBuilder insert = new StringBuilder("INSERT INTO "); - insert.append(insertType.tableName); - insert.append(" VALUES(?"); - for (int i = 0; i < insertType.numFields; i++) { - insert.append(",?"); - } - insert.append(");"); - PreparedStatement insertStatement = getShardConnectionByKey(key).prepareStatement(insert.toString()); - PreparedStatement stmt = cachedStatements.putIfAbsent(insertType, insertStatement); - if (stmt == null) return insertStatement; - else return stmt; - } - - private PreparedStatement createAndCacheReadStatement(StatementType readType, String key) - throws SQLException { - StringBuilder read = new StringBuilder("SELECT * FROM "); - read.append(readType.tableName); - read.append(" WHERE "); - read.append(PRIMARY_KEY); - read.append(" = "); - read.append("?;"); - PreparedStatement readStatement = getShardConnectionByKey(key).prepareStatement(read.toString()); - PreparedStatement stmt = cachedStatements.putIfAbsent(readType, readStatement); - if (stmt == null) return readStatement; - else return stmt; - } - - private PreparedStatement createAndCacheDeleteStatement(StatementType deleteType, String key) - throws SQLException { - StringBuilder delete = new StringBuilder("DELETE FROM "); - delete.append(deleteType.tableName); - delete.append(" WHERE "); - delete.append(PRIMARY_KEY); - delete.append(" = ?;"); - PreparedStatement deleteStatement = getShardConnectionByKey(key).prepareStatement(delete.toString()); - PreparedStatement stmt = cachedStatements.putIfAbsent(deleteType, deleteStatement); - if (stmt == null) return deleteStatement; - else return stmt; - } - - private PreparedStatement createAndCacheUpdateStatement(StatementType updateType, String key) - throws SQLException { - StringBuilder update = new StringBuilder("UPDATE "); - update.append(updateType.tableName); - update.append(" SET "); - for (int i = 1; i <= updateType.numFields; i++) { - update.append(COLUMN_PREFIX); - update.append(i); - update.append("=?"); - if (i < updateType.numFields) update.append(", "); - } - update.append(" WHERE "); - update.append(PRIMARY_KEY); - update.append(" = ?;"); - PreparedStatement insertStatement = getShardConnectionByKey(key).prepareStatement(update.toString()); - PreparedStatement stmt = cachedStatements.putIfAbsent(updateType, insertStatement); - if (stmt == null) return insertStatement; - else return stmt; - } - - private PreparedStatement createAndCacheScanStatement(StatementType scanType, String key) - throws SQLException { - StringBuilder select = new StringBuilder("SELECT * FROM "); - select.append(scanType.tableName); - select.append(" WHERE "); - select.append(PRIMARY_KEY); - select.append(" >= "); - select.append("?;"); - PreparedStatement scanStatement = getShardConnectionByKey(key).prepareStatement(select.toString()); - if (this.jdbcFetchSize != null) scanStatement.setFetchSize(this.jdbcFetchSize); - PreparedStatement stmt = cachedStatements.putIfAbsent(scanType, scanStatement); - if (stmt == null) return scanStatement; - else return stmt; - } - - @Override - public int read(String tableName, String key, Set fields, - HashMap result) { - if (tableName == null) { - return -1; - } - if (key == null) { - return -1; - } - try { - StatementType type = new StatementType(StatementType.Type.READ, tableName, 1, getShardIndexByKey(key)); - PreparedStatement readStatement = cachedStatements.get(type); - if (readStatement == null) { - readStatement = createAndCacheReadStatement(type, key); - } - readStatement.setString(1, key); - ResultSet resultSet = readStatement.executeQuery(); - if (!resultSet.next()) { - resultSet.close(); - return 1; - } - if (result != null && fields != null) { - for (String field : fields) { - String value = resultSet.getString(field); - result.put(field, new StringByteIterator(value)); - } - } - resultSet.close(); - return SUCCESS; - } catch (SQLException e) { - System.err.println("Error in processing read of table " + tableName + ": "+e); - return -2; - } - } - - @Override - public int scan(String tableName, String startKey, int recordcount, - Set fields, Vector> result) { - if (tableName == null) { - return -1; - } - if (startKey == null) { - return -1; - } - try { - StatementType type = new StatementType(StatementType.Type.SCAN, tableName, 1, getShardIndexByKey(startKey)); - PreparedStatement scanStatement = cachedStatements.get(type); - if (scanStatement == null) { - scanStatement = createAndCacheScanStatement(type, startKey); - } - scanStatement.setString(1, startKey); - ResultSet resultSet = scanStatement.executeQuery(); - for (int i = 0; i < recordcount && resultSet.next(); i++) { - if (result != null && fields != null) { - HashMap values = new HashMap(); - for (String field : fields) { - String value = resultSet.getString(field); - values.put(field, new StringByteIterator(value)); - } - result.add(values); - } - } - resultSet.close(); - return SUCCESS; - } catch (SQLException e) { - System.err.println("Error in processing scan of table: " + tableName + e); - return -2; - } - } - - @Override - public int update(String tableName, String key, HashMap values) { - if (tableName == null) { - return -1; - } - if (key == null) { - return -1; - } - try { - int numFields = values.size(); - StatementType type = new StatementType(StatementType.Type.UPDATE, tableName, numFields, getShardIndexByKey(key)); - PreparedStatement updateStatement = cachedStatements.get(type); - if (updateStatement == null) { - updateStatement = createAndCacheUpdateStatement(type, key); - } - int index = 1; - for (Map.Entry entry : values.entrySet()) { - updateStatement.setString(index++, entry.getValue().toString()); - } - updateStatement.setString(index, key); - int result = updateStatement.executeUpdate(); - if (result == 1) return SUCCESS; - else return 1; - } catch (SQLException e) { - System.err.println("Error in processing update to table: " + tableName + e); - return -1; - } - } - - @Override - public int insert(String tableName, String key, HashMap values) { - if (tableName == null) { - return -1; - } - if (key == null) { - return -1; - } - try { - int numFields = values.size(); - StatementType type = new StatementType(StatementType.Type.INSERT, tableName, numFields, getShardIndexByKey(key)); - PreparedStatement insertStatement = cachedStatements.get(type); - if (insertStatement == null) { - insertStatement = createAndCacheInsertStatement(type, key); - } - insertStatement.setString(1, key); - int index = 2; - for (Map.Entry entry : values.entrySet()) { - String field = entry.getValue().toString(); - insertStatement.setString(index++, field); - } - int result = insertStatement.executeUpdate(); - if (result == 1) return SUCCESS; - else return 1; - } catch (SQLException e) { - System.err.println("Error in processing insert to table: " + tableName + e); - return -1; - } - } - - @Override - public int delete(String tableName, String key) { - if (tableName == null) { - return -1; - } - if (key == null) { - return -1; - } - try { - StatementType type = new StatementType(StatementType.Type.DELETE, tableName, 1, getShardIndexByKey(key)); - PreparedStatement deleteStatement = cachedStatements.get(type); - if (deleteStatement == null) { - deleteStatement = createAndCacheDeleteStatement(type, key); - } - deleteStatement.setString(1, key); - int result = deleteStatement.executeUpdate(); - if (result == 1) return SUCCESS; - else return 1; - } catch (SQLException e) { - System.err.println("Error in processing delete to table: " + tableName + e); - return -1; - } - } -} DELETED YCSB/jdbc/src/main/java/com/yahoo/ycsb/db/JdbcDBClientConstants.java Index: YCSB/jdbc/src/main/java/com/yahoo/ycsb/db/JdbcDBClientConstants.java ================================================================== --- YCSB/jdbc/src/main/java/com/yahoo/ycsb/db/JdbcDBClientConstants.java +++ /dev/null @@ -1,62 +0,0 @@ -/** - * Copyright (c) 2010 Yahoo! Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you - * may not use this file except in compliance with the License. You - * may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - * implied. See the License for the specific language governing - * permissions and limitations under the License. See accompanying - * LICENSE file. - */ -package com.yahoo.ycsb.db; - -/** - * Constants used by the JDBC client. - * - * @author sudipto - * - */ -public interface JdbcDBClientConstants { - - /** The class to use as the jdbc driver. */ - public static final String DRIVER_CLASS = "db.driver"; - - /** The URL to connect to the database. */ - public static final String CONNECTION_URL = "db.url"; - - /** The user name to use to connect to the database. */ - public static final String CONNECTION_USER = "db.user"; - - /** The password to use for establishing the connection. */ - public static final String CONNECTION_PASSWD = "db.passwd"; - - /** The JDBC fetch size hinted to the driver. */ - public static final String JDBC_FETCH_SIZE = "jdbc.fetchsize"; - - /** The JDBC connection auto-commit property for the driver. */ - public static final String JDBC_AUTO_COMMIT = "jdbc.autocommit"; - - /** The name of the property for the number of fields in a record. */ - public static final String FIELD_COUNT_PROPERTY="fieldcount"; - - /** Default number of fields in a record. */ - public static final String FIELD_COUNT_PROPERTY_DEFAULT="10"; - - /** Representing a NULL value. */ - public static final String NULL_VALUE = "NULL"; - - /** The code to return when the call succeeds. */ - public static final int SUCCESS = 0; - - /** The primary key in the user table.*/ - public static String PRIMARY_KEY = "YCSB_KEY"; - - /** The field name prefix in the table.*/ - public static String COLUMN_PREFIX = "FIELD"; -} DELETED YCSB/jdbc/src/main/java/com/yahoo/ycsb/db/JdbcDBCreateTable.java Index: YCSB/jdbc/src/main/java/com/yahoo/ycsb/db/JdbcDBCreateTable.java ================================================================== --- YCSB/jdbc/src/main/java/com/yahoo/ycsb/db/JdbcDBCreateTable.java +++ /dev/null @@ -1,220 +0,0 @@ -/** - * Copyright (c) 2010 Yahoo! Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you - * may not use this file except in compliance with the License. You - * may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - * implied. See the License for the specific language governing - * permissions and limitations under the License. See accompanying - * LICENSE file. - */ -package com.yahoo.ycsb.db; - -import java.io.FileInputStream; -import java.io.IOException; -import java.sql.Connection; -import java.sql.DriverManager; -import java.sql.SQLException; -import java.sql.Statement; -import java.util.Enumeration; -import java.util.Properties; - -/** - * Utility class to create the table to be used by the benchmark. - * - * @author sudipto - * - */ -public class JdbcDBCreateTable implements JdbcDBClientConstants { - - private static void usageMessage() { - System.out.println("Create Table Client. Options:"); - System.out.println(" -p key=value properties defined."); - System.out.println(" -P location of the properties file to load."); - System.out.println(" -n name of the table."); - System.out.println(" -f number of fields (default 10)."); - } - - private static void createTable(Properties props, String tablename) - throws SQLException { - String driver = props.getProperty(DRIVER_CLASS); - String username = props.getProperty(CONNECTION_USER); - String password = props.getProperty(CONNECTION_PASSWD, ""); - String url = props.getProperty(CONNECTION_URL); - int fieldcount = Integer.parseInt(props.getProperty(FIELD_COUNT_PROPERTY, - FIELD_COUNT_PROPERTY_DEFAULT)); - - if (driver == null || username == null || url == null) { - throw new SQLException("Missing connection information."); - } - - Connection conn = null; - - try { - Class.forName(driver); - - conn = DriverManager.getConnection(url, username, password); - Statement stmt = conn.createStatement(); - - StringBuilder sql = new StringBuilder("DROP TABLE IF EXISTS "); - sql.append(tablename); - sql.append(";"); - - stmt.execute(sql.toString()); - - sql = new StringBuilder("CREATE TABLE "); - sql.append(tablename); - sql.append(" (KEY VARCHAR PRIMARY KEY"); - - for (int idx = 0; idx < fieldcount; idx++) { - sql.append(", FIELD"); - sql.append(idx); - sql.append(" VARCHAR"); - } - sql.append(");"); - - stmt.execute(sql.toString()); - - System.out.println("Table " + tablename + " created.."); - } catch (ClassNotFoundException e) { - throw new SQLException("JDBC Driver class not found."); - } finally { - if (conn != null) { - System.out.println("Closing database connection."); - conn.close(); - } - } - } - - /** - * @param args - */ - public static void main(String[] args) { - - if (args.length == 0) { - usageMessage(); - System.exit(0); - } - - String tablename = null; - int fieldcount = -1; - Properties props = new Properties(); - Properties fileprops = new Properties(); - - // parse arguments - int argindex = 0; - while (args[argindex].startsWith("-")) { - if (args[argindex].compareTo("-P") == 0) { - argindex++; - if (argindex >= args.length) { - usageMessage(); - System.exit(0); - } - String propfile = args[argindex]; - argindex++; - - Properties myfileprops = new Properties(); - try { - myfileprops.load(new FileInputStream(propfile)); - } catch (IOException e) { - System.out.println(e.getMessage()); - System.exit(0); - } - - // Issue #5 - remove call to stringPropertyNames to make compilable - // under Java 1.5 - for (Enumeration e = myfileprops.propertyNames(); e - .hasMoreElements();) { - String prop = (String) e.nextElement(); - - fileprops.setProperty(prop, myfileprops.getProperty(prop)); - } - - } else if (args[argindex].compareTo("-p") == 0) { - argindex++; - if (argindex >= args.length) { - usageMessage(); - System.exit(0); - } - int eq = args[argindex].indexOf('='); - if (eq < 0) { - usageMessage(); - System.exit(0); - } - - String name = args[argindex].substring(0, eq); - String value = args[argindex].substring(eq + 1); - props.put(name, value); - argindex++; - } else if (args[argindex].compareTo("-n") == 0) { - argindex++; - if (argindex >= args.length) { - usageMessage(); - System.exit(0); - } - tablename = args[argindex++]; - } else if (args[argindex].compareTo("-f") == 0) { - argindex++; - if (argindex >= args.length) { - usageMessage(); - System.exit(0); - } - try { - fieldcount = Integer.parseInt(args[argindex++]); - } catch (NumberFormatException e) { - System.err.println("Invalid number for field count"); - usageMessage(); - System.exit(1); - } - } else { - System.out.println("Unknown option " + args[argindex]); - usageMessage(); - System.exit(0); - } - - if (argindex >= args.length) { - break; - } - } - - if (argindex != args.length) { - usageMessage(); - System.exit(0); - } - - // overwrite file properties with properties from the command line - - // Issue #5 - remove call to stringPropertyNames to make compilable under - // Java 1.5 - for (Enumeration e = props.propertyNames(); e.hasMoreElements();) { - String prop = (String) e.nextElement(); - - fileprops.setProperty(prop, props.getProperty(prop)); - } - - props = fileprops; - - if (tablename == null) { - System.err.println("table name missing."); - usageMessage(); - System.exit(1); - } - - if (fieldcount > 0) { - props.setProperty(FIELD_COUNT_PROPERTY, String.valueOf(fieldcount)); - } - - try { - createTable(props, tablename); - } catch (SQLException e) { - System.err.println("Error in creating table. " + e); - System.exit(1); - } - } -} DELETED YCSB/jdbc/src/main/resources/sql/README Index: YCSB/jdbc/src/main/resources/sql/README ================================================================== --- YCSB/jdbc/src/main/resources/sql/README +++ /dev/null @@ -1,1 +0,0 @@ -Contains all the SQL statements used by the JDBC client. DELETED YCSB/jdbc/src/main/resources/sql/create_table.mysql Index: YCSB/jdbc/src/main/resources/sql/create_table.mysql ================================================================== --- YCSB/jdbc/src/main/resources/sql/create_table.mysql +++ /dev/null @@ -1,12 +0,0 @@ --- Creates a Table. - --- Drop the table if it exists; -DROP TABLE IF EXISTS usertable; - --- Create the user table with 5 fields. -CREATE TABLE usertable(YCSB_KEY VARCHAR (255) PRIMARY KEY, - FIELD1 TEXT, FIELD2 TEXT, - FIELD3 TEXT, FIELD4 TEXT, - FIELD5 TEXT, FIELD6 TEXT, - FIELD7 TEXT, FIELD8 TEXT, - FIELD9 TEXT, FIELD10 TEXT); DELETED YCSB/jdbc/src/main/resources/sql/create_table.sql Index: YCSB/jdbc/src/main/resources/sql/create_table.sql ================================================================== --- YCSB/jdbc/src/main/resources/sql/create_table.sql +++ /dev/null @@ -1,12 +0,0 @@ --- Creates a Table. - --- Drop the table if it exists; -DROP TABLE IF EXISTS usertable; - --- Create the user table with 5 fields. -CREATE TABLE usertable(YCSB_KEY VARCHAR PRIMARY KEY, - FIELD1 VARCHAR, FIELD2 VARCHAR, - FIELD3 VARCHAR, FIELD4 VARCHAR, - FIELD5 VARCHAR, FIELD6 VARCHAR, - FIELD7 VARCHAR, FIELD8 VARCHAR, - FIELD9 VARCHAR, FIELD10 VARCHAR); DELETED YCSB/jdbc/target/archive-tmp/jdbc-binding-0.1.4.jar Index: YCSB/jdbc/target/archive-tmp/jdbc-binding-0.1.4.jar ================================================================== --- YCSB/jdbc/target/archive-tmp/jdbc-binding-0.1.4.jar +++ /dev/null cannot compute difference between binary files DELETED YCSB/jdbc/target/checkstyle-cachefile Index: YCSB/jdbc/target/checkstyle-cachefile ================================================================== --- YCSB/jdbc/target/checkstyle-cachefile +++ /dev/null @@ -1,2 +0,0 @@ -#Tue Mar 12 07:18:37 UTC 2013 -configuration*?=90D08975F617302E60B623159C4AA2DEA227F3FE DELETED YCSB/jdbc/target/checkstyle-checker.xml Index: YCSB/jdbc/target/checkstyle-checker.xml ================================================================== --- YCSB/jdbc/target/checkstyle-checker.xml +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DELETED YCSB/jdbc/target/checkstyle-header.txt Index: YCSB/jdbc/target/checkstyle-header.txt ================================================================== --- YCSB/jdbc/target/checkstyle-header.txt +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. DELETED YCSB/jdbc/target/checkstyle-result.xml Index: YCSB/jdbc/target/checkstyle-result.xml ================================================================== --- YCSB/jdbc/target/checkstyle-result.xml +++ /dev/null @@ -1,262 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DELETED YCSB/jdbc/target/classes/com/yahoo/ycsb/db/JdbcDBCli.class Index: YCSB/jdbc/target/classes/com/yahoo/ycsb/db/JdbcDBCli.class ================================================================== --- YCSB/jdbc/target/classes/com/yahoo/ycsb/db/JdbcDBCli.class +++ /dev/null cannot compute difference between binary files DELETED YCSB/jdbc/target/classes/com/yahoo/ycsb/db/JdbcDBClient$StatementType$Type.class Index: YCSB/jdbc/target/classes/com/yahoo/ycsb/db/JdbcDBClient$StatementType$Type.class ================================================================== --- YCSB/jdbc/target/classes/com/yahoo/ycsb/db/JdbcDBClient$StatementType$Type.class +++ /dev/null cannot compute difference between binary files DELETED YCSB/jdbc/target/classes/com/yahoo/ycsb/db/JdbcDBClient$StatementType.class Index: YCSB/jdbc/target/classes/com/yahoo/ycsb/db/JdbcDBClient$StatementType.class ================================================================== --- YCSB/jdbc/target/classes/com/yahoo/ycsb/db/JdbcDBClient$StatementType.class +++ /dev/null cannot compute difference between binary files DELETED YCSB/jdbc/target/classes/com/yahoo/ycsb/db/JdbcDBClient.class Index: YCSB/jdbc/target/classes/com/yahoo/ycsb/db/JdbcDBClient.class ================================================================== --- YCSB/jdbc/target/classes/com/yahoo/ycsb/db/JdbcDBClient.class +++ /dev/null cannot compute difference between binary files DELETED YCSB/jdbc/target/classes/com/yahoo/ycsb/db/JdbcDBClientConstants.class Index: YCSB/jdbc/target/classes/com/yahoo/ycsb/db/JdbcDBClientConstants.class ================================================================== --- YCSB/jdbc/target/classes/com/yahoo/ycsb/db/JdbcDBClientConstants.class +++ /dev/null cannot compute difference between binary files DELETED YCSB/jdbc/target/classes/com/yahoo/ycsb/db/JdbcDBCreateTable.class Index: YCSB/jdbc/target/classes/com/yahoo/ycsb/db/JdbcDBCreateTable.class ================================================================== --- YCSB/jdbc/target/classes/com/yahoo/ycsb/db/JdbcDBCreateTable.class +++ /dev/null cannot compute difference between binary files DELETED YCSB/jdbc/target/classes/sql/README Index: YCSB/jdbc/target/classes/sql/README ================================================================== --- YCSB/jdbc/target/classes/sql/README +++ /dev/null @@ -1,1 +0,0 @@ -Contains all the SQL statements used by the JDBC client. DELETED YCSB/jdbc/target/classes/sql/create_table.mysql Index: YCSB/jdbc/target/classes/sql/create_table.mysql ================================================================== --- YCSB/jdbc/target/classes/sql/create_table.mysql +++ /dev/null @@ -1,12 +0,0 @@ --- Creates a Table. - --- Drop the table if it exists; -DROP TABLE IF EXISTS usertable; - --- Create the user table with 5 fields. -CREATE TABLE usertable(YCSB_KEY VARCHAR (255) PRIMARY KEY, - FIELD1 TEXT, FIELD2 TEXT, - FIELD3 TEXT, FIELD4 TEXT, - FIELD5 TEXT, FIELD6 TEXT, - FIELD7 TEXT, FIELD8 TEXT, - FIELD9 TEXT, FIELD10 TEXT); DELETED YCSB/jdbc/target/classes/sql/create_table.sql Index: YCSB/jdbc/target/classes/sql/create_table.sql ================================================================== --- YCSB/jdbc/target/classes/sql/create_table.sql +++ /dev/null @@ -1,12 +0,0 @@ --- Creates a Table. - --- Drop the table if it exists; -DROP TABLE IF EXISTS usertable; - --- Create the user table with 5 fields. -CREATE TABLE usertable(YCSB_KEY VARCHAR PRIMARY KEY, - FIELD1 VARCHAR, FIELD2 VARCHAR, - FIELD3 VARCHAR, FIELD4 VARCHAR, - FIELD5 VARCHAR, FIELD6 VARCHAR, - FIELD7 VARCHAR, FIELD8 VARCHAR, - FIELD9 VARCHAR, FIELD10 VARCHAR); DELETED YCSB/jdbc/target/jdbc-binding-0.1.4.jar Index: YCSB/jdbc/target/jdbc-binding-0.1.4.jar ================================================================== --- YCSB/jdbc/target/jdbc-binding-0.1.4.jar +++ /dev/null cannot compute difference between binary files DELETED YCSB/jdbc/target/maven-archiver/pom.properties Index: YCSB/jdbc/target/maven-archiver/pom.properties ================================================================== --- YCSB/jdbc/target/maven-archiver/pom.properties +++ /dev/null @@ -1,5 +0,0 @@ -#Generated by Maven -#Tue Mar 12 07:18:40 UTC 2013 -version=0.1.4 -groupId=com.yahoo.ycsb -artifactId=jdbc-binding DELETED YCSB/jdbc/target/site/checkstyle.html Index: YCSB/jdbc/target/site/checkstyle.html ================================================================== --- YCSB/jdbc/target/site/checkstyle.html +++ /dev/null cannot compute difference between binary files DELETED YCSB/jdbc/target/site/checkstyle.rss Index: YCSB/jdbc/target/site/checkstyle.rss ================================================================== --- YCSB/jdbc/target/site/checkstyle.rss +++ /dev/null @@ -1,93 +0,0 @@ - - - - - JDBC DB Binding - Checkstyle report - ${project.url} - JDBC DB Binding - Checkstyle report - en-us - ©2013 - - File: 4, - Errors: 251, - Warnings: 0, - Infos: 0 - - ${project.url}/checkstyle.html - -

Click here for the full Checkstyle report.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FilesIWE
- com/yahoo/ycsb/db/JdbcDBCreateTable.java - - 0 - - 0 - - 16 -
- com/yahoo/ycsb/db/JdbcDBCli.java - - 0 - - 0 - - 15 -
- com/yahoo/ycsb/db/JdbcDBClient.java - - 0 - - 0 - - 194 -
- com/yahoo/ycsb/db/JdbcDBClientConstants.java - - 0 - - 0 - - 26 -
- -
-
-
-
- DELETED YCSB/jdbc/target/site/images/rss.png Index: YCSB/jdbc/target/site/images/rss.png ================================================================== --- YCSB/jdbc/target/site/images/rss.png +++ /dev/null cannot compute difference between binary files DELETED YCSB/mapkeeper/README Index: YCSB/mapkeeper/README ================================================================== --- YCSB/mapkeeper/README +++ /dev/null @@ -1,9 +0,0 @@ -# MapKeeper-Specific Properties - -## mapkeeper.host - -Specifies the host MapKeeper server is running on (default: localhost). - -## mapkeeper.port - -Specifies the port MapKeeper server is listening to (default: 9090). DELETED YCSB/mapkeeper/pom.xml Index: YCSB/mapkeeper/pom.xml ================================================================== --- YCSB/mapkeeper/pom.xml +++ /dev/null @@ -1,58 +0,0 @@ - - - 4.0.0 - - com.yahoo.ycsb - root - 0.1.4 - - - mapkeeper-binding - Mapkeeper DB Binding - jar - - - - com.yahoo.mapkeeper - mapkeeper - ${mapkeeper.version} - - - com.yahoo.ycsb - core - ${project.version} - - - - - - - org.apache.maven.plugins - maven-assembly-plugin - ${maven.assembly.version} - - - jar-with-dependencies - - false - - - - package - - single - - - - - - - - - - mapkeeper-releases - https://raw.github.com/m1ch1/m1ch1-mvn-repo/master/releases - - - - DELETED YCSB/mapkeeper/src/main/java/com/yahoo/ycsb/db/MapKeeperClient.java Index: YCSB/mapkeeper/src/main/java/com/yahoo/ycsb/db/MapKeeperClient.java ================================================================== --- YCSB/mapkeeper/src/main/java/com/yahoo/ycsb/db/MapKeeperClient.java +++ /dev/null @@ -1,202 +0,0 @@ -package com.yahoo.ycsb.db; - -import java.nio.ByteBuffer; -import java.util.HashMap; -import java.util.Properties; -import java.util.Set; -import java.util.Vector; - -import org.apache.thrift.TException; -import org.apache.thrift.protocol.TBinaryProtocol; -import org.apache.thrift.protocol.TProtocol; -import org.apache.thrift.transport.TFramedTransport; -import org.apache.thrift.transport.TSocket; -import org.apache.thrift.transport.TTransport; - -import com.yahoo.mapkeeper.BinaryResponse; -import com.yahoo.mapkeeper.MapKeeper; -import com.yahoo.mapkeeper.Record; -import com.yahoo.mapkeeper.RecordListResponse; -import com.yahoo.mapkeeper.ResponseCode; -import com.yahoo.mapkeeper.ScanOrder; -import com.yahoo.ycsb.ByteIterator; -import com.yahoo.ycsb.DB; -import com.yahoo.ycsb.StringByteIterator; -import com.yahoo.ycsb.workloads.CoreWorkload; - -public class MapKeeperClient extends DB { - private static final String HOST = "mapkeeper.host"; - private static final String HOST_DEFAULT = "localhost"; - private static final String PORT = "mapkeeper.port"; - private static final String PORT_DEFAULT = "9090"; - MapKeeper.Client c; - boolean writeallfields; - static boolean initteddb = false; - private synchronized static void initDB(Properties p, MapKeeper.Client c) throws TException { - if(!initteddb) { - initteddb = true; - c.addMap(p.getProperty(CoreWorkload.TABLENAME_PROPERTY, CoreWorkload.TABLENAME_PROPERTY_DEFAULT)); - } - } - - public void init() { - String host = getProperties().getProperty(HOST, HOST_DEFAULT); - int port = Integer.parseInt(getProperties().getProperty(PORT, PORT_DEFAULT)); - TTransport tr = new TFramedTransport(new TSocket(host, port)); - TProtocol proto = new TBinaryProtocol(tr); - c = new MapKeeper.Client(proto); - try { - tr.open(); - initDB(getProperties(), c); - } catch(TException e) { - throw new RuntimeException(e); - } - writeallfields = Boolean.parseBoolean(getProperties().getProperty(CoreWorkload.WRITE_ALL_FIELDS_PROPERTY, - CoreWorkload.WRITE_ALL_FIELDS_PROPERTY_DEFAULT)); - } - - ByteBuffer encode(HashMap values) { - int len = 0; - for(String k : values.keySet()) { - len += (k.length() + 1 + values.get(k).bytesLeft() + 1); - } - byte[] array = new byte[len]; - int i = 0; - for(String k : values.keySet()) { - for(int j = 0; j < k.length(); j++) { - array[i] = (byte)k.charAt(j); - i++; - } - array[i] = '\t'; // XXX would like to use sane delimiter (null, 254, 255, ...) but java makes this nearly impossible - i++; - ByteIterator v = values.get(k); - i = v.nextBuf(array, i); - array[i] = '\t'; - i++; - } - array[array.length-1] = 0; - ByteBuffer buf = ByteBuffer.wrap(array); - buf.rewind(); - return buf; - } - void decode(Set fields, String tups, HashMap tup) { - String[] tok = tups.split("\\t"); - if(tok.length == 0) { throw new IllegalStateException("split returned empty array!"); } - for(int i = 0; i < tok.length; i+=2) { - if(fields == null || fields.contains(tok[i])) { - if(tok.length < i+2) { throw new IllegalStateException("Couldn't parse tuple <" + tups + "> at index " + i); } - if(tok[i] == null || tok[i+1] == null) throw new NullPointerException("Key is " + tok[i] + " val is + " + tok[i+1]); - tup.put(tok[i], new StringByteIterator(tok[i+1])); - } - } - if(tok.length == 0) { - System.err.println("Empty tuple: " + tups); - } - } - - int ycsbThriftRet(BinaryResponse succ, ResponseCode zero, ResponseCode one) { - return ycsbThriftRet(succ.responseCode, zero, one); - } - int ycsbThriftRet(ResponseCode rc, ResponseCode zero, ResponseCode one) { - return - rc == zero ? 0 : - rc == one ? 1 : 2; - } - ByteBuffer bufStr(String str) { - ByteBuffer buf = ByteBuffer.wrap(str.getBytes()); - return buf; - } - String strResponse(BinaryResponse buf) { - return new String(buf.value.array()); - } - - @Override - public int read(String table, String key, Set fields, - HashMap result) { - try { - ByteBuffer buf = bufStr(key); - - BinaryResponse succ = c.get(table, buf); - - int ret = ycsbThriftRet( - succ, - ResponseCode.RecordExists, - ResponseCode.RecordNotFound); - - if(ret == 0) { - decode(fields, strResponse(succ), result); - } - return ret; - } catch(TException e) { - e.printStackTrace(); - return 2; - } - } - - @Override - public int scan(String table, String startkey, int recordcount, - Set fields, Vector> result) { - try { - //XXX what to pass in for nulls / zeros? - RecordListResponse res = c.scan(table, ScanOrder.Ascending, bufStr(startkey), true, null, false, recordcount, 0); - int ret = ycsbThriftRet(res.responseCode, ResponseCode.Success, ResponseCode.ScanEnded); - if(ret == 0) { - for(Record r : res.records) { - HashMap tuple = new HashMap(); - // Note: r.getKey() and r.getValue() call special helper methods that trim the buffer - // to an appropriate length, and memcpy it to a byte[]. Trying to manipulate the ByteBuffer - // directly leads to trouble. - tuple.put("key", new StringByteIterator(new String(r.getKey()))); - decode(fields, new String(r.getValue())/*strBuf(r.bufferForValue())*/, tuple); - result.add(tuple); - } - } - return ret; - } catch(TException e) { - e.printStackTrace(); - return 2; - } - } - - @Override - public int update(String table, String key, - HashMap values) { - try { - if(!writeallfields) { - HashMap oldval = new HashMap(); - read(table, key, null, oldval); - for(String k: values.keySet()) { - oldval.put(k, values.get(k)); - } - values = oldval; - } - ResponseCode succ = c.update(table, bufStr(key), encode(values)); - return ycsbThriftRet(succ, ResponseCode.RecordExists, ResponseCode.RecordNotFound); - } catch(TException e) { - e.printStackTrace(); - return 2; - } - } - - @Override - public int insert(String table, String key, - HashMap values) { - try { - int ret = ycsbThriftRet(c.insert(table, bufStr(key), encode(values)), ResponseCode.Success, ResponseCode.RecordExists); - return ret; - } catch(TException e) { - e.printStackTrace(); - return 2; - } - } - - @Override - public int delete(String table, String key) { - try { - return ycsbThriftRet(c.remove(table, bufStr(key)), ResponseCode.Success, ResponseCode.RecordExists); - } catch(TException e) { - e.printStackTrace(); - return 2; - } - } -} DELETED YCSB/mapkeeper/target/archive-tmp/mapkeeper-binding-0.1.4.jar Index: YCSB/mapkeeper/target/archive-tmp/mapkeeper-binding-0.1.4.jar ================================================================== --- YCSB/mapkeeper/target/archive-tmp/mapkeeper-binding-0.1.4.jar +++ /dev/null cannot compute difference between binary files DELETED YCSB/mapkeeper/target/checkstyle-cachefile Index: YCSB/mapkeeper/target/checkstyle-cachefile ================================================================== --- YCSB/mapkeeper/target/checkstyle-cachefile +++ /dev/null @@ -1,2 +0,0 @@ -#Tue Mar 12 07:18:43 UTC 2013 -configuration*?=56EBE63C4D025E17BBAFA7839BE7323E64769525 DELETED YCSB/mapkeeper/target/checkstyle-checker.xml Index: YCSB/mapkeeper/target/checkstyle-checker.xml ================================================================== --- YCSB/mapkeeper/target/checkstyle-checker.xml +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DELETED YCSB/mapkeeper/target/checkstyle-header.txt Index: YCSB/mapkeeper/target/checkstyle-header.txt ================================================================== --- YCSB/mapkeeper/target/checkstyle-header.txt +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. DELETED YCSB/mapkeeper/target/checkstyle-result.xml Index: YCSB/mapkeeper/target/checkstyle-result.xml ================================================================== --- YCSB/mapkeeper/target/checkstyle-result.xml +++ /dev/null @@ -1,182 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DELETED YCSB/mapkeeper/target/classes/com/yahoo/ycsb/db/MapKeeperClient.class Index: YCSB/mapkeeper/target/classes/com/yahoo/ycsb/db/MapKeeperClient.class ================================================================== --- YCSB/mapkeeper/target/classes/com/yahoo/ycsb/db/MapKeeperClient.class +++ /dev/null cannot compute difference between binary files DELETED YCSB/mapkeeper/target/mapkeeper-binding-0.1.4.jar Index: YCSB/mapkeeper/target/mapkeeper-binding-0.1.4.jar ================================================================== --- YCSB/mapkeeper/target/mapkeeper-binding-0.1.4.jar +++ /dev/null cannot compute difference between binary files DELETED YCSB/mapkeeper/target/maven-archiver/pom.properties Index: YCSB/mapkeeper/target/maven-archiver/pom.properties ================================================================== --- YCSB/mapkeeper/target/maven-archiver/pom.properties +++ /dev/null @@ -1,5 +0,0 @@ -#Generated by Maven -#Tue Mar 12 07:18:45 UTC 2013 -version=0.1.4 -groupId=com.yahoo.ycsb -artifactId=mapkeeper-binding DELETED YCSB/mapkeeper/target/site/checkstyle.html Index: YCSB/mapkeeper/target/site/checkstyle.html ================================================================== --- YCSB/mapkeeper/target/site/checkstyle.html +++ /dev/null cannot compute difference between binary files DELETED YCSB/mapkeeper/target/site/checkstyle.rss Index: YCSB/mapkeeper/target/site/checkstyle.rss ================================================================== --- YCSB/mapkeeper/target/site/checkstyle.rss +++ /dev/null @@ -1,51 +0,0 @@ - - - - - Mapkeeper DB Binding - Checkstyle report - ${project.url} - Mapkeeper DB Binding - Checkstyle report - en-us - ©2013 - - File: 1, - Errors: 177, - Warnings: 0, - Infos: 0 - - ${project.url}/checkstyle.html - -

Click here for the full Checkstyle report.

- - - - - - - - - - - - - - - - - - -
FilesIWE
- com/yahoo/ycsb/db/MapKeeperClient.java - - 0 - - 0 - - 177 -
- -
-
-
-
- DELETED YCSB/mapkeeper/target/site/images/rss.png Index: YCSB/mapkeeper/target/site/images/rss.png ================================================================== --- YCSB/mapkeeper/target/site/images/rss.png +++ /dev/null cannot compute difference between binary files DELETED YCSB/mongodb/README.md Index: YCSB/mongodb/README.md ================================================================== --- YCSB/mongodb/README.md +++ /dev/null @@ -1,44 +0,0 @@ -## Quick Start - -This section describes how to run YCSB on MongoDB running locally. - -### 1. Start MongoDB - -First, download MongoDB and start `mongod`. For example, to start MongoDB -on x86-64 Linux box: - - wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-1.8.3.tgz - tar xfvz mongodb-linux-x86_64-1.8.3.tgz - mkdir /tmp/mongodb - cd mongodb-linux-x86_64-1.8.3 - ./bin/mongod --dbpath /tmp/mongodb - -### 2. Set Up YCSB - -Clone the YCSB git repository and compile: - - git clone git://github.com/brianfrankcooper/YCSB.git - cd YCSB - mvn clean package - -### 3. Run YCSB - -Now you are ready to run! First, load the data: - - ./bin/ycsb load mongodb -s -P workloads/workloada - -Then, run the workload: - - ./bin/ycsb run mongodb -s -P workloads/workloada - -See the next section for the list of configuration parameters for MongoDB. - -## MongoDB Configuration Parameters - -### `mongodb.url` (default: `mongodb://localhost:27017`) - -### `mongodb.database` (default: `ycsb`) - -### `mongodb.writeConcern` (default `safe`) - -### `mongodb.maxconnections` (default `10`) DELETED YCSB/mongodb/pom.xml Index: YCSB/mongodb/pom.xml ================================================================== --- YCSB/mongodb/pom.xml +++ /dev/null @@ -1,51 +0,0 @@ - - - 4.0.0 - - com.yahoo.ycsb - root - 0.1.4 - - - mongodb-binding - Mongo DB Binding - jar - - - - org.mongodb - mongo-java-driver - ${mongodb.version} - - - com.yahoo.ycsb - core - ${project.version} - - - - - - - org.apache.maven.plugins - maven-assembly-plugin - ${maven.assembly.version} - - - jar-with-dependencies - - false - - - - package - - single - - - - - - - - DELETED YCSB/mongodb/src/main/java/com/yahoo/ycsb/db/MongoDbClient.java Index: YCSB/mongodb/src/main/java/com/yahoo/ycsb/db/MongoDbClient.java ================================================================== --- YCSB/mongodb/src/main/java/com/yahoo/ycsb/db/MongoDbClient.java +++ /dev/null @@ -1,377 +0,0 @@ -/** - * MongoDB client binding for YCSB. - * - * Submitted by Yen Pai on 5/11/2010. - * - * https://gist.github.com/000a66b8db2caf42467b#file_mongo_db.java - * - */ - -package com.yahoo.ycsb.db; - -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; -import java.util.Properties; -import java.util.Set; -import java.util.Vector; -import java.util.concurrent.atomic.AtomicInteger; - -import com.mongodb.BasicDBObject; -import com.mongodb.DBAddress; -import com.mongodb.DBCollection; -import com.mongodb.DBCursor; -import com.mongodb.DBObject; -import com.mongodb.Mongo; -import com.mongodb.MongoOptions; -import com.mongodb.WriteConcern; -import com.mongodb.WriteResult; -import com.yahoo.ycsb.ByteArrayByteIterator; -import com.yahoo.ycsb.ByteIterator; -import com.yahoo.ycsb.DB; -import com.yahoo.ycsb.DBException; - -/** - * MongoDB client for YCSB framework. - * - * Properties to set: - * - * mongodb.url=mongodb://localhost:27017 mongodb.database=ycsb - * mongodb.writeConcern=normal - * - * @author ypai - */ -public class MongoDbClient extends DB { - - /** Used to include a field in a response. */ - protected static final Integer INCLUDE = Integer.valueOf(1); - - /** A singleton Mongo instance. */ - private static Mongo mongo; - - /** The default write concern for the test. */ - private static WriteConcern writeConcern; - - /** The database to access. */ - private static String database; - - /** Count the number of times initialized to teardown on the last {@link #cleanup()}. */ - private static final AtomicInteger initCount = new AtomicInteger(0); - - /** - * Initialize any state for this DB. - * Called once per DB instance; there is one DB instance per client thread. - */ - @Override - public void init() throws DBException { - initCount.incrementAndGet(); - synchronized (INCLUDE) { - if (mongo != null) { - return; - } - - // initialize MongoDb driver - Properties props = getProperties(); - String url = props.getProperty("mongodb.url", - "mongodb://10.249.21.140:27017"); - database = props.getProperty("mongodb.database", "ycsb"); - String writeConcernType = props.getProperty("mongodb.writeConcern", - "safe").toLowerCase(); - final String maxConnections = props.getProperty( - "mongodb.maxconnections", "10"); - - if ("none".equals(writeConcernType)) { - writeConcern = WriteConcern.NONE; - } - else if ("safe".equals(writeConcernType)) { - writeConcern = WriteConcern.SAFE; - } - else if ("normal".equals(writeConcernType)) { - writeConcern = WriteConcern.NORMAL; - } - else if ("fsync_safe".equals(writeConcernType)) { - writeConcern = WriteConcern.FSYNC_SAFE; - } - else if ("replicas_safe".equals(writeConcernType)) { - writeConcern = WriteConcern.REPLICAS_SAFE; - } - else { - System.err - .println("ERROR: Invalid writeConcern: '" - + writeConcernType - + "'. " - + "Must be [ none | safe | normal | fsync_safe | replicas_safe ]"); - System.exit(1); - } - - try { - // strip out prefix since Java driver doesn't currently support - // standard connection format URL yet - // http://www.mongodb.org/display/DOCS/Connections - if (url.startsWith("mongodb://")) { - url = url.substring(10); - } - - // need to append db to url. - url += "/" + database; - System.out.println("new database url = " + url); - MongoOptions options = new MongoOptions(); - options.connectionsPerHost = Integer.parseInt(maxConnections); - mongo = new Mongo(new DBAddress(url), options); - - System.out.println("mongo connection created with " + url); - } - catch (Exception e1) { - System.err - .println("Could not initialize MongoDB connection pool for Loader: " - + e1.toString()); - e1.printStackTrace(); - return; - } - } - } - - /** - * Cleanup any state for this DB. - * Called once per DB instance; there is one DB instance per client thread. - */ - @Override - public void cleanup() throws DBException { - if (initCount.decrementAndGet() <= 0) { - try { - mongo.close(); - } - catch (Exception e1) { - System.err.println("Could not close MongoDB connection pool: " - + e1.toString()); - e1.printStackTrace(); - return; - } - } - } - - /** - * Delete a record from the database. - * - * @param table The name of the table - * @param key The record key of the record to delete. - * @return Zero on success, a non-zero error code on error. See this class's description for a discussion of error codes. - */ - @Override - public int delete(String table, String key) { - com.mongodb.DB db = null; - try { - db = mongo.getDB(database); - db.requestStart(); - DBCollection collection = db.getCollection(table); - DBObject q = new BasicDBObject().append("_id", key); - WriteResult res = collection.remove(q, writeConcern); - return res.getN() == 1 ? 0 : 1; - } - catch (Exception e) { - System.err.println(e.toString()); - return 1; - } - finally { - if (db != null) { - db.requestDone(); - } - } - } - - /** - * Insert a record in the database. Any field/value pairs in the specified values HashMap will be written into the record with the specified - * record key. - * - * @param table The name of the table - * @param key The record key of the record to insert. - * @param values A HashMap of field/value pairs to insert in the record - * @return Zero on success, a non-zero error code on error. See this class's description for a discussion of error codes. - */ - @Override - public int insert(String table, String key, - HashMap values) { - com.mongodb.DB db = null; - try { - db = mongo.getDB(database); - - db.requestStart(); - - DBCollection collection = db.getCollection(table); - DBObject r = new BasicDBObject().append("_id", key); - for (String k : values.keySet()) { - r.put(k, values.get(k).toArray()); - } - WriteResult res = collection.insert(r, writeConcern); - return res.getError() == null ? 0 : 1; - } - catch (Exception e) { - e.printStackTrace(); - return 1; - } - finally { - if (db != null) { - db.requestDone(); - } - } - } - - /** - * Read a record from the database. Each field/value pair from the result will be stored in a HashMap. - * - * @param table The name of the table - * @param key The record key of the record to read. - * @param fields The list of fields to read, or null for all of them - * @param result A HashMap of field/value pairs for the result - * @return Zero on success, a non-zero error code on error or "not found". - */ - @Override - @SuppressWarnings("unchecked") - public int read(String table, String key, Set fields, - HashMap result) { - com.mongodb.DB db = null; - try { - db = mongo.getDB(database); - - db.requestStart(); - - DBCollection collection = db.getCollection(table); - DBObject q = new BasicDBObject().append("_id", key); - DBObject fieldsToReturn = new BasicDBObject(); - - DBObject queryResult = null; - if (fields != null) { - Iterator iter = fields.iterator(); - while (iter.hasNext()) { - fieldsToReturn.put(iter.next(), INCLUDE); - } - queryResult = collection.findOne(q, fieldsToReturn); - } - else { - queryResult = collection.findOne(q); - } - - if (queryResult != null) { - result.putAll(queryResult.toMap()); - } - return queryResult != null ? 0 : 1; - } - catch (Exception e) { - System.err.println(e.toString()); - return 1; - } - finally { - if (db != null) { - db.requestDone(); - } - } - } - - /** - * Update a record in the database. Any field/value pairs in the specified values HashMap will be written into the record with the specified - * record key, overwriting any existing values with the same field name. - * - * @param table The name of the table - * @param key The record key of the record to write. - * @param values A HashMap of field/value pairs to update in the record - * @return Zero on success, a non-zero error code on error. See this class's description for a discussion of error codes. - */ - @Override - public int update(String table, String key, - HashMap values) { - com.mongodb.DB db = null; - try { - db = mongo.getDB(database); - - db.requestStart(); - - DBCollection collection = db.getCollection(table); - DBObject q = new BasicDBObject().append("_id", key); - DBObject u = new BasicDBObject(); - DBObject fieldsToSet = new BasicDBObject(); - Iterator keys = values.keySet().iterator(); - while (keys.hasNext()) { - String tmpKey = keys.next(); - fieldsToSet.put(tmpKey, values.get(tmpKey).toArray()); - - } - u.put("$set", fieldsToSet); - WriteResult res = collection.update(q, u, false, false, - writeConcern); - return res.getN() == 1 ? 0 : 1; - } - catch (Exception e) { - System.err.println(e.toString()); - return 1; - } - finally { - if (db != null) { - db.requestDone(); - } - } - } - - /** - * Perform a range scan for a set of records in the database. Each field/value pair from the result will be stored in a HashMap. - * - * @param table The name of the table - * @param startkey The record key of the first record to read. - * @param recordcount The number of records to read - * @param fields The list of fields to read, or null for all of them - * @param result A Vector of HashMaps, where each HashMap is a set field/value pairs for one record - * @return Zero on success, a non-zero error code on error. See this class's description for a discussion of error codes. - */ - @Override - public int scan(String table, String startkey, int recordcount, - Set fields, Vector> result) { - com.mongodb.DB db = null; - try { - db = mongo.getDB(database); - db.requestStart(); - DBCollection collection = db.getCollection(table); - // { "_id":{"$gte":startKey, "$lte":{"appId":key+"\uFFFF"}} } - DBObject scanRange = new BasicDBObject().append("$gte", startkey); - DBObject q = new BasicDBObject().append("_id", scanRange); - DBCursor cursor = collection.find(q).limit(recordcount); - while (cursor.hasNext()) { - // toMap() returns a Map, but result.add() expects a - // Map. Hence, the suppress warnings. - HashMap resultMap = new HashMap(); - - DBObject obj = cursor.next(); - fillMap(resultMap, obj); - - result.add(resultMap); - } - - return 0; - } - catch (Exception e) { - System.err.println(e.toString()); - return 1; - } - finally { - if (db != null) { - db.requestDone(); - } - } - - } - - /** - * TODO - Finish - * - * @param resultMap - * @param obj - */ - @SuppressWarnings("unchecked") - protected void fillMap(HashMap resultMap, DBObject obj) { - Map objMap = obj.toMap(); - for (Map.Entry entry : objMap.entrySet()) { - if (entry.getValue() instanceof byte[]) { - resultMap.put(entry.getKey(), new ByteArrayByteIterator( - (byte[]) entry.getValue())); - } - } - } -} DELETED YCSB/mongodb/target/archive-tmp/mongodb-binding-0.1.4.jar Index: YCSB/mongodb/target/archive-tmp/mongodb-binding-0.1.4.jar ================================================================== --- YCSB/mongodb/target/archive-tmp/mongodb-binding-0.1.4.jar +++ /dev/null cannot compute difference between binary files DELETED YCSB/mongodb/target/checkstyle-cachefile Index: YCSB/mongodb/target/checkstyle-cachefile ================================================================== --- YCSB/mongodb/target/checkstyle-cachefile +++ /dev/null @@ -1,2 +0,0 @@ -#Tue Mar 12 07:18:48 UTC 2013 -configuration*?=2FBB5C1B7C197E56259C4C5BD96D922471C80E47 DELETED YCSB/mongodb/target/checkstyle-checker.xml Index: YCSB/mongodb/target/checkstyle-checker.xml ================================================================== --- YCSB/mongodb/target/checkstyle-checker.xml +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DELETED YCSB/mongodb/target/checkstyle-header.txt Index: YCSB/mongodb/target/checkstyle-header.txt ================================================================== --- YCSB/mongodb/target/checkstyle-header.txt +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. DELETED YCSB/mongodb/target/checkstyle-result.xml Index: YCSB/mongodb/target/checkstyle-result.xml ================================================================== --- YCSB/mongodb/target/checkstyle-result.xml +++ /dev/null @@ -1,253 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DELETED YCSB/mongodb/target/classes/com/yahoo/ycsb/db/MongoDbClient.class Index: YCSB/mongodb/target/classes/com/yahoo/ycsb/db/MongoDbClient.class ================================================================== --- YCSB/mongodb/target/classes/com/yahoo/ycsb/db/MongoDbClient.class +++ /dev/null cannot compute difference between binary files DELETED YCSB/mongodb/target/maven-archiver/pom.properties Index: YCSB/mongodb/target/maven-archiver/pom.properties ================================================================== --- YCSB/mongodb/target/maven-archiver/pom.properties +++ /dev/null @@ -1,5 +0,0 @@ -#Generated by Maven -#Tue Mar 12 07:18:50 UTC 2013 -version=0.1.4 -groupId=com.yahoo.ycsb -artifactId=mongodb-binding DELETED YCSB/mongodb/target/mongodb-binding-0.1.4.jar Index: YCSB/mongodb/target/mongodb-binding-0.1.4.jar ================================================================== --- YCSB/mongodb/target/mongodb-binding-0.1.4.jar +++ /dev/null cannot compute difference between binary files DELETED YCSB/mongodb/target/site/checkstyle.html Index: YCSB/mongodb/target/site/checkstyle.html ================================================================== --- YCSB/mongodb/target/site/checkstyle.html +++ /dev/null cannot compute difference between binary files DELETED YCSB/mongodb/target/site/checkstyle.rss Index: YCSB/mongodb/target/site/checkstyle.rss ================================================================== --- YCSB/mongodb/target/site/checkstyle.rss +++ /dev/null @@ -1,51 +0,0 @@ - - - - - Mongo DB Binding - Checkstyle report - ${project.url} - Mongo DB Binding - Checkstyle report - en-us - ©2013 - - File: 1, - Errors: 248, - Warnings: 0, - Infos: 0 - - ${project.url}/checkstyle.html - -

Click here for the full Checkstyle report.

- - - - - - - - - - - - - - - - - - -
FilesIWE
- com/yahoo/ycsb/db/MongoDbClient.java - - 0 - - 0 - - 248 -
- -
-
-
-
- DELETED YCSB/mongodb/target/site/images/rss.png Index: YCSB/mongodb/target/site/images/rss.png ================================================================== --- YCSB/mongodb/target/site/images/rss.png +++ /dev/null cannot compute difference between binary files DELETED YCSB/nosqldb/README Index: YCSB/nosqldb/README ================================================================== --- YCSB/nosqldb/README +++ /dev/null @@ -1,30 +0,0 @@ -CONFIGURE - -$KVHOME is Oracle NoSQL Database package files. -$KVROOT is a data directory. -$YCSBHOME is a YCSB home directory. - - mkdir $KVROOT - java -jar $KVHOME/lib/kvstore-1.2.123.jar makebootconfig \ - -root $KVROOT -port 5000 -admin 5001 -host localhost \ - -harange 5010,5020 - java -jar $KVHOME/lib/kvstore-1.2.123.jar start -root $KVROOT - java -jar $KVHOME/lib/kvstore-1.2.123.jar runadmin \ - -port 5000 -host localhost -script $YCSBHOME/conf/script.txt - -BENCHMARK - - $YCSBHOME/bin/ycsb load nosqldb -P workloads/workloada - $YCSBHOME/bin/ycsb run nosqldb -P workloads/workloada - -PROPERTIES - -See $YCSBHOME/conf/nosqldb.properties. - -STOP - -$ java -jar $KVHOME/lib/kvstore-1.2.123.jar stop -root $KVROOT - - -Please refer to Oracle NoSQL Database docs here: -http://docs.oracle.com/cd/NOSQL/html/index.html DELETED YCSB/nosqldb/pom.xml Index: YCSB/nosqldb/pom.xml ================================================================== --- YCSB/nosqldb/pom.xml +++ /dev/null @@ -1,56 +0,0 @@ - - - 4.0.0 - - com.yahoo.ycsb - root - 0.1.4 - - - nosqldb-binding - Oracle NoSQL Database Binding - - - - com.oracle - kvclient - 1.2.123 - - - com.yahoo.ycsb - core - ${project.version} - - - - - - - org.apache.maven.plugins - maven-assembly-plugin - ${maven.assembly.version} - - - jar-with-dependencies - - false - - - - package - - single - - - - - - - - - - central - file:///Users/michi/.m2/repository - - - DELETED YCSB/nosqldb/src/main/conf/nosqldb.properties Index: YCSB/nosqldb/src/main/conf/nosqldb.properties ================================================================== --- YCSB/nosqldb/src/main/conf/nosqldb.properties +++ /dev/null @@ -1,28 +0,0 @@ -# -# Sample property file for Oracle NoSQL Database client -# -# Refer to the Javadoc of oracle.kv.KVStoreConfig class -# for more details. -# - -# Store name -#storeName=kvstore - -# Comma-separated list of helper host/port pairs -#helperHost=localhost:5000 - -# Read consistency -# "ABSOLUTE" or "NONE_REQUIRED" -#consistency=NONE_REQUIRED - -# Write durability -# "COMMIT_NO_SYNC", "COMMIT_SYNC" or "COMMIT_WRITE_NO_SYNC" -#durability=COMMIT_NO_SYNC - -# Limitations on the number of active requests to a node -#requestLimit.maxActiveRequests=100 -#requestLimit.requestThresholdPercent=90 -#requestLimit.nodeLimitPercent=80 - -# Request timeout in seconds (positive integer) -#requestTimeout=5 DELETED YCSB/nosqldb/src/main/conf/script.txt Index: YCSB/nosqldb/src/main/conf/script.txt ================================================================== --- YCSB/nosqldb/src/main/conf/script.txt +++ /dev/null @@ -1,9 +0,0 @@ -# Simple configuration file; only one node in a system -configure kvstore -plan -execute -name "Deploy DC" deploy-datacenter "Local" -plan -execute -name "Deploy n01" deploy-sn 1 localhost 5000 -plan -execute -name "Deploy admin" deploy-admin 1 5001 -addpool LocalPool -joinpool LocalPool 1 -plan -execute -name "Deploy the store" deploy-store LocalPool 1 100 -quit DELETED YCSB/nosqldb/src/main/java/com/yahoo/ycsb/db/NoSqlDbClient.java Index: YCSB/nosqldb/src/main/java/com/yahoo/ycsb/db/NoSqlDbClient.java ================================================================== --- YCSB/nosqldb/src/main/java/com/yahoo/ycsb/db/NoSqlDbClient.java +++ /dev/null @@ -1,221 +0,0 @@ -package com.yahoo.ycsb.db; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Properties; -import java.util.Set; -import java.util.SortedMap; -import java.util.Vector; -import java.util.concurrent.TimeUnit; - -import oracle.kv.Consistency; -import oracle.kv.Durability; -import oracle.kv.FaultException; -import oracle.kv.KVStore; -import oracle.kv.KVStoreConfig; -import oracle.kv.KVStoreFactory; -import oracle.kv.Key; -import oracle.kv.RequestLimitConfig; -import oracle.kv.Value; -import oracle.kv.ValueVersion; - -import com.yahoo.ycsb.ByteArrayByteIterator; -import com.yahoo.ycsb.ByteIterator; -import com.yahoo.ycsb.DB; -import com.yahoo.ycsb.DBException; - -/** - * A database interface layer for Oracle NoSQL Database. - */ -public class NoSqlDbClient extends DB { - - public static final int OK = 0; - public static final int ERROR = -1; - - KVStore store; - - private int getPropertyInt(Properties properties, String key, int defaultValue) throws DBException { - String p = properties.getProperty(key); - int i = defaultValue; - if (p != null) { - try { - i = Integer.parseInt(p); - } catch (NumberFormatException e) { - throw new DBException("Illegal number format in " + key + " property"); - } - } - return i; - } - - @Override - public void init() throws DBException { - Properties properties = getProperties(); - - /* Mandatory properties */ - String storeName = properties.getProperty("storeName", "kvstore"); - String[] helperHosts = properties.getProperty("helperHost", "localhost:5000").split(","); - - KVStoreConfig config = new KVStoreConfig(storeName, helperHosts); - - /* Optional properties */ - String p; - - p = properties.getProperty("consistency"); - if (p != null) { - if (p.equalsIgnoreCase("ABSOLUTE")) { - config.setConsistency(Consistency.ABSOLUTE); - } else if (p.equalsIgnoreCase("NONE_REQUIRED")) { - config.setConsistency(Consistency.NONE_REQUIRED); - } else { - throw new DBException("Illegal value in consistency property"); - } - } - - p = properties.getProperty("durability"); - if (p != null) { - if (p.equalsIgnoreCase("COMMIT_NO_SYNC")) { - config.setDurability(Durability.COMMIT_NO_SYNC); - } else if (p.equalsIgnoreCase("COMMIT_SYNC")) { - config.setDurability(Durability.COMMIT_SYNC); - } else if (p.equalsIgnoreCase("COMMIT_WRITE_NO_SYNC")) { - config.setDurability(Durability.COMMIT_WRITE_NO_SYNC); - } else { - throw new DBException("Illegal value in durability property"); - } - } - - int maxActiveRequests = getPropertyInt(properties, - "requestLimit.maxActiveRequests", RequestLimitConfig.DEFAULT_MAX_ACTIVE_REQUESTS); - int requestThresholdPercent = getPropertyInt(properties, - "requestLimit.requestThresholdPercent", RequestLimitConfig.DEFAULT_REQUEST_THRESHOLD_PERCENT); - int nodeLimitPercent = getPropertyInt(properties, - "requestLimit.nodeLimitPercent", RequestLimitConfig.DEFAULT_NODE_LIMIT_PERCENT); - RequestLimitConfig requestLimitConfig; - /* It is said that the constructor could throw NodeRequestLimitException in Javadoc, the exception is not provided */ -// try { - requestLimitConfig = new RequestLimitConfig(maxActiveRequests, requestThresholdPercent, nodeLimitPercent); -// } catch (NodeRequestLimitException e) { -// throw new DBException(e); -// } - config.setRequestLimit(requestLimitConfig); - - p = properties.getProperty("requestTimeout"); - if (p != null) { - long timeout = 1; - try { - timeout = Long.parseLong(p); - } catch (NumberFormatException e) { - throw new DBException("Illegal number format in requestTimeout property"); - } - try { - // TODO Support other TimeUnit - config.setRequestTimeout(timeout, TimeUnit.SECONDS); - } catch (IllegalArgumentException e) { - throw new DBException(e); - } - } - - try { - store = KVStoreFactory.getStore(config); - } catch (FaultException e) { - throw new DBException(e); - } - } - - @Override - public void cleanup() throws DBException { - store.close(); - } - - /** - * Create a key object. - * We map "table" and (YCSB's) "key" to a major component of the oracle.kv.Key, - * and "field" to a minor component. - * - * @return An oracle.kv.Key object. - */ - private static Key createKey(String table, String key, String field) { - List majorPath = new ArrayList(); - majorPath.add(table); - majorPath.add(key); - if (field == null) { - return Key.createKey(majorPath); - } - - return Key.createKey(majorPath, field); - } - - private static Key createKey(String table, String key) { - return createKey(table, key, null); - } - - private static String getFieldFromKey(Key key) { - return key.getMinorPath().get(0); - } - - @Override - public int read(String table, String key, Set fields, HashMap result) { - Key kvKey = createKey(table, key); - SortedMap kvResult; - try { - kvResult = store.multiGet(kvKey, null, null); - } catch (FaultException e) { - System.err.println(e); - return ERROR; - } - - for (Map.Entry entry : kvResult.entrySet()) { - /* If fields is null, read all fields */ - String field = getFieldFromKey(entry.getKey()); - if (fields != null && !fields.contains(field)) { - continue; - } - result.put(field, new ByteArrayByteIterator(entry.getValue().getValue().getValue())); - } - - return OK; - } - - @Override - public int scan(String table, String startkey, int recordcount, Set fields, Vector> result) { - System.err.println("Oracle NoSQL Database does not support Scan semantics"); - return ERROR; - } - - @Override - public int update(String table, String key, HashMap values) { - for (Map.Entry entry : values.entrySet()) { - Key kvKey = createKey(table, key, entry.getKey()); - Value kvValue = Value.createValue(entry.getValue().toArray()); - try { - store.put(kvKey, kvValue); - } catch (FaultException e) { - System.err.println(e); - return ERROR; - } - } - - return OK; - } - - @Override - public int insert(String table, String key, HashMap values) { - return update(table, key, values); - } - - @Override - public int delete(String table, String key) { - Key kvKey = createKey(table, key); - try { - store.multiDelete(kvKey, null, null); - } catch (FaultException e) { - System.err.println(e); - return ERROR; - } - - return OK; - } - -} DELETED YCSB/odb_load.dat Index: YCSB/odb_load.dat ================================================================== --- YCSB/odb_load.dat +++ /dev/null @@ -1,2021 +0,0 @@ -YCSB Client 0.1 -Command line: -db com.yahoo.ycsb.db.OrientDBClient -s -P workloads/workloada -P large.dat -s -load -OrientDB loading database url = local:/home/rchow/orientdb-1.3.0/databases/ycsb -[OVERALL], RunTime(ms), 737.0 -[OVERALL], Throughput(ops/sec), 0.0 -[INSERT], Operations, 1 -[INSERT], AverageLatency(us), 24061.0 -[INSERT], MinLatency(us), 24061 -[INSERT], MaxLatency(us), 24061 -[INSERT], 95thPercentileLatency(ms), 24 -[INSERT], 99thPercentileLatency(ms), 24 -[INSERT], Return=1, 1 -[INSERT], 0, 0 -[INSERT], 1, 0 -[INSERT], 2, 0 -[INSERT], 3, 0 -[INSERT], 4, 0 -[INSERT], 5, 0 -[INSERT], 6, 0 -[INSERT], 7, 0 -[INSERT], 8, 0 -[INSERT], 9, 0 -[INSERT], 10, 0 -[INSERT], 11, 0 -[INSERT], 12, 0 -[INSERT], 13, 0 -[INSERT], 14, 0 -[INSERT], 15, 0 -[INSERT], 16, 0 -[INSERT], 17, 0 -[INSERT], 18, 0 -[INSERT], 19, 0 -[INSERT], 20, 0 -[INSERT], 21, 0 -[INSERT], 22, 0 -[INSERT], 23, 0 -[INSERT], 24, 1 -[INSERT], 25, 0 -[INSERT], 26, 0 -[INSERT], 27, 0 -[INSERT], 28, 0 -[INSERT], 29, 0 -[INSERT], 30, 0 -[INSERT], 31, 0 -[INSERT], 32, 0 -[INSERT], 33, 0 -[INSERT], 34, 0 -[INSERT], 35, 0 -[INSERT], 36, 0 -[INSERT], 37, 0 -[INSERT], 38, 0 -[INSERT], 39, 0 -[INSERT], 40, 0 -[INSERT], 41, 0 -[INSERT], 42, 0 -[INSERT], 43, 0 -[INSERT], 44, 0 -[INSERT], 45, 0 -[INSERT], 46, 0 -[INSERT], 47, 0 -[INSERT], 48, 0 -[INSERT], 49, 0 -[INSERT], 50, 0 -[INSERT], 51, 0 -[INSERT], 52, 0 -[INSERT], 53, 0 -[INSERT], 54, 0 -[INSERT], 55, 0 -[INSERT], 56, 0 -[INSERT], 57, 0 -[INSERT], 58, 0 -[INSERT], 59, 0 -[INSERT], 60, 0 -[INSERT], 61, 0 -[INSERT], 62, 0 -[INSERT], 63, 0 -[INSERT], 64, 0 -[INSERT], 65, 0 -[INSERT], 66, 0 -[INSERT], 67, 0 -[INSERT], 68, 0 -[INSERT], 69, 0 -[INSERT], 70, 0 -[INSERT], 71, 0 -[INSERT], 72, 0 -[INSERT], 73, 0 -[INSERT], 74, 0 -[INSERT], 75, 0 -[INSERT], 76, 0 -[INSERT], 77, 0 -[INSERT], 78, 0 -[INSERT], 79, 0 -[INSERT], 80, 0 -[INSERT], 81, 0 -[INSERT], 82, 0 -[INSERT], 83, 0 -[INSERT], 84, 0 -[INSERT], 85, 0 -[INSERT], 86, 0 -[INSERT], 87, 0 -[INSERT], 88, 0 -[INSERT], 89, 0 -[INSERT], 90, 0 -[INSERT], 91, 0 -[INSERT], 92, 0 -[INSERT], 93, 0 -[INSERT], 94, 0 -[INSERT], 95, 0 -[INSERT], 96, 0 -[INSERT], 97, 0 -[INSERT], 98, 0 -[INSERT], 99, 0 -[INSERT], 100, 0 -[INSERT], 101, 0 -[INSERT], 102, 0 -[INSERT], 103, 0 -[INSERT], 104, 0 -[INSERT], 105, 0 -[INSERT], 106, 0 -[INSERT], 107, 0 -[INSERT], 108, 0 -[INSERT], 109, 0 -[INSERT], 110, 0 -[INSERT], 111, 0 -[INSERT], 112, 0 -[INSERT], 113, 0 -[INSERT], 114, 0 -[INSERT], 115, 0 -[INSERT], 116, 0 -[INSERT], 117, 0 -[INSERT], 118, 0 -[INSERT], 119, 0 -[INSERT], 120, 0 -[INSERT], 121, 0 -[INSERT], 122, 0 -[INSERT], 123, 0 -[INSERT], 124, 0 -[INSERT], 125, 0 -[INSERT], 126, 0 -[INSERT], 127, 0 -[INSERT], 128, 0 -[INSERT], 129, 0 -[INSERT], 130, 0 -[INSERT], 131, 0 -[INSERT], 132, 0 -[INSERT], 133, 0 -[INSERT], 134, 0 -[INSERT], 135, 0 -[INSERT], 136, 0 -[INSERT], 137, 0 -[INSERT], 138, 0 -[INSERT], 139, 0 -[INSERT], 140, 0 -[INSERT], 141, 0 -[INSERT], 142, 0 -[INSERT], 143, 0 -[INSERT], 144, 0 -[INSERT], 145, 0 -[INSERT], 146, 0 -[INSERT], 147, 0 -[INSERT], 148, 0 -[INSERT], 149, 0 -[INSERT], 150, 0 -[INSERT], 151, 0 -[INSERT], 152, 0 -[INSERT], 153, 0 -[INSERT], 154, 0 -[INSERT], 155, 0 -[INSERT], 156, 0 -[INSERT], 157, 0 -[INSERT], 158, 0 -[INSERT], 159, 0 -[INSERT], 160, 0 -[INSERT], 161, 0 -[INSERT], 162, 0 -[INSERT], 163, 0 -[INSERT], 164, 0 -[INSERT], 165, 0 -[INSERT], 166, 0 -[INSERT], 167, 0 -[INSERT], 168, 0 -[INSERT], 169, 0 -[INSERT], 170, 0 -[INSERT], 171, 0 -[INSERT], 172, 0 -[INSERT], 173, 0 -[INSERT], 174, 0 -[INSERT], 175, 0 -[INSERT], 176, 0 -[INSERT], 177, 0 -[INSERT], 178, 0 -[INSERT], 179, 0 -[INSERT], 180, 0 -[INSERT], 181, 0 -[INSERT], 182, 0 -[INSERT], 183, 0 -[INSERT], 184, 0 -[INSERT], 185, 0 -[INSERT], 186, 0 -[INSERT], 187, 0 -[INSERT], 188, 0 -[INSERT], 189, 0 -[INSERT], 190, 0 -[INSERT], 191, 0 -[INSERT], 192, 0 -[INSERT], 193, 0 -[INSERT], 194, 0 -[INSERT], 195, 0 -[INSERT], 196, 0 -[INSERT], 197, 0 -[INSERT], 198, 0 -[INSERT], 199, 0 -[INSERT], 200, 0 -[INSERT], 201, 0 -[INSERT], 202, 0 -[INSERT], 203, 0 -[INSERT], 204, 0 -[INSERT], 205, 0 -[INSERT], 206, 0 -[INSERT], 207, 0 -[INSERT], 208, 0 -[INSERT], 209, 0 -[INSERT], 210, 0 -[INSERT], 211, 0 -[INSERT], 212, 0 -[INSERT], 213, 0 -[INSERT], 214, 0 -[INSERT], 215, 0 -[INSERT], 216, 0 -[INSERT], 217, 0 -[INSERT], 218, 0 -[INSERT], 219, 0 -[INSERT], 220, 0 -[INSERT], 221, 0 -[INSERT], 222, 0 -[INSERT], 223, 0 -[INSERT], 224, 0 -[INSERT], 225, 0 -[INSERT], 226, 0 -[INSERT], 227, 0 -[INSERT], 228, 0 -[INSERT], 229, 0 -[INSERT], 230, 0 -[INSERT], 231, 0 -[INSERT], 232, 0 -[INSERT], 233, 0 -[INSERT], 234, 0 -[INSERT], 235, 0 -[INSERT], 236, 0 -[INSERT], 237, 0 -[INSERT], 238, 0 -[INSERT], 239, 0 -[INSERT], 240, 0 -[INSERT], 241, 0 -[INSERT], 242, 0 -[INSERT], 243, 0 -[INSERT], 244, 0 -[INSERT], 245, 0 -[INSERT], 246, 0 -[INSERT], 247, 0 -[INSERT], 248, 0 -[INSERT], 249, 0 -[INSERT], 250, 0 -[INSERT], 251, 0 -[INSERT], 252, 0 -[INSERT], 253, 0 -[INSERT], 254, 0 -[INSERT], 255, 0 -[INSERT], 256, 0 -[INSERT], 257, 0 -[INSERT], 258, 0 -[INSERT], 259, 0 -[INSERT], 260, 0 -[INSERT], 261, 0 -[INSERT], 262, 0 -[INSERT], 263, 0 -[INSERT], 264, 0 -[INSERT], 265, 0 -[INSERT], 266, 0 -[INSERT], 267, 0 -[INSERT], 268, 0 -[INSERT], 269, 0 -[INSERT], 270, 0 -[INSERT], 271, 0 -[INSERT], 272, 0 -[INSERT], 273, 0 -[INSERT], 274, 0 -[INSERT], 275, 0 -[INSERT], 276, 0 -[INSERT], 277, 0 -[INSERT], 278, 0 -[INSERT], 279, 0 -[INSERT], 280, 0 -[INSERT], 281, 0 -[INSERT], 282, 0 -[INSERT], 283, 0 -[INSERT], 284, 0 -[INSERT], 285, 0 -[INSERT], 286, 0 -[INSERT], 287, 0 -[INSERT], 288, 0 -[INSERT], 289, 0 -[INSERT], 290, 0 -[INSERT], 291, 0 -[INSERT], 292, 0 -[INSERT], 293, 0 -[INSERT], 294, 0 -[INSERT], 295, 0 -[INSERT], 296, 0 -[INSERT], 297, 0 -[INSERT], 298, 0 -[INSERT], 299, 0 -[INSERT], 300, 0 -[INSERT], 301, 0 -[INSERT], 302, 0 -[INSERT], 303, 0 -[INSERT], 304, 0 -[INSERT], 305, 0 -[INSERT], 306, 0 -[INSERT], 307, 0 -[INSERT], 308, 0 -[INSERT], 309, 0 -[INSERT], 310, 0 -[INSERT], 311, 0 -[INSERT], 312, 0 -[INSERT], 313, 0 -[INSERT], 314, 0 -[INSERT], 315, 0 -[INSERT], 316, 0 -[INSERT], 317, 0 -[INSERT], 318, 0 -[INSERT], 319, 0 -[INSERT], 320, 0 -[INSERT], 321, 0 -[INSERT], 322, 0 -[INSERT], 323, 0 -[INSERT], 324, 0 -[INSERT], 325, 0 -[INSERT], 326, 0 -[INSERT], 327, 0 -[INSERT], 328, 0 -[INSERT], 329, 0 -[INSERT], 330, 0 -[INSERT], 331, 0 -[INSERT], 332, 0 -[INSERT], 333, 0 -[INSERT], 334, 0 -[INSERT], 335, 0 -[INSERT], 336, 0 -[INSERT], 337, 0 -[INSERT], 338, 0 -[INSERT], 339, 0 -[INSERT], 340, 0 -[INSERT], 341, 0 -[INSERT], 342, 0 -[INSERT], 343, 0 -[INSERT], 344, 0 -[INSERT], 345, 0 -[INSERT], 346, 0 -[INSERT], 347, 0 -[INSERT], 348, 0 -[INSERT], 349, 0 -[INSERT], 350, 0 -[INSERT], 351, 0 -[INSERT], 352, 0 -[INSERT], 353, 0 -[INSERT], 354, 0 -[INSERT], 355, 0 -[INSERT], 356, 0 -[INSERT], 357, 0 -[INSERT], 358, 0 -[INSERT], 359, 0 -[INSERT], 360, 0 -[INSERT], 361, 0 -[INSERT], 362, 0 -[INSERT], 363, 0 -[INSERT], 364, 0 -[INSERT], 365, 0 -[INSERT], 366, 0 -[INSERT], 367, 0 -[INSERT], 368, 0 -[INSERT], 369, 0 -[INSERT], 370, 0 -[INSERT], 371, 0 -[INSERT], 372, 0 -[INSERT], 373, 0 -[INSERT], 374, 0 -[INSERT], 375, 0 -[INSERT], 376, 0 -[INSERT], 377, 0 -[INSERT], 378, 0 -[INSERT], 379, 0 -[INSERT], 380, 0 -[INSERT], 381, 0 -[INSERT], 382, 0 -[INSERT], 383, 0 -[INSERT], 384, 0 -[INSERT], 385, 0 -[INSERT], 386, 0 -[INSERT], 387, 0 -[INSERT], 388, 0 -[INSERT], 389, 0 -[INSERT], 390, 0 -[INSERT], 391, 0 -[INSERT], 392, 0 -[INSERT], 393, 0 -[INSERT], 394, 0 -[INSERT], 395, 0 -[INSERT], 396, 0 -[INSERT], 397, 0 -[INSERT], 398, 0 -[INSERT], 399, 0 -[INSERT], 400, 0 -[INSERT], 401, 0 -[INSERT], 402, 0 -[INSERT], 403, 0 -[INSERT], 404, 0 -[INSERT], 405, 0 -[INSERT], 406, 0 -[INSERT], 407, 0 -[INSERT], 408, 0 -[INSERT], 409, 0 -[INSERT], 410, 0 -[INSERT], 411, 0 -[INSERT], 412, 0 -[INSERT], 413, 0 -[INSERT], 414, 0 -[INSERT], 415, 0 -[INSERT], 416, 0 -[INSERT], 417, 0 -[INSERT], 418, 0 -[INSERT], 419, 0 -[INSERT], 420, 0 -[INSERT], 421, 0 -[INSERT], 422, 0 -[INSERT], 423, 0 -[INSERT], 424, 0 -[INSERT], 425, 0 -[INSERT], 426, 0 -[INSERT], 427, 0 -[INSERT], 428, 0 -[INSERT], 429, 0 -[INSERT], 430, 0 -[INSERT], 431, 0 -[INSERT], 432, 0 -[INSERT], 433, 0 -[INSERT], 434, 0 -[INSERT], 435, 0 -[INSERT], 436, 0 -[INSERT], 437, 0 -[INSERT], 438, 0 -[INSERT], 439, 0 -[INSERT], 440, 0 -[INSERT], 441, 0 -[INSERT], 442, 0 -[INSERT], 443, 0 -[INSERT], 444, 0 -[INSERT], 445, 0 -[INSERT], 446, 0 -[INSERT], 447, 0 -[INSERT], 448, 0 -[INSERT], 449, 0 -[INSERT], 450, 0 -[INSERT], 451, 0 -[INSERT], 452, 0 -[INSERT], 453, 0 -[INSERT], 454, 0 -[INSERT], 455, 0 -[INSERT], 456, 0 -[INSERT], 457, 0 -[INSERT], 458, 0 -[INSERT], 459, 0 -[INSERT], 460, 0 -[INSERT], 461, 0 -[INSERT], 462, 0 -[INSERT], 463, 0 -[INSERT], 464, 0 -[INSERT], 465, 0 -[INSERT], 466, 0 -[INSERT], 467, 0 -[INSERT], 468, 0 -[INSERT], 469, 0 -[INSERT], 470, 0 -[INSERT], 471, 0 -[INSERT], 472, 0 -[INSERT], 473, 0 -[INSERT], 474, 0 -[INSERT], 475, 0 -[INSERT], 476, 0 -[INSERT], 477, 0 -[INSERT], 478, 0 -[INSERT], 479, 0 -[INSERT], 480, 0 -[INSERT], 481, 0 -[INSERT], 482, 0 -[INSERT], 483, 0 -[INSERT], 484, 0 -[INSERT], 485, 0 -[INSERT], 486, 0 -[INSERT], 487, 0 -[INSERT], 488, 0 -[INSERT], 489, 0 -[INSERT], 490, 0 -[INSERT], 491, 0 -[INSERT], 492, 0 -[INSERT], 493, 0 -[INSERT], 494, 0 -[INSERT], 495, 0 -[INSERT], 496, 0 -[INSERT], 497, 0 -[INSERT], 498, 0 -[INSERT], 499, 0 -[INSERT], 500, 0 -[INSERT], 501, 0 -[INSERT], 502, 0 -[INSERT], 503, 0 -[INSERT], 504, 0 -[INSERT], 505, 0 -[INSERT], 506, 0 -[INSERT], 507, 0 -[INSERT], 508, 0 -[INSERT], 509, 0 -[INSERT], 510, 0 -[INSERT], 511, 0 -[INSERT], 512, 0 -[INSERT], 513, 0 -[INSERT], 514, 0 -[INSERT], 515, 0 -[INSERT], 516, 0 -[INSERT], 517, 0 -[INSERT], 518, 0 -[INSERT], 519, 0 -[INSERT], 520, 0 -[INSERT], 521, 0 -[INSERT], 522, 0 -[INSERT], 523, 0 -[INSERT], 524, 0 -[INSERT], 525, 0 -[INSERT], 526, 0 -[INSERT], 527, 0 -[INSERT], 528, 0 -[INSERT], 529, 0 -[INSERT], 530, 0 -[INSERT], 531, 0 -[INSERT], 532, 0 -[INSERT], 533, 0 -[INSERT], 534, 0 -[INSERT], 535, 0 -[INSERT], 536, 0 -[INSERT], 537, 0 -[INSERT], 538, 0 -[INSERT], 539, 0 -[INSERT], 540, 0 -[INSERT], 541, 0 -[INSERT], 542, 0 -[INSERT], 543, 0 -[INSERT], 544, 0 -[INSERT], 545, 0 -[INSERT], 546, 0 -[INSERT], 547, 0 -[INSERT], 548, 0 -[INSERT], 549, 0 -[INSERT], 550, 0 -[INSERT], 551, 0 -[INSERT], 552, 0 -[INSERT], 553, 0 -[INSERT], 554, 0 -[INSERT], 555, 0 -[INSERT], 556, 0 -[INSERT], 557, 0 -[INSERT], 558, 0 -[INSERT], 559, 0 -[INSERT], 560, 0 -[INSERT], 561, 0 -[INSERT], 562, 0 -[INSERT], 563, 0 -[INSERT], 564, 0 -[INSERT], 565, 0 -[INSERT], 566, 0 -[INSERT], 567, 0 -[INSERT], 568, 0 -[INSERT], 569, 0 -[INSERT], 570, 0 -[INSERT], 571, 0 -[INSERT], 572, 0 -[INSERT], 573, 0 -[INSERT], 574, 0 -[INSERT], 575, 0 -[INSERT], 576, 0 -[INSERT], 577, 0 -[INSERT], 578, 0 -[INSERT], 579, 0 -[INSERT], 580, 0 -[INSERT], 581, 0 -[INSERT], 582, 0 -[INSERT], 583, 0 -[INSERT], 584, 0 -[INSERT], 585, 0 -[INSERT], 586, 0 -[INSERT], 587, 0 -[INSERT], 588, 0 -[INSERT], 589, 0 -[INSERT], 590, 0 -[INSERT], 591, 0 -[INSERT], 592, 0 -[INSERT], 593, 0 -[INSERT], 594, 0 -[INSERT], 595, 0 -[INSERT], 596, 0 -[INSERT], 597, 0 -[INSERT], 598, 0 -[INSERT], 599, 0 -[INSERT], 600, 0 -[INSERT], 601, 0 -[INSERT], 602, 0 -[INSERT], 603, 0 -[INSERT], 604, 0 -[INSERT], 605, 0 -[INSERT], 606, 0 -[INSERT], 607, 0 -[INSERT], 608, 0 -[INSERT], 609, 0 -[INSERT], 610, 0 -[INSERT], 611, 0 -[INSERT], 612, 0 -[INSERT], 613, 0 -[INSERT], 614, 0 -[INSERT], 615, 0 -[INSERT], 616, 0 -[INSERT], 617, 0 -[INSERT], 618, 0 -[INSERT], 619, 0 -[INSERT], 620, 0 -[INSERT], 621, 0 -[INSERT], 622, 0 -[INSERT], 623, 0 -[INSERT], 624, 0 -[INSERT], 625, 0 -[INSERT], 626, 0 -[INSERT], 627, 0 -[INSERT], 628, 0 -[INSERT], 629, 0 -[INSERT], 630, 0 -[INSERT], 631, 0 -[INSERT], 632, 0 -[INSERT], 633, 0 -[INSERT], 634, 0 -[INSERT], 635, 0 -[INSERT], 636, 0 -[INSERT], 637, 0 -[INSERT], 638, 0 -[INSERT], 639, 0 -[INSERT], 640, 0 -[INSERT], 641, 0 -[INSERT], 642, 0 -[INSERT], 643, 0 -[INSERT], 644, 0 -[INSERT], 645, 0 -[INSERT], 646, 0 -[INSERT], 647, 0 -[INSERT], 648, 0 -[INSERT], 649, 0 -[INSERT], 650, 0 -[INSERT], 651, 0 -[INSERT], 652, 0 -[INSERT], 653, 0 -[INSERT], 654, 0 -[INSERT], 655, 0 -[INSERT], 656, 0 -[INSERT], 657, 0 -[INSERT], 658, 0 -[INSERT], 659, 0 -[INSERT], 660, 0 -[INSERT], 661, 0 -[INSERT], 662, 0 -[INSERT], 663, 0 -[INSERT], 664, 0 -[INSERT], 665, 0 -[INSERT], 666, 0 -[INSERT], 667, 0 -[INSERT], 668, 0 -[INSERT], 669, 0 -[INSERT], 670, 0 -[INSERT], 671, 0 -[INSERT], 672, 0 -[INSERT], 673, 0 -[INSERT], 674, 0 -[INSERT], 675, 0 -[INSERT], 676, 0 -[INSERT], 677, 0 -[INSERT], 678, 0 -[INSERT], 679, 0 -[INSERT], 680, 0 -[INSERT], 681, 0 -[INSERT], 682, 0 -[INSERT], 683, 0 -[INSERT], 684, 0 -[INSERT], 685, 0 -[INSERT], 686, 0 -[INSERT], 687, 0 -[INSERT], 688, 0 -[INSERT], 689, 0 -[INSERT], 690, 0 -[INSERT], 691, 0 -[INSERT], 692, 0 -[INSERT], 693, 0 -[INSERT], 694, 0 -[INSERT], 695, 0 -[INSERT], 696, 0 -[INSERT], 697, 0 -[INSERT], 698, 0 -[INSERT], 699, 0 -[INSERT], 700, 0 -[INSERT], 701, 0 -[INSERT], 702, 0 -[INSERT], 703, 0 -[INSERT], 704, 0 -[INSERT], 705, 0 -[INSERT], 706, 0 -[INSERT], 707, 0 -[INSERT], 708, 0 -[INSERT], 709, 0 -[INSERT], 710, 0 -[INSERT], 711, 0 -[INSERT], 712, 0 -[INSERT], 713, 0 -[INSERT], 714, 0 -[INSERT], 715, 0 -[INSERT], 716, 0 -[INSERT], 717, 0 -[INSERT], 718, 0 -[INSERT], 719, 0 -[INSERT], 720, 0 -[INSERT], 721, 0 -[INSERT], 722, 0 -[INSERT], 723, 0 -[INSERT], 724, 0 -[INSERT], 725, 0 -[INSERT], 726, 0 -[INSERT], 727, 0 -[INSERT], 728, 0 -[INSERT], 729, 0 -[INSERT], 730, 0 -[INSERT], 731, 0 -[INSERT], 732, 0 -[INSERT], 733, 0 -[INSERT], 734, 0 -[INSERT], 735, 0 -[INSERT], 736, 0 -[INSERT], 737, 0 -[INSERT], 738, 0 -[INSERT], 739, 0 -[INSERT], 740, 0 -[INSERT], 741, 0 -[INSERT], 742, 0 -[INSERT], 743, 0 -[INSERT], 744, 0 -[INSERT], 745, 0 -[INSERT], 746, 0 -[INSERT], 747, 0 -[INSERT], 748, 0 -[INSERT], 749, 0 -[INSERT], 750, 0 -[INSERT], 751, 0 -[INSERT], 752, 0 -[INSERT], 753, 0 -[INSERT], 754, 0 -[INSERT], 755, 0 -[INSERT], 756, 0 -[INSERT], 757, 0 -[INSERT], 758, 0 -[INSERT], 759, 0 -[INSERT], 760, 0 -[INSERT], 761, 0 -[INSERT], 762, 0 -[INSERT], 763, 0 -[INSERT], 764, 0 -[INSERT], 765, 0 -[INSERT], 766, 0 -[INSERT], 767, 0 -[INSERT], 768, 0 -[INSERT], 769, 0 -[INSERT], 770, 0 -[INSERT], 771, 0 -[INSERT], 772, 0 -[INSERT], 773, 0 -[INSERT], 774, 0 -[INSERT], 775, 0 -[INSERT], 776, 0 -[INSERT], 777, 0 -[INSERT], 778, 0 -[INSERT], 779, 0 -[INSERT], 780, 0 -[INSERT], 781, 0 -[INSERT], 782, 0 -[INSERT], 783, 0 -[INSERT], 784, 0 -[INSERT], 785, 0 -[INSERT], 786, 0 -[INSERT], 787, 0 -[INSERT], 788, 0 -[INSERT], 789, 0 -[INSERT], 790, 0 -[INSERT], 791, 0 -[INSERT], 792, 0 -[INSERT], 793, 0 -[INSERT], 794, 0 -[INSERT], 795, 0 -[INSERT], 796, 0 -[INSERT], 797, 0 -[INSERT], 798, 0 -[INSERT], 799, 0 -[INSERT], 800, 0 -[INSERT], 801, 0 -[INSERT], 802, 0 -[INSERT], 803, 0 -[INSERT], 804, 0 -[INSERT], 805, 0 -[INSERT], 806, 0 -[INSERT], 807, 0 -[INSERT], 808, 0 -[INSERT], 809, 0 -[INSERT], 810, 0 -[INSERT], 811, 0 -[INSERT], 812, 0 -[INSERT], 813, 0 -[INSERT], 814, 0 -[INSERT], 815, 0 -[INSERT], 816, 0 -[INSERT], 817, 0 -[INSERT], 818, 0 -[INSERT], 819, 0 -[INSERT], 820, 0 -[INSERT], 821, 0 -[INSERT], 822, 0 -[INSERT], 823, 0 -[INSERT], 824, 0 -[INSERT], 825, 0 -[INSERT], 826, 0 -[INSERT], 827, 0 -[INSERT], 828, 0 -[INSERT], 829, 0 -[INSERT], 830, 0 -[INSERT], 831, 0 -[INSERT], 832, 0 -[INSERT], 833, 0 -[INSERT], 834, 0 -[INSERT], 835, 0 -[INSERT], 836, 0 -[INSERT], 837, 0 -[INSERT], 838, 0 -[INSERT], 839, 0 -[INSERT], 840, 0 -[INSERT], 841, 0 -[INSERT], 842, 0 -[INSERT], 843, 0 -[INSERT], 844, 0 -[INSERT], 845, 0 -[INSERT], 846, 0 -[INSERT], 847, 0 -[INSERT], 848, 0 -[INSERT], 849, 0 -[INSERT], 850, 0 -[INSERT], 851, 0 -[INSERT], 852, 0 -[INSERT], 853, 0 -[INSERT], 854, 0 -[INSERT], 855, 0 -[INSERT], 856, 0 -[INSERT], 857, 0 -[INSERT], 858, 0 -[INSERT], 859, 0 -[INSERT], 860, 0 -[INSERT], 861, 0 -[INSERT], 862, 0 -[INSERT], 863, 0 -[INSERT], 864, 0 -[INSERT], 865, 0 -[INSERT], 866, 0 -[INSERT], 867, 0 -[INSERT], 868, 0 -[INSERT], 869, 0 -[INSERT], 870, 0 -[INSERT], 871, 0 -[INSERT], 872, 0 -[INSERT], 873, 0 -[INSERT], 874, 0 -[INSERT], 875, 0 -[INSERT], 876, 0 -[INSERT], 877, 0 -[INSERT], 878, 0 -[INSERT], 879, 0 -[INSERT], 880, 0 -[INSERT], 881, 0 -[INSERT], 882, 0 -[INSERT], 883, 0 -[INSERT], 884, 0 -[INSERT], 885, 0 -[INSERT], 886, 0 -[INSERT], 887, 0 -[INSERT], 888, 0 -[INSERT], 889, 0 -[INSERT], 890, 0 -[INSERT], 891, 0 -[INSERT], 892, 0 -[INSERT], 893, 0 -[INSERT], 894, 0 -[INSERT], 895, 0 -[INSERT], 896, 0 -[INSERT], 897, 0 -[INSERT], 898, 0 -[INSERT], 899, 0 -[INSERT], 900, 0 -[INSERT], 901, 0 -[INSERT], 902, 0 -[INSERT], 903, 0 -[INSERT], 904, 0 -[INSERT], 905, 0 -[INSERT], 906, 0 -[INSERT], 907, 0 -[INSERT], 908, 0 -[INSERT], 909, 0 -[INSERT], 910, 0 -[INSERT], 911, 0 -[INSERT], 912, 0 -[INSERT], 913, 0 -[INSERT], 914, 0 -[INSERT], 915, 0 -[INSERT], 916, 0 -[INSERT], 917, 0 -[INSERT], 918, 0 -[INSERT], 919, 0 -[INSERT], 920, 0 -[INSERT], 921, 0 -[INSERT], 922, 0 -[INSERT], 923, 0 -[INSERT], 924, 0 -[INSERT], 925, 0 -[INSERT], 926, 0 -[INSERT], 927, 0 -[INSERT], 928, 0 -[INSERT], 929, 0 -[INSERT], 930, 0 -[INSERT], 931, 0 -[INSERT], 932, 0 -[INSERT], 933, 0 -[INSERT], 934, 0 -[INSERT], 935, 0 -[INSERT], 936, 0 -[INSERT], 937, 0 -[INSERT], 938, 0 -[INSERT], 939, 0 -[INSERT], 940, 0 -[INSERT], 941, 0 -[INSERT], 942, 0 -[INSERT], 943, 0 -[INSERT], 944, 0 -[INSERT], 945, 0 -[INSERT], 946, 0 -[INSERT], 947, 0 -[INSERT], 948, 0 -[INSERT], 949, 0 -[INSERT], 950, 0 -[INSERT], 951, 0 -[INSERT], 952, 0 -[INSERT], 953, 0 -[INSERT], 954, 0 -[INSERT], 955, 0 -[INSERT], 956, 0 -[INSERT], 957, 0 -[INSERT], 958, 0 -[INSERT], 959, 0 -[INSERT], 960, 0 -[INSERT], 961, 0 -[INSERT], 962, 0 -[INSERT], 963, 0 -[INSERT], 964, 0 -[INSERT], 965, 0 -[INSERT], 966, 0 -[INSERT], 967, 0 -[INSERT], 968, 0 -[INSERT], 969, 0 -[INSERT], 970, 0 -[INSERT], 971, 0 -[INSERT], 972, 0 -[INSERT], 973, 0 -[INSERT], 974, 0 -[INSERT], 975, 0 -[INSERT], 976, 0 -[INSERT], 977, 0 -[INSERT], 978, 0 -[INSERT], 979, 0 -[INSERT], 980, 0 -[INSERT], 981, 0 -[INSERT], 982, 0 -[INSERT], 983, 0 -[INSERT], 984, 0 -[INSERT], 985, 0 -[INSERT], 986, 0 -[INSERT], 987, 0 -[INSERT], 988, 0 -[INSERT], 989, 0 -[INSERT], 990, 0 -[INSERT], 991, 0 -[INSERT], 992, 0 -[INSERT], 993, 0 -[INSERT], 994, 0 -[INSERT], 995, 0 -[INSERT], 996, 0 -[INSERT], 997, 0 -[INSERT], 998, 0 -[INSERT], 999, 0 -[INSERT], >1000, 0 -[CLEANUP], Operations, 1 -[CLEANUP], AverageLatency(us), 36.0 -[CLEANUP], MinLatency(us), 36 -[CLEANUP], MaxLatency(us), 36 -[CLEANUP], 95thPercentileLatency(ms), 0 -[CLEANUP], 99thPercentileLatency(ms), 0 -[CLEANUP], 0, 1 -[CLEANUP], 1, 0 -[CLEANUP], 2, 0 -[CLEANUP], 3, 0 -[CLEANUP], 4, 0 -[CLEANUP], 5, 0 -[CLEANUP], 6, 0 -[CLEANUP], 7, 0 -[CLEANUP], 8, 0 -[CLEANUP], 9, 0 -[CLEANUP], 10, 0 -[CLEANUP], 11, 0 -[CLEANUP], 12, 0 -[CLEANUP], 13, 0 -[CLEANUP], 14, 0 -[CLEANUP], 15, 0 -[CLEANUP], 16, 0 -[CLEANUP], 17, 0 -[CLEANUP], 18, 0 -[CLEANUP], 19, 0 -[CLEANUP], 20, 0 -[CLEANUP], 21, 0 -[CLEANUP], 22, 0 -[CLEANUP], 23, 0 -[CLEANUP], 24, 0 -[CLEANUP], 25, 0 -[CLEANUP], 26, 0 -[CLEANUP], 27, 0 -[CLEANUP], 28, 0 -[CLEANUP], 29, 0 -[CLEANUP], 30, 0 -[CLEANUP], 31, 0 -[CLEANUP], 32, 0 -[CLEANUP], 33, 0 -[CLEANUP], 34, 0 -[CLEANUP], 35, 0 -[CLEANUP], 36, 0 -[CLEANUP], 37, 0 -[CLEANUP], 38, 0 -[CLEANUP], 39, 0 -[CLEANUP], 40, 0 -[CLEANUP], 41, 0 -[CLEANUP], 42, 0 -[CLEANUP], 43, 0 -[CLEANUP], 44, 0 -[CLEANUP], 45, 0 -[CLEANUP], 46, 0 -[CLEANUP], 47, 0 -[CLEANUP], 48, 0 -[CLEANUP], 49, 0 -[CLEANUP], 50, 0 -[CLEANUP], 51, 0 -[CLEANUP], 52, 0 -[CLEANUP], 53, 0 -[CLEANUP], 54, 0 -[CLEANUP], 55, 0 -[CLEANUP], 56, 0 -[CLEANUP], 57, 0 -[CLEANUP], 58, 0 -[CLEANUP], 59, 0 -[CLEANUP], 60, 0 -[CLEANUP], 61, 0 -[CLEANUP], 62, 0 -[CLEANUP], 63, 0 -[CLEANUP], 64, 0 -[CLEANUP], 65, 0 -[CLEANUP], 66, 0 -[CLEANUP], 67, 0 -[CLEANUP], 68, 0 -[CLEANUP], 69, 0 -[CLEANUP], 70, 0 -[CLEANUP], 71, 0 -[CLEANUP], 72, 0 -[CLEANUP], 73, 0 -[CLEANUP], 74, 0 -[CLEANUP], 75, 0 -[CLEANUP], 76, 0 -[CLEANUP], 77, 0 -[CLEANUP], 78, 0 -[CLEANUP], 79, 0 -[CLEANUP], 80, 0 -[CLEANUP], 81, 0 -[CLEANUP], 82, 0 -[CLEANUP], 83, 0 -[CLEANUP], 84, 0 -[CLEANUP], 85, 0 -[CLEANUP], 86, 0 -[CLEANUP], 87, 0 -[CLEANUP], 88, 0 -[CLEANUP], 89, 0 -[CLEANUP], 90, 0 -[CLEANUP], 91, 0 -[CLEANUP], 92, 0 -[CLEANUP], 93, 0 -[CLEANUP], 94, 0 -[CLEANUP], 95, 0 -[CLEANUP], 96, 0 -[CLEANUP], 97, 0 -[CLEANUP], 98, 0 -[CLEANUP], 99, 0 -[CLEANUP], 100, 0 -[CLEANUP], 101, 0 -[CLEANUP], 102, 0 -[CLEANUP], 103, 0 -[CLEANUP], 104, 0 -[CLEANUP], 105, 0 -[CLEANUP], 106, 0 -[CLEANUP], 107, 0 -[CLEANUP], 108, 0 -[CLEANUP], 109, 0 -[CLEANUP], 110, 0 -[CLEANUP], 111, 0 -[CLEANUP], 112, 0 -[CLEANUP], 113, 0 -[CLEANUP], 114, 0 -[CLEANUP], 115, 0 -[CLEANUP], 116, 0 -[CLEANUP], 117, 0 -[CLEANUP], 118, 0 -[CLEANUP], 119, 0 -[CLEANUP], 120, 0 -[CLEANUP], 121, 0 -[CLEANUP], 122, 0 -[CLEANUP], 123, 0 -[CLEANUP], 124, 0 -[CLEANUP], 125, 0 -[CLEANUP], 126, 0 -[CLEANUP], 127, 0 -[CLEANUP], 128, 0 -[CLEANUP], 129, 0 -[CLEANUP], 130, 0 -[CLEANUP], 131, 0 -[CLEANUP], 132, 0 -[CLEANUP], 133, 0 -[CLEANUP], 134, 0 -[CLEANUP], 135, 0 -[CLEANUP], 136, 0 -[CLEANUP], 137, 0 -[CLEANUP], 138, 0 -[CLEANUP], 139, 0 -[CLEANUP], 140, 0 -[CLEANUP], 141, 0 -[CLEANUP], 142, 0 -[CLEANUP], 143, 0 -[CLEANUP], 144, 0 -[CLEANUP], 145, 0 -[CLEANUP], 146, 0 -[CLEANUP], 147, 0 -[CLEANUP], 148, 0 -[CLEANUP], 149, 0 -[CLEANUP], 150, 0 -[CLEANUP], 151, 0 -[CLEANUP], 152, 0 -[CLEANUP], 153, 0 -[CLEANUP], 154, 0 -[CLEANUP], 155, 0 -[CLEANUP], 156, 0 -[CLEANUP], 157, 0 -[CLEANUP], 158, 0 -[CLEANUP], 159, 0 -[CLEANUP], 160, 0 -[CLEANUP], 161, 0 -[CLEANUP], 162, 0 -[CLEANUP], 163, 0 -[CLEANUP], 164, 0 -[CLEANUP], 165, 0 -[CLEANUP], 166, 0 -[CLEANUP], 167, 0 -[CLEANUP], 168, 0 -[CLEANUP], 169, 0 -[CLEANUP], 170, 0 -[CLEANUP], 171, 0 -[CLEANUP], 172, 0 -[CLEANUP], 173, 0 -[CLEANUP], 174, 0 -[CLEANUP], 175, 0 -[CLEANUP], 176, 0 -[CLEANUP], 177, 0 -[CLEANUP], 178, 0 -[CLEANUP], 179, 0 -[CLEANUP], 180, 0 -[CLEANUP], 181, 0 -[CLEANUP], 182, 0 -[CLEANUP], 183, 0 -[CLEANUP], 184, 0 -[CLEANUP], 185, 0 -[CLEANUP], 186, 0 -[CLEANUP], 187, 0 -[CLEANUP], 188, 0 -[CLEANUP], 189, 0 -[CLEANUP], 190, 0 -[CLEANUP], 191, 0 -[CLEANUP], 192, 0 -[CLEANUP], 193, 0 -[CLEANUP], 194, 0 -[CLEANUP], 195, 0 -[CLEANUP], 196, 0 -[CLEANUP], 197, 0 -[CLEANUP], 198, 0 -[CLEANUP], 199, 0 -[CLEANUP], 200, 0 -[CLEANUP], 201, 0 -[CLEANUP], 202, 0 -[CLEANUP], 203, 0 -[CLEANUP], 204, 0 -[CLEANUP], 205, 0 -[CLEANUP], 206, 0 -[CLEANUP], 207, 0 -[CLEANUP], 208, 0 -[CLEANUP], 209, 0 -[CLEANUP], 210, 0 -[CLEANUP], 211, 0 -[CLEANUP], 212, 0 -[CLEANUP], 213, 0 -[CLEANUP], 214, 0 -[CLEANUP], 215, 0 -[CLEANUP], 216, 0 -[CLEANUP], 217, 0 -[CLEANUP], 218, 0 -[CLEANUP], 219, 0 -[CLEANUP], 220, 0 -[CLEANUP], 221, 0 -[CLEANUP], 222, 0 -[CLEANUP], 223, 0 -[CLEANUP], 224, 0 -[CLEANUP], 225, 0 -[CLEANUP], 226, 0 -[CLEANUP], 227, 0 -[CLEANUP], 228, 0 -[CLEANUP], 229, 0 -[CLEANUP], 230, 0 -[CLEANUP], 231, 0 -[CLEANUP], 232, 0 -[CLEANUP], 233, 0 -[CLEANUP], 234, 0 -[CLEANUP], 235, 0 -[CLEANUP], 236, 0 -[CLEANUP], 237, 0 -[CLEANUP], 238, 0 -[CLEANUP], 239, 0 -[CLEANUP], 240, 0 -[CLEANUP], 241, 0 -[CLEANUP], 242, 0 -[CLEANUP], 243, 0 -[CLEANUP], 244, 0 -[CLEANUP], 245, 0 -[CLEANUP], 246, 0 -[CLEANUP], 247, 0 -[CLEANUP], 248, 0 -[CLEANUP], 249, 0 -[CLEANUP], 250, 0 -[CLEANUP], 251, 0 -[CLEANUP], 252, 0 -[CLEANUP], 253, 0 -[CLEANUP], 254, 0 -[CLEANUP], 255, 0 -[CLEANUP], 256, 0 -[CLEANUP], 257, 0 -[CLEANUP], 258, 0 -[CLEANUP], 259, 0 -[CLEANUP], 260, 0 -[CLEANUP], 261, 0 -[CLEANUP], 262, 0 -[CLEANUP], 263, 0 -[CLEANUP], 264, 0 -[CLEANUP], 265, 0 -[CLEANUP], 266, 0 -[CLEANUP], 267, 0 -[CLEANUP], 268, 0 -[CLEANUP], 269, 0 -[CLEANUP], 270, 0 -[CLEANUP], 271, 0 -[CLEANUP], 272, 0 -[CLEANUP], 273, 0 -[CLEANUP], 274, 0 -[CLEANUP], 275, 0 -[CLEANUP], 276, 0 -[CLEANUP], 277, 0 -[CLEANUP], 278, 0 -[CLEANUP], 279, 0 -[CLEANUP], 280, 0 -[CLEANUP], 281, 0 -[CLEANUP], 282, 0 -[CLEANUP], 283, 0 -[CLEANUP], 284, 0 -[CLEANUP], 285, 0 -[CLEANUP], 286, 0 -[CLEANUP], 287, 0 -[CLEANUP], 288, 0 -[CLEANUP], 289, 0 -[CLEANUP], 290, 0 -[CLEANUP], 291, 0 -[CLEANUP], 292, 0 -[CLEANUP], 293, 0 -[CLEANUP], 294, 0 -[CLEANUP], 295, 0 -[CLEANUP], 296, 0 -[CLEANUP], 297, 0 -[CLEANUP], 298, 0 -[CLEANUP], 299, 0 -[CLEANUP], 300, 0 -[CLEANUP], 301, 0 -[CLEANUP], 302, 0 -[CLEANUP], 303, 0 -[CLEANUP], 304, 0 -[CLEANUP], 305, 0 -[CLEANUP], 306, 0 -[CLEANUP], 307, 0 -[CLEANUP], 308, 0 -[CLEANUP], 309, 0 -[CLEANUP], 310, 0 -[CLEANUP], 311, 0 -[CLEANUP], 312, 0 -[CLEANUP], 313, 0 -[CLEANUP], 314, 0 -[CLEANUP], 315, 0 -[CLEANUP], 316, 0 -[CLEANUP], 317, 0 -[CLEANUP], 318, 0 -[CLEANUP], 319, 0 -[CLEANUP], 320, 0 -[CLEANUP], 321, 0 -[CLEANUP], 322, 0 -[CLEANUP], 323, 0 -[CLEANUP], 324, 0 -[CLEANUP], 325, 0 -[CLEANUP], 326, 0 -[CLEANUP], 327, 0 -[CLEANUP], 328, 0 -[CLEANUP], 329, 0 -[CLEANUP], 330, 0 -[CLEANUP], 331, 0 -[CLEANUP], 332, 0 -[CLEANUP], 333, 0 -[CLEANUP], 334, 0 -[CLEANUP], 335, 0 -[CLEANUP], 336, 0 -[CLEANUP], 337, 0 -[CLEANUP], 338, 0 -[CLEANUP], 339, 0 -[CLEANUP], 340, 0 -[CLEANUP], 341, 0 -[CLEANUP], 342, 0 -[CLEANUP], 343, 0 -[CLEANUP], 344, 0 -[CLEANUP], 345, 0 -[CLEANUP], 346, 0 -[CLEANUP], 347, 0 -[CLEANUP], 348, 0 -[CLEANUP], 349, 0 -[CLEANUP], 350, 0 -[CLEANUP], 351, 0 -[CLEANUP], 352, 0 -[CLEANUP], 353, 0 -[CLEANUP], 354, 0 -[CLEANUP], 355, 0 -[CLEANUP], 356, 0 -[CLEANUP], 357, 0 -[CLEANUP], 358, 0 -[CLEANUP], 359, 0 -[CLEANUP], 360, 0 -[CLEANUP], 361, 0 -[CLEANUP], 362, 0 -[CLEANUP], 363, 0 -[CLEANUP], 364, 0 -[CLEANUP], 365, 0 -[CLEANUP], 366, 0 -[CLEANUP], 367, 0 -[CLEANUP], 368, 0 -[CLEANUP], 369, 0 -[CLEANUP], 370, 0 -[CLEANUP], 371, 0 -[CLEANUP], 372, 0 -[CLEANUP], 373, 0 -[CLEANUP], 374, 0 -[CLEANUP], 375, 0 -[CLEANUP], 376, 0 -[CLEANUP], 377, 0 -[CLEANUP], 378, 0 -[CLEANUP], 379, 0 -[CLEANUP], 380, 0 -[CLEANUP], 381, 0 -[CLEANUP], 382, 0 -[CLEANUP], 383, 0 -[CLEANUP], 384, 0 -[CLEANUP], 385, 0 -[CLEANUP], 386, 0 -[CLEANUP], 387, 0 -[CLEANUP], 388, 0 -[CLEANUP], 389, 0 -[CLEANUP], 390, 0 -[CLEANUP], 391, 0 -[CLEANUP], 392, 0 -[CLEANUP], 393, 0 -[CLEANUP], 394, 0 -[CLEANUP], 395, 0 -[CLEANUP], 396, 0 -[CLEANUP], 397, 0 -[CLEANUP], 398, 0 -[CLEANUP], 399, 0 -[CLEANUP], 400, 0 -[CLEANUP], 401, 0 -[CLEANUP], 402, 0 -[CLEANUP], 403, 0 -[CLEANUP], 404, 0 -[CLEANUP], 405, 0 -[CLEANUP], 406, 0 -[CLEANUP], 407, 0 -[CLEANUP], 408, 0 -[CLEANUP], 409, 0 -[CLEANUP], 410, 0 -[CLEANUP], 411, 0 -[CLEANUP], 412, 0 -[CLEANUP], 413, 0 -[CLEANUP], 414, 0 -[CLEANUP], 415, 0 -[CLEANUP], 416, 0 -[CLEANUP], 417, 0 -[CLEANUP], 418, 0 -[CLEANUP], 419, 0 -[CLEANUP], 420, 0 -[CLEANUP], 421, 0 -[CLEANUP], 422, 0 -[CLEANUP], 423, 0 -[CLEANUP], 424, 0 -[CLEANUP], 425, 0 -[CLEANUP], 426, 0 -[CLEANUP], 427, 0 -[CLEANUP], 428, 0 -[CLEANUP], 429, 0 -[CLEANUP], 430, 0 -[CLEANUP], 431, 0 -[CLEANUP], 432, 0 -[CLEANUP], 433, 0 -[CLEANUP], 434, 0 -[CLEANUP], 435, 0 -[CLEANUP], 436, 0 -[CLEANUP], 437, 0 -[CLEANUP], 438, 0 -[CLEANUP], 439, 0 -[CLEANUP], 440, 0 -[CLEANUP], 441, 0 -[CLEANUP], 442, 0 -[CLEANUP], 443, 0 -[CLEANUP], 444, 0 -[CLEANUP], 445, 0 -[CLEANUP], 446, 0 -[CLEANUP], 447, 0 -[CLEANUP], 448, 0 -[CLEANUP], 449, 0 -[CLEANUP], 450, 0 -[CLEANUP], 451, 0 -[CLEANUP], 452, 0 -[CLEANUP], 453, 0 -[CLEANUP], 454, 0 -[CLEANUP], 455, 0 -[CLEANUP], 456, 0 -[CLEANUP], 457, 0 -[CLEANUP], 458, 0 -[CLEANUP], 459, 0 -[CLEANUP], 460, 0 -[CLEANUP], 461, 0 -[CLEANUP], 462, 0 -[CLEANUP], 463, 0 -[CLEANUP], 464, 0 -[CLEANUP], 465, 0 -[CLEANUP], 466, 0 -[CLEANUP], 467, 0 -[CLEANUP], 468, 0 -[CLEANUP], 469, 0 -[CLEANUP], 470, 0 -[CLEANUP], 471, 0 -[CLEANUP], 472, 0 -[CLEANUP], 473, 0 -[CLEANUP], 474, 0 -[CLEANUP], 475, 0 -[CLEANUP], 476, 0 -[CLEANUP], 477, 0 -[CLEANUP], 478, 0 -[CLEANUP], 479, 0 -[CLEANUP], 480, 0 -[CLEANUP], 481, 0 -[CLEANUP], 482, 0 -[CLEANUP], 483, 0 -[CLEANUP], 484, 0 -[CLEANUP], 485, 0 -[CLEANUP], 486, 0 -[CLEANUP], 487, 0 -[CLEANUP], 488, 0 -[CLEANUP], 489, 0 -[CLEANUP], 490, 0 -[CLEANUP], 491, 0 -[CLEANUP], 492, 0 -[CLEANUP], 493, 0 -[CLEANUP], 494, 0 -[CLEANUP], 495, 0 -[CLEANUP], 496, 0 -[CLEANUP], 497, 0 -[CLEANUP], 498, 0 -[CLEANUP], 499, 0 -[CLEANUP], 500, 0 -[CLEANUP], 501, 0 -[CLEANUP], 502, 0 -[CLEANUP], 503, 0 -[CLEANUP], 504, 0 -[CLEANUP], 505, 0 -[CLEANUP], 506, 0 -[CLEANUP], 507, 0 -[CLEANUP], 508, 0 -[CLEANUP], 509, 0 -[CLEANUP], 510, 0 -[CLEANUP], 511, 0 -[CLEANUP], 512, 0 -[CLEANUP], 513, 0 -[CLEANUP], 514, 0 -[CLEANUP], 515, 0 -[CLEANUP], 516, 0 -[CLEANUP], 517, 0 -[CLEANUP], 518, 0 -[CLEANUP], 519, 0 -[CLEANUP], 520, 0 -[CLEANUP], 521, 0 -[CLEANUP], 522, 0 -[CLEANUP], 523, 0 -[CLEANUP], 524, 0 -[CLEANUP], 525, 0 -[CLEANUP], 526, 0 -[CLEANUP], 527, 0 -[CLEANUP], 528, 0 -[CLEANUP], 529, 0 -[CLEANUP], 530, 0 -[CLEANUP], 531, 0 -[CLEANUP], 532, 0 -[CLEANUP], 533, 0 -[CLEANUP], 534, 0 -[CLEANUP], 535, 0 -[CLEANUP], 536, 0 -[CLEANUP], 537, 0 -[CLEANUP], 538, 0 -[CLEANUP], 539, 0 -[CLEANUP], 540, 0 -[CLEANUP], 541, 0 -[CLEANUP], 542, 0 -[CLEANUP], 543, 0 -[CLEANUP], 544, 0 -[CLEANUP], 545, 0 -[CLEANUP], 546, 0 -[CLEANUP], 547, 0 -[CLEANUP], 548, 0 -[CLEANUP], 549, 0 -[CLEANUP], 550, 0 -[CLEANUP], 551, 0 -[CLEANUP], 552, 0 -[CLEANUP], 553, 0 -[CLEANUP], 554, 0 -[CLEANUP], 555, 0 -[CLEANUP], 556, 0 -[CLEANUP], 557, 0 -[CLEANUP], 558, 0 -[CLEANUP], 559, 0 -[CLEANUP], 560, 0 -[CLEANUP], 561, 0 -[CLEANUP], 562, 0 -[CLEANUP], 563, 0 -[CLEANUP], 564, 0 -[CLEANUP], 565, 0 -[CLEANUP], 566, 0 -[CLEANUP], 567, 0 -[CLEANUP], 568, 0 -[CLEANUP], 569, 0 -[CLEANUP], 570, 0 -[CLEANUP], 571, 0 -[CLEANUP], 572, 0 -[CLEANUP], 573, 0 -[CLEANUP], 574, 0 -[CLEANUP], 575, 0 -[CLEANUP], 576, 0 -[CLEANUP], 577, 0 -[CLEANUP], 578, 0 -[CLEANUP], 579, 0 -[CLEANUP], 580, 0 -[CLEANUP], 581, 0 -[CLEANUP], 582, 0 -[CLEANUP], 583, 0 -[CLEANUP], 584, 0 -[CLEANUP], 585, 0 -[CLEANUP], 586, 0 -[CLEANUP], 587, 0 -[CLEANUP], 588, 0 -[CLEANUP], 589, 0 -[CLEANUP], 590, 0 -[CLEANUP], 591, 0 -[CLEANUP], 592, 0 -[CLEANUP], 593, 0 -[CLEANUP], 594, 0 -[CLEANUP], 595, 0 -[CLEANUP], 596, 0 -[CLEANUP], 597, 0 -[CLEANUP], 598, 0 -[CLEANUP], 599, 0 -[CLEANUP], 600, 0 -[CLEANUP], 601, 0 -[CLEANUP], 602, 0 -[CLEANUP], 603, 0 -[CLEANUP], 604, 0 -[CLEANUP], 605, 0 -[CLEANUP], 606, 0 -[CLEANUP], 607, 0 -[CLEANUP], 608, 0 -[CLEANUP], 609, 0 -[CLEANUP], 610, 0 -[CLEANUP], 611, 0 -[CLEANUP], 612, 0 -[CLEANUP], 613, 0 -[CLEANUP], 614, 0 -[CLEANUP], 615, 0 -[CLEANUP], 616, 0 -[CLEANUP], 617, 0 -[CLEANUP], 618, 0 -[CLEANUP], 619, 0 -[CLEANUP], 620, 0 -[CLEANUP], 621, 0 -[CLEANUP], 622, 0 -[CLEANUP], 623, 0 -[CLEANUP], 624, 0 -[CLEANUP], 625, 0 -[CLEANUP], 626, 0 -[CLEANUP], 627, 0 -[CLEANUP], 628, 0 -[CLEANUP], 629, 0 -[CLEANUP], 630, 0 -[CLEANUP], 631, 0 -[CLEANUP], 632, 0 -[CLEANUP], 633, 0 -[CLEANUP], 634, 0 -[CLEANUP], 635, 0 -[CLEANUP], 636, 0 -[CLEANUP], 637, 0 -[CLEANUP], 638, 0 -[CLEANUP], 639, 0 -[CLEANUP], 640, 0 -[CLEANUP], 641, 0 -[CLEANUP], 642, 0 -[CLEANUP], 643, 0 -[CLEANUP], 644, 0 -[CLEANUP], 645, 0 -[CLEANUP], 646, 0 -[CLEANUP], 647, 0 -[CLEANUP], 648, 0 -[CLEANUP], 649, 0 -[CLEANUP], 650, 0 -[CLEANUP], 651, 0 -[CLEANUP], 652, 0 -[CLEANUP], 653, 0 -[CLEANUP], 654, 0 -[CLEANUP], 655, 0 -[CLEANUP], 656, 0 -[CLEANUP], 657, 0 -[CLEANUP], 658, 0 -[CLEANUP], 659, 0 -[CLEANUP], 660, 0 -[CLEANUP], 661, 0 -[CLEANUP], 662, 0 -[CLEANUP], 663, 0 -[CLEANUP], 664, 0 -[CLEANUP], 665, 0 -[CLEANUP], 666, 0 -[CLEANUP], 667, 0 -[CLEANUP], 668, 0 -[CLEANUP], 669, 0 -[CLEANUP], 670, 0 -[CLEANUP], 671, 0 -[CLEANUP], 672, 0 -[CLEANUP], 673, 0 -[CLEANUP], 674, 0 -[CLEANUP], 675, 0 -[CLEANUP], 676, 0 -[CLEANUP], 677, 0 -[CLEANUP], 678, 0 -[CLEANUP], 679, 0 -[CLEANUP], 680, 0 -[CLEANUP], 681, 0 -[CLEANUP], 682, 0 -[CLEANUP], 683, 0 -[CLEANUP], 684, 0 -[CLEANUP], 685, 0 -[CLEANUP], 686, 0 -[CLEANUP], 687, 0 -[CLEANUP], 688, 0 -[CLEANUP], 689, 0 -[CLEANUP], 690, 0 -[CLEANUP], 691, 0 -[CLEANUP], 692, 0 -[CLEANUP], 693, 0 -[CLEANUP], 694, 0 -[CLEANUP], 695, 0 -[CLEANUP], 696, 0 -[CLEANUP], 697, 0 -[CLEANUP], 698, 0 -[CLEANUP], 699, 0 -[CLEANUP], 700, 0 -[CLEANUP], 701, 0 -[CLEANUP], 702, 0 -[CLEANUP], 703, 0 -[CLEANUP], 704, 0 -[CLEANUP], 705, 0 -[CLEANUP], 706, 0 -[CLEANUP], 707, 0 -[CLEANUP], 708, 0 -[CLEANUP], 709, 0 -[CLEANUP], 710, 0 -[CLEANUP], 711, 0 -[CLEANUP], 712, 0 -[CLEANUP], 713, 0 -[CLEANUP], 714, 0 -[CLEANUP], 715, 0 -[CLEANUP], 716, 0 -[CLEANUP], 717, 0 -[CLEANUP], 718, 0 -[CLEANUP], 719, 0 -[CLEANUP], 720, 0 -[CLEANUP], 721, 0 -[CLEANUP], 722, 0 -[CLEANUP], 723, 0 -[CLEANUP], 724, 0 -[CLEANUP], 725, 0 -[CLEANUP], 726, 0 -[CLEANUP], 727, 0 -[CLEANUP], 728, 0 -[CLEANUP], 729, 0 -[CLEANUP], 730, 0 -[CLEANUP], 731, 0 -[CLEANUP], 732, 0 -[CLEANUP], 733, 0 -[CLEANUP], 734, 0 -[CLEANUP], 735, 0 -[CLEANUP], 736, 0 -[CLEANUP], 737, 0 -[CLEANUP], 738, 0 -[CLEANUP], 739, 0 -[CLEANUP], 740, 0 -[CLEANUP], 741, 0 -[CLEANUP], 742, 0 -[CLEANUP], 743, 0 -[CLEANUP], 744, 0 -[CLEANUP], 745, 0 -[CLEANUP], 746, 0 -[CLEANUP], 747, 0 -[CLEANUP], 748, 0 -[CLEANUP], 749, 0 -[CLEANUP], 750, 0 -[CLEANUP], 751, 0 -[CLEANUP], 752, 0 -[CLEANUP], 753, 0 -[CLEANUP], 754, 0 -[CLEANUP], 755, 0 -[CLEANUP], 756, 0 -[CLEANUP], 757, 0 -[CLEANUP], 758, 0 -[CLEANUP], 759, 0 -[CLEANUP], 760, 0 -[CLEANUP], 761, 0 -[CLEANUP], 762, 0 -[CLEANUP], 763, 0 -[CLEANUP], 764, 0 -[CLEANUP], 765, 0 -[CLEANUP], 766, 0 -[CLEANUP], 767, 0 -[CLEANUP], 768, 0 -[CLEANUP], 769, 0 -[CLEANUP], 770, 0 -[CLEANUP], 771, 0 -[CLEANUP], 772, 0 -[CLEANUP], 773, 0 -[CLEANUP], 774, 0 -[CLEANUP], 775, 0 -[CLEANUP], 776, 0 -[CLEANUP], 777, 0 -[CLEANUP], 778, 0 -[CLEANUP], 779, 0 -[CLEANUP], 780, 0 -[CLEANUP], 781, 0 -[CLEANUP], 782, 0 -[CLEANUP], 783, 0 -[CLEANUP], 784, 0 -[CLEANUP], 785, 0 -[CLEANUP], 786, 0 -[CLEANUP], 787, 0 -[CLEANUP], 788, 0 -[CLEANUP], 789, 0 -[CLEANUP], 790, 0 -[CLEANUP], 791, 0 -[CLEANUP], 792, 0 -[CLEANUP], 793, 0 -[CLEANUP], 794, 0 -[CLEANUP], 795, 0 -[CLEANUP], 796, 0 -[CLEANUP], 797, 0 -[CLEANUP], 798, 0 -[CLEANUP], 799, 0 -[CLEANUP], 800, 0 -[CLEANUP], 801, 0 -[CLEANUP], 802, 0 -[CLEANUP], 803, 0 -[CLEANUP], 804, 0 -[CLEANUP], 805, 0 -[CLEANUP], 806, 0 -[CLEANUP], 807, 0 -[CLEANUP], 808, 0 -[CLEANUP], 809, 0 -[CLEANUP], 810, 0 -[CLEANUP], 811, 0 -[CLEANUP], 812, 0 -[CLEANUP], 813, 0 -[CLEANUP], 814, 0 -[CLEANUP], 815, 0 -[CLEANUP], 816, 0 -[CLEANUP], 817, 0 -[CLEANUP], 818, 0 -[CLEANUP], 819, 0 -[CLEANUP], 820, 0 -[CLEANUP], 821, 0 -[CLEANUP], 822, 0 -[CLEANUP], 823, 0 -[CLEANUP], 824, 0 -[CLEANUP], 825, 0 -[CLEANUP], 826, 0 -[CLEANUP], 827, 0 -[CLEANUP], 828, 0 -[CLEANUP], 829, 0 -[CLEANUP], 830, 0 -[CLEANUP], 831, 0 -[CLEANUP], 832, 0 -[CLEANUP], 833, 0 -[CLEANUP], 834, 0 -[CLEANUP], 835, 0 -[CLEANUP], 836, 0 -[CLEANUP], 837, 0 -[CLEANUP], 838, 0 -[CLEANUP], 839, 0 -[CLEANUP], 840, 0 -[CLEANUP], 841, 0 -[CLEANUP], 842, 0 -[CLEANUP], 843, 0 -[CLEANUP], 844, 0 -[CLEANUP], 845, 0 -[CLEANUP], 846, 0 -[CLEANUP], 847, 0 -[CLEANUP], 848, 0 -[CLEANUP], 849, 0 -[CLEANUP], 850, 0 -[CLEANUP], 851, 0 -[CLEANUP], 852, 0 -[CLEANUP], 853, 0 -[CLEANUP], 854, 0 -[CLEANUP], 855, 0 -[CLEANUP], 856, 0 -[CLEANUP], 857, 0 -[CLEANUP], 858, 0 -[CLEANUP], 859, 0 -[CLEANUP], 860, 0 -[CLEANUP], 861, 0 -[CLEANUP], 862, 0 -[CLEANUP], 863, 0 -[CLEANUP], 864, 0 -[CLEANUP], 865, 0 -[CLEANUP], 866, 0 -[CLEANUP], 867, 0 -[CLEANUP], 868, 0 -[CLEANUP], 869, 0 -[CLEANUP], 870, 0 -[CLEANUP], 871, 0 -[CLEANUP], 872, 0 -[CLEANUP], 873, 0 -[CLEANUP], 874, 0 -[CLEANUP], 875, 0 -[CLEANUP], 876, 0 -[CLEANUP], 877, 0 -[CLEANUP], 878, 0 -[CLEANUP], 879, 0 -[CLEANUP], 880, 0 -[CLEANUP], 881, 0 -[CLEANUP], 882, 0 -[CLEANUP], 883, 0 -[CLEANUP], 884, 0 -[CLEANUP], 885, 0 -[CLEANUP], 886, 0 -[CLEANUP], 887, 0 -[CLEANUP], 888, 0 -[CLEANUP], 889, 0 -[CLEANUP], 890, 0 -[CLEANUP], 891, 0 -[CLEANUP], 892, 0 -[CLEANUP], 893, 0 -[CLEANUP], 894, 0 -[CLEANUP], 895, 0 -[CLEANUP], 896, 0 -[CLEANUP], 897, 0 -[CLEANUP], 898, 0 -[CLEANUP], 899, 0 -[CLEANUP], 900, 0 -[CLEANUP], 901, 0 -[CLEANUP], 902, 0 -[CLEANUP], 903, 0 -[CLEANUP], 904, 0 -[CLEANUP], 905, 0 -[CLEANUP], 906, 0 -[CLEANUP], 907, 0 -[CLEANUP], 908, 0 -[CLEANUP], 909, 0 -[CLEANUP], 910, 0 -[CLEANUP], 911, 0 -[CLEANUP], 912, 0 -[CLEANUP], 913, 0 -[CLEANUP], 914, 0 -[CLEANUP], 915, 0 -[CLEANUP], 916, 0 -[CLEANUP], 917, 0 -[CLEANUP], 918, 0 -[CLEANUP], 919, 0 -[CLEANUP], 920, 0 -[CLEANUP], 921, 0 -[CLEANUP], 922, 0 -[CLEANUP], 923, 0 -[CLEANUP], 924, 0 -[CLEANUP], 925, 0 -[CLEANUP], 926, 0 -[CLEANUP], 927, 0 -[CLEANUP], 928, 0 -[CLEANUP], 929, 0 -[CLEANUP], 930, 0 -[CLEANUP], 931, 0 -[CLEANUP], 932, 0 -[CLEANUP], 933, 0 -[CLEANUP], 934, 0 -[CLEANUP], 935, 0 -[CLEANUP], 936, 0 -[CLEANUP], 937, 0 -[CLEANUP], 938, 0 -[CLEANUP], 939, 0 -[CLEANUP], 940, 0 -[CLEANUP], 941, 0 -[CLEANUP], 942, 0 -[CLEANUP], 943, 0 -[CLEANUP], 944, 0 -[CLEANUP], 945, 0 -[CLEANUP], 946, 0 -[CLEANUP], 947, 0 -[CLEANUP], 948, 0 -[CLEANUP], 949, 0 -[CLEANUP], 950, 0 -[CLEANUP], 951, 0 -[CLEANUP], 952, 0 -[CLEANUP], 953, 0 -[CLEANUP], 954, 0 -[CLEANUP], 955, 0 -[CLEANUP], 956, 0 -[CLEANUP], 957, 0 -[CLEANUP], 958, 0 -[CLEANUP], 959, 0 -[CLEANUP], 960, 0 -[CLEANUP], 961, 0 -[CLEANUP], 962, 0 -[CLEANUP], 963, 0 -[CLEANUP], 964, 0 -[CLEANUP], 965, 0 -[CLEANUP], 966, 0 -[CLEANUP], 967, 0 -[CLEANUP], 968, 0 -[CLEANUP], 969, 0 -[CLEANUP], 970, 0 -[CLEANUP], 971, 0 -[CLEANUP], 972, 0 -[CLEANUP], 973, 0 -[CLEANUP], 974, 0 -[CLEANUP], 975, 0 -[CLEANUP], 976, 0 -[CLEANUP], 977, 0 -[CLEANUP], 978, 0 -[CLEANUP], 979, 0 -[CLEANUP], 980, 0 -[CLEANUP], 981, 0 -[CLEANUP], 982, 0 -[CLEANUP], 983, 0 -[CLEANUP], 984, 0 -[CLEANUP], 985, 0 -[CLEANUP], 986, 0 -[CLEANUP], 987, 0 -[CLEANUP], 988, 0 -[CLEANUP], 989, 0 -[CLEANUP], 990, 0 -[CLEANUP], 991, 0 -[CLEANUP], 992, 0 -[CLEANUP], 993, 0 -[CLEANUP], 994, 0 -[CLEANUP], 995, 0 -[CLEANUP], 996, 0 -[CLEANUP], 997, 0 -[CLEANUP], 998, 0 -[CLEANUP], 999, 0 -[CLEANUP], >1000, 0 -java -cp /home/YCSB/orientdb/target/orientdb-binding-0.1.4.jar:/home/YCSB/orientdb/target/archive-tmp/orientdb-binding-0.1.4.jar:/home/YCSB/dynamodb/conf:/home/YCSB/core/target/core-0.1.4.jar:/home/YCSB/cassandra/target/slf4j-simple-1.7.2.jar:/home/YCSB/infinispan/src/main/conf:/home/YCSB/nosqldb/src/main/conf:/home/YCSB/voldemort/src/main/conf:/home/YCSB/jdbc/src/main/conf:/home/YCSB/gemfire/src/main/conf:/home/YCSB/hbase/src/main/conf com.yahoo.ycsb.Client -db com.yahoo.ycsb.db.OrientDBClient -s -P workloads/workloada -P large.dat -s -load DELETED YCSB/orientdb/README.md Index: YCSB/orientdb/README.md ================================================================== --- YCSB/orientdb/README.md +++ /dev/null @@ -1,31 +0,0 @@ -## Quick Start - -This section describes how to run YCSB on OrientDB running locally. - -### 1. Set Up YCSB - -Clone the YCSB git repository and compile: - - git clone git://github.com/nuvolabase/YCSB.git - cd YCSB - mvn clean package - -### 2. Run YCSB - -Now you are ready to run! First, load the data: - - ./bin/ycsb load orientdb -s -P workloads/workloada - -Then, run the workload: - - ./bin/ycsb run orientdb -s -P workloads/workloada - -See the next section for the list of configuration parameters for OrientDB. - -## OrientDB Configuration Parameters - -### `OrientDB.url` (default: `local:C:/temp/databases/ycsb`) - -### `OrientDB.user` (default `admin`) - -### `OrientDB.password` (default `admin`) DELETED YCSB/orientdb/pom.xml Index: YCSB/orientdb/pom.xml ================================================================== --- YCSB/orientdb/pom.xml +++ /dev/null @@ -1,57 +0,0 @@ - - - 4.0.0 - - com.yahoo.ycsb - root - 0.1.4 - - - orientdb-binding - OrientDB Binding - jar - - - sonatype-nexus-snapshots - Sonatype Nexus Snapshots - https://oss.sonatype.org/content/repositories/snapshots - - - - - com.yahoo.ycsb - core - ${project.version} - - - com.orientechnologies - orientdb-core - 1.0.1 - - - - - - - org.apache.maven.plugins - maven-assembly-plugin - ${maven.assembly.version} - - - jar-with-dependencies - - false - - - - package - - single - - - - - - - - DELETED YCSB/orientdb/src/main/java/com/yahoo/ycsb/db/OrientDBClient.java Index: YCSB/orientdb/src/main/java/com/yahoo/ycsb/db/OrientDBClient.java ================================================================== --- YCSB/orientdb/src/main/java/com/yahoo/ycsb/db/OrientDBClient.java +++ /dev/null @@ -1,224 +0,0 @@ -/** - * OrientDB client binding for YCSB. - * - * Submitted by Luca Garulli on 5/10/2012. - * - */ - -package com.yahoo.ycsb.db; - -import java.util.Collection; -import java.util.HashMap; -import java.util.Map.Entry; -import java.util.Properties; -import java.util.Set; -import java.util.Vector; - -import com.orientechnologies.orient.core.config.OGlobalConfiguration; -import com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx; -import com.orientechnologies.orient.core.dictionary.ODictionary; -import com.orientechnologies.orient.core.intent.OIntentMassiveInsert; -import com.orientechnologies.orient.core.record.ORecordInternal; -import com.orientechnologies.orient.core.record.impl.ODocument; -import com.yahoo.ycsb.ByteIterator; -import com.yahoo.ycsb.DB; -import com.yahoo.ycsb.DBException; -import com.yahoo.ycsb.StringByteIterator; - -/** - * OrientDB client for YCSB framework. - * - * Properties to set: - * - * orientdb.url=local:C:/temp/databases or remote:localhost:2424
- * orientdb.database=ycsb
- * orientdb.user=admin
- * orientdb.password=admin
- * - * @author Luca Garulli - * - */ -public class OrientDBClient extends DB { - - private ODatabaseDocumentTx db; - private static final String CLASS = "usertable"; - private ODictionary> dictionary; - - /** - * Initialize any state for this DB. Called once per DB instance; there is one DB instance per client thread. - */ - public void init() throws DBException { - // initialize OrientDB driver - Properties props = getProperties(); - - String url = props.getProperty("orientdb.url", "local:/home/rchow/orientdb-1.3.0/databases/ycsb"); - String user = props.getProperty("orientdb.user", "admin"); - String password = props.getProperty("orientdb.password", "admin"); - Boolean newdb = Boolean.parseBoolean(props.getProperty("orientdb.newdb", "false")); - - try { - System.out.println("OrientDB loading database url = " + url); - - OGlobalConfiguration.STORAGE_KEEP_OPEN.setValue(false); - db = new ODatabaseDocumentTx(url); - if (db.exists()) { - db.open(user, password); - if (newdb) { - System.out.println("OrientDB drop and recreate fresh db"); - db.drop(); - db.create(); - } - } else { - System.out.println("OrientDB database not found, create fresh db"); - db.create(); - } - - System.out.println("OrientDB connection created with " + url); - - dictionary = db.getMetadata().getIndexManager().getDictionary(); - if (!db.getMetadata().getSchema().existsClass(CLASS)) - db.getMetadata().getSchema().createClass(CLASS); - - db.declareIntent(new OIntentMassiveInsert()); - - } catch (Exception e1) { - System.err.println("Could not initialize OrientDB connection pool for Loader: " + e1.toString()); - e1.printStackTrace(); - return; - } - - } - - @Override - public void cleanup() throws DBException { - if (db != null) { - db.close(); - db = null; - } - } - - @Override - /** - * Insert a record in the database. Any field/value pairs in the specified values HashMap will be written into the record with the specified - * record key. - * - * @param table The name of the table - * @param key The record key of the record to insert. - * @param values A HashMap of field/value pairs to insert in the record - * @return Zero on success, a non-zero error code on error. See this class's description for a discussion of error codes. - */ - public int insert(String table, String key, HashMap values) { - try { - final ODocument document = new ODocument(CLASS); - for (Entry entry : StringByteIterator.getStringMap(values).entrySet()) - document.field(entry.getKey(), entry.getValue()); - document.save(); - dictionary.put(key, document); - - return 0; - } catch (Exception e) { - e.printStackTrace(); - } - return 1; - } - - @Override - /** - * Delete a record from the database. - * - * @param table The name of the table - * @param key The record key of the record to delete. - * @return Zero on success, a non-zero error code on error. See this class's description for a discussion of error codes. - */ - public int delete(String table, String key) { - try { - dictionary.remove(key); - return 0; - } catch (Exception e) { - e.printStackTrace(); - } - return 1; - } - - @Override - /** - * Read a record from the database. Each field/value pair from the result will be stored in a HashMap. - * - * @param table The name of the table - * @param key The record key of the record to read. - * @param fields The list of fields to read, or null for all of them - * @param result A HashMap of field/value pairs for the result - * @return Zero on success, a non-zero error code on error or "not found". - */ - public int read(String table, String key, Set fields, HashMap result) { - try { - final ODocument document = dictionary.get(key); - if (document != null) { - if (fields != null) - for (String field : fields) - result.put(field, new StringByteIterator((String) document.field(field))); - else - for (String field : document.fieldNames()) - result.put(field, new StringByteIterator((String) document.field(field))); - return 0; - } - } catch (Exception e) { - e.printStackTrace(); - } - return 1; - } - - @Override - /** - * Update a record in the database. Any field/value pairs in the specified values HashMap will be written into the record with the specified - * record key, overwriting any existing values with the same field name. - * - * @param table The name of the table - * @param key The record key of the record to write. - * @param values A HashMap of field/value pairs to update in the record - * @return Zero on success, a non-zero error code on error. See this class's description for a discussion of error codes. - */ - public int update(String table, String key, HashMap values) { - try { - final ODocument document = dictionary.get(key); - if (document != null) { - for (Entry entry : StringByteIterator.getStringMap(values).entrySet()) - document.field(entry.getKey(), entry.getValue()); - document.save(); - return 0; - } - } catch (Exception e) { - e.printStackTrace(); - } - return 1; - } - - @Override - /** - * Perform a range scan for a set of records in the database. Each field/value pair from the result will be stored in a HashMap. - * - * @param table The name of the table - * @param startkey The record key of the first record to read. - * @param recordcount The number of records to read - * @param fields The list of fields to read, or null for all of them - * @param result A Vector of HashMaps, where each HashMap is a set field/value pairs for one record - * @return Zero on success, a non-zero error code on error. See this class's description for a discussion of error codes. - */ - public int scan(String table, String startkey, int recordcount, Set fields, Vector> result) { - try { - final Collection documents = dictionary.getIndex().getEntriesMajor(startkey, true, recordcount); - for (ODocument document : documents) { - final HashMap entry = new HashMap(fields.size()); - result.add(entry); - - for (String field : fields) - entry.put(field, new StringByteIterator((String) document.field(field))); - } - - return 0; - } catch (Exception e) { - e.printStackTrace(); - } - return 1; - } -} DELETED YCSB/orientdb/target/archive-tmp/orientdb-binding-0.1.4.jar Index: YCSB/orientdb/target/archive-tmp/orientdb-binding-0.1.4.jar ================================================================== --- YCSB/orientdb/target/archive-tmp/orientdb-binding-0.1.4.jar +++ /dev/null cannot compute difference between binary files DELETED YCSB/orientdb/target/checkstyle-cachefile Index: YCSB/orientdb/target/checkstyle-cachefile ================================================================== --- YCSB/orientdb/target/checkstyle-cachefile +++ /dev/null @@ -1,2 +0,0 @@ -#Tue Mar 12 07:18:52 UTC 2013 -configuration*?=E01861048691D3FCA492C038C9C21AB2AD54C210 DELETED YCSB/orientdb/target/checkstyle-checker.xml Index: YCSB/orientdb/target/checkstyle-checker.xml ================================================================== --- YCSB/orientdb/target/checkstyle-checker.xml +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DELETED YCSB/orientdb/target/checkstyle-header.txt Index: YCSB/orientdb/target/checkstyle-header.txt ================================================================== --- YCSB/orientdb/target/checkstyle-header.txt +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. DELETED YCSB/orientdb/target/checkstyle-result.xml Index: YCSB/orientdb/target/checkstyle-result.xml ================================================================== --- YCSB/orientdb/target/checkstyle-result.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DELETED YCSB/orientdb/target/classes/com/yahoo/ycsb/db/OrientDBClient.class Index: YCSB/orientdb/target/classes/com/yahoo/ycsb/db/OrientDBClient.class ================================================================== --- YCSB/orientdb/target/classes/com/yahoo/ycsb/db/OrientDBClient.class +++ /dev/null cannot compute difference between binary files DELETED YCSB/orientdb/target/maven-archiver/pom.properties Index: YCSB/orientdb/target/maven-archiver/pom.properties ================================================================== --- YCSB/orientdb/target/maven-archiver/pom.properties +++ /dev/null @@ -1,5 +0,0 @@ -#Generated by Maven -#Tue Mar 12 07:18:53 UTC 2013 -version=0.1.4 -groupId=com.yahoo.ycsb -artifactId=orientdb-binding DELETED YCSB/orientdb/target/orientdb-binding-0.1.4.jar Index: YCSB/orientdb/target/orientdb-binding-0.1.4.jar ================================================================== --- YCSB/orientdb/target/orientdb-binding-0.1.4.jar +++ /dev/null cannot compute difference between binary files DELETED YCSB/orientdb/target/site/checkstyle.html Index: YCSB/orientdb/target/site/checkstyle.html ================================================================== --- YCSB/orientdb/target/site/checkstyle.html +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - Checkstyle Results - - - - - - - - - -
- -
-
-
-

Checkstyle Results

The following document contains the results of Checkstylerss feed

Summary

FilesInfos InfosWarnings WarningsErrors Errors
10033

Rules

RulesViolationsSeverity
JavadocPackage1Errors Error
Translation0Errors Error
FileLength0Errors Error
FileTabCharacter0Errors Error
JavadocType
  • allowMissingParamTags: "true"
  • scope: "public"
0Errors Error
JavadocStyle0Errors Error
ConstantName0Errors Error
LocalFinalVariableName0Errors Error
LocalVariableName0Errors Error
MemberName0Errors Error
MethodName0Errors Error
PackageName0Errors Error
ParameterName0Errors Error
StaticVariableName0Errors Error
TypeName0Errors Error
IllegalImport0Errors Error
RedundantImport0Errors Error
UnusedImports0Errors Error
LineLength24Errors Error
MethodLength0Errors Error
ParameterNumber0Errors Error
EmptyForIteratorPad0Errors Error
MethodParamPad0Errors Error
NoWhitespaceAfter0Errors Error
NoWhitespaceBefore0Errors Error
ParenPad0Errors Error
TypecastParenPad0Errors Error
WhitespaceAfter
  • tokens: "COMMA, SEMI"
0Errors Error
ModifierOrder0Errors Error
RedundantModifier0Errors Error
AvoidNestedBlocks0Errors Error
EmptyBlock0Errors Error
LeftCurly0Errors Error
NeedBraces8Errors Error
RightCurly0Errors Error
DoubleCheckedLocking0Errors Error
EmptyStatement0Errors Error
EqualsHashCode0Errors Error
HiddenField
  • ignoreConstructorParameter: "true"
0Errors Error
IllegalInstantiation0Errors Error
InnerAssignment0Errors Error
MissingSwitchDefault0Errors Error
RedundantThrows0Errors Error
SimplifyBooleanExpression0Errors Error
SimplifyBooleanReturn0Errors Error
FinalClass0Errors Error
HideUtilityClassConstructor0Errors Error
InterfaceIsType0Errors Error
VisibilityModifier0Errors Error
ArrayTypeStyle0Errors Error
Indentation
  • caseIndent: "0"
  • basicOffset: "2"
0Errors Error
TodoComment0Errors Error
UpperEll0Errors Error

Details

com/yahoo/ycsb/db/OrientDBClient.java

ViolationMessageLine
ErrorsMissing package-info.java file.0
ErrorsLine is longer than 80 characters.48
ErrorsLine is longer than 80 characters.54
ErrorsLine is longer than 80 characters.57
Errors'if' construct must use '{}'s.79
ErrorsLine is longer than 80 characters.85
ErrorsLine is longer than 80 characters.102
ErrorsLine is longer than 80 characters.108
ErrorsLine is longer than 80 characters.110
Errors'for' construct must use '{}'s.113
ErrorsLine is longer than 80 characters.113
ErrorsLine is longer than 80 characters.131
ErrorsLine is longer than 80 characters.145
ErrorsLine is longer than 80 characters.153
Errors'if' construct must use '{}'s.157
Errors'for' construct must use '{}'s.158
ErrorsLine is longer than 80 characters.159
Errors'else' construct must use '{}'s.160
Errors'for' construct must use '{}'s.161
ErrorsLine is longer than 80 characters.162
ErrorsLine is longer than 80 characters.173
ErrorsLine is longer than 80 characters.179
ErrorsLine is longer than 80 characters.181
Errors'for' construct must use '{}'s.185
ErrorsLine is longer than 80 characters.185
ErrorsLine is longer than 80 characters.198
ErrorsLine is longer than 80 characters.204
ErrorsLine is longer than 80 characters.205
ErrorsLine is longer than 80 characters.207
ErrorsLine is longer than 80 characters.209
ErrorsLine is longer than 80 characters.211
Errors'for' construct must use '{}'s.214
ErrorsLine is longer than 80 characters.215
-
-
-
-
-
- - - DELETED YCSB/orientdb/target/site/checkstyle.rss Index: YCSB/orientdb/target/site/checkstyle.rss ================================================================== --- YCSB/orientdb/target/site/checkstyle.rss +++ /dev/null @@ -1,51 +0,0 @@ - - - - - OrientDB Binding - Checkstyle report - ${project.url} - OrientDB Binding - Checkstyle report - en-us - ©2013 - - File: 1, - Errors: 33, - Warnings: 0, - Infos: 0 - - ${project.url}/checkstyle.html - -

Click here for the full Checkstyle report.

- - - - - - - - - - - - - - - - - - -
FilesIWE
- com/yahoo/ycsb/db/OrientDBClient.java - - 0 - - 0 - - 33 -
- -
-
-
-
- DELETED YCSB/orientdb/target/site/images/rss.png Index: YCSB/orientdb/target/site/images/rss.png ================================================================== --- YCSB/orientdb/target/site/images/rss.png +++ /dev/null cannot compute difference between binary files DELETED YCSB/pom.xml Index: YCSB/pom.xml ================================================================== --- YCSB/pom.xml +++ /dev/null @@ -1,112 +0,0 @@ - - - 4.0.0 - - com.yahoo.ycsb - root - 0.1.4 - pom - - YCSB Root - - - This is the top level project that builds, packages the core and all the DB bindings for YCSB infrastructure. - - - - - checkstyle - checkstyle - 5.0 - - - org.jdom - jdom - 1.1 - - - com.google.collections - google-collections - 1.0 - - - - org.slf4j - slf4j-api - 1.6.4 - - - - - - 2.2.1 - 0.92.1 - 0.7.0 - 7.1.0.CR1 - 2.1.1 - 1.0 - 2.9.0 - 1.0.1 - 2.0.0 - 0.81 - UTF-8 - 0.8.0 - 0.9.5.6 - - - - - cassandra - core - hbase - hypertable - dynamodb - elasticsearch - - infinispan - jdbc - mapkeeper - mongodb - orientdb - - redis - voldemort - distribution - - - - - - org.apache.maven.plugins - maven-compiler-plugin - 2.3.2 - - 1.6 - 1.6 - - - - org.apache.maven.plugins - maven-checkstyle-plugin - 2.6 - - true - checkstyle.xml - - - - validate - validate - - checkstyle - - - - - - - DELETED YCSB/prop.dat Index: YCSB/prop.dat ================================================================== --- YCSB/prop.dat +++ /dev/null @@ -1,2 +0,0 @@ -hosts=localhost -recordcount=1000 DELETED YCSB/redis/pom.xml Index: YCSB/redis/pom.xml ================================================================== --- YCSB/redis/pom.xml +++ /dev/null @@ -1,52 +0,0 @@ - - - 4.0.0 - - com.yahoo.ycsb - root - 0.1.4 - - - redis-binding - Redis DB Binding - jar - - - - redis.clients - jedis - ${redis.version} - - - com.yahoo.ycsb - core - ${project.version} - - - - - - - org.apache.maven.plugins - maven-assembly-plugin - ${maven.assembly.version} - - - jar-with-dependencies - - false - - - - package - - single - - - - - - - - - DELETED YCSB/redis/src/main/java/com/yahoo/ycsb/db/RedisClient.java Index: YCSB/redis/src/main/java/com/yahoo/ycsb/db/RedisClient.java ================================================================== --- YCSB/redis/src/main/java/com/yahoo/ycsb/db/RedisClient.java +++ /dev/null @@ -1,131 +0,0 @@ -/** - * Redis client binding for YCSB. - * - * All YCSB records are mapped to a Redis *hash field*. For scanning - * operations, all keys are saved (by an arbitrary hash) in a sorted set. - */ - -package com.yahoo.ycsb.db; -import com.yahoo.ycsb.DB; -import com.yahoo.ycsb.DBException; -import com.yahoo.ycsb.ByteIterator; -import com.yahoo.ycsb.StringByteIterator; - -import java.util.Map; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Properties; -import java.util.Set; -import java.util.Vector; - -import redis.clients.jedis.Jedis; -import redis.clients.jedis.Protocol; - -public class RedisClient extends DB { - - private Jedis jedis; - - public static final String HOST_PROPERTY = "redis.host"; - public static final String PORT_PROPERTY = "redis.port"; - public static final String PASSWORD_PROPERTY = "redis.password"; - - public static final String INDEX_KEY = "_indices"; - - public void init() throws DBException { - Properties props = getProperties(); - int port; - - String portString = props.getProperty(PORT_PROPERTY); - if (portString != null) { - port = Integer.parseInt(portString); - } - else { - port = Protocol.DEFAULT_PORT; - } - String host = props.getProperty(HOST_PROPERTY); - - jedis = new Jedis(host, port); - jedis.connect(); - - String password = props.getProperty(PASSWORD_PROPERTY); - if (password != null) { - jedis.auth(password); - } - } - - public void cleanup() throws DBException { - jedis.disconnect(); - } - - /* Calculate a hash for a key to store it in an index. The actual return - * value of this function is not interesting -- it primarily needs to be - * fast and scattered along the whole space of doubles. In a real world - * scenario one would probably use the ASCII values of the keys. - */ - private double hash(String key) { - return key.hashCode(); - } - - //XXX jedis.select(int index) to switch to `table` - - @Override - public int read(String table, String key, Set fields, - HashMap result) { - if (fields == null) { - StringByteIterator.putAllAsByteIterators(result, jedis.hgetAll(key)); - } - else { - String[] fieldArray = (String[])fields.toArray(new String[fields.size()]); - List values = jedis.hmget(key, fieldArray); - - Iterator fieldIterator = fields.iterator(); - Iterator valueIterator = values.iterator(); - - while (fieldIterator.hasNext() && valueIterator.hasNext()) { - result.put(fieldIterator.next(), - new StringByteIterator(valueIterator.next())); - } - assert !fieldIterator.hasNext() && !valueIterator.hasNext(); - } - return result.isEmpty() ? 1 : 0; - } - - @Override - public int insert(String table, String key, HashMap values) { - if (jedis.hmset(key, StringByteIterator.getStringMap(values)).equals("OK")) { - jedis.zadd(INDEX_KEY, hash(key), key); - return 0; - } - return 1; - } - - @Override - public int delete(String table, String key) { - return jedis.del(key) == 0 - && jedis.zrem(INDEX_KEY, key) == 0 - ? 1 : 0; - } - - @Override - public int update(String table, String key, HashMap values) { - return jedis.hmset(key, StringByteIterator.getStringMap(values)).equals("OK") ? 0 : 1; - } - - @Override - public int scan(String table, String startkey, int recordcount, - Set fields, Vector> result) { - Set keys = jedis.zrangeByScore(INDEX_KEY, hash(startkey), - Double.POSITIVE_INFINITY, 0, recordcount); - - HashMap values; - for (String key : keys) { - values = new HashMap(); - read(table, key, fields, values); - result.add(values); - } - - return 0; - } - -} DELETED YCSB/redis/target/archive-tmp/redis-binding-0.1.4.jar Index: YCSB/redis/target/archive-tmp/redis-binding-0.1.4.jar ================================================================== --- YCSB/redis/target/archive-tmp/redis-binding-0.1.4.jar +++ /dev/null cannot compute difference between binary files DELETED YCSB/redis/target/checkstyle-cachefile Index: YCSB/redis/target/checkstyle-cachefile ================================================================== --- YCSB/redis/target/checkstyle-cachefile +++ /dev/null @@ -1,2 +0,0 @@ -#Tue Mar 12 07:18:56 UTC 2013 -configuration*?=A03B27DA30BFC3BE77BEF4F13AACC4D92C24D64E DELETED YCSB/redis/target/checkstyle-checker.xml Index: YCSB/redis/target/checkstyle-checker.xml ================================================================== --- YCSB/redis/target/checkstyle-checker.xml +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DELETED YCSB/redis/target/checkstyle-header.txt Index: YCSB/redis/target/checkstyle-header.txt ================================================================== --- YCSB/redis/target/checkstyle-header.txt +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. DELETED YCSB/redis/target/checkstyle-result.xml Index: YCSB/redis/target/checkstyle-result.xml ================================================================== --- YCSB/redis/target/checkstyle-result.xml +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DELETED YCSB/redis/target/classes/com/yahoo/ycsb/db/RedisClient.class Index: YCSB/redis/target/classes/com/yahoo/ycsb/db/RedisClient.class ================================================================== --- YCSB/redis/target/classes/com/yahoo/ycsb/db/RedisClient.class +++ /dev/null cannot compute difference between binary files DELETED YCSB/redis/target/maven-archiver/pom.properties Index: YCSB/redis/target/maven-archiver/pom.properties ================================================================== --- YCSB/redis/target/maven-archiver/pom.properties +++ /dev/null @@ -1,5 +0,0 @@ -#Generated by Maven -#Tue Mar 12 07:18:57 UTC 2013 -version=0.1.4 -groupId=com.yahoo.ycsb -artifactId=redis-binding DELETED YCSB/redis/target/redis-binding-0.1.4.jar Index: YCSB/redis/target/redis-binding-0.1.4.jar ================================================================== --- YCSB/redis/target/redis-binding-0.1.4.jar +++ /dev/null cannot compute difference between binary files DELETED YCSB/redis/target/site/checkstyle.html Index: YCSB/redis/target/site/checkstyle.html ================================================================== --- YCSB/redis/target/site/checkstyle.html +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - Checkstyle Results - - - - - - - - - -
- -
-
-
-

Checkstyle Results

The following document contains the results of Checkstylerss feed

Summary

FilesInfos InfosWarnings WarningsErrors Errors
10084

Files

FilesInfosWarningsErrors
com/yahoo/ycsb/db/RedisClient.java0084

Rules

RulesViolationsSeverity
JavadocPackage1Errors Error
Translation0Errors Error
FileLength0Errors Error
FileTabCharacter1Errors Error
JavadocType
  • allowMissingParamTags: "true"
  • scope: "public"
1Errors Error
JavadocStyle0Errors Error
ConstantName0Errors Error
LocalFinalVariableName0Errors Error
LocalVariableName0Errors Error
MemberName0Errors Error
MethodName0Errors Error
PackageName0Errors Error
ParameterName0Errors Error
StaticVariableName0Errors Error
TypeName0Errors Error
IllegalImport0Errors Error
RedundantImport0Errors Error
UnusedImports1Errors Error
LineLength6Errors Error
MethodLength0Errors Error
ParameterNumber0Errors Error
EmptyForIteratorPad0Errors Error
MethodParamPad0Errors Error
NoWhitespaceAfter0Errors Error
NoWhitespaceBefore0Errors Error
ParenPad0Errors Error
TypecastParenPad0Errors Error
WhitespaceAfter
  • tokens: "COMMA, SEMI"
0Errors Error
ModifierOrder0Errors Error
RedundantModifier0Errors Error
AvoidNestedBlocks0Errors Error
EmptyBlock0Errors Error
LeftCurly0Errors Error
NeedBraces0Errors Error
RightCurly2Errors Error
DoubleCheckedLocking0Errors Error
EmptyStatement0Errors Error
EqualsHashCode0Errors Error
HiddenField
  • ignoreConstructorParameter: "true"
0Errors Error
IllegalInstantiation0Errors Error
InnerAssignment0Errors Error
MissingSwitchDefault0Errors Error
RedundantThrows0Errors Error
SimplifyBooleanExpression0Errors Error
SimplifyBooleanReturn0Errors Error
FinalClass0Errors Error
HideUtilityClassConstructor0Errors Error
InterfaceIsType0Errors Error
VisibilityModifier0Errors Error
ArrayTypeStyle0Errors Error
Indentation
  • caseIndent: "0"
  • basicOffset: "2"
72Errors Error
TodoComment0Errors Error
UpperEll0Errors Error

Details

com/yahoo/ycsb/db/RedisClient.java

ViolationMessageLine
ErrorsMissing package-info.java file.0
ErrorsUnused import - java.util.Map.14
ErrorsMissing a Javadoc comment.25
Errorsmember def modifier at indentation level 4 not at correct indentation, 227
Errorsmember def modifier at indentation level 4 not at correct indentation, 229
Errorsmember def modifier at indentation level 4 not at correct indentation, 230
Errorsmember def modifier at indentation level 4 not at correct indentation, 231
Errorsmember def modifier at indentation level 4 not at correct indentation, 233
Errorsmethod def modifier at indentation level 4 not at correct indentation, 235
Errorsmethod def child at indentation level 8 not at correct indentation, 436
Errorsmethod def child at indentation level 8 not at correct indentation, 437
Errorsmethod def child at indentation level 8 not at correct indentation, 439
Errorsif at indentation level 8 not at correct indentation, 440
Errorsif child at indentation level 12 not at correct indentation, 641
Errorsif rcurly at indentation level 8 not at correct indentation, 442
Errors'}' should be on the same line.42
Errorselse at indentation level 8 not at correct indentation, 443
Errorselse child at indentation level 12 not at correct indentation, 644
Errorselse rcurly at indentation level 8 not at correct indentation, 445
Errorsmethod def child at indentation level 8 not at correct indentation, 446
Errorsmethod def child at indentation level 8 not at correct indentation, 448
Errorsmethod def child at indentation level 8 not at correct indentation, 449
Errorsmethod def child at indentation level 8 not at correct indentation, 451
Errorsif at indentation level 8 not at correct indentation, 452
Errorsif child at indentation level 12 not at correct indentation, 653
Errorsif rcurly at indentation level 8 not at correct indentation, 454
Errorsmethod def rcurly at indentation level 4 not at correct indentation, 255
Errorsmethod def modifier at indentation level 4 not at correct indentation, 257
Errorsmethod def child at indentation level 8 not at correct indentation, 458
Errorsmethod def rcurly at indentation level 4 not at correct indentation, 259
Errorsmethod def modifier at indentation level 4 not at correct indentation, 266
Errorsmethod def child at indentation level 8 not at correct indentation, 467
Errorsmethod def rcurly at indentation level 4 not at correct indentation, 268
Errorsmethod def modifier at indentation level 4 not at correct indentation, 272
Errorsmethod def modifier at indentation level 4 not at correct indentation, 273
Errorsif at indentation level 8 not at correct indentation, 475
ErrorsLine is longer than 80 characters.76
Errorsif child at indentation level 12 not at correct indentation, 676
Errorsif rcurly at indentation level 8 not at correct indentation, 477
Errors'}' should be on the same line.77
Errorselse at indentation level 8 not at correct indentation, 478
ErrorsLine is longer than 80 characters.79
Errorselse child at indentation level 12 not at correct indentation, 679
Errorselse child at indentation level 12 not at correct indentation, 680
Errorselse child at indentation level 12 not at correct indentation, 682
Errorselse child at indentation level 12 not at correct indentation, 683
Errorswhile at indentation level 12 not at correct indentation, 685
Errorswhile child at indentation level 16 not at correct indentation, 886
ErrorsFile contains tab characters (this is the first instance).87
Errorswhile rcurly at indentation level 12 not at correct indentation, 688
Errorselse rcurly at indentation level 8 not at correct indentation, 490
Errorsmethod def child at indentation level 8 not at correct indentation, 491
Errorsmethod def rcurly at indentation level 4 not at correct indentation, 292
Errorsmethod def modifier at indentation level 4 not at correct indentation, 294
ErrorsLine is longer than 80 characters.95
Errorsmethod def modifier at indentation level 4 not at correct indentation, 295
ErrorsLine is longer than 80 characters.96
Errorsif at indentation level 8 not at correct indentation, 496
Errorsif child at indentation level 12 not at correct indentation, 697
Errorsif child at indentation level 12 not at correct indentation, 698
Errorsif rcurly at indentation level 8 not at correct indentation, 499
Errorsmethod def child at indentation level 8 not at correct indentation, 4100
Errorsmethod def rcurly at indentation level 4 not at correct indentation, 2101
Errorsmethod def modifier at indentation level 4 not at correct indentation, 2103
Errorsmethod def modifier at indentation level 4 not at correct indentation, 2104
Errorsmethod def child at indentation level 8 not at correct indentation, 4105
Errorsmethod def rcurly at indentation level 4 not at correct indentation, 2108
Errorsmethod def modifier at indentation level 4 not at correct indentation, 2110
ErrorsLine is longer than 80 characters.111
Errorsmethod def modifier at indentation level 4 not at correct indentation, 2111
ErrorsLine is longer than 80 characters.112
Errorsmethod def child at indentation level 8 not at correct indentation, 4112
Errorsmethod def rcurly at indentation level 4 not at correct indentation, 2113
Errorsmethod def modifier at indentation level 4 not at correct indentation, 2115
Errorsmethod def modifier at indentation level 4 not at correct indentation, 2116
Errorsmethod def child at indentation level 8 not at correct indentation, 4118
Errorsmethod def child at indentation level 8 not at correct indentation, 4121
Errorsfor at indentation level 8 not at correct indentation, 4122
Errorsfor child at indentation level 12 not at correct indentation, 6123
Errorsfor child at indentation level 12 not at correct indentation, 6124
Errorsfor child at indentation level 12 not at correct indentation, 6125
Errorsfor rcurly at indentation level 8 not at correct indentation, 4126
Errorsmethod def child at indentation level 8 not at correct indentation, 4128
Errorsmethod def rcurly at indentation level 4 not at correct indentation, 2129
-
-
-
-
-
- - - DELETED YCSB/redis/target/site/checkstyle.rss Index: YCSB/redis/target/site/checkstyle.rss ================================================================== --- YCSB/redis/target/site/checkstyle.rss +++ /dev/null @@ -1,51 +0,0 @@ - - - - - Redis DB Binding - Checkstyle report - ${project.url} - Redis DB Binding - Checkstyle report - en-us - ©2013 - - File: 1, - Errors: 84, - Warnings: 0, - Infos: 0 - - ${project.url}/checkstyle.html - -

Click here for the full Checkstyle report.

- - - - - - - - - - - - - - - - - - -
FilesIWE
- com/yahoo/ycsb/db/RedisClient.java - - 0 - - 0 - - 84 -
- -
-
-
-
- DELETED YCSB/redis/target/site/images/rss.png Index: YCSB/redis/target/site/images/rss.png ================================================================== --- YCSB/redis/target/site/images/rss.png +++ /dev/null cannot compute difference between binary files DELETED YCSB/redis2load.dat Index: YCSB/redis2load.dat ================================================================== --- YCSB/redis2load.dat +++ /dev/null @@ -1,2020 +0,0 @@ -YCSB Client 0.1 -Command line: -db com.yahoo.ycsb.db.RedisClient -p redis.host=10.249.77.163 -p redis.port=6379 -P workloads/workloada -p recordcount=1000000 -load -[OVERALL], RunTime(ms), 692113.0 -[OVERALL], Throughput(ops/sec), 1444.8507685883665 -[INSERT], Operations, 1000000 -[INSERT], AverageLatency(us), 685.996559 -[INSERT], MinLatency(us), 530 -[INSERT], MaxLatency(us), 612371 -[INSERT], 95thPercentileLatency(ms), 0 -[INSERT], 99thPercentileLatency(ms), 0 -[INSERT], Return=0, 1000000 -[INSERT], 0, 991253 -[INSERT], 1, 6222 -[INSERT], 2, 580 -[INSERT], 3, 112 -[INSERT], 4, 130 -[INSERT], 5, 31 -[INSERT], 6, 16 -[INSERT], 7, 9 -[INSERT], 8, 17 -[INSERT], 9, 432 -[INSERT], 10, 571 -[INSERT], 11, 544 -[INSERT], 12, 31 -[INSERT], 13, 4 -[INSERT], 14, 3 -[INSERT], 15, 2 -[INSERT], 16, 22 -[INSERT], 17, 6 -[INSERT], 18, 2 -[INSERT], 19, 2 -[INSERT], 20, 1 -[INSERT], 21, 1 -[INSERT], 22, 1 -[INSERT], 23, 0 -[INSERT], 24, 1 -[INSERT], 25, 0 -[INSERT], 26, 0 -[INSERT], 27, 0 -[INSERT], 28, 0 -[INSERT], 29, 0 -[INSERT], 30, 0 -[INSERT], 31, 0 -[INSERT], 32, 0 -[INSERT], 33, 0 -[INSERT], 34, 0 -[INSERT], 35, 0 -[INSERT], 36, 0 -[INSERT], 37, 0 -[INSERT], 38, 0 -[INSERT], 39, 0 -[INSERT], 40, 0 -[INSERT], 41, 0 -[INSERT], 42, 0 -[INSERT], 43, 0 -[INSERT], 44, 0 -[INSERT], 45, 0 -[INSERT], 46, 0 -[INSERT], 47, 0 -[INSERT], 48, 0 -[INSERT], 49, 0 -[INSERT], 50, 0 -[INSERT], 51, 0 -[INSERT], 52, 0 -[INSERT], 53, 0 -[INSERT], 54, 0 -[INSERT], 55, 0 -[INSERT], 56, 0 -[INSERT], 57, 0 -[INSERT], 58, 0 -[INSERT], 59, 0 -[INSERT], 60, 0 -[INSERT], 61, 0 -[INSERT], 62, 0 -[INSERT], 63, 0 -[INSERT], 64, 0 -[INSERT], 65, 0 -[INSERT], 66, 0 -[INSERT], 67, 0 -[INSERT], 68, 0 -[INSERT], 69, 0 -[INSERT], 70, 0 -[INSERT], 71, 0 -[INSERT], 72, 0 -[INSERT], 73, 1 -[INSERT], 74, 0 -[INSERT], 75, 0 -[INSERT], 76, 0 -[INSERT], 77, 0 -[INSERT], 78, 0 -[INSERT], 79, 0 -[INSERT], 80, 0 -[INSERT], 81, 0 -[INSERT], 82, 0 -[INSERT], 83, 0 -[INSERT], 84, 0 -[INSERT], 85, 0 -[INSERT], 86, 0 -[INSERT], 87, 0 -[INSERT], 88, 0 -[INSERT], 89, 0 -[INSERT], 90, 0 -[INSERT], 91, 0 -[INSERT], 92, 0 -[INSERT], 93, 0 -[INSERT], 94, 0 -[INSERT], 95, 0 -[INSERT], 96, 0 -[INSERT], 97, 0 -[INSERT], 98, 0 -[INSERT], 99, 0 -[INSERT], 100, 1 -[INSERT], 101, 0 -[INSERT], 102, 0 -[INSERT], 103, 0 -[INSERT], 104, 0 -[INSERT], 105, 0 -[INSERT], 106, 0 -[INSERT], 107, 0 -[INSERT], 108, 0 -[INSERT], 109, 0 -[INSERT], 110, 0 -[INSERT], 111, 0 -[INSERT], 112, 0 -[INSERT], 113, 0 -[INSERT], 114, 0 -[INSERT], 115, 0 -[INSERT], 116, 0 -[INSERT], 117, 0 -[INSERT], 118, 0 -[INSERT], 119, 0 -[INSERT], 120, 0 -[INSERT], 121, 0 -[INSERT], 122, 0 -[INSERT], 123, 0 -[INSERT], 124, 0 -[INSERT], 125, 0 -[INSERT], 126, 0 -[INSERT], 127, 0 -[INSERT], 128, 0 -[INSERT], 129, 0 -[INSERT], 130, 0 -[INSERT], 131, 0 -[INSERT], 132, 0 -[INSERT], 133, 0 -[INSERT], 134, 0 -[INSERT], 135, 0 -[INSERT], 136, 0 -[INSERT], 137, 0 -[INSERT], 138, 0 -[INSERT], 139, 0 -[INSERT], 140, 0 -[INSERT], 141, 0 -[INSERT], 142, 0 -[INSERT], 143, 0 -[INSERT], 144, 0 -[INSERT], 145, 0 -[INSERT], 146, 0 -[INSERT], 147, 0 -[INSERT], 148, 0 -[INSERT], 149, 0 -[INSERT], 150, 0 -[INSERT], 151, 0 -[INSERT], 152, 0 -[INSERT], 153, 0 -[INSERT], 154, 1 -[INSERT], 155, 0 -[INSERT], 156, 0 -[INSERT], 157, 0 -[INSERT], 158, 0 -[INSERT], 159, 0 -[INSERT], 160, 0 -[INSERT], 161, 0 -[INSERT], 162, 0 -[INSERT], 163, 0 -[INSERT], 164, 0 -[INSERT], 165, 0 -[INSERT], 166, 0 -[INSERT], 167, 0 -[INSERT], 168, 0 -[INSERT], 169, 0 -[INSERT], 170, 0 -[INSERT], 171, 0 -[INSERT], 172, 0 -[INSERT], 173, 0 -[INSERT], 174, 0 -[INSERT], 175, 0 -[INSERT], 176, 0 -[INSERT], 177, 0 -[INSERT], 178, 0 -[INSERT], 179, 0 -[INSERT], 180, 0 -[INSERT], 181, 0 -[INSERT], 182, 0 -[INSERT], 183, 0 -[INSERT], 184, 0 -[INSERT], 185, 0 -[INSERT], 186, 0 -[INSERT], 187, 0 -[INSERT], 188, 0 -[INSERT], 189, 0 -[INSERT], 190, 0 -[INSERT], 191, 0 -[INSERT], 192, 0 -[INSERT], 193, 0 -[INSERT], 194, 0 -[INSERT], 195, 0 -[INSERT], 196, 0 -[INSERT], 197, 0 -[INSERT], 198, 0 -[INSERT], 199, 0 -[INSERT], 200, 0 -[INSERT], 201, 0 -[INSERT], 202, 0 -[INSERT], 203, 0 -[INSERT], 204, 0 -[INSERT], 205, 0 -[INSERT], 206, 0 -[INSERT], 207, 0 -[INSERT], 208, 0 -[INSERT], 209, 0 -[INSERT], 210, 0 -[INSERT], 211, 0 -[INSERT], 212, 0 -[INSERT], 213, 0 -[INSERT], 214, 0 -[INSERT], 215, 0 -[INSERT], 216, 0 -[INSERT], 217, 0 -[INSERT], 218, 0 -[INSERT], 219, 0 -[INSERT], 220, 0 -[INSERT], 221, 0 -[INSERT], 222, 0 -[INSERT], 223, 0 -[INSERT], 224, 0 -[INSERT], 225, 0 -[INSERT], 226, 0 -[INSERT], 227, 0 -[INSERT], 228, 0 -[INSERT], 229, 0 -[INSERT], 230, 0 -[INSERT], 231, 0 -[INSERT], 232, 0 -[INSERT], 233, 0 -[INSERT], 234, 0 -[INSERT], 235, 0 -[INSERT], 236, 0 -[INSERT], 237, 0 -[INSERT], 238, 0 -[INSERT], 239, 0 -[INSERT], 240, 0 -[INSERT], 241, 0 -[INSERT], 242, 0 -[INSERT], 243, 0 -[INSERT], 244, 0 -[INSERT], 245, 0 -[INSERT], 246, 0 -[INSERT], 247, 1 -[INSERT], 248, 0 -[INSERT], 249, 0 -[INSERT], 250, 0 -[INSERT], 251, 0 -[INSERT], 252, 0 -[INSERT], 253, 0 -[INSERT], 254, 0 -[INSERT], 255, 0 -[INSERT], 256, 0 -[INSERT], 257, 0 -[INSERT], 258, 0 -[INSERT], 259, 0 -[INSERT], 260, 0 -[INSERT], 261, 0 -[INSERT], 262, 0 -[INSERT], 263, 0 -[INSERT], 264, 0 -[INSERT], 265, 0 -[INSERT], 266, 0 -[INSERT], 267, 0 -[INSERT], 268, 0 -[INSERT], 269, 0 -[INSERT], 270, 0 -[INSERT], 271, 0 -[INSERT], 272, 0 -[INSERT], 273, 0 -[INSERT], 274, 0 -[INSERT], 275, 0 -[INSERT], 276, 0 -[INSERT], 277, 0 -[INSERT], 278, 0 -[INSERT], 279, 0 -[INSERT], 280, 0 -[INSERT], 281, 0 -[INSERT], 282, 0 -[INSERT], 283, 0 -[INSERT], 284, 0 -[INSERT], 285, 0 -[INSERT], 286, 0 -[INSERT], 287, 0 -[INSERT], 288, 0 -[INSERT], 289, 0 -[INSERT], 290, 0 -[INSERT], 291, 0 -[INSERT], 292, 0 -[INSERT], 293, 0 -[INSERT], 294, 0 -[INSERT], 295, 0 -[INSERT], 296, 0 -[INSERT], 297, 0 -[INSERT], 298, 0 -[INSERT], 299, 0 -[INSERT], 300, 0 -[INSERT], 301, 0 -[INSERT], 302, 0 -[INSERT], 303, 0 -[INSERT], 304, 0 -[INSERT], 305, 0 -[INSERT], 306, 0 -[INSERT], 307, 0 -[INSERT], 308, 0 -[INSERT], 309, 0 -[INSERT], 310, 0 -[INSERT], 311, 0 -[INSERT], 312, 0 -[INSERT], 313, 0 -[INSERT], 314, 0 -[INSERT], 315, 0 -[INSERT], 316, 0 -[INSERT], 317, 0 -[INSERT], 318, 0 -[INSERT], 319, 0 -[INSERT], 320, 0 -[INSERT], 321, 0 -[INSERT], 322, 0 -[INSERT], 323, 0 -[INSERT], 324, 0 -[INSERT], 325, 0 -[INSERT], 326, 0 -[INSERT], 327, 0 -[INSERT], 328, 0 -[INSERT], 329, 0 -[INSERT], 330, 0 -[INSERT], 331, 0 -[INSERT], 332, 0 -[INSERT], 333, 0 -[INSERT], 334, 0 -[INSERT], 335, 0 -[INSERT], 336, 0 -[INSERT], 337, 0 -[INSERT], 338, 0 -[INSERT], 339, 0 -[INSERT], 340, 0 -[INSERT], 341, 0 -[INSERT], 342, 0 -[INSERT], 343, 0 -[INSERT], 344, 0 -[INSERT], 345, 0 -[INSERT], 346, 0 -[INSERT], 347, 0 -[INSERT], 348, 0 -[INSERT], 349, 0 -[INSERT], 350, 0 -[INSERT], 351, 0 -[INSERT], 352, 0 -[INSERT], 353, 0 -[INSERT], 354, 0 -[INSERT], 355, 0 -[INSERT], 356, 0 -[INSERT], 357, 0 -[INSERT], 358, 0 -[INSERT], 359, 0 -[INSERT], 360, 0 -[INSERT], 361, 0 -[INSERT], 362, 0 -[INSERT], 363, 0 -[INSERT], 364, 1 -[INSERT], 365, 0 -[INSERT], 366, 0 -[INSERT], 367, 0 -[INSERT], 368, 0 -[INSERT], 369, 0 -[INSERT], 370, 0 -[INSERT], 371, 0 -[INSERT], 372, 0 -[INSERT], 373, 0 -[INSERT], 374, 0 -[INSERT], 375, 0 -[INSERT], 376, 0 -[INSERT], 377, 0 -[INSERT], 378, 0 -[INSERT], 379, 0 -[INSERT], 380, 0 -[INSERT], 381, 0 -[INSERT], 382, 0 -[INSERT], 383, 0 -[INSERT], 384, 0 -[INSERT], 385, 0 -[INSERT], 386, 0 -[INSERT], 387, 0 -[INSERT], 388, 0 -[INSERT], 389, 0 -[INSERT], 390, 0 -[INSERT], 391, 0 -[INSERT], 392, 0 -[INSERT], 393, 0 -[INSERT], 394, 0 -[INSERT], 395, 0 -[INSERT], 396, 0 -[INSERT], 397, 0 -[INSERT], 398, 0 -[INSERT], 399, 0 -[INSERT], 400, 0 -[INSERT], 401, 0 -[INSERT], 402, 0 -[INSERT], 403, 0 -[INSERT], 404, 0 -[INSERT], 405, 0 -[INSERT], 406, 0 -[INSERT], 407, 0 -[INSERT], 408, 0 -[INSERT], 409, 0 -[INSERT], 410, 0 -[INSERT], 411, 0 -[INSERT], 412, 0 -[INSERT], 413, 0 -[INSERT], 414, 0 -[INSERT], 415, 0 -[INSERT], 416, 0 -[INSERT], 417, 0 -[INSERT], 418, 0 -[INSERT], 419, 0 -[INSERT], 420, 0 -[INSERT], 421, 0 -[INSERT], 422, 0 -[INSERT], 423, 0 -[INSERT], 424, 0 -[INSERT], 425, 0 -[INSERT], 426, 0 -[INSERT], 427, 0 -[INSERT], 428, 0 -[INSERT], 429, 0 -[INSERT], 430, 0 -[INSERT], 431, 0 -[INSERT], 432, 0 -[INSERT], 433, 0 -[INSERT], 434, 0 -[INSERT], 435, 0 -[INSERT], 436, 0 -[INSERT], 437, 0 -[INSERT], 438, 0 -[INSERT], 439, 0 -[INSERT], 440, 0 -[INSERT], 441, 0 -[INSERT], 442, 0 -[INSERT], 443, 0 -[INSERT], 444, 0 -[INSERT], 445, 0 -[INSERT], 446, 0 -[INSERT], 447, 0 -[INSERT], 448, 0 -[INSERT], 449, 0 -[INSERT], 450, 0 -[INSERT], 451, 0 -[INSERT], 452, 0 -[INSERT], 453, 0 -[INSERT], 454, 0 -[INSERT], 455, 0 -[INSERT], 456, 0 -[INSERT], 457, 0 -[INSERT], 458, 0 -[INSERT], 459, 0 -[INSERT], 460, 0 -[INSERT], 461, 0 -[INSERT], 462, 0 -[INSERT], 463, 0 -[INSERT], 464, 0 -[INSERT], 465, 1 -[INSERT], 466, 0 -[INSERT], 467, 0 -[INSERT], 468, 0 -[INSERT], 469, 0 -[INSERT], 470, 0 -[INSERT], 471, 0 -[INSERT], 472, 0 -[INSERT], 473, 0 -[INSERT], 474, 0 -[INSERT], 475, 0 -[INSERT], 476, 0 -[INSERT], 477, 0 -[INSERT], 478, 0 -[INSERT], 479, 0 -[INSERT], 480, 0 -[INSERT], 481, 0 -[INSERT], 482, 0 -[INSERT], 483, 0 -[INSERT], 484, 0 -[INSERT], 485, 0 -[INSERT], 486, 0 -[INSERT], 487, 0 -[INSERT], 488, 0 -[INSERT], 489, 0 -[INSERT], 490, 0 -[INSERT], 491, 0 -[INSERT], 492, 0 -[INSERT], 493, 0 -[INSERT], 494, 0 -[INSERT], 495, 0 -[INSERT], 496, 0 -[INSERT], 497, 0 -[INSERT], 498, 0 -[INSERT], 499, 0 -[INSERT], 500, 0 -[INSERT], 501, 0 -[INSERT], 502, 0 -[INSERT], 503, 0 -[INSERT], 504, 0 -[INSERT], 505, 0 -[INSERT], 506, 0 -[INSERT], 507, 0 -[INSERT], 508, 0 -[INSERT], 509, 0 -[INSERT], 510, 0 -[INSERT], 511, 0 -[INSERT], 512, 0 -[INSERT], 513, 0 -[INSERT], 514, 0 -[INSERT], 515, 0 -[INSERT], 516, 0 -[INSERT], 517, 0 -[INSERT], 518, 0 -[INSERT], 519, 0 -[INSERT], 520, 0 -[INSERT], 521, 0 -[INSERT], 522, 0 -[INSERT], 523, 0 -[INSERT], 524, 0 -[INSERT], 525, 0 -[INSERT], 526, 0 -[INSERT], 527, 0 -[INSERT], 528, 0 -[INSERT], 529, 0 -[INSERT], 530, 0 -[INSERT], 531, 0 -[INSERT], 532, 0 -[INSERT], 533, 0 -[INSERT], 534, 0 -[INSERT], 535, 0 -[INSERT], 536, 0 -[INSERT], 537, 0 -[INSERT], 538, 0 -[INSERT], 539, 0 -[INSERT], 540, 0 -[INSERT], 541, 0 -[INSERT], 542, 0 -[INSERT], 543, 0 -[INSERT], 544, 0 -[INSERT], 545, 0 -[INSERT], 546, 0 -[INSERT], 547, 0 -[INSERT], 548, 0 -[INSERT], 549, 0 -[INSERT], 550, 0 -[INSERT], 551, 0 -[INSERT], 552, 0 -[INSERT], 553, 0 -[INSERT], 554, 0 -[INSERT], 555, 0 -[INSERT], 556, 0 -[INSERT], 557, 0 -[INSERT], 558, 0 -[INSERT], 559, 0 -[INSERT], 560, 0 -[INSERT], 561, 0 -[INSERT], 562, 0 -[INSERT], 563, 0 -[INSERT], 564, 0 -[INSERT], 565, 0 -[INSERT], 566, 0 -[INSERT], 567, 0 -[INSERT], 568, 0 -[INSERT], 569, 0 -[INSERT], 570, 0 -[INSERT], 571, 0 -[INSERT], 572, 0 -[INSERT], 573, 0 -[INSERT], 574, 0 -[INSERT], 575, 0 -[INSERT], 576, 0 -[INSERT], 577, 0 -[INSERT], 578, 0 -[INSERT], 579, 0 -[INSERT], 580, 0 -[INSERT], 581, 0 -[INSERT], 582, 0 -[INSERT], 583, 0 -[INSERT], 584, 0 -[INSERT], 585, 0 -[INSERT], 586, 0 -[INSERT], 587, 0 -[INSERT], 588, 0 -[INSERT], 589, 0 -[INSERT], 590, 0 -[INSERT], 591, 0 -[INSERT], 592, 0 -[INSERT], 593, 0 -[INSERT], 594, 0 -[INSERT], 595, 0 -[INSERT], 596, 0 -[INSERT], 597, 0 -[INSERT], 598, 0 -[INSERT], 599, 0 -[INSERT], 600, 0 -[INSERT], 601, 0 -[INSERT], 602, 0 -[INSERT], 603, 0 -[INSERT], 604, 0 -[INSERT], 605, 0 -[INSERT], 606, 0 -[INSERT], 607, 0 -[INSERT], 608, 0 -[INSERT], 609, 0 -[INSERT], 610, 0 -[INSERT], 611, 0 -[INSERT], 612, 1 -[INSERT], 613, 0 -[INSERT], 614, 0 -[INSERT], 615, 0 -[INSERT], 616, 0 -[INSERT], 617, 0 -[INSERT], 618, 0 -[INSERT], 619, 0 -[INSERT], 620, 0 -[INSERT], 621, 0 -[INSERT], 622, 0 -[INSERT], 623, 0 -[INSERT], 624, 0 -[INSERT], 625, 0 -[INSERT], 626, 0 -[INSERT], 627, 0 -[INSERT], 628, 0 -[INSERT], 629, 0 -[INSERT], 630, 0 -[INSERT], 631, 0 -[INSERT], 632, 0 -[INSERT], 633, 0 -[INSERT], 634, 0 -[INSERT], 635, 0 -[INSERT], 636, 0 -[INSERT], 637, 0 -[INSERT], 638, 0 -[INSERT], 639, 0 -[INSERT], 640, 0 -[INSERT], 641, 0 -[INSERT], 642, 0 -[INSERT], 643, 0 -[INSERT], 644, 0 -[INSERT], 645, 0 -[INSERT], 646, 0 -[INSERT], 647, 0 -[INSERT], 648, 0 -[INSERT], 649, 0 -[INSERT], 650, 0 -[INSERT], 651, 0 -[INSERT], 652, 0 -[INSERT], 653, 0 -[INSERT], 654, 0 -[INSERT], 655, 0 -[INSERT], 656, 0 -[INSERT], 657, 0 -[INSERT], 658, 0 -[INSERT], 659, 0 -[INSERT], 660, 0 -[INSERT], 661, 0 -[INSERT], 662, 0 -[INSERT], 663, 0 -[INSERT], 664, 0 -[INSERT], 665, 0 -[INSERT], 666, 0 -[INSERT], 667, 0 -[INSERT], 668, 0 -[INSERT], 669, 0 -[INSERT], 670, 0 -[INSERT], 671, 0 -[INSERT], 672, 0 -[INSERT], 673, 0 -[INSERT], 674, 0 -[INSERT], 675, 0 -[INSERT], 676, 0 -[INSERT], 677, 0 -[INSERT], 678, 0 -[INSERT], 679, 0 -[INSERT], 680, 0 -[INSERT], 681, 0 -[INSERT], 682, 0 -[INSERT], 683, 0 -[INSERT], 684, 0 -[INSERT], 685, 0 -[INSERT], 686, 0 -[INSERT], 687, 0 -[INSERT], 688, 0 -[INSERT], 689, 0 -[INSERT], 690, 0 -[INSERT], 691, 0 -[INSERT], 692, 0 -[INSERT], 693, 0 -[INSERT], 694, 0 -[INSERT], 695, 0 -[INSERT], 696, 0 -[INSERT], 697, 0 -[INSERT], 698, 0 -[INSERT], 699, 0 -[INSERT], 700, 0 -[INSERT], 701, 0 -[INSERT], 702, 0 -[INSERT], 703, 0 -[INSERT], 704, 0 -[INSERT], 705, 0 -[INSERT], 706, 0 -[INSERT], 707, 0 -[INSERT], 708, 0 -[INSERT], 709, 0 -[INSERT], 710, 0 -[INSERT], 711, 0 -[INSERT], 712, 0 -[INSERT], 713, 0 -[INSERT], 714, 0 -[INSERT], 715, 0 -[INSERT], 716, 0 -[INSERT], 717, 0 -[INSERT], 718, 0 -[INSERT], 719, 0 -[INSERT], 720, 0 -[INSERT], 721, 0 -[INSERT], 722, 0 -[INSERT], 723, 0 -[INSERT], 724, 0 -[INSERT], 725, 0 -[INSERT], 726, 0 -[INSERT], 727, 0 -[INSERT], 728, 0 -[INSERT], 729, 0 -[INSERT], 730, 0 -[INSERT], 731, 0 -[INSERT], 732, 0 -[INSERT], 733, 0 -[INSERT], 734, 0 -[INSERT], 735, 0 -[INSERT], 736, 0 -[INSERT], 737, 0 -[INSERT], 738, 0 -[INSERT], 739, 0 -[INSERT], 740, 0 -[INSERT], 741, 0 -[INSERT], 742, 0 -[INSERT], 743, 0 -[INSERT], 744, 0 -[INSERT], 745, 0 -[INSERT], 746, 0 -[INSERT], 747, 0 -[INSERT], 748, 0 -[INSERT], 749, 0 -[INSERT], 750, 0 -[INSERT], 751, 0 -[INSERT], 752, 0 -[INSERT], 753, 0 -[INSERT], 754, 0 -[INSERT], 755, 0 -[INSERT], 756, 0 -[INSERT], 757, 0 -[INSERT], 758, 0 -[INSERT], 759, 0 -[INSERT], 760, 0 -[INSERT], 761, 0 -[INSERT], 762, 0 -[INSERT], 763, 0 -[INSERT], 764, 0 -[INSERT], 765, 0 -[INSERT], 766, 0 -[INSERT], 767, 0 -[INSERT], 768, 0 -[INSERT], 769, 0 -[INSERT], 770, 0 -[INSERT], 771, 0 -[INSERT], 772, 0 -[INSERT], 773, 0 -[INSERT], 774, 0 -[INSERT], 775, 0 -[INSERT], 776, 0 -[INSERT], 777, 0 -[INSERT], 778, 0 -[INSERT], 779, 0 -[INSERT], 780, 0 -[INSERT], 781, 0 -[INSERT], 782, 0 -[INSERT], 783, 0 -[INSERT], 784, 0 -[INSERT], 785, 0 -[INSERT], 786, 0 -[INSERT], 787, 0 -[INSERT], 788, 0 -[INSERT], 789, 0 -[INSERT], 790, 0 -[INSERT], 791, 0 -[INSERT], 792, 0 -[INSERT], 793, 0 -[INSERT], 794, 0 -[INSERT], 795, 0 -[INSERT], 796, 0 -[INSERT], 797, 0 -[INSERT], 798, 0 -[INSERT], 799, 0 -[INSERT], 800, 0 -[INSERT], 801, 0 -[INSERT], 802, 0 -[INSERT], 803, 0 -[INSERT], 804, 0 -[INSERT], 805, 0 -[INSERT], 806, 0 -[INSERT], 807, 0 -[INSERT], 808, 0 -[INSERT], 809, 0 -[INSERT], 810, 0 -[INSERT], 811, 0 -[INSERT], 812, 0 -[INSERT], 813, 0 -[INSERT], 814, 0 -[INSERT], 815, 0 -[INSERT], 816, 0 -[INSERT], 817, 0 -[INSERT], 818, 0 -[INSERT], 819, 0 -[INSERT], 820, 0 -[INSERT], 821, 0 -[INSERT], 822, 0 -[INSERT], 823, 0 -[INSERT], 824, 0 -[INSERT], 825, 0 -[INSERT], 826, 0 -[INSERT], 827, 0 -[INSERT], 828, 0 -[INSERT], 829, 0 -[INSERT], 830, 0 -[INSERT], 831, 0 -[INSERT], 832, 0 -[INSERT], 833, 0 -[INSERT], 834, 0 -[INSERT], 835, 0 -[INSERT], 836, 0 -[INSERT], 837, 0 -[INSERT], 838, 0 -[INSERT], 839, 0 -[INSERT], 840, 0 -[INSERT], 841, 0 -[INSERT], 842, 0 -[INSERT], 843, 0 -[INSERT], 844, 0 -[INSERT], 845, 0 -[INSERT], 846, 0 -[INSERT], 847, 0 -[INSERT], 848, 0 -[INSERT], 849, 0 -[INSERT], 850, 0 -[INSERT], 851, 0 -[INSERT], 852, 0 -[INSERT], 853, 0 -[INSERT], 854, 0 -[INSERT], 855, 0 -[INSERT], 856, 0 -[INSERT], 857, 0 -[INSERT], 858, 0 -[INSERT], 859, 0 -[INSERT], 860, 0 -[INSERT], 861, 0 -[INSERT], 862, 0 -[INSERT], 863, 0 -[INSERT], 864, 0 -[INSERT], 865, 0 -[INSERT], 866, 0 -[INSERT], 867, 0 -[INSERT], 868, 0 -[INSERT], 869, 0 -[INSERT], 870, 0 -[INSERT], 871, 0 -[INSERT], 872, 0 -[INSERT], 873, 0 -[INSERT], 874, 0 -[INSERT], 875, 0 -[INSERT], 876, 0 -[INSERT], 877, 0 -[INSERT], 878, 0 -[INSERT], 879, 0 -[INSERT], 880, 0 -[INSERT], 881, 0 -[INSERT], 882, 0 -[INSERT], 883, 0 -[INSERT], 884, 0 -[INSERT], 885, 0 -[INSERT], 886, 0 -[INSERT], 887, 0 -[INSERT], 888, 0 -[INSERT], 889, 0 -[INSERT], 890, 0 -[INSERT], 891, 0 -[INSERT], 892, 0 -[INSERT], 893, 0 -[INSERT], 894, 0 -[INSERT], 895, 0 -[INSERT], 896, 0 -[INSERT], 897, 0 -[INSERT], 898, 0 -[INSERT], 899, 0 -[INSERT], 900, 0 -[INSERT], 901, 0 -[INSERT], 902, 0 -[INSERT], 903, 0 -[INSERT], 904, 0 -[INSERT], 905, 0 -[INSERT], 906, 0 -[INSERT], 907, 0 -[INSERT], 908, 0 -[INSERT], 909, 0 -[INSERT], 910, 0 -[INSERT], 911, 0 -[INSERT], 912, 0 -[INSERT], 913, 0 -[INSERT], 914, 0 -[INSERT], 915, 0 -[INSERT], 916, 0 -[INSERT], 917, 0 -[INSERT], 918, 0 -[INSERT], 919, 0 -[INSERT], 920, 0 -[INSERT], 921, 0 -[INSERT], 922, 0 -[INSERT], 923, 0 -[INSERT], 924, 0 -[INSERT], 925, 0 -[INSERT], 926, 0 -[INSERT], 927, 0 -[INSERT], 928, 0 -[INSERT], 929, 0 -[INSERT], 930, 0 -[INSERT], 931, 0 -[INSERT], 932, 0 -[INSERT], 933, 0 -[INSERT], 934, 0 -[INSERT], 935, 0 -[INSERT], 936, 0 -[INSERT], 937, 0 -[INSERT], 938, 0 -[INSERT], 939, 0 -[INSERT], 940, 0 -[INSERT], 941, 0 -[INSERT], 942, 0 -[INSERT], 943, 0 -[INSERT], 944, 0 -[INSERT], 945, 0 -[INSERT], 946, 0 -[INSERT], 947, 0 -[INSERT], 948, 0 -[INSERT], 949, 0 -[INSERT], 950, 0 -[INSERT], 951, 0 -[INSERT], 952, 0 -[INSERT], 953, 0 -[INSERT], 954, 0 -[INSERT], 955, 0 -[INSERT], 956, 0 -[INSERT], 957, 0 -[INSERT], 958, 0 -[INSERT], 959, 0 -[INSERT], 960, 0 -[INSERT], 961, 0 -[INSERT], 962, 0 -[INSERT], 963, 0 -[INSERT], 964, 0 -[INSERT], 965, 0 -[INSERT], 966, 0 -[INSERT], 967, 0 -[INSERT], 968, 0 -[INSERT], 969, 0 -[INSERT], 970, 0 -[INSERT], 971, 0 -[INSERT], 972, 0 -[INSERT], 973, 0 -[INSERT], 974, 0 -[INSERT], 975, 0 -[INSERT], 976, 0 -[INSERT], 977, 0 -[INSERT], 978, 0 -[INSERT], 979, 0 -[INSERT], 980, 0 -[INSERT], 981, 0 -[INSERT], 982, 0 -[INSERT], 983, 0 -[INSERT], 984, 0 -[INSERT], 985, 0 -[INSERT], 986, 0 -[INSERT], 987, 0 -[INSERT], 988, 0 -[INSERT], 989, 0 -[INSERT], 990, 0 -[INSERT], 991, 0 -[INSERT], 992, 0 -[INSERT], 993, 0 -[INSERT], 994, 0 -[INSERT], 995, 0 -[INSERT], 996, 0 -[INSERT], 997, 0 -[INSERT], 998, 0 -[INSERT], 999, 0 -[INSERT], >1000, 0 -[CLEANUP], Operations, 1 -[CLEANUP], AverageLatency(us), 219.0 -[CLEANUP], MinLatency(us), 219 -[CLEANUP], MaxLatency(us), 219 -[CLEANUP], 95thPercentileLatency(ms), 0 -[CLEANUP], 99thPercentileLatency(ms), 0 -[CLEANUP], 0, 1 -[CLEANUP], 1, 0 -[CLEANUP], 2, 0 -[CLEANUP], 3, 0 -[CLEANUP], 4, 0 -[CLEANUP], 5, 0 -[CLEANUP], 6, 0 -[CLEANUP], 7, 0 -[CLEANUP], 8, 0 -[CLEANUP], 9, 0 -[CLEANUP], 10, 0 -[CLEANUP], 11, 0 -[CLEANUP], 12, 0 -[CLEANUP], 13, 0 -[CLEANUP], 14, 0 -[CLEANUP], 15, 0 -[CLEANUP], 16, 0 -[CLEANUP], 17, 0 -[CLEANUP], 18, 0 -[CLEANUP], 19, 0 -[CLEANUP], 20, 0 -[CLEANUP], 21, 0 -[CLEANUP], 22, 0 -[CLEANUP], 23, 0 -[CLEANUP], 24, 0 -[CLEANUP], 25, 0 -[CLEANUP], 26, 0 -[CLEANUP], 27, 0 -[CLEANUP], 28, 0 -[CLEANUP], 29, 0 -[CLEANUP], 30, 0 -[CLEANUP], 31, 0 -[CLEANUP], 32, 0 -[CLEANUP], 33, 0 -[CLEANUP], 34, 0 -[CLEANUP], 35, 0 -[CLEANUP], 36, 0 -[CLEANUP], 37, 0 -[CLEANUP], 38, 0 -[CLEANUP], 39, 0 -[CLEANUP], 40, 0 -[CLEANUP], 41, 0 -[CLEANUP], 42, 0 -[CLEANUP], 43, 0 -[CLEANUP], 44, 0 -[CLEANUP], 45, 0 -[CLEANUP], 46, 0 -[CLEANUP], 47, 0 -[CLEANUP], 48, 0 -[CLEANUP], 49, 0 -[CLEANUP], 50, 0 -[CLEANUP], 51, 0 -[CLEANUP], 52, 0 -[CLEANUP], 53, 0 -[CLEANUP], 54, 0 -[CLEANUP], 55, 0 -[CLEANUP], 56, 0 -[CLEANUP], 57, 0 -[CLEANUP], 58, 0 -[CLEANUP], 59, 0 -[CLEANUP], 60, 0 -[CLEANUP], 61, 0 -[CLEANUP], 62, 0 -[CLEANUP], 63, 0 -[CLEANUP], 64, 0 -[CLEANUP], 65, 0 -[CLEANUP], 66, 0 -[CLEANUP], 67, 0 -[CLEANUP], 68, 0 -[CLEANUP], 69, 0 -[CLEANUP], 70, 0 -[CLEANUP], 71, 0 -[CLEANUP], 72, 0 -[CLEANUP], 73, 0 -[CLEANUP], 74, 0 -[CLEANUP], 75, 0 -[CLEANUP], 76, 0 -[CLEANUP], 77, 0 -[CLEANUP], 78, 0 -[CLEANUP], 79, 0 -[CLEANUP], 80, 0 -[CLEANUP], 81, 0 -[CLEANUP], 82, 0 -[CLEANUP], 83, 0 -[CLEANUP], 84, 0 -[CLEANUP], 85, 0 -[CLEANUP], 86, 0 -[CLEANUP], 87, 0 -[CLEANUP], 88, 0 -[CLEANUP], 89, 0 -[CLEANUP], 90, 0 -[CLEANUP], 91, 0 -[CLEANUP], 92, 0 -[CLEANUP], 93, 0 -[CLEANUP], 94, 0 -[CLEANUP], 95, 0 -[CLEANUP], 96, 0 -[CLEANUP], 97, 0 -[CLEANUP], 98, 0 -[CLEANUP], 99, 0 -[CLEANUP], 100, 0 -[CLEANUP], 101, 0 -[CLEANUP], 102, 0 -[CLEANUP], 103, 0 -[CLEANUP], 104, 0 -[CLEANUP], 105, 0 -[CLEANUP], 106, 0 -[CLEANUP], 107, 0 -[CLEANUP], 108, 0 -[CLEANUP], 109, 0 -[CLEANUP], 110, 0 -[CLEANUP], 111, 0 -[CLEANUP], 112, 0 -[CLEANUP], 113, 0 -[CLEANUP], 114, 0 -[CLEANUP], 115, 0 -[CLEANUP], 116, 0 -[CLEANUP], 117, 0 -[CLEANUP], 118, 0 -[CLEANUP], 119, 0 -[CLEANUP], 120, 0 -[CLEANUP], 121, 0 -[CLEANUP], 122, 0 -[CLEANUP], 123, 0 -[CLEANUP], 124, 0 -[CLEANUP], 125, 0 -[CLEANUP], 126, 0 -[CLEANUP], 127, 0 -[CLEANUP], 128, 0 -[CLEANUP], 129, 0 -[CLEANUP], 130, 0 -[CLEANUP], 131, 0 -[CLEANUP], 132, 0 -[CLEANUP], 133, 0 -[CLEANUP], 134, 0 -[CLEANUP], 135, 0 -[CLEANUP], 136, 0 -[CLEANUP], 137, 0 -[CLEANUP], 138, 0 -[CLEANUP], 139, 0 -[CLEANUP], 140, 0 -[CLEANUP], 141, 0 -[CLEANUP], 142, 0 -[CLEANUP], 143, 0 -[CLEANUP], 144, 0 -[CLEANUP], 145, 0 -[CLEANUP], 146, 0 -[CLEANUP], 147, 0 -[CLEANUP], 148, 0 -[CLEANUP], 149, 0 -[CLEANUP], 150, 0 -[CLEANUP], 151, 0 -[CLEANUP], 152, 0 -[CLEANUP], 153, 0 -[CLEANUP], 154, 0 -[CLEANUP], 155, 0 -[CLEANUP], 156, 0 -[CLEANUP], 157, 0 -[CLEANUP], 158, 0 -[CLEANUP], 159, 0 -[CLEANUP], 160, 0 -[CLEANUP], 161, 0 -[CLEANUP], 162, 0 -[CLEANUP], 163, 0 -[CLEANUP], 164, 0 -[CLEANUP], 165, 0 -[CLEANUP], 166, 0 -[CLEANUP], 167, 0 -[CLEANUP], 168, 0 -[CLEANUP], 169, 0 -[CLEANUP], 170, 0 -[CLEANUP], 171, 0 -[CLEANUP], 172, 0 -[CLEANUP], 173, 0 -[CLEANUP], 174, 0 -[CLEANUP], 175, 0 -[CLEANUP], 176, 0 -[CLEANUP], 177, 0 -[CLEANUP], 178, 0 -[CLEANUP], 179, 0 -[CLEANUP], 180, 0 -[CLEANUP], 181, 0 -[CLEANUP], 182, 0 -[CLEANUP], 183, 0 -[CLEANUP], 184, 0 -[CLEANUP], 185, 0 -[CLEANUP], 186, 0 -[CLEANUP], 187, 0 -[CLEANUP], 188, 0 -[CLEANUP], 189, 0 -[CLEANUP], 190, 0 -[CLEANUP], 191, 0 -[CLEANUP], 192, 0 -[CLEANUP], 193, 0 -[CLEANUP], 194, 0 -[CLEANUP], 195, 0 -[CLEANUP], 196, 0 -[CLEANUP], 197, 0 -[CLEANUP], 198, 0 -[CLEANUP], 199, 0 -[CLEANUP], 200, 0 -[CLEANUP], 201, 0 -[CLEANUP], 202, 0 -[CLEANUP], 203, 0 -[CLEANUP], 204, 0 -[CLEANUP], 205, 0 -[CLEANUP], 206, 0 -[CLEANUP], 207, 0 -[CLEANUP], 208, 0 -[CLEANUP], 209, 0 -[CLEANUP], 210, 0 -[CLEANUP], 211, 0 -[CLEANUP], 212, 0 -[CLEANUP], 213, 0 -[CLEANUP], 214, 0 -[CLEANUP], 215, 0 -[CLEANUP], 216, 0 -[CLEANUP], 217, 0 -[CLEANUP], 218, 0 -[CLEANUP], 219, 0 -[CLEANUP], 220, 0 -[CLEANUP], 221, 0 -[CLEANUP], 222, 0 -[CLEANUP], 223, 0 -[CLEANUP], 224, 0 -[CLEANUP], 225, 0 -[CLEANUP], 226, 0 -[CLEANUP], 227, 0 -[CLEANUP], 228, 0 -[CLEANUP], 229, 0 -[CLEANUP], 230, 0 -[CLEANUP], 231, 0 -[CLEANUP], 232, 0 -[CLEANUP], 233, 0 -[CLEANUP], 234, 0 -[CLEANUP], 235, 0 -[CLEANUP], 236, 0 -[CLEANUP], 237, 0 -[CLEANUP], 238, 0 -[CLEANUP], 239, 0 -[CLEANUP], 240, 0 -[CLEANUP], 241, 0 -[CLEANUP], 242, 0 -[CLEANUP], 243, 0 -[CLEANUP], 244, 0 -[CLEANUP], 245, 0 -[CLEANUP], 246, 0 -[CLEANUP], 247, 0 -[CLEANUP], 248, 0 -[CLEANUP], 249, 0 -[CLEANUP], 250, 0 -[CLEANUP], 251, 0 -[CLEANUP], 252, 0 -[CLEANUP], 253, 0 -[CLEANUP], 254, 0 -[CLEANUP], 255, 0 -[CLEANUP], 256, 0 -[CLEANUP], 257, 0 -[CLEANUP], 258, 0 -[CLEANUP], 259, 0 -[CLEANUP], 260, 0 -[CLEANUP], 261, 0 -[CLEANUP], 262, 0 -[CLEANUP], 263, 0 -[CLEANUP], 264, 0 -[CLEANUP], 265, 0 -[CLEANUP], 266, 0 -[CLEANUP], 267, 0 -[CLEANUP], 268, 0 -[CLEANUP], 269, 0 -[CLEANUP], 270, 0 -[CLEANUP], 271, 0 -[CLEANUP], 272, 0 -[CLEANUP], 273, 0 -[CLEANUP], 274, 0 -[CLEANUP], 275, 0 -[CLEANUP], 276, 0 -[CLEANUP], 277, 0 -[CLEANUP], 278, 0 -[CLEANUP], 279, 0 -[CLEANUP], 280, 0 -[CLEANUP], 281, 0 -[CLEANUP], 282, 0 -[CLEANUP], 283, 0 -[CLEANUP], 284, 0 -[CLEANUP], 285, 0 -[CLEANUP], 286, 0 -[CLEANUP], 287, 0 -[CLEANUP], 288, 0 -[CLEANUP], 289, 0 -[CLEANUP], 290, 0 -[CLEANUP], 291, 0 -[CLEANUP], 292, 0 -[CLEANUP], 293, 0 -[CLEANUP], 294, 0 -[CLEANUP], 295, 0 -[CLEANUP], 296, 0 -[CLEANUP], 297, 0 -[CLEANUP], 298, 0 -[CLEANUP], 299, 0 -[CLEANUP], 300, 0 -[CLEANUP], 301, 0 -[CLEANUP], 302, 0 -[CLEANUP], 303, 0 -[CLEANUP], 304, 0 -[CLEANUP], 305, 0 -[CLEANUP], 306, 0 -[CLEANUP], 307, 0 -[CLEANUP], 308, 0 -[CLEANUP], 309, 0 -[CLEANUP], 310, 0 -[CLEANUP], 311, 0 -[CLEANUP], 312, 0 -[CLEANUP], 313, 0 -[CLEANUP], 314, 0 -[CLEANUP], 315, 0 -[CLEANUP], 316, 0 -[CLEANUP], 317, 0 -[CLEANUP], 318, 0 -[CLEANUP], 319, 0 -[CLEANUP], 320, 0 -[CLEANUP], 321, 0 -[CLEANUP], 322, 0 -[CLEANUP], 323, 0 -[CLEANUP], 324, 0 -[CLEANUP], 325, 0 -[CLEANUP], 326, 0 -[CLEANUP], 327, 0 -[CLEANUP], 328, 0 -[CLEANUP], 329, 0 -[CLEANUP], 330, 0 -[CLEANUP], 331, 0 -[CLEANUP], 332, 0 -[CLEANUP], 333, 0 -[CLEANUP], 334, 0 -[CLEANUP], 335, 0 -[CLEANUP], 336, 0 -[CLEANUP], 337, 0 -[CLEANUP], 338, 0 -[CLEANUP], 339, 0 -[CLEANUP], 340, 0 -[CLEANUP], 341, 0 -[CLEANUP], 342, 0 -[CLEANUP], 343, 0 -[CLEANUP], 344, 0 -[CLEANUP], 345, 0 -[CLEANUP], 346, 0 -[CLEANUP], 347, 0 -[CLEANUP], 348, 0 -[CLEANUP], 349, 0 -[CLEANUP], 350, 0 -[CLEANUP], 351, 0 -[CLEANUP], 352, 0 -[CLEANUP], 353, 0 -[CLEANUP], 354, 0 -[CLEANUP], 355, 0 -[CLEANUP], 356, 0 -[CLEANUP], 357, 0 -[CLEANUP], 358, 0 -[CLEANUP], 359, 0 -[CLEANUP], 360, 0 -[CLEANUP], 361, 0 -[CLEANUP], 362, 0 -[CLEANUP], 363, 0 -[CLEANUP], 364, 0 -[CLEANUP], 365, 0 -[CLEANUP], 366, 0 -[CLEANUP], 367, 0 -[CLEANUP], 368, 0 -[CLEANUP], 369, 0 -[CLEANUP], 370, 0 -[CLEANUP], 371, 0 -[CLEANUP], 372, 0 -[CLEANUP], 373, 0 -[CLEANUP], 374, 0 -[CLEANUP], 375, 0 -[CLEANUP], 376, 0 -[CLEANUP], 377, 0 -[CLEANUP], 378, 0 -[CLEANUP], 379, 0 -[CLEANUP], 380, 0 -[CLEANUP], 381, 0 -[CLEANUP], 382, 0 -[CLEANUP], 383, 0 -[CLEANUP], 384, 0 -[CLEANUP], 385, 0 -[CLEANUP], 386, 0 -[CLEANUP], 387, 0 -[CLEANUP], 388, 0 -[CLEANUP], 389, 0 -[CLEANUP], 390, 0 -[CLEANUP], 391, 0 -[CLEANUP], 392, 0 -[CLEANUP], 393, 0 -[CLEANUP], 394, 0 -[CLEANUP], 395, 0 -[CLEANUP], 396, 0 -[CLEANUP], 397, 0 -[CLEANUP], 398, 0 -[CLEANUP], 399, 0 -[CLEANUP], 400, 0 -[CLEANUP], 401, 0 -[CLEANUP], 402, 0 -[CLEANUP], 403, 0 -[CLEANUP], 404, 0 -[CLEANUP], 405, 0 -[CLEANUP], 406, 0 -[CLEANUP], 407, 0 -[CLEANUP], 408, 0 -[CLEANUP], 409, 0 -[CLEANUP], 410, 0 -[CLEANUP], 411, 0 -[CLEANUP], 412, 0 -[CLEANUP], 413, 0 -[CLEANUP], 414, 0 -[CLEANUP], 415, 0 -[CLEANUP], 416, 0 -[CLEANUP], 417, 0 -[CLEANUP], 418, 0 -[CLEANUP], 419, 0 -[CLEANUP], 420, 0 -[CLEANUP], 421, 0 -[CLEANUP], 422, 0 -[CLEANUP], 423, 0 -[CLEANUP], 424, 0 -[CLEANUP], 425, 0 -[CLEANUP], 426, 0 -[CLEANUP], 427, 0 -[CLEANUP], 428, 0 -[CLEANUP], 429, 0 -[CLEANUP], 430, 0 -[CLEANUP], 431, 0 -[CLEANUP], 432, 0 -[CLEANUP], 433, 0 -[CLEANUP], 434, 0 -[CLEANUP], 435, 0 -[CLEANUP], 436, 0 -[CLEANUP], 437, 0 -[CLEANUP], 438, 0 -[CLEANUP], 439, 0 -[CLEANUP], 440, 0 -[CLEANUP], 441, 0 -[CLEANUP], 442, 0 -[CLEANUP], 443, 0 -[CLEANUP], 444, 0 -[CLEANUP], 445, 0 -[CLEANUP], 446, 0 -[CLEANUP], 447, 0 -[CLEANUP], 448, 0 -[CLEANUP], 449, 0 -[CLEANUP], 450, 0 -[CLEANUP], 451, 0 -[CLEANUP], 452, 0 -[CLEANUP], 453, 0 -[CLEANUP], 454, 0 -[CLEANUP], 455, 0 -[CLEANUP], 456, 0 -[CLEANUP], 457, 0 -[CLEANUP], 458, 0 -[CLEANUP], 459, 0 -[CLEANUP], 460, 0 -[CLEANUP], 461, 0 -[CLEANUP], 462, 0 -[CLEANUP], 463, 0 -[CLEANUP], 464, 0 -[CLEANUP], 465, 0 -[CLEANUP], 466, 0 -[CLEANUP], 467, 0 -[CLEANUP], 468, 0 -[CLEANUP], 469, 0 -[CLEANUP], 470, 0 -[CLEANUP], 471, 0 -[CLEANUP], 472, 0 -[CLEANUP], 473, 0 -[CLEANUP], 474, 0 -[CLEANUP], 475, 0 -[CLEANUP], 476, 0 -[CLEANUP], 477, 0 -[CLEANUP], 478, 0 -[CLEANUP], 479, 0 -[CLEANUP], 480, 0 -[CLEANUP], 481, 0 -[CLEANUP], 482, 0 -[CLEANUP], 483, 0 -[CLEANUP], 484, 0 -[CLEANUP], 485, 0 -[CLEANUP], 486, 0 -[CLEANUP], 487, 0 -[CLEANUP], 488, 0 -[CLEANUP], 489, 0 -[CLEANUP], 490, 0 -[CLEANUP], 491, 0 -[CLEANUP], 492, 0 -[CLEANUP], 493, 0 -[CLEANUP], 494, 0 -[CLEANUP], 495, 0 -[CLEANUP], 496, 0 -[CLEANUP], 497, 0 -[CLEANUP], 498, 0 -[CLEANUP], 499, 0 -[CLEANUP], 500, 0 -[CLEANUP], 501, 0 -[CLEANUP], 502, 0 -[CLEANUP], 503, 0 -[CLEANUP], 504, 0 -[CLEANUP], 505, 0 -[CLEANUP], 506, 0 -[CLEANUP], 507, 0 -[CLEANUP], 508, 0 -[CLEANUP], 509, 0 -[CLEANUP], 510, 0 -[CLEANUP], 511, 0 -[CLEANUP], 512, 0 -[CLEANUP], 513, 0 -[CLEANUP], 514, 0 -[CLEANUP], 515, 0 -[CLEANUP], 516, 0 -[CLEANUP], 517, 0 -[CLEANUP], 518, 0 -[CLEANUP], 519, 0 -[CLEANUP], 520, 0 -[CLEANUP], 521, 0 -[CLEANUP], 522, 0 -[CLEANUP], 523, 0 -[CLEANUP], 524, 0 -[CLEANUP], 525, 0 -[CLEANUP], 526, 0 -[CLEANUP], 527, 0 -[CLEANUP], 528, 0 -[CLEANUP], 529, 0 -[CLEANUP], 530, 0 -[CLEANUP], 531, 0 -[CLEANUP], 532, 0 -[CLEANUP], 533, 0 -[CLEANUP], 534, 0 -[CLEANUP], 535, 0 -[CLEANUP], 536, 0 -[CLEANUP], 537, 0 -[CLEANUP], 538, 0 -[CLEANUP], 539, 0 -[CLEANUP], 540, 0 -[CLEANUP], 541, 0 -[CLEANUP], 542, 0 -[CLEANUP], 543, 0 -[CLEANUP], 544, 0 -[CLEANUP], 545, 0 -[CLEANUP], 546, 0 -[CLEANUP], 547, 0 -[CLEANUP], 548, 0 -[CLEANUP], 549, 0 -[CLEANUP], 550, 0 -[CLEANUP], 551, 0 -[CLEANUP], 552, 0 -[CLEANUP], 553, 0 -[CLEANUP], 554, 0 -[CLEANUP], 555, 0 -[CLEANUP], 556, 0 -[CLEANUP], 557, 0 -[CLEANUP], 558, 0 -[CLEANUP], 559, 0 -[CLEANUP], 560, 0 -[CLEANUP], 561, 0 -[CLEANUP], 562, 0 -[CLEANUP], 563, 0 -[CLEANUP], 564, 0 -[CLEANUP], 565, 0 -[CLEANUP], 566, 0 -[CLEANUP], 567, 0 -[CLEANUP], 568, 0 -[CLEANUP], 569, 0 -[CLEANUP], 570, 0 -[CLEANUP], 571, 0 -[CLEANUP], 572, 0 -[CLEANUP], 573, 0 -[CLEANUP], 574, 0 -[CLEANUP], 575, 0 -[CLEANUP], 576, 0 -[CLEANUP], 577, 0 -[CLEANUP], 578, 0 -[CLEANUP], 579, 0 -[CLEANUP], 580, 0 -[CLEANUP], 581, 0 -[CLEANUP], 582, 0 -[CLEANUP], 583, 0 -[CLEANUP], 584, 0 -[CLEANUP], 585, 0 -[CLEANUP], 586, 0 -[CLEANUP], 587, 0 -[CLEANUP], 588, 0 -[CLEANUP], 589, 0 -[CLEANUP], 590, 0 -[CLEANUP], 591, 0 -[CLEANUP], 592, 0 -[CLEANUP], 593, 0 -[CLEANUP], 594, 0 -[CLEANUP], 595, 0 -[CLEANUP], 596, 0 -[CLEANUP], 597, 0 -[CLEANUP], 598, 0 -[CLEANUP], 599, 0 -[CLEANUP], 600, 0 -[CLEANUP], 601, 0 -[CLEANUP], 602, 0 -[CLEANUP], 603, 0 -[CLEANUP], 604, 0 -[CLEANUP], 605, 0 -[CLEANUP], 606, 0 -[CLEANUP], 607, 0 -[CLEANUP], 608, 0 -[CLEANUP], 609, 0 -[CLEANUP], 610, 0 -[CLEANUP], 611, 0 -[CLEANUP], 612, 0 -[CLEANUP], 613, 0 -[CLEANUP], 614, 0 -[CLEANUP], 615, 0 -[CLEANUP], 616, 0 -[CLEANUP], 617, 0 -[CLEANUP], 618, 0 -[CLEANUP], 619, 0 -[CLEANUP], 620, 0 -[CLEANUP], 621, 0 -[CLEANUP], 622, 0 -[CLEANUP], 623, 0 -[CLEANUP], 624, 0 -[CLEANUP], 625, 0 -[CLEANUP], 626, 0 -[CLEANUP], 627, 0 -[CLEANUP], 628, 0 -[CLEANUP], 629, 0 -[CLEANUP], 630, 0 -[CLEANUP], 631, 0 -[CLEANUP], 632, 0 -[CLEANUP], 633, 0 -[CLEANUP], 634, 0 -[CLEANUP], 635, 0 -[CLEANUP], 636, 0 -[CLEANUP], 637, 0 -[CLEANUP], 638, 0 -[CLEANUP], 639, 0 -[CLEANUP], 640, 0 -[CLEANUP], 641, 0 -[CLEANUP], 642, 0 -[CLEANUP], 643, 0 -[CLEANUP], 644, 0 -[CLEANUP], 645, 0 -[CLEANUP], 646, 0 -[CLEANUP], 647, 0 -[CLEANUP], 648, 0 -[CLEANUP], 649, 0 -[CLEANUP], 650, 0 -[CLEANUP], 651, 0 -[CLEANUP], 652, 0 -[CLEANUP], 653, 0 -[CLEANUP], 654, 0 -[CLEANUP], 655, 0 -[CLEANUP], 656, 0 -[CLEANUP], 657, 0 -[CLEANUP], 658, 0 -[CLEANUP], 659, 0 -[CLEANUP], 660, 0 -[CLEANUP], 661, 0 -[CLEANUP], 662, 0 -[CLEANUP], 663, 0 -[CLEANUP], 664, 0 -[CLEANUP], 665, 0 -[CLEANUP], 666, 0 -[CLEANUP], 667, 0 -[CLEANUP], 668, 0 -[CLEANUP], 669, 0 -[CLEANUP], 670, 0 -[CLEANUP], 671, 0 -[CLEANUP], 672, 0 -[CLEANUP], 673, 0 -[CLEANUP], 674, 0 -[CLEANUP], 675, 0 -[CLEANUP], 676, 0 -[CLEANUP], 677, 0 -[CLEANUP], 678, 0 -[CLEANUP], 679, 0 -[CLEANUP], 680, 0 -[CLEANUP], 681, 0 -[CLEANUP], 682, 0 -[CLEANUP], 683, 0 -[CLEANUP], 684, 0 -[CLEANUP], 685, 0 -[CLEANUP], 686, 0 -[CLEANUP], 687, 0 -[CLEANUP], 688, 0 -[CLEANUP], 689, 0 -[CLEANUP], 690, 0 -[CLEANUP], 691, 0 -[CLEANUP], 692, 0 -[CLEANUP], 693, 0 -[CLEANUP], 694, 0 -[CLEANUP], 695, 0 -[CLEANUP], 696, 0 -[CLEANUP], 697, 0 -[CLEANUP], 698, 0 -[CLEANUP], 699, 0 -[CLEANUP], 700, 0 -[CLEANUP], 701, 0 -[CLEANUP], 702, 0 -[CLEANUP], 703, 0 -[CLEANUP], 704, 0 -[CLEANUP], 705, 0 -[CLEANUP], 706, 0 -[CLEANUP], 707, 0 -[CLEANUP], 708, 0 -[CLEANUP], 709, 0 -[CLEANUP], 710, 0 -[CLEANUP], 711, 0 -[CLEANUP], 712, 0 -[CLEANUP], 713, 0 -[CLEANUP], 714, 0 -[CLEANUP], 715, 0 -[CLEANUP], 716, 0 -[CLEANUP], 717, 0 -[CLEANUP], 718, 0 -[CLEANUP], 719, 0 -[CLEANUP], 720, 0 -[CLEANUP], 721, 0 -[CLEANUP], 722, 0 -[CLEANUP], 723, 0 -[CLEANUP], 724, 0 -[CLEANUP], 725, 0 -[CLEANUP], 726, 0 -[CLEANUP], 727, 0 -[CLEANUP], 728, 0 -[CLEANUP], 729, 0 -[CLEANUP], 730, 0 -[CLEANUP], 731, 0 -[CLEANUP], 732, 0 -[CLEANUP], 733, 0 -[CLEANUP], 734, 0 -[CLEANUP], 735, 0 -[CLEANUP], 736, 0 -[CLEANUP], 737, 0 -[CLEANUP], 738, 0 -[CLEANUP], 739, 0 -[CLEANUP], 740, 0 -[CLEANUP], 741, 0 -[CLEANUP], 742, 0 -[CLEANUP], 743, 0 -[CLEANUP], 744, 0 -[CLEANUP], 745, 0 -[CLEANUP], 746, 0 -[CLEANUP], 747, 0 -[CLEANUP], 748, 0 -[CLEANUP], 749, 0 -[CLEANUP], 750, 0 -[CLEANUP], 751, 0 -[CLEANUP], 752, 0 -[CLEANUP], 753, 0 -[CLEANUP], 754, 0 -[CLEANUP], 755, 0 -[CLEANUP], 756, 0 -[CLEANUP], 757, 0 -[CLEANUP], 758, 0 -[CLEANUP], 759, 0 -[CLEANUP], 760, 0 -[CLEANUP], 761, 0 -[CLEANUP], 762, 0 -[CLEANUP], 763, 0 -[CLEANUP], 764, 0 -[CLEANUP], 765, 0 -[CLEANUP], 766, 0 -[CLEANUP], 767, 0 -[CLEANUP], 768, 0 -[CLEANUP], 769, 0 -[CLEANUP], 770, 0 -[CLEANUP], 771, 0 -[CLEANUP], 772, 0 -[CLEANUP], 773, 0 -[CLEANUP], 774, 0 -[CLEANUP], 775, 0 -[CLEANUP], 776, 0 -[CLEANUP], 777, 0 -[CLEANUP], 778, 0 -[CLEANUP], 779, 0 -[CLEANUP], 780, 0 -[CLEANUP], 781, 0 -[CLEANUP], 782, 0 -[CLEANUP], 783, 0 -[CLEANUP], 784, 0 -[CLEANUP], 785, 0 -[CLEANUP], 786, 0 -[CLEANUP], 787, 0 -[CLEANUP], 788, 0 -[CLEANUP], 789, 0 -[CLEANUP], 790, 0 -[CLEANUP], 791, 0 -[CLEANUP], 792, 0 -[CLEANUP], 793, 0 -[CLEANUP], 794, 0 -[CLEANUP], 795, 0 -[CLEANUP], 796, 0 -[CLEANUP], 797, 0 -[CLEANUP], 798, 0 -[CLEANUP], 799, 0 -[CLEANUP], 800, 0 -[CLEANUP], 801, 0 -[CLEANUP], 802, 0 -[CLEANUP], 803, 0 -[CLEANUP], 804, 0 -[CLEANUP], 805, 0 -[CLEANUP], 806, 0 -[CLEANUP], 807, 0 -[CLEANUP], 808, 0 -[CLEANUP], 809, 0 -[CLEANUP], 810, 0 -[CLEANUP], 811, 0 -[CLEANUP], 812, 0 -[CLEANUP], 813, 0 -[CLEANUP], 814, 0 -[CLEANUP], 815, 0 -[CLEANUP], 816, 0 -[CLEANUP], 817, 0 -[CLEANUP], 818, 0 -[CLEANUP], 819, 0 -[CLEANUP], 820, 0 -[CLEANUP], 821, 0 -[CLEANUP], 822, 0 -[CLEANUP], 823, 0 -[CLEANUP], 824, 0 -[CLEANUP], 825, 0 -[CLEANUP], 826, 0 -[CLEANUP], 827, 0 -[CLEANUP], 828, 0 -[CLEANUP], 829, 0 -[CLEANUP], 830, 0 -[CLEANUP], 831, 0 -[CLEANUP], 832, 0 -[CLEANUP], 833, 0 -[CLEANUP], 834, 0 -[CLEANUP], 835, 0 -[CLEANUP], 836, 0 -[CLEANUP], 837, 0 -[CLEANUP], 838, 0 -[CLEANUP], 839, 0 -[CLEANUP], 840, 0 -[CLEANUP], 841, 0 -[CLEANUP], 842, 0 -[CLEANUP], 843, 0 -[CLEANUP], 844, 0 -[CLEANUP], 845, 0 -[CLEANUP], 846, 0 -[CLEANUP], 847, 0 -[CLEANUP], 848, 0 -[CLEANUP], 849, 0 -[CLEANUP], 850, 0 -[CLEANUP], 851, 0 -[CLEANUP], 852, 0 -[CLEANUP], 853, 0 -[CLEANUP], 854, 0 -[CLEANUP], 855, 0 -[CLEANUP], 856, 0 -[CLEANUP], 857, 0 -[CLEANUP], 858, 0 -[CLEANUP], 859, 0 -[CLEANUP], 860, 0 -[CLEANUP], 861, 0 -[CLEANUP], 862, 0 -[CLEANUP], 863, 0 -[CLEANUP], 864, 0 -[CLEANUP], 865, 0 -[CLEANUP], 866, 0 -[CLEANUP], 867, 0 -[CLEANUP], 868, 0 -[CLEANUP], 869, 0 -[CLEANUP], 870, 0 -[CLEANUP], 871, 0 -[CLEANUP], 872, 0 -[CLEANUP], 873, 0 -[CLEANUP], 874, 0 -[CLEANUP], 875, 0 -[CLEANUP], 876, 0 -[CLEANUP], 877, 0 -[CLEANUP], 878, 0 -[CLEANUP], 879, 0 -[CLEANUP], 880, 0 -[CLEANUP], 881, 0 -[CLEANUP], 882, 0 -[CLEANUP], 883, 0 -[CLEANUP], 884, 0 -[CLEANUP], 885, 0 -[CLEANUP], 886, 0 -[CLEANUP], 887, 0 -[CLEANUP], 888, 0 -[CLEANUP], 889, 0 -[CLEANUP], 890, 0 -[CLEANUP], 891, 0 -[CLEANUP], 892, 0 -[CLEANUP], 893, 0 -[CLEANUP], 894, 0 -[CLEANUP], 895, 0 -[CLEANUP], 896, 0 -[CLEANUP], 897, 0 -[CLEANUP], 898, 0 -[CLEANUP], 899, 0 -[CLEANUP], 900, 0 -[CLEANUP], 901, 0 -[CLEANUP], 902, 0 -[CLEANUP], 903, 0 -[CLEANUP], 904, 0 -[CLEANUP], 905, 0 -[CLEANUP], 906, 0 -[CLEANUP], 907, 0 -[CLEANUP], 908, 0 -[CLEANUP], 909, 0 -[CLEANUP], 910, 0 -[CLEANUP], 911, 0 -[CLEANUP], 912, 0 -[CLEANUP], 913, 0 -[CLEANUP], 914, 0 -[CLEANUP], 915, 0 -[CLEANUP], 916, 0 -[CLEANUP], 917, 0 -[CLEANUP], 918, 0 -[CLEANUP], 919, 0 -[CLEANUP], 920, 0 -[CLEANUP], 921, 0 -[CLEANUP], 922, 0 -[CLEANUP], 923, 0 -[CLEANUP], 924, 0 -[CLEANUP], 925, 0 -[CLEANUP], 926, 0 -[CLEANUP], 927, 0 -[CLEANUP], 928, 0 -[CLEANUP], 929, 0 -[CLEANUP], 930, 0 -[CLEANUP], 931, 0 -[CLEANUP], 932, 0 -[CLEANUP], 933, 0 -[CLEANUP], 934, 0 -[CLEANUP], 935, 0 -[CLEANUP], 936, 0 -[CLEANUP], 937, 0 -[CLEANUP], 938, 0 -[CLEANUP], 939, 0 -[CLEANUP], 940, 0 -[CLEANUP], 941, 0 -[CLEANUP], 942, 0 -[CLEANUP], 943, 0 -[CLEANUP], 944, 0 -[CLEANUP], 945, 0 -[CLEANUP], 946, 0 -[CLEANUP], 947, 0 -[CLEANUP], 948, 0 -[CLEANUP], 949, 0 -[CLEANUP], 950, 0 -[CLEANUP], 951, 0 -[CLEANUP], 952, 0 -[CLEANUP], 953, 0 -[CLEANUP], 954, 0 -[CLEANUP], 955, 0 -[CLEANUP], 956, 0 -[CLEANUP], 957, 0 -[CLEANUP], 958, 0 -[CLEANUP], 959, 0 -[CLEANUP], 960, 0 -[CLEANUP], 961, 0 -[CLEANUP], 962, 0 -[CLEANUP], 963, 0 -[CLEANUP], 964, 0 -[CLEANUP], 965, 0 -[CLEANUP], 966, 0 -[CLEANUP], 967, 0 -[CLEANUP], 968, 0 -[CLEANUP], 969, 0 -[CLEANUP], 970, 0 -[CLEANUP], 971, 0 -[CLEANUP], 972, 0 -[CLEANUP], 973, 0 -[CLEANUP], 974, 0 -[CLEANUP], 975, 0 -[CLEANUP], 976, 0 -[CLEANUP], 977, 0 -[CLEANUP], 978, 0 -[CLEANUP], 979, 0 -[CLEANUP], 980, 0 -[CLEANUP], 981, 0 -[CLEANUP], 982, 0 -[CLEANUP], 983, 0 -[CLEANUP], 984, 0 -[CLEANUP], 985, 0 -[CLEANUP], 986, 0 -[CLEANUP], 987, 0 -[CLEANUP], 988, 0 -[CLEANUP], 989, 0 -[CLEANUP], 990, 0 -[CLEANUP], 991, 0 -[CLEANUP], 992, 0 -[CLEANUP], 993, 0 -[CLEANUP], 994, 0 -[CLEANUP], 995, 0 -[CLEANUP], 996, 0 -[CLEANUP], 997, 0 -[CLEANUP], 998, 0 -[CLEANUP], 999, 0 -[CLEANUP], >1000, 0 -java -cp /home/YCSB/dynamodb/conf:/home/YCSB/core/target/core-0.1.4.jar:/home/YCSB/cassandra/target/slf4j-simple-1.7.2.jar:/home/YCSB/redis/target/redis-binding-0.1.4.jar:/home/YCSB/redis/target/archive-tmp/redis-binding-0.1.4.jar:/home/YCSB/infinispan/src/main/conf:/home/YCSB/nosqldb/src/main/conf:/home/YCSB/voldemort/src/main/conf:/home/YCSB/jdbc/src/main/conf:/home/YCSB/gemfire/src/main/conf:/home/YCSB/hbase/src/main/conf com.yahoo.ycsb.Client -db com.yahoo.ycsb.db.RedisClient -p redis.host=10.249.77.163 -p redis.port=6379 -P workloads/workloada -p recordcount=1000000 -load DELETED YCSB/redis2transactions.dat Index: YCSB/redis2transactions.dat ================================================================== --- YCSB/redis2transactions.dat +++ /dev/null @@ -1,3028 +0,0 @@ -YCSB Client 0.1 -Command line: -db com.yahoo.ycsb.db.RedisClient -p redis.host=10.249.77.163 -p redis.port=6379 -P workloads/workloada -p operationcount=1000000 -t -[OVERALL], RunTime(ms), 330525.0 -[OVERALL], Throughput(ops/sec), 3025.4897511534678 -[UPDATE], Operations, 499692 -[UPDATE], AverageLatency(us), 316.13384644941283 -[UPDATE], MinLatency(us), 245 -[UPDATE], MaxLatency(us), 11698 -[UPDATE], 95thPercentileLatency(ms), 0 -[UPDATE], 99thPercentileLatency(ms), 0 -[UPDATE], Return=0, 499692 -[UPDATE], 0, 499139 -[UPDATE], 1, 195 -[UPDATE], 2, 19 -[UPDATE], 3, 17 -[UPDATE], 4, 30 -[UPDATE], 5, 6 -[UPDATE], 6, 2 -[UPDATE], 7, 1 -[UPDATE], 8, 2 -[UPDATE], 9, 98 -[UPDATE], 10, 168 -[UPDATE], 11, 15 -[UPDATE], 12, 0 -[UPDATE], 13, 0 -[UPDATE], 14, 0 -[UPDATE], 15, 0 -[UPDATE], 16, 0 -[UPDATE], 17, 0 -[UPDATE], 18, 0 -[UPDATE], 19, 0 -[UPDATE], 20, 0 -[UPDATE], 21, 0 -[UPDATE], 22, 0 -[UPDATE], 23, 0 -[UPDATE], 24, 0 -[UPDATE], 25, 0 -[UPDATE], 26, 0 -[UPDATE], 27, 0 -[UPDATE], 28, 0 -[UPDATE], 29, 0 -[UPDATE], 30, 0 -[UPDATE], 31, 0 -[UPDATE], 32, 0 -[UPDATE], 33, 0 -[UPDATE], 34, 0 -[UPDATE], 35, 0 -[UPDATE], 36, 0 -[UPDATE], 37, 0 -[UPDATE], 38, 0 -[UPDATE], 39, 0 -[UPDATE], 40, 0 -[UPDATE], 41, 0 -[UPDATE], 42, 0 -[UPDATE], 43, 0 -[UPDATE], 44, 0 -[UPDATE], 45, 0 -[UPDATE], 46, 0 -[UPDATE], 47, 0 -[UPDATE], 48, 0 -[UPDATE], 49, 0 -[UPDATE], 50, 0 -[UPDATE], 51, 0 -[UPDATE], 52, 0 -[UPDATE], 53, 0 -[UPDATE], 54, 0 -[UPDATE], 55, 0 -[UPDATE], 56, 0 -[UPDATE], 57, 0 -[UPDATE], 58, 0 -[UPDATE], 59, 0 -[UPDATE], 60, 0 -[UPDATE], 61, 0 -[UPDATE], 62, 0 -[UPDATE], 63, 0 -[UPDATE], 64, 0 -[UPDATE], 65, 0 -[UPDATE], 66, 0 -[UPDATE], 67, 0 -[UPDATE], 68, 0 -[UPDATE], 69, 0 -[UPDATE], 70, 0 -[UPDATE], 71, 0 -[UPDATE], 72, 0 -[UPDATE], 73, 0 -[UPDATE], 74, 0 -[UPDATE], 75, 0 -[UPDATE], 76, 0 -[UPDATE], 77, 0 -[UPDATE], 78, 0 -[UPDATE], 79, 0 -[UPDATE], 80, 0 -[UPDATE], 81, 0 -[UPDATE], 82, 0 -[UPDATE], 83, 0 -[UPDATE], 84, 0 -[UPDATE], 85, 0 -[UPDATE], 86, 0 -[UPDATE], 87, 0 -[UPDATE], 88, 0 -[UPDATE], 89, 0 -[UPDATE], 90, 0 -[UPDATE], 91, 0 -[UPDATE], 92, 0 -[UPDATE], 93, 0 -[UPDATE], 94, 0 -[UPDATE], 95, 0 -[UPDATE], 96, 0 -[UPDATE], 97, 0 -[UPDATE], 98, 0 -[UPDATE], 99, 0 -[UPDATE], 100, 0 -[UPDATE], 101, 0 -[UPDATE], 102, 0 -[UPDATE], 103, 0 -[UPDATE], 104, 0 -[UPDATE], 105, 0 -[UPDATE], 106, 0 -[UPDATE], 107, 0 -[UPDATE], 108, 0 -[UPDATE], 109, 0 -[UPDATE], 110, 0 -[UPDATE], 111, 0 -[UPDATE], 112, 0 -[UPDATE], 113, 0 -[UPDATE], 114, 0 -[UPDATE], 115, 0 -[UPDATE], 116, 0 -[UPDATE], 117, 0 -[UPDATE], 118, 0 -[UPDATE], 119, 0 -[UPDATE], 120, 0 -[UPDATE], 121, 0 -[UPDATE], 122, 0 -[UPDATE], 123, 0 -[UPDATE], 124, 0 -[UPDATE], 125, 0 -[UPDATE], 126, 0 -[UPDATE], 127, 0 -[UPDATE], 128, 0 -[UPDATE], 129, 0 -[UPDATE], 130, 0 -[UPDATE], 131, 0 -[UPDATE], 132, 0 -[UPDATE], 133, 0 -[UPDATE], 134, 0 -[UPDATE], 135, 0 -[UPDATE], 136, 0 -[UPDATE], 137, 0 -[UPDATE], 138, 0 -[UPDATE], 139, 0 -[UPDATE], 140, 0 -[UPDATE], 141, 0 -[UPDATE], 142, 0 -[UPDATE], 143, 0 -[UPDATE], 144, 0 -[UPDATE], 145, 0 -[UPDATE], 146, 0 -[UPDATE], 147, 0 -[UPDATE], 148, 0 -[UPDATE], 149, 0 -[UPDATE], 150, 0 -[UPDATE], 151, 0 -[UPDATE], 152, 0 -[UPDATE], 153, 0 -[UPDATE], 154, 0 -[UPDATE], 155, 0 -[UPDATE], 156, 0 -[UPDATE], 157, 0 -[UPDATE], 158, 0 -[UPDATE], 159, 0 -[UPDATE], 160, 0 -[UPDATE], 161, 0 -[UPDATE], 162, 0 -[UPDATE], 163, 0 -[UPDATE], 164, 0 -[UPDATE], 165, 0 -[UPDATE], 166, 0 -[UPDATE], 167, 0 -[UPDATE], 168, 0 -[UPDATE], 169, 0 -[UPDATE], 170, 0 -[UPDATE], 171, 0 -[UPDATE], 172, 0 -[UPDATE], 173, 0 -[UPDATE], 174, 0 -[UPDATE], 175, 0 -[UPDATE], 176, 0 -[UPDATE], 177, 0 -[UPDATE], 178, 0 -[UPDATE], 179, 0 -[UPDATE], 180, 0 -[UPDATE], 181, 0 -[UPDATE], 182, 0 -[UPDATE], 183, 0 -[UPDATE], 184, 0 -[UPDATE], 185, 0 -[UPDATE], 186, 0 -[UPDATE], 187, 0 -[UPDATE], 188, 0 -[UPDATE], 189, 0 -[UPDATE], 190, 0 -[UPDATE], 191, 0 -[UPDATE], 192, 0 -[UPDATE], 193, 0 -[UPDATE], 194, 0 -[UPDATE], 195, 0 -[UPDATE], 196, 0 -[UPDATE], 197, 0 -[UPDATE], 198, 0 -[UPDATE], 199, 0 -[UPDATE], 200, 0 -[UPDATE], 201, 0 -[UPDATE], 202, 0 -[UPDATE], 203, 0 -[UPDATE], 204, 0 -[UPDATE], 205, 0 -[UPDATE], 206, 0 -[UPDATE], 207, 0 -[UPDATE], 208, 0 -[UPDATE], 209, 0 -[UPDATE], 210, 0 -[UPDATE], 211, 0 -[UPDATE], 212, 0 -[UPDATE], 213, 0 -[UPDATE], 214, 0 -[UPDATE], 215, 0 -[UPDATE], 216, 0 -[UPDATE], 217, 0 -[UPDATE], 218, 0 -[UPDATE], 219, 0 -[UPDATE], 220, 0 -[UPDATE], 221, 0 -[UPDATE], 222, 0 -[UPDATE], 223, 0 -[UPDATE], 224, 0 -[UPDATE], 225, 0 -[UPDATE], 226, 0 -[UPDATE], 227, 0 -[UPDATE], 228, 0 -[UPDATE], 229, 0 -[UPDATE], 230, 0 -[UPDATE], 231, 0 -[UPDATE], 232, 0 -[UPDATE], 233, 0 -[UPDATE], 234, 0 -[UPDATE], 235, 0 -[UPDATE], 236, 0 -[UPDATE], 237, 0 -[UPDATE], 238, 0 -[UPDATE], 239, 0 -[UPDATE], 240, 0 -[UPDATE], 241, 0 -[UPDATE], 242, 0 -[UPDATE], 243, 0 -[UPDATE], 244, 0 -[UPDATE], 245, 0 -[UPDATE], 246, 0 -[UPDATE], 247, 0 -[UPDATE], 248, 0 -[UPDATE], 249, 0 -[UPDATE], 250, 0 -[UPDATE], 251, 0 -[UPDATE], 252, 0 -[UPDATE], 253, 0 -[UPDATE], 254, 0 -[UPDATE], 255, 0 -[UPDATE], 256, 0 -[UPDATE], 257, 0 -[UPDATE], 258, 0 -[UPDATE], 259, 0 -[UPDATE], 260, 0 -[UPDATE], 261, 0 -[UPDATE], 262, 0 -[UPDATE], 263, 0 -[UPDATE], 264, 0 -[UPDATE], 265, 0 -[UPDATE], 266, 0 -[UPDATE], 267, 0 -[UPDATE], 268, 0 -[UPDATE], 269, 0 -[UPDATE], 270, 0 -[UPDATE], 271, 0 -[UPDATE], 272, 0 -[UPDATE], 273, 0 -[UPDATE], 274, 0 -[UPDATE], 275, 0 -[UPDATE], 276, 0 -[UPDATE], 277, 0 -[UPDATE], 278, 0 -[UPDATE], 279, 0 -[UPDATE], 280, 0 -[UPDATE], 281, 0 -[UPDATE], 282, 0 -[UPDATE], 283, 0 -[UPDATE], 284, 0 -[UPDATE], 285, 0 -[UPDATE], 286, 0 -[UPDATE], 287, 0 -[UPDATE], 288, 0 -[UPDATE], 289, 0 -[UPDATE], 290, 0 -[UPDATE], 291, 0 -[UPDATE], 292, 0 -[UPDATE], 293, 0 -[UPDATE], 294, 0 -[UPDATE], 295, 0 -[UPDATE], 296, 0 -[UPDATE], 297, 0 -[UPDATE], 298, 0 -[UPDATE], 299, 0 -[UPDATE], 300, 0 -[UPDATE], 301, 0 -[UPDATE], 302, 0 -[UPDATE], 303, 0 -[UPDATE], 304, 0 -[UPDATE], 305, 0 -[UPDATE], 306, 0 -[UPDATE], 307, 0 -[UPDATE], 308, 0 -[UPDATE], 309, 0 -[UPDATE], 310, 0 -[UPDATE], 311, 0 -[UPDATE], 312, 0 -[UPDATE], 313, 0 -[UPDATE], 314, 0 -[UPDATE], 315, 0 -[UPDATE], 316, 0 -[UPDATE], 317, 0 -[UPDATE], 318, 0 -[UPDATE], 319, 0 -[UPDATE], 320, 0 -[UPDATE], 321, 0 -[UPDATE], 322, 0 -[UPDATE], 323, 0 -[UPDATE], 324, 0 -[UPDATE], 325, 0 -[UPDATE], 326, 0 -[UPDATE], 327, 0 -[UPDATE], 328, 0 -[UPDATE], 329, 0 -[UPDATE], 330, 0 -[UPDATE], 331, 0 -[UPDATE], 332, 0 -[UPDATE], 333, 0 -[UPDATE], 334, 0 -[UPDATE], 335, 0 -[UPDATE], 336, 0 -[UPDATE], 337, 0 -[UPDATE], 338, 0 -[UPDATE], 339, 0 -[UPDATE], 340, 0 -[UPDATE], 341, 0 -[UPDATE], 342, 0 -[UPDATE], 343, 0 -[UPDATE], 344, 0 -[UPDATE], 345, 0 -[UPDATE], 346, 0 -[UPDATE], 347, 0 -[UPDATE], 348, 0 -[UPDATE], 349, 0 -[UPDATE], 350, 0 -[UPDATE], 351, 0 -[UPDATE], 352, 0 -[UPDATE], 353, 0 -[UPDATE], 354, 0 -[UPDATE], 355, 0 -[UPDATE], 356, 0 -[UPDATE], 357, 0 -[UPDATE], 358, 0 -[UPDATE], 359, 0 -[UPDATE], 360, 0 -[UPDATE], 361, 0 -[UPDATE], 362, 0 -[UPDATE], 363, 0 -[UPDATE], 364, 0 -[UPDATE], 365, 0 -[UPDATE], 366, 0 -[UPDATE], 367, 0 -[UPDATE], 368, 0 -[UPDATE], 369, 0 -[UPDATE], 370, 0 -[UPDATE], 371, 0 -[UPDATE], 372, 0 -[UPDATE], 373, 0 -[UPDATE], 374, 0 -[UPDATE], 375, 0 -[UPDATE], 376, 0 -[UPDATE], 377, 0 -[UPDATE], 378, 0 -[UPDATE], 379, 0 -[UPDATE], 380, 0 -[UPDATE], 381, 0 -[UPDATE], 382, 0 -[UPDATE], 383, 0 -[UPDATE], 384, 0 -[UPDATE], 385, 0 -[UPDATE], 386, 0 -[UPDATE], 387, 0 -[UPDATE], 388, 0 -[UPDATE], 389, 0 -[UPDATE], 390, 0 -[UPDATE], 391, 0 -[UPDATE], 392, 0 -[UPDATE], 393, 0 -[UPDATE], 394, 0 -[UPDATE], 395, 0 -[UPDATE], 396, 0 -[UPDATE], 397, 0 -[UPDATE], 398, 0 -[UPDATE], 399, 0 -[UPDATE], 400, 0 -[UPDATE], 401, 0 -[UPDATE], 402, 0 -[UPDATE], 403, 0 -[UPDATE], 404, 0 -[UPDATE], 405, 0 -[UPDATE], 406, 0 -[UPDATE], 407, 0 -[UPDATE], 408, 0 -[UPDATE], 409, 0 -[UPDATE], 410, 0 -[UPDATE], 411, 0 -[UPDATE], 412, 0 -[UPDATE], 413, 0 -[UPDATE], 414, 0 -[UPDATE], 415, 0 -[UPDATE], 416, 0 -[UPDATE], 417, 0 -[UPDATE], 418, 0 -[UPDATE], 419, 0 -[UPDATE], 420, 0 -[UPDATE], 421, 0 -[UPDATE], 422, 0 -[UPDATE], 423, 0 -[UPDATE], 424, 0 -[UPDATE], 425, 0 -[UPDATE], 426, 0 -[UPDATE], 427, 0 -[UPDATE], 428, 0 -[UPDATE], 429, 0 -[UPDATE], 430, 0 -[UPDATE], 431, 0 -[UPDATE], 432, 0 -[UPDATE], 433, 0 -[UPDATE], 434, 0 -[UPDATE], 435, 0 -[UPDATE], 436, 0 -[UPDATE], 437, 0 -[UPDATE], 438, 0 -[UPDATE], 439, 0 -[UPDATE], 440, 0 -[UPDATE], 441, 0 -[UPDATE], 442, 0 -[UPDATE], 443, 0 -[UPDATE], 444, 0 -[UPDATE], 445, 0 -[UPDATE], 446, 0 -[UPDATE], 447, 0 -[UPDATE], 448, 0 -[UPDATE], 449, 0 -[UPDATE], 450, 0 -[UPDATE], 451, 0 -[UPDATE], 452, 0 -[UPDATE], 453, 0 -[UPDATE], 454, 0 -[UPDATE], 455, 0 -[UPDATE], 456, 0 -[UPDATE], 457, 0 -[UPDATE], 458, 0 -[UPDATE], 459, 0 -[UPDATE], 460, 0 -[UPDATE], 461, 0 -[UPDATE], 462, 0 -[UPDATE], 463, 0 -[UPDATE], 464, 0 -[UPDATE], 465, 0 -[UPDATE], 466, 0 -[UPDATE], 467, 0 -[UPDATE], 468, 0 -[UPDATE], 469, 0 -[UPDATE], 470, 0 -[UPDATE], 471, 0 -[UPDATE], 472, 0 -[UPDATE], 473, 0 -[UPDATE], 474, 0 -[UPDATE], 475, 0 -[UPDATE], 476, 0 -[UPDATE], 477, 0 -[UPDATE], 478, 0 -[UPDATE], 479, 0 -[UPDATE], 480, 0 -[UPDATE], 481, 0 -[UPDATE], 482, 0 -[UPDATE], 483, 0 -[UPDATE], 484, 0 -[UPDATE], 485, 0 -[UPDATE], 486, 0 -[UPDATE], 487, 0 -[UPDATE], 488, 0 -[UPDATE], 489, 0 -[UPDATE], 490, 0 -[UPDATE], 491, 0 -[UPDATE], 492, 0 -[UPDATE], 493, 0 -[UPDATE], 494, 0 -[UPDATE], 495, 0 -[UPDATE], 496, 0 -[UPDATE], 497, 0 -[UPDATE], 498, 0 -[UPDATE], 499, 0 -[UPDATE], 500, 0 -[UPDATE], 501, 0 -[UPDATE], 502, 0 -[UPDATE], 503, 0 -[UPDATE], 504, 0 -[UPDATE], 505, 0 -[UPDATE], 506, 0 -[UPDATE], 507, 0 -[UPDATE], 508, 0 -[UPDATE], 509, 0 -[UPDATE], 510, 0 -[UPDATE], 511, 0 -[UPDATE], 512, 0 -[UPDATE], 513, 0 -[UPDATE], 514, 0 -[UPDATE], 515, 0 -[UPDATE], 516, 0 -[UPDATE], 517, 0 -[UPDATE], 518, 0 -[UPDATE], 519, 0 -[UPDATE], 520, 0 -[UPDATE], 521, 0 -[UPDATE], 522, 0 -[UPDATE], 523, 0 -[UPDATE], 524, 0 -[UPDATE], 525, 0 -[UPDATE], 526, 0 -[UPDATE], 527, 0 -[UPDATE], 528, 0 -[UPDATE], 529, 0 -[UPDATE], 530, 0 -[UPDATE], 531, 0 -[UPDATE], 532, 0 -[UPDATE], 533, 0 -[UPDATE], 534, 0 -[UPDATE], 535, 0 -[UPDATE], 536, 0 -[UPDATE], 537, 0 -[UPDATE], 538, 0 -[UPDATE], 539, 0 -[UPDATE], 540, 0 -[UPDATE], 541, 0 -[UPDATE], 542, 0 -[UPDATE], 543, 0 -[UPDATE], 544, 0 -[UPDATE], 545, 0 -[UPDATE], 546, 0 -[UPDATE], 547, 0 -[UPDATE], 548, 0 -[UPDATE], 549, 0 -[UPDATE], 550, 0 -[UPDATE], 551, 0 -[UPDATE], 552, 0 -[UPDATE], 553, 0 -[UPDATE], 554, 0 -[UPDATE], 555, 0 -[UPDATE], 556, 0 -[UPDATE], 557, 0 -[UPDATE], 558, 0 -[UPDATE], 559, 0 -[UPDATE], 560, 0 -[UPDATE], 561, 0 -[UPDATE], 562, 0 -[UPDATE], 563, 0 -[UPDATE], 564, 0 -[UPDATE], 565, 0 -[UPDATE], 566, 0 -[UPDATE], 567, 0 -[UPDATE], 568, 0 -[UPDATE], 569, 0 -[UPDATE], 570, 0 -[UPDATE], 571, 0 -[UPDATE], 572, 0 -[UPDATE], 573, 0 -[UPDATE], 574, 0 -[UPDATE], 575, 0 -[UPDATE], 576, 0 -[UPDATE], 577, 0 -[UPDATE], 578, 0 -[UPDATE], 579, 0 -[UPDATE], 580, 0 -[UPDATE], 581, 0 -[UPDATE], 582, 0 -[UPDATE], 583, 0 -[UPDATE], 584, 0 -[UPDATE], 585, 0 -[UPDATE], 586, 0 -[UPDATE], 587, 0 -[UPDATE], 588, 0 -[UPDATE], 589, 0 -[UPDATE], 590, 0 -[UPDATE], 591, 0 -[UPDATE], 592, 0 -[UPDATE], 593, 0 -[UPDATE], 594, 0 -[UPDATE], 595, 0 -[UPDATE], 596, 0 -[UPDATE], 597, 0 -[UPDATE], 598, 0 -[UPDATE], 599, 0 -[UPDATE], 600, 0 -[UPDATE], 601, 0 -[UPDATE], 602, 0 -[UPDATE], 603, 0 -[UPDATE], 604, 0 -[UPDATE], 605, 0 -[UPDATE], 606, 0 -[UPDATE], 607, 0 -[UPDATE], 608, 0 -[UPDATE], 609, 0 -[UPDATE], 610, 0 -[UPDATE], 611, 0 -[UPDATE], 612, 0 -[UPDATE], 613, 0 -[UPDATE], 614, 0 -[UPDATE], 615, 0 -[UPDATE], 616, 0 -[UPDATE], 617, 0 -[UPDATE], 618, 0 -[UPDATE], 619, 0 -[UPDATE], 620, 0 -[UPDATE], 621, 0 -[UPDATE], 622, 0 -[UPDATE], 623, 0 -[UPDATE], 624, 0 -[UPDATE], 625, 0 -[UPDATE], 626, 0 -[UPDATE], 627, 0 -[UPDATE], 628, 0 -[UPDATE], 629, 0 -[UPDATE], 630, 0 -[UPDATE], 631, 0 -[UPDATE], 632, 0 -[UPDATE], 633, 0 -[UPDATE], 634, 0 -[UPDATE], 635, 0 -[UPDATE], 636, 0 -[UPDATE], 637, 0 -[UPDATE], 638, 0 -[UPDATE], 639, 0 -[UPDATE], 640, 0 -[UPDATE], 641, 0 -[UPDATE], 642, 0 -[UPDATE], 643, 0 -[UPDATE], 644, 0 -[UPDATE], 645, 0 -[UPDATE], 646, 0 -[UPDATE], 647, 0 -[UPDATE], 648, 0 -[UPDATE], 649, 0 -[UPDATE], 650, 0 -[UPDATE], 651, 0 -[UPDATE], 652, 0 -[UPDATE], 653, 0 -[UPDATE], 654, 0 -[UPDATE], 655, 0 -[UPDATE], 656, 0 -[UPDATE], 657, 0 -[UPDATE], 658, 0 -[UPDATE], 659, 0 -[UPDATE], 660, 0 -[UPDATE], 661, 0 -[UPDATE], 662, 0 -[UPDATE], 663, 0 -[UPDATE], 664, 0 -[UPDATE], 665, 0 -[UPDATE], 666, 0 -[UPDATE], 667, 0 -[UPDATE], 668, 0 -[UPDATE], 669, 0 -[UPDATE], 670, 0 -[UPDATE], 671, 0 -[UPDATE], 672, 0 -[UPDATE], 673, 0 -[UPDATE], 674, 0 -[UPDATE], 675, 0 -[UPDATE], 676, 0 -[UPDATE], 677, 0 -[UPDATE], 678, 0 -[UPDATE], 679, 0 -[UPDATE], 680, 0 -[UPDATE], 681, 0 -[UPDATE], 682, 0 -[UPDATE], 683, 0 -[UPDATE], 684, 0 -[UPDATE], 685, 0 -[UPDATE], 686, 0 -[UPDATE], 687, 0 -[UPDATE], 688, 0 -[UPDATE], 689, 0 -[UPDATE], 690, 0 -[UPDATE], 691, 0 -[UPDATE], 692, 0 -[UPDATE], 693, 0 -[UPDATE], 694, 0 -[UPDATE], 695, 0 -[UPDATE], 696, 0 -[UPDATE], 697, 0 -[UPDATE], 698, 0 -[UPDATE], 699, 0 -[UPDATE], 700, 0 -[UPDATE], 701, 0 -[UPDATE], 702, 0 -[UPDATE], 703, 0 -[UPDATE], 704, 0 -[UPDATE], 705, 0 -[UPDATE], 706, 0 -[UPDATE], 707, 0 -[UPDATE], 708, 0 -[UPDATE], 709, 0 -[UPDATE], 710, 0 -[UPDATE], 711, 0 -[UPDATE], 712, 0 -[UPDATE], 713, 0 -[UPDATE], 714, 0 -[UPDATE], 715, 0 -[UPDATE], 716, 0 -[UPDATE], 717, 0 -[UPDATE], 718, 0 -[UPDATE], 719, 0 -[UPDATE], 720, 0 -[UPDATE], 721, 0 -[UPDATE], 722, 0 -[UPDATE], 723, 0 -[UPDATE], 724, 0 -[UPDATE], 725, 0 -[UPDATE], 726, 0 -[UPDATE], 727, 0 -[UPDATE], 728, 0 -[UPDATE], 729, 0 -[UPDATE], 730, 0 -[UPDATE], 731, 0 -[UPDATE], 732, 0 -[UPDATE], 733, 0 -[UPDATE], 734, 0 -[UPDATE], 735, 0 -[UPDATE], 736, 0 -[UPDATE], 737, 0 -[UPDATE], 738, 0 -[UPDATE], 739, 0 -[UPDATE], 740, 0 -[UPDATE], 741, 0 -[UPDATE], 742, 0 -[UPDATE], 743, 0 -[UPDATE], 744, 0 -[UPDATE], 745, 0 -[UPDATE], 746, 0 -[UPDATE], 747, 0 -[UPDATE], 748, 0 -[UPDATE], 749, 0 -[UPDATE], 750, 0 -[UPDATE], 751, 0 -[UPDATE], 752, 0 -[UPDATE], 753, 0 -[UPDATE], 754, 0 -[UPDATE], 755, 0 -[UPDATE], 756, 0 -[UPDATE], 757, 0 -[UPDATE], 758, 0 -[UPDATE], 759, 0 -[UPDATE], 760, 0 -[UPDATE], 761, 0 -[UPDATE], 762, 0 -[UPDATE], 763, 0 -[UPDATE], 764, 0 -[UPDATE], 765, 0 -[UPDATE], 766, 0 -[UPDATE], 767, 0 -[UPDATE], 768, 0 -[UPDATE], 769, 0 -[UPDATE], 770, 0 -[UPDATE], 771, 0 -[UPDATE], 772, 0 -[UPDATE], 773, 0 -[UPDATE], 774, 0 -[UPDATE], 775, 0 -[UPDATE], 776, 0 -[UPDATE], 777, 0 -[UPDATE], 778, 0 -[UPDATE], 779, 0 -[UPDATE], 780, 0 -[UPDATE], 781, 0 -[UPDATE], 782, 0 -[UPDATE], 783, 0 -[UPDATE], 784, 0 -[UPDATE], 785, 0 -[UPDATE], 786, 0 -[UPDATE], 787, 0 -[UPDATE], 788, 0 -[UPDATE], 789, 0 -[UPDATE], 790, 0 -[UPDATE], 791, 0 -[UPDATE], 792, 0 -[UPDATE], 793, 0 -[UPDATE], 794, 0 -[UPDATE], 795, 0 -[UPDATE], 796, 0 -[UPDATE], 797, 0 -[UPDATE], 798, 0 -[UPDATE], 799, 0 -[UPDATE], 800, 0 -[UPDATE], 801, 0 -[UPDATE], 802, 0 -[UPDATE], 803, 0 -[UPDATE], 804, 0 -[UPDATE], 805, 0 -[UPDATE], 806, 0 -[UPDATE], 807, 0 -[UPDATE], 808, 0 -[UPDATE], 809, 0 -[UPDATE], 810, 0 -[UPDATE], 811, 0 -[UPDATE], 812, 0 -[UPDATE], 813, 0 -[UPDATE], 814, 0 -[UPDATE], 815, 0 -[UPDATE], 816, 0 -[UPDATE], 817, 0 -[UPDATE], 818, 0 -[UPDATE], 819, 0 -[UPDATE], 820, 0 -[UPDATE], 821, 0 -[UPDATE], 822, 0 -[UPDATE], 823, 0 -[UPDATE], 824, 0 -[UPDATE], 825, 0 -[UPDATE], 826, 0 -[UPDATE], 827, 0 -[UPDATE], 828, 0 -[UPDATE], 829, 0 -[UPDATE], 830, 0 -[UPDATE], 831, 0 -[UPDATE], 832, 0 -[UPDATE], 833, 0 -[UPDATE], 834, 0 -[UPDATE], 835, 0 -[UPDATE], 836, 0 -[UPDATE], 837, 0 -[UPDATE], 838, 0 -[UPDATE], 839, 0 -[UPDATE], 840, 0 -[UPDATE], 841, 0 -[UPDATE], 842, 0 -[UPDATE], 843, 0 -[UPDATE], 844, 0 -[UPDATE], 845, 0 -[UPDATE], 846, 0 -[UPDATE], 847, 0 -[UPDATE], 848, 0 -[UPDATE], 849, 0 -[UPDATE], 850, 0 -[UPDATE], 851, 0 -[UPDATE], 852, 0 -[UPDATE], 853, 0 -[UPDATE], 854, 0 -[UPDATE], 855, 0 -[UPDATE], 856, 0 -[UPDATE], 857, 0 -[UPDATE], 858, 0 -[UPDATE], 859, 0 -[UPDATE], 860, 0 -[UPDATE], 861, 0 -[UPDATE], 862, 0 -[UPDATE], 863, 0 -[UPDATE], 864, 0 -[UPDATE], 865, 0 -[UPDATE], 866, 0 -[UPDATE], 867, 0 -[UPDATE], 868, 0 -[UPDATE], 869, 0 -[UPDATE], 870, 0 -[UPDATE], 871, 0 -[UPDATE], 872, 0 -[UPDATE], 873, 0 -[UPDATE], 874, 0 -[UPDATE], 875, 0 -[UPDATE], 876, 0 -[UPDATE], 877, 0 -[UPDATE], 878, 0 -[UPDATE], 879, 0 -[UPDATE], 880, 0 -[UPDATE], 881, 0 -[UPDATE], 882, 0 -[UPDATE], 883, 0 -[UPDATE], 884, 0 -[UPDATE], 885, 0 -[UPDATE], 886, 0 -[UPDATE], 887, 0 -[UPDATE], 888, 0 -[UPDATE], 889, 0 -[UPDATE], 890, 0 -[UPDATE], 891, 0 -[UPDATE], 892, 0 -[UPDATE], 893, 0 -[UPDATE], 894, 0 -[UPDATE], 895, 0 -[UPDATE], 896, 0 -[UPDATE], 897, 0 -[UPDATE], 898, 0 -[UPDATE], 899, 0 -[UPDATE], 900, 0 -[UPDATE], 901, 0 -[UPDATE], 902, 0 -[UPDATE], 903, 0 -[UPDATE], 904, 0 -[UPDATE], 905, 0 -[UPDATE], 906, 0 -[UPDATE], 907, 0 -[UPDATE], 908, 0 -[UPDATE], 909, 0 -[UPDATE], 910, 0 -[UPDATE], 911, 0 -[UPDATE], 912, 0 -[UPDATE], 913, 0 -[UPDATE], 914, 0 -[UPDATE], 915, 0 -[UPDATE], 916, 0 -[UPDATE], 917, 0 -[UPDATE], 918, 0 -[UPDATE], 919, 0 -[UPDATE], 920, 0 -[UPDATE], 921, 0 -[UPDATE], 922, 0 -[UPDATE], 923, 0 -[UPDATE], 924, 0 -[UPDATE], 925, 0 -[UPDATE], 926, 0 -[UPDATE], 927, 0 -[UPDATE], 928, 0 -[UPDATE], 929, 0 -[UPDATE], 930, 0 -[UPDATE], 931, 0 -[UPDATE], 932, 0 -[UPDATE], 933, 0 -[UPDATE], 934, 0 -[UPDATE], 935, 0 -[UPDATE], 936, 0 -[UPDATE], 937, 0 -[UPDATE], 938, 0 -[UPDATE], 939, 0 -[UPDATE], 940, 0 -[UPDATE], 941, 0 -[UPDATE], 942, 0 -[UPDATE], 943, 0 -[UPDATE], 944, 0 -[UPDATE], 945, 0 -[UPDATE], 946, 0 -[UPDATE], 947, 0 -[UPDATE], 948, 0 -[UPDATE], 949, 0 -[UPDATE], 950, 0 -[UPDATE], 951, 0 -[UPDATE], 952, 0 -[UPDATE], 953, 0 -[UPDATE], 954, 0 -[UPDATE], 955, 0 -[UPDATE], 956, 0 -[UPDATE], 957, 0 -[UPDATE], 958, 0 -[UPDATE], 959, 0 -[UPDATE], 960, 0 -[UPDATE], 961, 0 -[UPDATE], 962, 0 -[UPDATE], 963, 0 -[UPDATE], 964, 0 -[UPDATE], 965, 0 -[UPDATE], 966, 0 -[UPDATE], 967, 0 -[UPDATE], 968, 0 -[UPDATE], 969, 0 -[UPDATE], 970, 0 -[UPDATE], 971, 0 -[UPDATE], 972, 0 -[UPDATE], 973, 0 -[UPDATE], 974, 0 -[UPDATE], 975, 0 -[UPDATE], 976, 0 -[UPDATE], 977, 0 -[UPDATE], 978, 0 -[UPDATE], 979, 0 -[UPDATE], 980, 0 -[UPDATE], 981, 0 -[UPDATE], 982, 0 -[UPDATE], 983, 0 -[UPDATE], 984, 0 -[UPDATE], 985, 0 -[UPDATE], 986, 0 -[UPDATE], 987, 0 -[UPDATE], 988, 0 -[UPDATE], 989, 0 -[UPDATE], 990, 0 -[UPDATE], 991, 0 -[UPDATE], 992, 0 -[UPDATE], 993, 0 -[UPDATE], 994, 0 -[UPDATE], 995, 0 -[UPDATE], 996, 0 -[UPDATE], 997, 0 -[UPDATE], 998, 0 -[UPDATE], 999, 0 -[UPDATE], >1000, 0 -[READ], Operations, 500308 -[READ], AverageLatency(us), 331.8329928763881 -[READ], MinLatency(us), 262 -[READ], MaxLatency(us), 18693 -[READ], 95thPercentileLatency(ms), 0 -[READ], 99thPercentileLatency(ms), 0 -[READ], Return=0, 500308 -[READ], 0, 499699 -[READ], 1, 242 -[READ], 2, 22 -[READ], 3, 21 -[READ], 4, 24 -[READ], 5, 5 -[READ], 6, 1 -[READ], 7, 2 -[READ], 8, 3 -[READ], 9, 88 -[READ], 10, 184 -[READ], 11, 15 -[READ], 12, 1 -[READ], 13, 0 -[READ], 14, 0 -[READ], 15, 0 -[READ], 16, 0 -[READ], 17, 0 -[READ], 18, 1 -[READ], 19, 0 -[READ], 20, 0 -[READ], 21, 0 -[READ], 22, 0 -[READ], 23, 0 -[READ], 24, 0 -[READ], 25, 0 -[READ], 26, 0 -[READ], 27, 0 -[READ], 28, 0 -[READ], 29, 0 -[READ], 30, 0 -[READ], 31, 0 -[READ], 32, 0 -[READ], 33, 0 -[READ], 34, 0 -[READ], 35, 0 -[READ], 36, 0 -[READ], 37, 0 -[READ], 38, 0 -[READ], 39, 0 -[READ], 40, 0 -[READ], 41, 0 -[READ], 42, 0 -[READ], 43, 0 -[READ], 44, 0 -[READ], 45, 0 -[READ], 46, 0 -[READ], 47, 0 -[READ], 48, 0 -[READ], 49, 0 -[READ], 50, 0 -[READ], 51, 0 -[READ], 52, 0 -[READ], 53, 0 -[READ], 54, 0 -[READ], 55, 0 -[READ], 56, 0 -[READ], 57, 0 -[READ], 58, 0 -[READ], 59, 0 -[READ], 60, 0 -[READ], 61, 0 -[READ], 62, 0 -[READ], 63, 0 -[READ], 64, 0 -[READ], 65, 0 -[READ], 66, 0 -[READ], 67, 0 -[READ], 68, 0 -[READ], 69, 0 -[READ], 70, 0 -[READ], 71, 0 -[READ], 72, 0 -[READ], 73, 0 -[READ], 74, 0 -[READ], 75, 0 -[READ], 76, 0 -[READ], 77, 0 -[READ], 78, 0 -[READ], 79, 0 -[READ], 80, 0 -[READ], 81, 0 -[READ], 82, 0 -[READ], 83, 0 -[READ], 84, 0 -[READ], 85, 0 -[READ], 86, 0 -[READ], 87, 0 -[READ], 88, 0 -[READ], 89, 0 -[READ], 90, 0 -[READ], 91, 0 -[READ], 92, 0 -[READ], 93, 0 -[READ], 94, 0 -[READ], 95, 0 -[READ], 96, 0 -[READ], 97, 0 -[READ], 98, 0 -[READ], 99, 0 -[READ], 100, 0 -[READ], 101, 0 -[READ], 102, 0 -[READ], 103, 0 -[READ], 104, 0 -[READ], 105, 0 -[READ], 106, 0 -[READ], 107, 0 -[READ], 108, 0 -[READ], 109, 0 -[READ], 110, 0 -[READ], 111, 0 -[READ], 112, 0 -[READ], 113, 0 -[READ], 114, 0 -[READ], 115, 0 -[READ], 116, 0 -[READ], 117, 0 -[READ], 118, 0 -[READ], 119, 0 -[READ], 120, 0 -[READ], 121, 0 -[READ], 122, 0 -[READ], 123, 0 -[READ], 124, 0 -[READ], 125, 0 -[READ], 126, 0 -[READ], 127, 0 -[READ], 128, 0 -[READ], 129, 0 -[READ], 130, 0 -[READ], 131, 0 -[READ], 132, 0 -[READ], 133, 0 -[READ], 134, 0 -[READ], 135, 0 -[READ], 136, 0 -[READ], 137, 0 -[READ], 138, 0 -[READ], 139, 0 -[READ], 140, 0 -[READ], 141, 0 -[READ], 142, 0 -[READ], 143, 0 -[READ], 144, 0 -[READ], 145, 0 -[READ], 146, 0 -[READ], 147, 0 -[READ], 148, 0 -[READ], 149, 0 -[READ], 150, 0 -[READ], 151, 0 -[READ], 152, 0 -[READ], 153, 0 -[READ], 154, 0 -[READ], 155, 0 -[READ], 156, 0 -[READ], 157, 0 -[READ], 158, 0 -[READ], 159, 0 -[READ], 160, 0 -[READ], 161, 0 -[READ], 162, 0 -[READ], 163, 0 -[READ], 164, 0 -[READ], 165, 0 -[READ], 166, 0 -[READ], 167, 0 -[READ], 168, 0 -[READ], 169, 0 -[READ], 170, 0 -[READ], 171, 0 -[READ], 172, 0 -[READ], 173, 0 -[READ], 174, 0 -[READ], 175, 0 -[READ], 176, 0 -[READ], 177, 0 -[READ], 178, 0 -[READ], 179, 0 -[READ], 180, 0 -[READ], 181, 0 -[READ], 182, 0 -[READ], 183, 0 -[READ], 184, 0 -[READ], 185, 0 -[READ], 186, 0 -[READ], 187, 0 -[READ], 188, 0 -[READ], 189, 0 -[READ], 190, 0 -[READ], 191, 0 -[READ], 192, 0 -[READ], 193, 0 -[READ], 194, 0 -[READ], 195, 0 -[READ], 196, 0 -[READ], 197, 0 -[READ], 198, 0 -[READ], 199, 0 -[READ], 200, 0 -[READ], 201, 0 -[READ], 202, 0 -[READ], 203, 0 -[READ], 204, 0 -[READ], 205, 0 -[READ], 206, 0 -[READ], 207, 0 -[READ], 208, 0 -[READ], 209, 0 -[READ], 210, 0 -[READ], 211, 0 -[READ], 212, 0 -[READ], 213, 0 -[READ], 214, 0 -[READ], 215, 0 -[READ], 216, 0 -[READ], 217, 0 -[READ], 218, 0 -[READ], 219, 0 -[READ], 220, 0 -[READ], 221, 0 -[READ], 222, 0 -[READ], 223, 0 -[READ], 224, 0 -[READ], 225, 0 -[READ], 226, 0 -[READ], 227, 0 -[READ], 228, 0 -[READ], 229, 0 -[READ], 230, 0 -[READ], 231, 0 -[READ], 232, 0 -[READ], 233, 0 -[READ], 234, 0 -[READ], 235, 0 -[READ], 236, 0 -[READ], 237, 0 -[READ], 238, 0 -[READ], 239, 0 -[READ], 240, 0 -[READ], 241, 0 -[READ], 242, 0 -[READ], 243, 0 -[READ], 244, 0 -[READ], 245, 0 -[READ], 246, 0 -[READ], 247, 0 -[READ], 248, 0 -[READ], 249, 0 -[READ], 250, 0 -[READ], 251, 0 -[READ], 252, 0 -[READ], 253, 0 -[READ], 254, 0 -[READ], 255, 0 -[READ], 256, 0 -[READ], 257, 0 -[READ], 258, 0 -[READ], 259, 0 -[READ], 260, 0 -[READ], 261, 0 -[READ], 262, 0 -[READ], 263, 0 -[READ], 264, 0 -[READ], 265, 0 -[READ], 266, 0 -[READ], 267, 0 -[READ], 268, 0 -[READ], 269, 0 -[READ], 270, 0 -[READ], 271, 0 -[READ], 272, 0 -[READ], 273, 0 -[READ], 274, 0 -[READ], 275, 0 -[READ], 276, 0 -[READ], 277, 0 -[READ], 278, 0 -[READ], 279, 0 -[READ], 280, 0 -[READ], 281, 0 -[READ], 282, 0 -[READ], 283, 0 -[READ], 284, 0 -[READ], 285, 0 -[READ], 286, 0 -[READ], 287, 0 -[READ], 288, 0 -[READ], 289, 0 -[READ], 290, 0 -[READ], 291, 0 -[READ], 292, 0 -[READ], 293, 0 -[READ], 294, 0 -[READ], 295, 0 -[READ], 296, 0 -[READ], 297, 0 -[READ], 298, 0 -[READ], 299, 0 -[READ], 300, 0 -[READ], 301, 0 -[READ], 302, 0 -[READ], 303, 0 -[READ], 304, 0 -[READ], 305, 0 -[READ], 306, 0 -[READ], 307, 0 -[READ], 308, 0 -[READ], 309, 0 -[READ], 310, 0 -[READ], 311, 0 -[READ], 312, 0 -[READ], 313, 0 -[READ], 314, 0 -[READ], 315, 0 -[READ], 316, 0 -[READ], 317, 0 -[READ], 318, 0 -[READ], 319, 0 -[READ], 320, 0 -[READ], 321, 0 -[READ], 322, 0 -[READ], 323, 0 -[READ], 324, 0 -[READ], 325, 0 -[READ], 326, 0 -[READ], 327, 0 -[READ], 328, 0 -[READ], 329, 0 -[READ], 330, 0 -[READ], 331, 0 -[READ], 332, 0 -[READ], 333, 0 -[READ], 334, 0 -[READ], 335, 0 -[READ], 336, 0 -[READ], 337, 0 -[READ], 338, 0 -[READ], 339, 0 -[READ], 340, 0 -[READ], 341, 0 -[READ], 342, 0 -[READ], 343, 0 -[READ], 344, 0 -[READ], 345, 0 -[READ], 346, 0 -[READ], 347, 0 -[READ], 348, 0 -[READ], 349, 0 -[READ], 350, 0 -[READ], 351, 0 -[READ], 352, 0 -[READ], 353, 0 -[READ], 354, 0 -[READ], 355, 0 -[READ], 356, 0 -[READ], 357, 0 -[READ], 358, 0 -[READ], 359, 0 -[READ], 360, 0 -[READ], 361, 0 -[READ], 362, 0 -[READ], 363, 0 -[READ], 364, 0 -[READ], 365, 0 -[READ], 366, 0 -[READ], 367, 0 -[READ], 368, 0 -[READ], 369, 0 -[READ], 370, 0 -[READ], 371, 0 -[READ], 372, 0 -[READ], 373, 0 -[READ], 374, 0 -[READ], 375, 0 -[READ], 376, 0 -[READ], 377, 0 -[READ], 378, 0 -[READ], 379, 0 -[READ], 380, 0 -[READ], 381, 0 -[READ], 382, 0 -[READ], 383, 0 -[READ], 384, 0 -[READ], 385, 0 -[READ], 386, 0 -[READ], 387, 0 -[READ], 388, 0 -[READ], 389, 0 -[READ], 390, 0 -[READ], 391, 0 -[READ], 392, 0 -[READ], 393, 0 -[READ], 394, 0 -[READ], 395, 0 -[READ], 396, 0 -[READ], 397, 0 -[READ], 398, 0 -[READ], 399, 0 -[READ], 400, 0 -[READ], 401, 0 -[READ], 402, 0 -[READ], 403, 0 -[READ], 404, 0 -[READ], 405, 0 -[READ], 406, 0 -[READ], 407, 0 -[READ], 408, 0 -[READ], 409, 0 -[READ], 410, 0 -[READ], 411, 0 -[READ], 412, 0 -[READ], 413, 0 -[READ], 414, 0 -[READ], 415, 0 -[READ], 416, 0 -[READ], 417, 0 -[READ], 418, 0 -[READ], 419, 0 -[READ], 420, 0 -[READ], 421, 0 -[READ], 422, 0 -[READ], 423, 0 -[READ], 424, 0 -[READ], 425, 0 -[READ], 426, 0 -[READ], 427, 0 -[READ], 428, 0 -[READ], 429, 0 -[READ], 430, 0 -[READ], 431, 0 -[READ], 432, 0 -[READ], 433, 0 -[READ], 434, 0 -[READ], 435, 0 -[READ], 436, 0 -[READ], 437, 0 -[READ], 438, 0 -[READ], 439, 0 -[READ], 440, 0 -[READ], 441, 0 -[READ], 442, 0 -[READ], 443, 0 -[READ], 444, 0 -[READ], 445, 0 -[READ], 446, 0 -[READ], 447, 0 -[READ], 448, 0 -[READ], 449, 0 -[READ], 450, 0 -[READ], 451, 0 -[READ], 452, 0 -[READ], 453, 0 -[READ], 454, 0 -[READ], 455, 0 -[READ], 456, 0 -[READ], 457, 0 -[READ], 458, 0 -[READ], 459, 0 -[READ], 460, 0 -[READ], 461, 0 -[READ], 462, 0 -[READ], 463, 0 -[READ], 464, 0 -[READ], 465, 0 -[READ], 466, 0 -[READ], 467, 0 -[READ], 468, 0 -[READ], 469, 0 -[READ], 470, 0 -[READ], 471, 0 -[READ], 472, 0 -[READ], 473, 0 -[READ], 474, 0 -[READ], 475, 0 -[READ], 476, 0 -[READ], 477, 0 -[READ], 478, 0 -[READ], 479, 0 -[READ], 480, 0 -[READ], 481, 0 -[READ], 482, 0 -[READ], 483, 0 -[READ], 484, 0 -[READ], 485, 0 -[READ], 486, 0 -[READ], 487, 0 -[READ], 488, 0 -[READ], 489, 0 -[READ], 490, 0 -[READ], 491, 0 -[READ], 492, 0 -[READ], 493, 0 -[READ], 494, 0 -[READ], 495, 0 -[READ], 496, 0 -[READ], 497, 0 -[READ], 498, 0 -[READ], 499, 0 -[READ], 500, 0 -[READ], 501, 0 -[READ], 502, 0 -[READ], 503, 0 -[READ], 504, 0 -[READ], 505, 0 -[READ], 506, 0 -[READ], 507, 0 -[READ], 508, 0 -[READ], 509, 0 -[READ], 510, 0 -[READ], 511, 0 -[READ], 512, 0 -[READ], 513, 0 -[READ], 514, 0 -[READ], 515, 0 -[READ], 516, 0 -[READ], 517, 0 -[READ], 518, 0 -[READ], 519, 0 -[READ], 520, 0 -[READ], 521, 0 -[READ], 522, 0 -[READ], 523, 0 -[READ], 524, 0 -[READ], 525, 0 -[READ], 526, 0 -[READ], 527, 0 -[READ], 528, 0 -[READ], 529, 0 -[READ], 530, 0 -[READ], 531, 0 -[READ], 532, 0 -[READ], 533, 0 -[READ], 534, 0 -[READ], 535, 0 -[READ], 536, 0 -[READ], 537, 0 -[READ], 538, 0 -[READ], 539, 0 -[READ], 540, 0 -[READ], 541, 0 -[READ], 542, 0 -[READ], 543, 0 -[READ], 544, 0 -[READ], 545, 0 -[READ], 546, 0 -[READ], 547, 0 -[READ], 548, 0 -[READ], 549, 0 -[READ], 550, 0 -[READ], 551, 0 -[READ], 552, 0 -[READ], 553, 0 -[READ], 554, 0 -[READ], 555, 0 -[READ], 556, 0 -[READ], 557, 0 -[READ], 558, 0 -[READ], 559, 0 -[READ], 560, 0 -[READ], 561, 0 -[READ], 562, 0 -[READ], 563, 0 -[READ], 564, 0 -[READ], 565, 0 -[READ], 566, 0 -[READ], 567, 0 -[READ], 568, 0 -[READ], 569, 0 -[READ], 570, 0 -[READ], 571, 0 -[READ], 572, 0 -[READ], 573, 0 -[READ], 574, 0 -[READ], 575, 0 -[READ], 576, 0 -[READ], 577, 0 -[READ], 578, 0 -[READ], 579, 0 -[READ], 580, 0 -[READ], 581, 0 -[READ], 582, 0 -[READ], 583, 0 -[READ], 584, 0 -[READ], 585, 0 -[READ], 586, 0 -[READ], 587, 0 -[READ], 588, 0 -[READ], 589, 0 -[READ], 590, 0 -[READ], 591, 0 -[READ], 592, 0 -[READ], 593, 0 -[READ], 594, 0 -[READ], 595, 0 -[READ], 596, 0 -[READ], 597, 0 -[READ], 598, 0 -[READ], 599, 0 -[READ], 600, 0 -[READ], 601, 0 -[READ], 602, 0 -[READ], 603, 0 -[READ], 604, 0 -[READ], 605, 0 -[READ], 606, 0 -[READ], 607, 0 -[READ], 608, 0 -[READ], 609, 0 -[READ], 610, 0 -[READ], 611, 0 -[READ], 612, 0 -[READ], 613, 0 -[READ], 614, 0 -[READ], 615, 0 -[READ], 616, 0 -[READ], 617, 0 -[READ], 618, 0 -[READ], 619, 0 -[READ], 620, 0 -[READ], 621, 0 -[READ], 622, 0 -[READ], 623, 0 -[READ], 624, 0 -[READ], 625, 0 -[READ], 626, 0 -[READ], 627, 0 -[READ], 628, 0 -[READ], 629, 0 -[READ], 630, 0 -[READ], 631, 0 -[READ], 632, 0 -[READ], 633, 0 -[READ], 634, 0 -[READ], 635, 0 -[READ], 636, 0 -[READ], 637, 0 -[READ], 638, 0 -[READ], 639, 0 -[READ], 640, 0 -[READ], 641, 0 -[READ], 642, 0 -[READ], 643, 0 -[READ], 644, 0 -[READ], 645, 0 -[READ], 646, 0 -[READ], 647, 0 -[READ], 648, 0 -[READ], 649, 0 -[READ], 650, 0 -[READ], 651, 0 -[READ], 652, 0 -[READ], 653, 0 -[READ], 654, 0 -[READ], 655, 0 -[READ], 656, 0 -[READ], 657, 0 -[READ], 658, 0 -[READ], 659, 0 -[READ], 660, 0 -[READ], 661, 0 -[READ], 662, 0 -[READ], 663, 0 -[READ], 664, 0 -[READ], 665, 0 -[READ], 666, 0 -[READ], 667, 0 -[READ], 668, 0 -[READ], 669, 0 -[READ], 670, 0 -[READ], 671, 0 -[READ], 672, 0 -[READ], 673, 0 -[READ], 674, 0 -[READ], 675, 0 -[READ], 676, 0 -[READ], 677, 0 -[READ], 678, 0 -[READ], 679, 0 -[READ], 680, 0 -[READ], 681, 0 -[READ], 682, 0 -[READ], 683, 0 -[READ], 684, 0 -[READ], 685, 0 -[READ], 686, 0 -[READ], 687, 0 -[READ], 688, 0 -[READ], 689, 0 -[READ], 690, 0 -[READ], 691, 0 -[READ], 692, 0 -[READ], 693, 0 -[READ], 694, 0 -[READ], 695, 0 -[READ], 696, 0 -[READ], 697, 0 -[READ], 698, 0 -[READ], 699, 0 -[READ], 700, 0 -[READ], 701, 0 -[READ], 702, 0 -[READ], 703, 0 -[READ], 704, 0 -[READ], 705, 0 -[READ], 706, 0 -[READ], 707, 0 -[READ], 708, 0 -[READ], 709, 0 -[READ], 710, 0 -[READ], 711, 0 -[READ], 712, 0 -[READ], 713, 0 -[READ], 714, 0 -[READ], 715, 0 -[READ], 716, 0 -[READ], 717, 0 -[READ], 718, 0 -[READ], 719, 0 -[READ], 720, 0 -[READ], 721, 0 -[READ], 722, 0 -[READ], 723, 0 -[READ], 724, 0 -[READ], 725, 0 -[READ], 726, 0 -[READ], 727, 0 -[READ], 728, 0 -[READ], 729, 0 -[READ], 730, 0 -[READ], 731, 0 -[READ], 732, 0 -[READ], 733, 0 -[READ], 734, 0 -[READ], 735, 0 -[READ], 736, 0 -[READ], 737, 0 -[READ], 738, 0 -[READ], 739, 0 -[READ], 740, 0 -[READ], 741, 0 -[READ], 742, 0 -[READ], 743, 0 -[READ], 744, 0 -[READ], 745, 0 -[READ], 746, 0 -[READ], 747, 0 -[READ], 748, 0 -[READ], 749, 0 -[READ], 750, 0 -[READ], 751, 0 -[READ], 752, 0 -[READ], 753, 0 -[READ], 754, 0 -[READ], 755, 0 -[READ], 756, 0 -[READ], 757, 0 -[READ], 758, 0 -[READ], 759, 0 -[READ], 760, 0 -[READ], 761, 0 -[READ], 762, 0 -[READ], 763, 0 -[READ], 764, 0 -[READ], 765, 0 -[READ], 766, 0 -[READ], 767, 0 -[READ], 768, 0 -[READ], 769, 0 -[READ], 770, 0 -[READ], 771, 0 -[READ], 772, 0 -[READ], 773, 0 -[READ], 774, 0 -[READ], 775, 0 -[READ], 776, 0 -[READ], 777, 0 -[READ], 778, 0 -[READ], 779, 0 -[READ], 780, 0 -[READ], 781, 0 -[READ], 782, 0 -[READ], 783, 0 -[READ], 784, 0 -[READ], 785, 0 -[READ], 786, 0 -[READ], 787, 0 -[READ], 788, 0 -[READ], 789, 0 -[READ], 790, 0 -[READ], 791, 0 -[READ], 792, 0 -[READ], 793, 0 -[READ], 794, 0 -[READ], 795, 0 -[READ], 796, 0 -[READ], 797, 0 -[READ], 798, 0 -[READ], 799, 0 -[READ], 800, 0 -[READ], 801, 0 -[READ], 802, 0 -[READ], 803, 0 -[READ], 804, 0 -[READ], 805, 0 -[READ], 806, 0 -[READ], 807, 0 -[READ], 808, 0 -[READ], 809, 0 -[READ], 810, 0 -[READ], 811, 0 -[READ], 812, 0 -[READ], 813, 0 -[READ], 814, 0 -[READ], 815, 0 -[READ], 816, 0 -[READ], 817, 0 -[READ], 818, 0 -[READ], 819, 0 -[READ], 820, 0 -[READ], 821, 0 -[READ], 822, 0 -[READ], 823, 0 -[READ], 824, 0 -[READ], 825, 0 -[READ], 826, 0 -[READ], 827, 0 -[READ], 828, 0 -[READ], 829, 0 -[READ], 830, 0 -[READ], 831, 0 -[READ], 832, 0 -[READ], 833, 0 -[READ], 834, 0 -[READ], 835, 0 -[READ], 836, 0 -[READ], 837, 0 -[READ], 838, 0 -[READ], 839, 0 -[READ], 840, 0 -[READ], 841, 0 -[READ], 842, 0 -[READ], 843, 0 -[READ], 844, 0 -[READ], 845, 0 -[READ], 846, 0 -[READ], 847, 0 -[READ], 848, 0 -[READ], 849, 0 -[READ], 850, 0 -[READ], 851, 0 -[READ], 852, 0 -[READ], 853, 0 -[READ], 854, 0 -[READ], 855, 0 -[READ], 856, 0 -[READ], 857, 0 -[READ], 858, 0 -[READ], 859, 0 -[READ], 860, 0 -[READ], 861, 0 -[READ], 862, 0 -[READ], 863, 0 -[READ], 864, 0 -[READ], 865, 0 -[READ], 866, 0 -[READ], 867, 0 -[READ], 868, 0 -[READ], 869, 0 -[READ], 870, 0 -[READ], 871, 0 -[READ], 872, 0 -[READ], 873, 0 -[READ], 874, 0 -[READ], 875, 0 -[READ], 876, 0 -[READ], 877, 0 -[READ], 878, 0 -[READ], 879, 0 -[READ], 880, 0 -[READ], 881, 0 -[READ], 882, 0 -[READ], 883, 0 -[READ], 884, 0 -[READ], 885, 0 -[READ], 886, 0 -[READ], 887, 0 -[READ], 888, 0 -[READ], 889, 0 -[READ], 890, 0 -[READ], 891, 0 -[READ], 892, 0 -[READ], 893, 0 -[READ], 894, 0 -[READ], 895, 0 -[READ], 896, 0 -[READ], 897, 0 -[READ], 898, 0 -[READ], 899, 0 -[READ], 900, 0 -[READ], 901, 0 -[READ], 902, 0 -[READ], 903, 0 -[READ], 904, 0 -[READ], 905, 0 -[READ], 906, 0 -[READ], 907, 0 -[READ], 908, 0 -[READ], 909, 0 -[READ], 910, 0 -[READ], 911, 0 -[READ], 912, 0 -[READ], 913, 0 -[READ], 914, 0 -[READ], 915, 0 -[READ], 916, 0 -[READ], 917, 0 -[READ], 918, 0 -[READ], 919, 0 -[READ], 920, 0 -[READ], 921, 0 -[READ], 922, 0 -[READ], 923, 0 -[READ], 924, 0 -[READ], 925, 0 -[READ], 926, 0 -[READ], 927, 0 -[READ], 928, 0 -[READ], 929, 0 -[READ], 930, 0 -[READ], 931, 0 -[READ], 932, 0 -[READ], 933, 0 -[READ], 934, 0 -[READ], 935, 0 -[READ], 936, 0 -[READ], 937, 0 -[READ], 938, 0 -[READ], 939, 0 -[READ], 940, 0 -[READ], 941, 0 -[READ], 942, 0 -[READ], 943, 0 -[READ], 944, 0 -[READ], 945, 0 -[READ], 946, 0 -[READ], 947, 0 -[READ], 948, 0 -[READ], 949, 0 -[READ], 950, 0 -[READ], 951, 0 -[READ], 952, 0 -[READ], 953, 0 -[READ], 954, 0 -[READ], 955, 0 -[READ], 956, 0 -[READ], 957, 0 -[READ], 958, 0 -[READ], 959, 0 -[READ], 960, 0 -[READ], 961, 0 -[READ], 962, 0 -[READ], 963, 0 -[READ], 964, 0 -[READ], 965, 0 -[READ], 966, 0 -[READ], 967, 0 -[READ], 968, 0 -[READ], 969, 0 -[READ], 970, 0 -[READ], 971, 0 -[READ], 972, 0 -[READ], 973, 0 -[READ], 974, 0 -[READ], 975, 0 -[READ], 976, 0 -[READ], 977, 0 -[READ], 978, 0 -[READ], 979, 0 -[READ], 980, 0 -[READ], 981, 0 -[READ], 982, 0 -[READ], 983, 0 -[READ], 984, 0 -[READ], 985, 0 -[READ], 986, 0 -[READ], 987, 0 -[READ], 988, 0 -[READ], 989, 0 -[READ], 990, 0 -[READ], 991, 0 -[READ], 992, 0 -[READ], 993, 0 -[READ], 994, 0 -[READ], 995, 0 -[READ], 996, 0 -[READ], 997, 0 -[READ], 998, 0 -[READ], 999, 0 -[READ], >1000, 0 -[CLEANUP], Operations, 1 -[CLEANUP], AverageLatency(us), 239.0 -[CLEANUP], MinLatency(us), 239 -[CLEANUP], MaxLatency(us), 239 -[CLEANUP], 95thPercentileLatency(ms), 0 -[CLEANUP], 99thPercentileLatency(ms), 0 -[CLEANUP], 0, 1 -[CLEANUP], 1, 0 -[CLEANUP], 2, 0 -[CLEANUP], 3, 0 -[CLEANUP], 4, 0 -[CLEANUP], 5, 0 -[CLEANUP], 6, 0 -[CLEANUP], 7, 0 -[CLEANUP], 8, 0 -[CLEANUP], 9, 0 -[CLEANUP], 10, 0 -[CLEANUP], 11, 0 -[CLEANUP], 12, 0 -[CLEANUP], 13, 0 -[CLEANUP], 14, 0 -[CLEANUP], 15, 0 -[CLEANUP], 16, 0 -[CLEANUP], 17, 0 -[CLEANUP], 18, 0 -[CLEANUP], 19, 0 -[CLEANUP], 20, 0 -[CLEANUP], 21, 0 -[CLEANUP], 22, 0 -[CLEANUP], 23, 0 -[CLEANUP], 24, 0 -[CLEANUP], 25, 0 -[CLEANUP], 26, 0 -[CLEANUP], 27, 0 -[CLEANUP], 28, 0 -[CLEANUP], 29, 0 -[CLEANUP], 30, 0 -[CLEANUP], 31, 0 -[CLEANUP], 32, 0 -[CLEANUP], 33, 0 -[CLEANUP], 34, 0 -[CLEANUP], 35, 0 -[CLEANUP], 36, 0 -[CLEANUP], 37, 0 -[CLEANUP], 38, 0 -[CLEANUP], 39, 0 -[CLEANUP], 40, 0 -[CLEANUP], 41, 0 -[CLEANUP], 42, 0 -[CLEANUP], 43, 0 -[CLEANUP], 44, 0 -[CLEANUP], 45, 0 -[CLEANUP], 46, 0 -[CLEANUP], 47, 0 -[CLEANUP], 48, 0 -[CLEANUP], 49, 0 -[CLEANUP], 50, 0 -[CLEANUP], 51, 0 -[CLEANUP], 52, 0 -[CLEANUP], 53, 0 -[CLEANUP], 54, 0 -[CLEANUP], 55, 0 -[CLEANUP], 56, 0 -[CLEANUP], 57, 0 -[CLEANUP], 58, 0 -[CLEANUP], 59, 0 -[CLEANUP], 60, 0 -[CLEANUP], 61, 0 -[CLEANUP], 62, 0 -[CLEANUP], 63, 0 -[CLEANUP], 64, 0 -[CLEANUP], 65, 0 -[CLEANUP], 66, 0 -[CLEANUP], 67, 0 -[CLEANUP], 68, 0 -[CLEANUP], 69, 0 -[CLEANUP], 70, 0 -[CLEANUP], 71, 0 -[CLEANUP], 72, 0 -[CLEANUP], 73, 0 -[CLEANUP], 74, 0 -[CLEANUP], 75, 0 -[CLEANUP], 76, 0 -[CLEANUP], 77, 0 -[CLEANUP], 78, 0 -[CLEANUP], 79, 0 -[CLEANUP], 80, 0 -[CLEANUP], 81, 0 -[CLEANUP], 82, 0 -[CLEANUP], 83, 0 -[CLEANUP], 84, 0 -[CLEANUP], 85, 0 -[CLEANUP], 86, 0 -[CLEANUP], 87, 0 -[CLEANUP], 88, 0 -[CLEANUP], 89, 0 -[CLEANUP], 90, 0 -[CLEANUP], 91, 0 -[CLEANUP], 92, 0 -[CLEANUP], 93, 0 -[CLEANUP], 94, 0 -[CLEANUP], 95, 0 -[CLEANUP], 96, 0 -[CLEANUP], 97, 0 -[CLEANUP], 98, 0 -[CLEANUP], 99, 0 -[CLEANUP], 100, 0 -[CLEANUP], 101, 0 -[CLEANUP], 102, 0 -[CLEANUP], 103, 0 -[CLEANUP], 104, 0 -[CLEANUP], 105, 0 -[CLEANUP], 106, 0 -[CLEANUP], 107, 0 -[CLEANUP], 108, 0 -[CLEANUP], 109, 0 -[CLEANUP], 110, 0 -[CLEANUP], 111, 0 -[CLEANUP], 112, 0 -[CLEANUP], 113, 0 -[CLEANUP], 114, 0 -[CLEANUP], 115, 0 -[CLEANUP], 116, 0 -[CLEANUP], 117, 0 -[CLEANUP], 118, 0 -[CLEANUP], 119, 0 -[CLEANUP], 120, 0 -[CLEANUP], 121, 0 -[CLEANUP], 122, 0 -[CLEANUP], 123, 0 -[CLEANUP], 124, 0 -[CLEANUP], 125, 0 -[CLEANUP], 126, 0 -[CLEANUP], 127, 0 -[CLEANUP], 128, 0 -[CLEANUP], 129, 0 -[CLEANUP], 130, 0 -[CLEANUP], 131, 0 -[CLEANUP], 132, 0 -[CLEANUP], 133, 0 -[CLEANUP], 134, 0 -[CLEANUP], 135, 0 -[CLEANUP], 136, 0 -[CLEANUP], 137, 0 -[CLEANUP], 138, 0 -[CLEANUP], 139, 0 -[CLEANUP], 140, 0 -[CLEANUP], 141, 0 -[CLEANUP], 142, 0 -[CLEANUP], 143, 0 -[CLEANUP], 144, 0 -[CLEANUP], 145, 0 -[CLEANUP], 146, 0 -[CLEANUP], 147, 0 -[CLEANUP], 148, 0 -[CLEANUP], 149, 0 -[CLEANUP], 150, 0 -[CLEANUP], 151, 0 -[CLEANUP], 152, 0 -[CLEANUP], 153, 0 -[CLEANUP], 154, 0 -[CLEANUP], 155, 0 -[CLEANUP], 156, 0 -[CLEANUP], 157, 0 -[CLEANUP], 158, 0 -[CLEANUP], 159, 0 -[CLEANUP], 160, 0 -[CLEANUP], 161, 0 -[CLEANUP], 162, 0 -[CLEANUP], 163, 0 -[CLEANUP], 164, 0 -[CLEANUP], 165, 0 -[CLEANUP], 166, 0 -[CLEANUP], 167, 0 -[CLEANUP], 168, 0 -[CLEANUP], 169, 0 -[CLEANUP], 170, 0 -[CLEANUP], 171, 0 -[CLEANUP], 172, 0 -[CLEANUP], 173, 0 -[CLEANUP], 174, 0 -[CLEANUP], 175, 0 -[CLEANUP], 176, 0 -[CLEANUP], 177, 0 -[CLEANUP], 178, 0 -[CLEANUP], 179, 0 -[CLEANUP], 180, 0 -[CLEANUP], 181, 0 -[CLEANUP], 182, 0 -[CLEANUP], 183, 0 -[CLEANUP], 184, 0 -[CLEANUP], 185, 0 -[CLEANUP], 186, 0 -[CLEANUP], 187, 0 -[CLEANUP], 188, 0 -[CLEANUP], 189, 0 -[CLEANUP], 190, 0 -[CLEANUP], 191, 0 -[CLEANUP], 192, 0 -[CLEANUP], 193, 0 -[CLEANUP], 194, 0 -[CLEANUP], 195, 0 -[CLEANUP], 196, 0 -[CLEANUP], 197, 0 -[CLEANUP], 198, 0 -[CLEANUP], 199, 0 -[CLEANUP], 200, 0 -[CLEANUP], 201, 0 -[CLEANUP], 202, 0 -[CLEANUP], 203, 0 -[CLEANUP], 204, 0 -[CLEANUP], 205, 0 -[CLEANUP], 206, 0 -[CLEANUP], 207, 0 -[CLEANUP], 208, 0 -[CLEANUP], 209, 0 -[CLEANUP], 210, 0 -[CLEANUP], 211, 0 -[CLEANUP], 212, 0 -[CLEANUP], 213, 0 -[CLEANUP], 214, 0 -[CLEANUP], 215, 0 -[CLEANUP], 216, 0 -[CLEANUP], 217, 0 -[CLEANUP], 218, 0 -[CLEANUP], 219, 0 -[CLEANUP], 220, 0 -[CLEANUP], 221, 0 -[CLEANUP], 222, 0 -[CLEANUP], 223, 0 -[CLEANUP], 224, 0 -[CLEANUP], 225, 0 -[CLEANUP], 226, 0 -[CLEANUP], 227, 0 -[CLEANUP], 228, 0 -[CLEANUP], 229, 0 -[CLEANUP], 230, 0 -[CLEANUP], 231, 0 -[CLEANUP], 232, 0 -[CLEANUP], 233, 0 -[CLEANUP], 234, 0 -[CLEANUP], 235, 0 -[CLEANUP], 236, 0 -[CLEANUP], 237, 0 -[CLEANUP], 238, 0 -[CLEANUP], 239, 0 -[CLEANUP], 240, 0 -[CLEANUP], 241, 0 -[CLEANUP], 242, 0 -[CLEANUP], 243, 0 -[CLEANUP], 244, 0 -[CLEANUP], 245, 0 -[CLEANUP], 246, 0 -[CLEANUP], 247, 0 -[CLEANUP], 248, 0 -[CLEANUP], 249, 0 -[CLEANUP], 250, 0 -[CLEANUP], 251, 0 -[CLEANUP], 252, 0 -[CLEANUP], 253, 0 -[CLEANUP], 254, 0 -[CLEANUP], 255, 0 -[CLEANUP], 256, 0 -[CLEANUP], 257, 0 -[CLEANUP], 258, 0 -[CLEANUP], 259, 0 -[CLEANUP], 260, 0 -[CLEANUP], 261, 0 -[CLEANUP], 262, 0 -[CLEANUP], 263, 0 -[CLEANUP], 264, 0 -[CLEANUP], 265, 0 -[CLEANUP], 266, 0 -[CLEANUP], 267, 0 -[CLEANUP], 268, 0 -[CLEANUP], 269, 0 -[CLEANUP], 270, 0 -[CLEANUP], 271, 0 -[CLEANUP], 272, 0 -[CLEANUP], 273, 0 -[CLEANUP], 274, 0 -[CLEANUP], 275, 0 -[CLEANUP], 276, 0 -[CLEANUP], 277, 0 -[CLEANUP], 278, 0 -[CLEANUP], 279, 0 -[CLEANUP], 280, 0 -[CLEANUP], 281, 0 -[CLEANUP], 282, 0 -[CLEANUP], 283, 0 -[CLEANUP], 284, 0 -[CLEANUP], 285, 0 -[CLEANUP], 286, 0 -[CLEANUP], 287, 0 -[CLEANUP], 288, 0 -[CLEANUP], 289, 0 -[CLEANUP], 290, 0 -[CLEANUP], 291, 0 -[CLEANUP], 292, 0 -[CLEANUP], 293, 0 -[CLEANUP], 294, 0 -[CLEANUP], 295, 0 -[CLEANUP], 296, 0 -[CLEANUP], 297, 0 -[CLEANUP], 298, 0 -[CLEANUP], 299, 0 -[CLEANUP], 300, 0 -[CLEANUP], 301, 0 -[CLEANUP], 302, 0 -[CLEANUP], 303, 0 -[CLEANUP], 304, 0 -[CLEANUP], 305, 0 -[CLEANUP], 306, 0 -[CLEANUP], 307, 0 -[CLEANUP], 308, 0 -[CLEANUP], 309, 0 -[CLEANUP], 310, 0 -[CLEANUP], 311, 0 -[CLEANUP], 312, 0 -[CLEANUP], 313, 0 -[CLEANUP], 314, 0 -[CLEANUP], 315, 0 -[CLEANUP], 316, 0 -[CLEANUP], 317, 0 -[CLEANUP], 318, 0 -[CLEANUP], 319, 0 -[CLEANUP], 320, 0 -[CLEANUP], 321, 0 -[CLEANUP], 322, 0 -[CLEANUP], 323, 0 -[CLEANUP], 324, 0 -[CLEANUP], 325, 0 -[CLEANUP], 326, 0 -[CLEANUP], 327, 0 -[CLEANUP], 328, 0 -[CLEANUP], 329, 0 -[CLEANUP], 330, 0 -[CLEANUP], 331, 0 -[CLEANUP], 332, 0 -[CLEANUP], 333, 0 -[CLEANUP], 334, 0 -[CLEANUP], 335, 0 -[CLEANUP], 336, 0 -[CLEANUP], 337, 0 -[CLEANUP], 338, 0 -[CLEANUP], 339, 0 -[CLEANUP], 340, 0 -[CLEANUP], 341, 0 -[CLEANUP], 342, 0 -[CLEANUP], 343, 0 -[CLEANUP], 344, 0 -[CLEANUP], 345, 0 -[CLEANUP], 346, 0 -[CLEANUP], 347, 0 -[CLEANUP], 348, 0 -[CLEANUP], 349, 0 -[CLEANUP], 350, 0 -[CLEANUP], 351, 0 -[CLEANUP], 352, 0 -[CLEANUP], 353, 0 -[CLEANUP], 354, 0 -[CLEANUP], 355, 0 -[CLEANUP], 356, 0 -[CLEANUP], 357, 0 -[CLEANUP], 358, 0 -[CLEANUP], 359, 0 -[CLEANUP], 360, 0 -[CLEANUP], 361, 0 -[CLEANUP], 362, 0 -[CLEANUP], 363, 0 -[CLEANUP], 364, 0 -[CLEANUP], 365, 0 -[CLEANUP], 366, 0 -[CLEANUP], 367, 0 -[CLEANUP], 368, 0 -[CLEANUP], 369, 0 -[CLEANUP], 370, 0 -[CLEANUP], 371, 0 -[CLEANUP], 372, 0 -[CLEANUP], 373, 0 -[CLEANUP], 374, 0 -[CLEANUP], 375, 0 -[CLEANUP], 376, 0 -[CLEANUP], 377, 0 -[CLEANUP], 378, 0 -[CLEANUP], 379, 0 -[CLEANUP], 380, 0 -[CLEANUP], 381, 0 -[CLEANUP], 382, 0 -[CLEANUP], 383, 0 -[CLEANUP], 384, 0 -[CLEANUP], 385, 0 -[CLEANUP], 386, 0 -[CLEANUP], 387, 0 -[CLEANUP], 388, 0 -[CLEANUP], 389, 0 -[CLEANUP], 390, 0 -[CLEANUP], 391, 0 -[CLEANUP], 392, 0 -[CLEANUP], 393, 0 -[CLEANUP], 394, 0 -[CLEANUP], 395, 0 -[CLEANUP], 396, 0 -[CLEANUP], 397, 0 -[CLEANUP], 398, 0 -[CLEANUP], 399, 0 -[CLEANUP], 400, 0 -[CLEANUP], 401, 0 -[CLEANUP], 402, 0 -[CLEANUP], 403, 0 -[CLEANUP], 404, 0 -[CLEANUP], 405, 0 -[CLEANUP], 406, 0 -[CLEANUP], 407, 0 -[CLEANUP], 408, 0 -[CLEANUP], 409, 0 -[CLEANUP], 410, 0 -[CLEANUP], 411, 0 -[CLEANUP], 412, 0 -[CLEANUP], 413, 0 -[CLEANUP], 414, 0 -[CLEANUP], 415, 0 -[CLEANUP], 416, 0 -[CLEANUP], 417, 0 -[CLEANUP], 418, 0 -[CLEANUP], 419, 0 -[CLEANUP], 420, 0 -[CLEANUP], 421, 0 -[CLEANUP], 422, 0 -[CLEANUP], 423, 0 -[CLEANUP], 424, 0 -[CLEANUP], 425, 0 -[CLEANUP], 426, 0 -[CLEANUP], 427, 0 -[CLEANUP], 428, 0 -[CLEANUP], 429, 0 -[CLEANUP], 430, 0 -[CLEANUP], 431, 0 -[CLEANUP], 432, 0 -[CLEANUP], 433, 0 -[CLEANUP], 434, 0 -[CLEANUP], 435, 0 -[CLEANUP], 436, 0 -[CLEANUP], 437, 0 -[CLEANUP], 438, 0 -[CLEANUP], 439, 0 -[CLEANUP], 440, 0 -[CLEANUP], 441, 0 -[CLEANUP], 442, 0 -[CLEANUP], 443, 0 -[CLEANUP], 444, 0 -[CLEANUP], 445, 0 -[CLEANUP], 446, 0 -[CLEANUP], 447, 0 -[CLEANUP], 448, 0 -[CLEANUP], 449, 0 -[CLEANUP], 450, 0 -[CLEANUP], 451, 0 -[CLEANUP], 452, 0 -[CLEANUP], 453, 0 -[CLEANUP], 454, 0 -[CLEANUP], 455, 0 -[CLEANUP], 456, 0 -[CLEANUP], 457, 0 -[CLEANUP], 458, 0 -[CLEANUP], 459, 0 -[CLEANUP], 460, 0 -[CLEANUP], 461, 0 -[CLEANUP], 462, 0 -[CLEANUP], 463, 0 -[CLEANUP], 464, 0 -[CLEANUP], 465, 0 -[CLEANUP], 466, 0 -[CLEANUP], 467, 0 -[CLEANUP], 468, 0 -[CLEANUP], 469, 0 -[CLEANUP], 470, 0 -[CLEANUP], 471, 0 -[CLEANUP], 472, 0 -[CLEANUP], 473, 0 -[CLEANUP], 474, 0 -[CLEANUP], 475, 0 -[CLEANUP], 476, 0 -[CLEANUP], 477, 0 -[CLEANUP], 478, 0 -[CLEANUP], 479, 0 -[CLEANUP], 480, 0 -[CLEANUP], 481, 0 -[CLEANUP], 482, 0 -[CLEANUP], 483, 0 -[CLEANUP], 484, 0 -[CLEANUP], 485, 0 -[CLEANUP], 486, 0 -[CLEANUP], 487, 0 -[CLEANUP], 488, 0 -[CLEANUP], 489, 0 -[CLEANUP], 490, 0 -[CLEANUP], 491, 0 -[CLEANUP], 492, 0 -[CLEANUP], 493, 0 -[CLEANUP], 494, 0 -[CLEANUP], 495, 0 -[CLEANUP], 496, 0 -[CLEANUP], 497, 0 -[CLEANUP], 498, 0 -[CLEANUP], 499, 0 -[CLEANUP], 500, 0 -[CLEANUP], 501, 0 -[CLEANUP], 502, 0 -[CLEANUP], 503, 0 -[CLEANUP], 504, 0 -[CLEANUP], 505, 0 -[CLEANUP], 506, 0 -[CLEANUP], 507, 0 -[CLEANUP], 508, 0 -[CLEANUP], 509, 0 -[CLEANUP], 510, 0 -[CLEANUP], 511, 0 -[CLEANUP], 512, 0 -[CLEANUP], 513, 0 -[CLEANUP], 514, 0 -[CLEANUP], 515, 0 -[CLEANUP], 516, 0 -[CLEANUP], 517, 0 -[CLEANUP], 518, 0 -[CLEANUP], 519, 0 -[CLEANUP], 520, 0 -[CLEANUP], 521, 0 -[CLEANUP], 522, 0 -[CLEANUP], 523, 0 -[CLEANUP], 524, 0 -[CLEANUP], 525, 0 -[CLEANUP], 526, 0 -[CLEANUP], 527, 0 -[CLEANUP], 528, 0 -[CLEANUP], 529, 0 -[CLEANUP], 530, 0 -[CLEANUP], 531, 0 -[CLEANUP], 532, 0 -[CLEANUP], 533, 0 -[CLEANUP], 534, 0 -[CLEANUP], 535, 0 -[CLEANUP], 536, 0 -[CLEANUP], 537, 0 -[CLEANUP], 538, 0 -[CLEANUP], 539, 0 -[CLEANUP], 540, 0 -[CLEANUP], 541, 0 -[CLEANUP], 542, 0 -[CLEANUP], 543, 0 -[CLEANUP], 544, 0 -[CLEANUP], 545, 0 -[CLEANUP], 546, 0 -[CLEANUP], 547, 0 -[CLEANUP], 548, 0 -[CLEANUP], 549, 0 -[CLEANUP], 550, 0 -[CLEANUP], 551, 0 -[CLEANUP], 552, 0 -[CLEANUP], 553, 0 -[CLEANUP], 554, 0 -[CLEANUP], 555, 0 -[CLEANUP], 556, 0 -[CLEANUP], 557, 0 -[CLEANUP], 558, 0 -[CLEANUP], 559, 0 -[CLEANUP], 560, 0 -[CLEANUP], 561, 0 -[CLEANUP], 562, 0 -[CLEANUP], 563, 0 -[CLEANUP], 564, 0 -[CLEANUP], 565, 0 -[CLEANUP], 566, 0 -[CLEANUP], 567, 0 -[CLEANUP], 568, 0 -[CLEANUP], 569, 0 -[CLEANUP], 570, 0 -[CLEANUP], 571, 0 -[CLEANUP], 572, 0 -[CLEANUP], 573, 0 -[CLEANUP], 574, 0 -[CLEANUP], 575, 0 -[CLEANUP], 576, 0 -[CLEANUP], 577, 0 -[CLEANUP], 578, 0 -[CLEANUP], 579, 0 -[CLEANUP], 580, 0 -[CLEANUP], 581, 0 -[CLEANUP], 582, 0 -[CLEANUP], 583, 0 -[CLEANUP], 584, 0 -[CLEANUP], 585, 0 -[CLEANUP], 586, 0 -[CLEANUP], 587, 0 -[CLEANUP], 588, 0 -[CLEANUP], 589, 0 -[CLEANUP], 590, 0 -[CLEANUP], 591, 0 -[CLEANUP], 592, 0 -[CLEANUP], 593, 0 -[CLEANUP], 594, 0 -[CLEANUP], 595, 0 -[CLEANUP], 596, 0 -[CLEANUP], 597, 0 -[CLEANUP], 598, 0 -[CLEANUP], 599, 0 -[CLEANUP], 600, 0 -[CLEANUP], 601, 0 -[CLEANUP], 602, 0 -[CLEANUP], 603, 0 -[CLEANUP], 604, 0 -[CLEANUP], 605, 0 -[CLEANUP], 606, 0 -[CLEANUP], 607, 0 -[CLEANUP], 608, 0 -[CLEANUP], 609, 0 -[CLEANUP], 610, 0 -[CLEANUP], 611, 0 -[CLEANUP], 612, 0 -[CLEANUP], 613, 0 -[CLEANUP], 614, 0 -[CLEANUP], 615, 0 -[CLEANUP], 616, 0 -[CLEANUP], 617, 0 -[CLEANUP], 618, 0 -[CLEANUP], 619, 0 -[CLEANUP], 620, 0 -[CLEANUP], 621, 0 -[CLEANUP], 622, 0 -[CLEANUP], 623, 0 -[CLEANUP], 624, 0 -[CLEANUP], 625, 0 -[CLEANUP], 626, 0 -[CLEANUP], 627, 0 -[CLEANUP], 628, 0 -[CLEANUP], 629, 0 -[CLEANUP], 630, 0 -[CLEANUP], 631, 0 -[CLEANUP], 632, 0 -[CLEANUP], 633, 0 -[CLEANUP], 634, 0 -[CLEANUP], 635, 0 -[CLEANUP], 636, 0 -[CLEANUP], 637, 0 -[CLEANUP], 638, 0 -[CLEANUP], 639, 0 -[CLEANUP], 640, 0 -[CLEANUP], 641, 0 -[CLEANUP], 642, 0 -[CLEANUP], 643, 0 -[CLEANUP], 644, 0 -[CLEANUP], 645, 0 -[CLEANUP], 646, 0 -[CLEANUP], 647, 0 -[CLEANUP], 648, 0 -[CLEANUP], 649, 0 -[CLEANUP], 650, 0 -[CLEANUP], 651, 0 -[CLEANUP], 652, 0 -[CLEANUP], 653, 0 -[CLEANUP], 654, 0 -[CLEANUP], 655, 0 -[CLEANUP], 656, 0 -[CLEANUP], 657, 0 -[CLEANUP], 658, 0 -[CLEANUP], 659, 0 -[CLEANUP], 660, 0 -[CLEANUP], 661, 0 -[CLEANUP], 662, 0 -[CLEANUP], 663, 0 -[CLEANUP], 664, 0 -[CLEANUP], 665, 0 -[CLEANUP], 666, 0 -[CLEANUP], 667, 0 -[CLEANUP], 668, 0 -[CLEANUP], 669, 0 -[CLEANUP], 670, 0 -[CLEANUP], 671, 0 -[CLEANUP], 672, 0 -[CLEANUP], 673, 0 -[CLEANUP], 674, 0 -[CLEANUP], 675, 0 -[CLEANUP], 676, 0 -[CLEANUP], 677, 0 -[CLEANUP], 678, 0 -[CLEANUP], 679, 0 -[CLEANUP], 680, 0 -[CLEANUP], 681, 0 -[CLEANUP], 682, 0 -[CLEANUP], 683, 0 -[CLEANUP], 684, 0 -[CLEANUP], 685, 0 -[CLEANUP], 686, 0 -[CLEANUP], 687, 0 -[CLEANUP], 688, 0 -[CLEANUP], 689, 0 -[CLEANUP], 690, 0 -[CLEANUP], 691, 0 -[CLEANUP], 692, 0 -[CLEANUP], 693, 0 -[CLEANUP], 694, 0 -[CLEANUP], 695, 0 -[CLEANUP], 696, 0 -[CLEANUP], 697, 0 -[CLEANUP], 698, 0 -[CLEANUP], 699, 0 -[CLEANUP], 700, 0 -[CLEANUP], 701, 0 -[CLEANUP], 702, 0 -[CLEANUP], 703, 0 -[CLEANUP], 704, 0 -[CLEANUP], 705, 0 -[CLEANUP], 706, 0 -[CLEANUP], 707, 0 -[CLEANUP], 708, 0 -[CLEANUP], 709, 0 -[CLEANUP], 710, 0 -[CLEANUP], 711, 0 -[CLEANUP], 712, 0 -[CLEANUP], 713, 0 -[CLEANUP], 714, 0 -[CLEANUP], 715, 0 -[CLEANUP], 716, 0 -[CLEANUP], 717, 0 -[CLEANUP], 718, 0 -[CLEANUP], 719, 0 -[CLEANUP], 720, 0 -[CLEANUP], 721, 0 -[CLEANUP], 722, 0 -[CLEANUP], 723, 0 -[CLEANUP], 724, 0 -[CLEANUP], 725, 0 -[CLEANUP], 726, 0 -[CLEANUP], 727, 0 -[CLEANUP], 728, 0 -[CLEANUP], 729, 0 -[CLEANUP], 730, 0 -[CLEANUP], 731, 0 -[CLEANUP], 732, 0 -[CLEANUP], 733, 0 -[CLEANUP], 734, 0 -[CLEANUP], 735, 0 -[CLEANUP], 736, 0 -[CLEANUP], 737, 0 -[CLEANUP], 738, 0 -[CLEANUP], 739, 0 -[CLEANUP], 740, 0 -[CLEANUP], 741, 0 -[CLEANUP], 742, 0 -[CLEANUP], 743, 0 -[CLEANUP], 744, 0 -[CLEANUP], 745, 0 -[CLEANUP], 746, 0 -[CLEANUP], 747, 0 -[CLEANUP], 748, 0 -[CLEANUP], 749, 0 -[CLEANUP], 750, 0 -[CLEANUP], 751, 0 -[CLEANUP], 752, 0 -[CLEANUP], 753, 0 -[CLEANUP], 754, 0 -[CLEANUP], 755, 0 -[CLEANUP], 756, 0 -[CLEANUP], 757, 0 -[CLEANUP], 758, 0 -[CLEANUP], 759, 0 -[CLEANUP], 760, 0 -[CLEANUP], 761, 0 -[CLEANUP], 762, 0 -[CLEANUP], 763, 0 -[CLEANUP], 764, 0 -[CLEANUP], 765, 0 -[CLEANUP], 766, 0 -[CLEANUP], 767, 0 -[CLEANUP], 768, 0 -[CLEANUP], 769, 0 -[CLEANUP], 770, 0 -[CLEANUP], 771, 0 -[CLEANUP], 772, 0 -[CLEANUP], 773, 0 -[CLEANUP], 774, 0 -[CLEANUP], 775, 0 -[CLEANUP], 776, 0 -[CLEANUP], 777, 0 -[CLEANUP], 778, 0 -[CLEANUP], 779, 0 -[CLEANUP], 780, 0 -[CLEANUP], 781, 0 -[CLEANUP], 782, 0 -[CLEANUP], 783, 0 -[CLEANUP], 784, 0 -[CLEANUP], 785, 0 -[CLEANUP], 786, 0 -[CLEANUP], 787, 0 -[CLEANUP], 788, 0 -[CLEANUP], 789, 0 -[CLEANUP], 790, 0 -[CLEANUP], 791, 0 -[CLEANUP], 792, 0 -[CLEANUP], 793, 0 -[CLEANUP], 794, 0 -[CLEANUP], 795, 0 -[CLEANUP], 796, 0 -[CLEANUP], 797, 0 -[CLEANUP], 798, 0 -[CLEANUP], 799, 0 -[CLEANUP], 800, 0 -[CLEANUP], 801, 0 -[CLEANUP], 802, 0 -[CLEANUP], 803, 0 -[CLEANUP], 804, 0 -[CLEANUP], 805, 0 -[CLEANUP], 806, 0 -[CLEANUP], 807, 0 -[CLEANUP], 808, 0 -[CLEANUP], 809, 0 -[CLEANUP], 810, 0 -[CLEANUP], 811, 0 -[CLEANUP], 812, 0 -[CLEANUP], 813, 0 -[CLEANUP], 814, 0 -[CLEANUP], 815, 0 -[CLEANUP], 816, 0 -[CLEANUP], 817, 0 -[CLEANUP], 818, 0 -[CLEANUP], 819, 0 -[CLEANUP], 820, 0 -[CLEANUP], 821, 0 -[CLEANUP], 822, 0 -[CLEANUP], 823, 0 -[CLEANUP], 824, 0 -[CLEANUP], 825, 0 -[CLEANUP], 826, 0 -[CLEANUP], 827, 0 -[CLEANUP], 828, 0 -[CLEANUP], 829, 0 -[CLEANUP], 830, 0 -[CLEANUP], 831, 0 -[CLEANUP], 832, 0 -[CLEANUP], 833, 0 -[CLEANUP], 834, 0 -[CLEANUP], 835, 0 -[CLEANUP], 836, 0 -[CLEANUP], 837, 0 -[CLEANUP], 838, 0 -[CLEANUP], 839, 0 -[CLEANUP], 840, 0 -[CLEANUP], 841, 0 -[CLEANUP], 842, 0 -[CLEANUP], 843, 0 -[CLEANUP], 844, 0 -[CLEANUP], 845, 0 -[CLEANUP], 846, 0 -[CLEANUP], 847, 0 -[CLEANUP], 848, 0 -[CLEANUP], 849, 0 -[CLEANUP], 850, 0 -[CLEANUP], 851, 0 -[CLEANUP], 852, 0 -[CLEANUP], 853, 0 -[CLEANUP], 854, 0 -[CLEANUP], 855, 0 -[CLEANUP], 856, 0 -[CLEANUP], 857, 0 -[CLEANUP], 858, 0 -[CLEANUP], 859, 0 -[CLEANUP], 860, 0 -[CLEANUP], 861, 0 -[CLEANUP], 862, 0 -[CLEANUP], 863, 0 -[CLEANUP], 864, 0 -[CLEANUP], 865, 0 -[CLEANUP], 866, 0 -[CLEANUP], 867, 0 -[CLEANUP], 868, 0 -[CLEANUP], 869, 0 -[CLEANUP], 870, 0 -[CLEANUP], 871, 0 -[CLEANUP], 872, 0 -[CLEANUP], 873, 0 -[CLEANUP], 874, 0 -[CLEANUP], 875, 0 -[CLEANUP], 876, 0 -[CLEANUP], 877, 0 -[CLEANUP], 878, 0 -[CLEANUP], 879, 0 -[CLEANUP], 880, 0 -[CLEANUP], 881, 0 -[CLEANUP], 882, 0 -[CLEANUP], 883, 0 -[CLEANUP], 884, 0 -[CLEANUP], 885, 0 -[CLEANUP], 886, 0 -[CLEANUP], 887, 0 -[CLEANUP], 888, 0 -[CLEANUP], 889, 0 -[CLEANUP], 890, 0 -[CLEANUP], 891, 0 -[CLEANUP], 892, 0 -[CLEANUP], 893, 0 -[CLEANUP], 894, 0 -[CLEANUP], 895, 0 -[CLEANUP], 896, 0 -[CLEANUP], 897, 0 -[CLEANUP], 898, 0 -[CLEANUP], 899, 0 -[CLEANUP], 900, 0 -[CLEANUP], 901, 0 -[CLEANUP], 902, 0 -[CLEANUP], 903, 0 -[CLEANUP], 904, 0 -[CLEANUP], 905, 0 -[CLEANUP], 906, 0 -[CLEANUP], 907, 0 -[CLEANUP], 908, 0 -[CLEANUP], 909, 0 -[CLEANUP], 910, 0 -[CLEANUP], 911, 0 -[CLEANUP], 912, 0 -[CLEANUP], 913, 0 -[CLEANUP], 914, 0 -[CLEANUP], 915, 0 -[CLEANUP], 916, 0 -[CLEANUP], 917, 0 -[CLEANUP], 918, 0 -[CLEANUP], 919, 0 -[CLEANUP], 920, 0 -[CLEANUP], 921, 0 -[CLEANUP], 922, 0 -[CLEANUP], 923, 0 -[CLEANUP], 924, 0 -[CLEANUP], 925, 0 -[CLEANUP], 926, 0 -[CLEANUP], 927, 0 -[CLEANUP], 928, 0 -[CLEANUP], 929, 0 -[CLEANUP], 930, 0 -[CLEANUP], 931, 0 -[CLEANUP], 932, 0 -[CLEANUP], 933, 0 -[CLEANUP], 934, 0 -[CLEANUP], 935, 0 -[CLEANUP], 936, 0 -[CLEANUP], 937, 0 -[CLEANUP], 938, 0 -[CLEANUP], 939, 0 -[CLEANUP], 940, 0 -[CLEANUP], 941, 0 -[CLEANUP], 942, 0 -[CLEANUP], 943, 0 -[CLEANUP], 944, 0 -[CLEANUP], 945, 0 -[CLEANUP], 946, 0 -[CLEANUP], 947, 0 -[CLEANUP], 948, 0 -[CLEANUP], 949, 0 -[CLEANUP], 950, 0 -[CLEANUP], 951, 0 -[CLEANUP], 952, 0 -[CLEANUP], 953, 0 -[CLEANUP], 954, 0 -[CLEANUP], 955, 0 -[CLEANUP], 956, 0 -[CLEANUP], 957, 0 -[CLEANUP], 958, 0 -[CLEANUP], 959, 0 -[CLEANUP], 960, 0 -[CLEANUP], 961, 0 -[CLEANUP], 962, 0 -[CLEANUP], 963, 0 -[CLEANUP], 964, 0 -[CLEANUP], 965, 0 -[CLEANUP], 966, 0 -[CLEANUP], 967, 0 -[CLEANUP], 968, 0 -[CLEANUP], 969, 0 -[CLEANUP], 970, 0 -[CLEANUP], 971, 0 -[CLEANUP], 972, 0 -[CLEANUP], 973, 0 -[CLEANUP], 974, 0 -[CLEANUP], 975, 0 -[CLEANUP], 976, 0 -[CLEANUP], 977, 0 -[CLEANUP], 978, 0 -[CLEANUP], 979, 0 -[CLEANUP], 980, 0 -[CLEANUP], 981, 0 -[CLEANUP], 982, 0 -[CLEANUP], 983, 0 -[CLEANUP], 984, 0 -[CLEANUP], 985, 0 -[CLEANUP], 986, 0 -[CLEANUP], 987, 0 -[CLEANUP], 988, 0 -[CLEANUP], 989, 0 -[CLEANUP], 990, 0 -[CLEANUP], 991, 0 -[CLEANUP], 992, 0 -[CLEANUP], 993, 0 -[CLEANUP], 994, 0 -[CLEANUP], 995, 0 -[CLEANUP], 996, 0 -[CLEANUP], 997, 0 -[CLEANUP], 998, 0 -[CLEANUP], 999, 0 -[CLEANUP], >1000, 0 -java -cp /home/YCSB/dynamodb/conf:/home/YCSB/core/target/core-0.1.4.jar:/home/YCSB/cassandra/target/slf4j-simple-1.7.2.jar:/home/YCSB/redis/target/redis-binding-0.1.4.jar:/home/YCSB/redis/target/archive-tmp/redis-binding-0.1.4.jar:/home/YCSB/infinispan/src/main/conf:/home/YCSB/nosqldb/src/main/conf:/home/YCSB/voldemort/src/main/conf:/home/YCSB/jdbc/src/main/conf:/home/YCSB/gemfire/src/main/conf:/home/YCSB/hbase/src/main/conf com.yahoo.ycsb.Client -db com.yahoo.ycsb.db.RedisClient -p redis.host=10.249.77.163 -p redis.port=6379 -P workloads/workloada -p operationcount=1000000 -t DELETED YCSB/redisload.dat Index: YCSB/redisload.dat ================================================================== --- YCSB/redisload.dat +++ /dev/null @@ -1,2020 +0,0 @@ -YCSB Client 0.1 -Command line: -db com.yahoo.ycsb.db.RedisClient -p redis.host=localhost -p redis.port=6379 -P workloads/workloada -p recordcount=1000000 -load -[OVERALL], RunTime(ms), 243963.0 -[OVERALL], Throughput(ops/sec), 4098.9822227141 -[INSERT], Operations, 1000000 -[INSERT], AverageLatency(us), 238.120541 -[INSERT], MinLatency(us), 175 -[INSERT], MaxLatency(us), 12983 -[INSERT], 95thPercentileLatency(ms), 0 -[INSERT], 99thPercentileLatency(ms), 1 -[INSERT], Return=0, 1000000 -[INSERT], 0, 976944 -[INSERT], 1, 17247 -[INSERT], 2, 2049 -[INSERT], 3, 1699 -[INSERT], 4, 1154 -[INSERT], 5, 633 -[INSERT], 6, 225 -[INSERT], 7, 40 -[INSERT], 8, 3 -[INSERT], 9, 3 -[INSERT], 10, 1 -[INSERT], 11, 0 -[INSERT], 12, 2 -[INSERT], 13, 0 -[INSERT], 14, 0 -[INSERT], 15, 0 -[INSERT], 16, 0 -[INSERT], 17, 0 -[INSERT], 18, 0 -[INSERT], 19, 0 -[INSERT], 20, 0 -[INSERT], 21, 0 -[INSERT], 22, 0 -[INSERT], 23, 0 -[INSERT], 24, 0 -[INSERT], 25, 0 -[INSERT], 26, 0 -[INSERT], 27, 0 -[INSERT], 28, 0 -[INSERT], 29, 0 -[INSERT], 30, 0 -[INSERT], 31, 0 -[INSERT], 32, 0 -[INSERT], 33, 0 -[INSERT], 34, 0 -[INSERT], 35, 0 -[INSERT], 36, 0 -[INSERT], 37, 0 -[INSERT], 38, 0 -[INSERT], 39, 0 -[INSERT], 40, 0 -[INSERT], 41, 0 -[INSERT], 42, 0 -[INSERT], 43, 0 -[INSERT], 44, 0 -[INSERT], 45, 0 -[INSERT], 46, 0 -[INSERT], 47, 0 -[INSERT], 48, 0 -[INSERT], 49, 0 -[INSERT], 50, 0 -[INSERT], 51, 0 -[INSERT], 52, 0 -[INSERT], 53, 0 -[INSERT], 54, 0 -[INSERT], 55, 0 -[INSERT], 56, 0 -[INSERT], 57, 0 -[INSERT], 58, 0 -[INSERT], 59, 0 -[INSERT], 60, 0 -[INSERT], 61, 0 -[INSERT], 62, 0 -[INSERT], 63, 0 -[INSERT], 64, 0 -[INSERT], 65, 0 -[INSERT], 66, 0 -[INSERT], 67, 0 -[INSERT], 68, 0 -[INSERT], 69, 0 -[INSERT], 70, 0 -[INSERT], 71, 0 -[INSERT], 72, 0 -[INSERT], 73, 0 -[INSERT], 74, 0 -[INSERT], 75, 0 -[INSERT], 76, 0 -[INSERT], 77, 0 -[INSERT], 78, 0 -[INSERT], 79, 0 -[INSERT], 80, 0 -[INSERT], 81, 0 -[INSERT], 82, 0 -[INSERT], 83, 0 -[INSERT], 84, 0 -[INSERT], 85, 0 -[INSERT], 86, 0 -[INSERT], 87, 0 -[INSERT], 88, 0 -[INSERT], 89, 0 -[INSERT], 90, 0 -[INSERT], 91, 0 -[INSERT], 92, 0 -[INSERT], 93, 0 -[INSERT], 94, 0 -[INSERT], 95, 0 -[INSERT], 96, 0 -[INSERT], 97, 0 -[INSERT], 98, 0 -[INSERT], 99, 0 -[INSERT], 100, 0 -[INSERT], 101, 0 -[INSERT], 102, 0 -[INSERT], 103, 0 -[INSERT], 104, 0 -[INSERT], 105, 0 -[INSERT], 106, 0 -[INSERT], 107, 0 -[INSERT], 108, 0 -[INSERT], 109, 0 -[INSERT], 110, 0 -[INSERT], 111, 0 -[INSERT], 112, 0 -[INSERT], 113, 0 -[INSERT], 114, 0 -[INSERT], 115, 0 -[INSERT], 116, 0 -[INSERT], 117, 0 -[INSERT], 118, 0 -[INSERT], 119, 0 -[INSERT], 120, 0 -[INSERT], 121, 0 -[INSERT], 122, 0 -[INSERT], 123, 0 -[INSERT], 124, 0 -[INSERT], 125, 0 -[INSERT], 126, 0 -[INSERT], 127, 0 -[INSERT], 128, 0 -[INSERT], 129, 0 -[INSERT], 130, 0 -[INSERT], 131, 0 -[INSERT], 132, 0 -[INSERT], 133, 0 -[INSERT], 134, 0 -[INSERT], 135, 0 -[INSERT], 136, 0 -[INSERT], 137, 0 -[INSERT], 138, 0 -[INSERT], 139, 0 -[INSERT], 140, 0 -[INSERT], 141, 0 -[INSERT], 142, 0 -[INSERT], 143, 0 -[INSERT], 144, 0 -[INSERT], 145, 0 -[INSERT], 146, 0 -[INSERT], 147, 0 -[INSERT], 148, 0 -[INSERT], 149, 0 -[INSERT], 150, 0 -[INSERT], 151, 0 -[INSERT], 152, 0 -[INSERT], 153, 0 -[INSERT], 154, 0 -[INSERT], 155, 0 -[INSERT], 156, 0 -[INSERT], 157, 0 -[INSERT], 158, 0 -[INSERT], 159, 0 -[INSERT], 160, 0 -[INSERT], 161, 0 -[INSERT], 162, 0 -[INSERT], 163, 0 -[INSERT], 164, 0 -[INSERT], 165, 0 -[INSERT], 166, 0 -[INSERT], 167, 0 -[INSERT], 168, 0 -[INSERT], 169, 0 -[INSERT], 170, 0 -[INSERT], 171, 0 -[INSERT], 172, 0 -[INSERT], 173, 0 -[INSERT], 174, 0 -[INSERT], 175, 0 -[INSERT], 176, 0 -[INSERT], 177, 0 -[INSERT], 178, 0 -[INSERT], 179, 0 -[INSERT], 180, 0 -[INSERT], 181, 0 -[INSERT], 182, 0 -[INSERT], 183, 0 -[INSERT], 184, 0 -[INSERT], 185, 0 -[INSERT], 186, 0 -[INSERT], 187, 0 -[INSERT], 188, 0 -[INSERT], 189, 0 -[INSERT], 190, 0 -[INSERT], 191, 0 -[INSERT], 192, 0 -[INSERT], 193, 0 -[INSERT], 194, 0 -[INSERT], 195, 0 -[INSERT], 196, 0 -[INSERT], 197, 0 -[INSERT], 198, 0 -[INSERT], 199, 0 -[INSERT], 200, 0 -[INSERT], 201, 0 -[INSERT], 202, 0 -[INSERT], 203, 0 -[INSERT], 204, 0 -[INSERT], 205, 0 -[INSERT], 206, 0 -[INSERT], 207, 0 -[INSERT], 208, 0 -[INSERT], 209, 0 -[INSERT], 210, 0 -[INSERT], 211, 0 -[INSERT], 212, 0 -[INSERT], 213, 0 -[INSERT], 214, 0 -[INSERT], 215, 0 -[INSERT], 216, 0 -[INSERT], 217, 0 -[INSERT], 218, 0 -[INSERT], 219, 0 -[INSERT], 220, 0 -[INSERT], 221, 0 -[INSERT], 222, 0 -[INSERT], 223, 0 -[INSERT], 224, 0 -[INSERT], 225, 0 -[INSERT], 226, 0 -[INSERT], 227, 0 -[INSERT], 228, 0 -[INSERT], 229, 0 -[INSERT], 230, 0 -[INSERT], 231, 0 -[INSERT], 232, 0 -[INSERT], 233, 0 -[INSERT], 234, 0 -[INSERT], 235, 0 -[INSERT], 236, 0 -[INSERT], 237, 0 -[INSERT], 238, 0 -[INSERT], 239, 0 -[INSERT], 240, 0 -[INSERT], 241, 0 -[INSERT], 242, 0 -[INSERT], 243, 0 -[INSERT], 244, 0 -[INSERT], 245, 0 -[INSERT], 246, 0 -[INSERT], 247, 0 -[INSERT], 248, 0 -[INSERT], 249, 0 -[INSERT], 250, 0 -[INSERT], 251, 0 -[INSERT], 252, 0 -[INSERT], 253, 0 -[INSERT], 254, 0 -[INSERT], 255, 0 -[INSERT], 256, 0 -[INSERT], 257, 0 -[INSERT], 258, 0 -[INSERT], 259, 0 -[INSERT], 260, 0 -[INSERT], 261, 0 -[INSERT], 262, 0 -[INSERT], 263, 0 -[INSERT], 264, 0 -[INSERT], 265, 0 -[INSERT], 266, 0 -[INSERT], 267, 0 -[INSERT], 268, 0 -[INSERT], 269, 0 -[INSERT], 270, 0 -[INSERT], 271, 0 -[INSERT], 272, 0 -[INSERT], 273, 0 -[INSERT], 274, 0 -[INSERT], 275, 0 -[INSERT], 276, 0 -[INSERT], 277, 0 -[INSERT], 278, 0 -[INSERT], 279, 0 -[INSERT], 280, 0 -[INSERT], 281, 0 -[INSERT], 282, 0 -[INSERT], 283, 0 -[INSERT], 284, 0 -[INSERT], 285, 0 -[INSERT], 286, 0 -[INSERT], 287, 0 -[INSERT], 288, 0 -[INSERT], 289, 0 -[INSERT], 290, 0 -[INSERT], 291, 0 -[INSERT], 292, 0 -[INSERT], 293, 0 -[INSERT], 294, 0 -[INSERT], 295, 0 -[INSERT], 296, 0 -[INSERT], 297, 0 -[INSERT], 298, 0 -[INSERT], 299, 0 -[INSERT], 300, 0 -[INSERT], 301, 0 -[INSERT], 302, 0 -[INSERT], 303, 0 -[INSERT], 304, 0 -[INSERT], 305, 0 -[INSERT], 306, 0 -[INSERT], 307, 0 -[INSERT], 308, 0 -[INSERT], 309, 0 -[INSERT], 310, 0 -[INSERT], 311, 0 -[INSERT], 312, 0 -[INSERT], 313, 0 -[INSERT], 314, 0 -[INSERT], 315, 0 -[INSERT], 316, 0 -[INSERT], 317, 0 -[INSERT], 318, 0 -[INSERT], 319, 0 -[INSERT], 320, 0 -[INSERT], 321, 0 -[INSERT], 322, 0 -[INSERT], 323, 0 -[INSERT], 324, 0 -[INSERT], 325, 0 -[INSERT], 326, 0 -[INSERT], 327, 0 -[INSERT], 328, 0 -[INSERT], 329, 0 -[INSERT], 330, 0 -[INSERT], 331, 0 -[INSERT], 332, 0 -[INSERT], 333, 0 -[INSERT], 334, 0 -[INSERT], 335, 0 -[INSERT], 336, 0 -[INSERT], 337, 0 -[INSERT], 338, 0 -[INSERT], 339, 0 -[INSERT], 340, 0 -[INSERT], 341, 0 -[INSERT], 342, 0 -[INSERT], 343, 0 -[INSERT], 344, 0 -[INSERT], 345, 0 -[INSERT], 346, 0 -[INSERT], 347, 0 -[INSERT], 348, 0 -[INSERT], 349, 0 -[INSERT], 350, 0 -[INSERT], 351, 0 -[INSERT], 352, 0 -[INSERT], 353, 0 -[INSERT], 354, 0 -[INSERT], 355, 0 -[INSERT], 356, 0 -[INSERT], 357, 0 -[INSERT], 358, 0 -[INSERT], 359, 0 -[INSERT], 360, 0 -[INSERT], 361, 0 -[INSERT], 362, 0 -[INSERT], 363, 0 -[INSERT], 364, 0 -[INSERT], 365, 0 -[INSERT], 366, 0 -[INSERT], 367, 0 -[INSERT], 368, 0 -[INSERT], 369, 0 -[INSERT], 370, 0 -[INSERT], 371, 0 -[INSERT], 372, 0 -[INSERT], 373, 0 -[INSERT], 374, 0 -[INSERT], 375, 0 -[INSERT], 376, 0 -[INSERT], 377, 0 -[INSERT], 378, 0 -[INSERT], 379, 0 -[INSERT], 380, 0 -[INSERT], 381, 0 -[INSERT], 382, 0 -[INSERT], 383, 0 -[INSERT], 384, 0 -[INSERT], 385, 0 -[INSERT], 386, 0 -[INSERT], 387, 0 -[INSERT], 388, 0 -[INSERT], 389, 0 -[INSERT], 390, 0 -[INSERT], 391, 0 -[INSERT], 392, 0 -[INSERT], 393, 0 -[INSERT], 394, 0 -[INSERT], 395, 0 -[INSERT], 396, 0 -[INSERT], 397, 0 -[INSERT], 398, 0 -[INSERT], 399, 0 -[INSERT], 400, 0 -[INSERT], 401, 0 -[INSERT], 402, 0 -[INSERT], 403, 0 -[INSERT], 404, 0 -[INSERT], 405, 0 -[INSERT], 406, 0 -[INSERT], 407, 0 -[INSERT], 408, 0 -[INSERT], 409, 0 -[INSERT], 410, 0 -[INSERT], 411, 0 -[INSERT], 412, 0 -[INSERT], 413, 0 -[INSERT], 414, 0 -[INSERT], 415, 0 -[INSERT], 416, 0 -[INSERT], 417, 0 -[INSERT], 418, 0 -[INSERT], 419, 0 -[INSERT], 420, 0 -[INSERT], 421, 0 -[INSERT], 422, 0 -[INSERT], 423, 0 -[INSERT], 424, 0 -[INSERT], 425, 0 -[INSERT], 426, 0 -[INSERT], 427, 0 -[INSERT], 428, 0 -[INSERT], 429, 0 -[INSERT], 430, 0 -[INSERT], 431, 0 -[INSERT], 432, 0 -[INSERT], 433, 0 -[INSERT], 434, 0 -[INSERT], 435, 0 -[INSERT], 436, 0 -[INSERT], 437, 0 -[INSERT], 438, 0 -[INSERT], 439, 0 -[INSERT], 440, 0 -[INSERT], 441, 0 -[INSERT], 442, 0 -[INSERT], 443, 0 -[INSERT], 444, 0 -[INSERT], 445, 0 -[INSERT], 446, 0 -[INSERT], 447, 0 -[INSERT], 448, 0 -[INSERT], 449, 0 -[INSERT], 450, 0 -[INSERT], 451, 0 -[INSERT], 452, 0 -[INSERT], 453, 0 -[INSERT], 454, 0 -[INSERT], 455, 0 -[INSERT], 456, 0 -[INSERT], 457, 0 -[INSERT], 458, 0 -[INSERT], 459, 0 -[INSERT], 460, 0 -[INSERT], 461, 0 -[INSERT], 462, 0 -[INSERT], 463, 0 -[INSERT], 464, 0 -[INSERT], 465, 0 -[INSERT], 466, 0 -[INSERT], 467, 0 -[INSERT], 468, 0 -[INSERT], 469, 0 -[INSERT], 470, 0 -[INSERT], 471, 0 -[INSERT], 472, 0 -[INSERT], 473, 0 -[INSERT], 474, 0 -[INSERT], 475, 0 -[INSERT], 476, 0 -[INSERT], 477, 0 -[INSERT], 478, 0 -[INSERT], 479, 0 -[INSERT], 480, 0 -[INSERT], 481, 0 -[INSERT], 482, 0 -[INSERT], 483, 0 -[INSERT], 484, 0 -[INSERT], 485, 0 -[INSERT], 486, 0 -[INSERT], 487, 0 -[INSERT], 488, 0 -[INSERT], 489, 0 -[INSERT], 490, 0 -[INSERT], 491, 0 -[INSERT], 492, 0 -[INSERT], 493, 0 -[INSERT], 494, 0 -[INSERT], 495, 0 -[INSERT], 496, 0 -[INSERT], 497, 0 -[INSERT], 498, 0 -[INSERT], 499, 0 -[INSERT], 500, 0 -[INSERT], 501, 0 -[INSERT], 502, 0 -[INSERT], 503, 0 -[INSERT], 504, 0 -[INSERT], 505, 0 -[INSERT], 506, 0 -[INSERT], 507, 0 -[INSERT], 508, 0 -[INSERT], 509, 0 -[INSERT], 510, 0 -[INSERT], 511, 0 -[INSERT], 512, 0 -[INSERT], 513, 0 -[INSERT], 514, 0 -[INSERT], 515, 0 -[INSERT], 516, 0 -[INSERT], 517, 0 -[INSERT], 518, 0 -[INSERT], 519, 0 -[INSERT], 520, 0 -[INSERT], 521, 0 -[INSERT], 522, 0 -[INSERT], 523, 0 -[INSERT], 524, 0 -[INSERT], 525, 0 -[INSERT], 526, 0 -[INSERT], 527, 0 -[INSERT], 528, 0 -[INSERT], 529, 0 -[INSERT], 530, 0 -[INSERT], 531, 0 -[INSERT], 532, 0 -[INSERT], 533, 0 -[INSERT], 534, 0 -[INSERT], 535, 0 -[INSERT], 536, 0 -[INSERT], 537, 0 -[INSERT], 538, 0 -[INSERT], 539, 0 -[INSERT], 540, 0 -[INSERT], 541, 0 -[INSERT], 542, 0 -[INSERT], 543, 0 -[INSERT], 544, 0 -[INSERT], 545, 0 -[INSERT], 546, 0 -[INSERT], 547, 0 -[INSERT], 548, 0 -[INSERT], 549, 0 -[INSERT], 550, 0 -[INSERT], 551, 0 -[INSERT], 552, 0 -[INSERT], 553, 0 -[INSERT], 554, 0 -[INSERT], 555, 0 -[INSERT], 556, 0 -[INSERT], 557, 0 -[INSERT], 558, 0 -[INSERT], 559, 0 -[INSERT], 560, 0 -[INSERT], 561, 0 -[INSERT], 562, 0 -[INSERT], 563, 0 -[INSERT], 564, 0 -[INSERT], 565, 0 -[INSERT], 566, 0 -[INSERT], 567, 0 -[INSERT], 568, 0 -[INSERT], 569, 0 -[INSERT], 570, 0 -[INSERT], 571, 0 -[INSERT], 572, 0 -[INSERT], 573, 0 -[INSERT], 574, 0 -[INSERT], 575, 0 -[INSERT], 576, 0 -[INSERT], 577, 0 -[INSERT], 578, 0 -[INSERT], 579, 0 -[INSERT], 580, 0 -[INSERT], 581, 0 -[INSERT], 582, 0 -[INSERT], 583, 0 -[INSERT], 584, 0 -[INSERT], 585, 0 -[INSERT], 586, 0 -[INSERT], 587, 0 -[INSERT], 588, 0 -[INSERT], 589, 0 -[INSERT], 590, 0 -[INSERT], 591, 0 -[INSERT], 592, 0 -[INSERT], 593, 0 -[INSERT], 594, 0 -[INSERT], 595, 0 -[INSERT], 596, 0 -[INSERT], 597, 0 -[INSERT], 598, 0 -[INSERT], 599, 0 -[INSERT], 600, 0 -[INSERT], 601, 0 -[INSERT], 602, 0 -[INSERT], 603, 0 -[INSERT], 604, 0 -[INSERT], 605, 0 -[INSERT], 606, 0 -[INSERT], 607, 0 -[INSERT], 608, 0 -[INSERT], 609, 0 -[INSERT], 610, 0 -[INSERT], 611, 0 -[INSERT], 612, 0 -[INSERT], 613, 0 -[INSERT], 614, 0 -[INSERT], 615, 0 -[INSERT], 616, 0 -[INSERT], 617, 0 -[INSERT], 618, 0 -[INSERT], 619, 0 -[INSERT], 620, 0 -[INSERT], 621, 0 -[INSERT], 622, 0 -[INSERT], 623, 0 -[INSERT], 624, 0 -[INSERT], 625, 0 -[INSERT], 626, 0 -[INSERT], 627, 0 -[INSERT], 628, 0 -[INSERT], 629, 0 -[INSERT], 630, 0 -[INSERT], 631, 0 -[INSERT], 632, 0 -[INSERT], 633, 0 -[INSERT], 634, 0 -[INSERT], 635, 0 -[INSERT], 636, 0 -[INSERT], 637, 0 -[INSERT], 638, 0 -[INSERT], 639, 0 -[INSERT], 640, 0 -[INSERT], 641, 0 -[INSERT], 642, 0 -[INSERT], 643, 0 -[INSERT], 644, 0 -[INSERT], 645, 0 -[INSERT], 646, 0 -[INSERT], 647, 0 -[INSERT], 648, 0 -[INSERT], 649, 0 -[INSERT], 650, 0 -[INSERT], 651, 0 -[INSERT], 652, 0 -[INSERT], 653, 0 -[INSERT], 654, 0 -[INSERT], 655, 0 -[INSERT], 656, 0 -[INSERT], 657, 0 -[INSERT], 658, 0 -[INSERT], 659, 0 -[INSERT], 660, 0 -[INSERT], 661, 0 -[INSERT], 662, 0 -[INSERT], 663, 0 -[INSERT], 664, 0 -[INSERT], 665, 0 -[INSERT], 666, 0 -[INSERT], 667, 0 -[INSERT], 668, 0 -[INSERT], 669, 0 -[INSERT], 670, 0 -[INSERT], 671, 0 -[INSERT], 672, 0 -[INSERT], 673, 0 -[INSERT], 674, 0 -[INSERT], 675, 0 -[INSERT], 676, 0 -[INSERT], 677, 0 -[INSERT], 678, 0 -[INSERT], 679, 0 -[INSERT], 680, 0 -[INSERT], 681, 0 -[INSERT], 682, 0 -[INSERT], 683, 0 -[INSERT], 684, 0 -[INSERT], 685, 0 -[INSERT], 686, 0 -[INSERT], 687, 0 -[INSERT], 688, 0 -[INSERT], 689, 0 -[INSERT], 690, 0 -[INSERT], 691, 0 -[INSERT], 692, 0 -[INSERT], 693, 0 -[INSERT], 694, 0 -[INSERT], 695, 0 -[INSERT], 696, 0 -[INSERT], 697, 0 -[INSERT], 698, 0 -[INSERT], 699, 0 -[INSERT], 700, 0 -[INSERT], 701, 0 -[INSERT], 702, 0 -[INSERT], 703, 0 -[INSERT], 704, 0 -[INSERT], 705, 0 -[INSERT], 706, 0 -[INSERT], 707, 0 -[INSERT], 708, 0 -[INSERT], 709, 0 -[INSERT], 710, 0 -[INSERT], 711, 0 -[INSERT], 712, 0 -[INSERT], 713, 0 -[INSERT], 714, 0 -[INSERT], 715, 0 -[INSERT], 716, 0 -[INSERT], 717, 0 -[INSERT], 718, 0 -[INSERT], 719, 0 -[INSERT], 720, 0 -[INSERT], 721, 0 -[INSERT], 722, 0 -[INSERT], 723, 0 -[INSERT], 724, 0 -[INSERT], 725, 0 -[INSERT], 726, 0 -[INSERT], 727, 0 -[INSERT], 728, 0 -[INSERT], 729, 0 -[INSERT], 730, 0 -[INSERT], 731, 0 -[INSERT], 732, 0 -[INSERT], 733, 0 -[INSERT], 734, 0 -[INSERT], 735, 0 -[INSERT], 736, 0 -[INSERT], 737, 0 -[INSERT], 738, 0 -[INSERT], 739, 0 -[INSERT], 740, 0 -[INSERT], 741, 0 -[INSERT], 742, 0 -[INSERT], 743, 0 -[INSERT], 744, 0 -[INSERT], 745, 0 -[INSERT], 746, 0 -[INSERT], 747, 0 -[INSERT], 748, 0 -[INSERT], 749, 0 -[INSERT], 750, 0 -[INSERT], 751, 0 -[INSERT], 752, 0 -[INSERT], 753, 0 -[INSERT], 754, 0 -[INSERT], 755, 0 -[INSERT], 756, 0 -[INSERT], 757, 0 -[INSERT], 758, 0 -[INSERT], 759, 0 -[INSERT], 760, 0 -[INSERT], 761, 0 -[INSERT], 762, 0 -[INSERT], 763, 0 -[INSERT], 764, 0 -[INSERT], 765, 0 -[INSERT], 766, 0 -[INSERT], 767, 0 -[INSERT], 768, 0 -[INSERT], 769, 0 -[INSERT], 770, 0 -[INSERT], 771, 0 -[INSERT], 772, 0 -[INSERT], 773, 0 -[INSERT], 774, 0 -[INSERT], 775, 0 -[INSERT], 776, 0 -[INSERT], 777, 0 -[INSERT], 778, 0 -[INSERT], 779, 0 -[INSERT], 780, 0 -[INSERT], 781, 0 -[INSERT], 782, 0 -[INSERT], 783, 0 -[INSERT], 784, 0 -[INSERT], 785, 0 -[INSERT], 786, 0 -[INSERT], 787, 0 -[INSERT], 788, 0 -[INSERT], 789, 0 -[INSERT], 790, 0 -[INSERT], 791, 0 -[INSERT], 792, 0 -[INSERT], 793, 0 -[INSERT], 794, 0 -[INSERT], 795, 0 -[INSERT], 796, 0 -[INSERT], 797, 0 -[INSERT], 798, 0 -[INSERT], 799, 0 -[INSERT], 800, 0 -[INSERT], 801, 0 -[INSERT], 802, 0 -[INSERT], 803, 0 -[INSERT], 804, 0 -[INSERT], 805, 0 -[INSERT], 806, 0 -[INSERT], 807, 0 -[INSERT], 808, 0 -[INSERT], 809, 0 -[INSERT], 810, 0 -[INSERT], 811, 0 -[INSERT], 812, 0 -[INSERT], 813, 0 -[INSERT], 814, 0 -[INSERT], 815, 0 -[INSERT], 816, 0 -[INSERT], 817, 0 -[INSERT], 818, 0 -[INSERT], 819, 0 -[INSERT], 820, 0 -[INSERT], 821, 0 -[INSERT], 822, 0 -[INSERT], 823, 0 -[INSERT], 824, 0 -[INSERT], 825, 0 -[INSERT], 826, 0 -[INSERT], 827, 0 -[INSERT], 828, 0 -[INSERT], 829, 0 -[INSERT], 830, 0 -[INSERT], 831, 0 -[INSERT], 832, 0 -[INSERT], 833, 0 -[INSERT], 834, 0 -[INSERT], 835, 0 -[INSERT], 836, 0 -[INSERT], 837, 0 -[INSERT], 838, 0 -[INSERT], 839, 0 -[INSERT], 840, 0 -[INSERT], 841, 0 -[INSERT], 842, 0 -[INSERT], 843, 0 -[INSERT], 844, 0 -[INSERT], 845, 0 -[INSERT], 846, 0 -[INSERT], 847, 0 -[INSERT], 848, 0 -[INSERT], 849, 0 -[INSERT], 850, 0 -[INSERT], 851, 0 -[INSERT], 852, 0 -[INSERT], 853, 0 -[INSERT], 854, 0 -[INSERT], 855, 0 -[INSERT], 856, 0 -[INSERT], 857, 0 -[INSERT], 858, 0 -[INSERT], 859, 0 -[INSERT], 860, 0 -[INSERT], 861, 0 -[INSERT], 862, 0 -[INSERT], 863, 0 -[INSERT], 864, 0 -[INSERT], 865, 0 -[INSERT], 866, 0 -[INSERT], 867, 0 -[INSERT], 868, 0 -[INSERT], 869, 0 -[INSERT], 870, 0 -[INSERT], 871, 0 -[INSERT], 872, 0 -[INSERT], 873, 0 -[INSERT], 874, 0 -[INSERT], 875, 0 -[INSERT], 876, 0 -[INSERT], 877, 0 -[INSERT], 878, 0 -[INSERT], 879, 0 -[INSERT], 880, 0 -[INSERT], 881, 0 -[INSERT], 882, 0 -[INSERT], 883, 0 -[INSERT], 884, 0 -[INSERT], 885, 0 -[INSERT], 886, 0 -[INSERT], 887, 0 -[INSERT], 888, 0 -[INSERT], 889, 0 -[INSERT], 890, 0 -[INSERT], 891, 0 -[INSERT], 892, 0 -[INSERT], 893, 0 -[INSERT], 894, 0 -[INSERT], 895, 0 -[INSERT], 896, 0 -[INSERT], 897, 0 -[INSERT], 898, 0 -[INSERT], 899, 0 -[INSERT], 900, 0 -[INSERT], 901, 0 -[INSERT], 902, 0 -[INSERT], 903, 0 -[INSERT], 904, 0 -[INSERT], 905, 0 -[INSERT], 906, 0 -[INSERT], 907, 0 -[INSERT], 908, 0 -[INSERT], 909, 0 -[INSERT], 910, 0 -[INSERT], 911, 0 -[INSERT], 912, 0 -[INSERT], 913, 0 -[INSERT], 914, 0 -[INSERT], 915, 0 -[INSERT], 916, 0 -[INSERT], 917, 0 -[INSERT], 918, 0 -[INSERT], 919, 0 -[INSERT], 920, 0 -[INSERT], 921, 0 -[INSERT], 922, 0 -[INSERT], 923, 0 -[INSERT], 924, 0 -[INSERT], 925, 0 -[INSERT], 926, 0 -[INSERT], 927, 0 -[INSERT], 928, 0 -[INSERT], 929, 0 -[INSERT], 930, 0 -[INSERT], 931, 0 -[INSERT], 932, 0 -[INSERT], 933, 0 -[INSERT], 934, 0 -[INSERT], 935, 0 -[INSERT], 936, 0 -[INSERT], 937, 0 -[INSERT], 938, 0 -[INSERT], 939, 0 -[INSERT], 940, 0 -[INSERT], 941, 0 -[INSERT], 942, 0 -[INSERT], 943, 0 -[INSERT], 944, 0 -[INSERT], 945, 0 -[INSERT], 946, 0 -[INSERT], 947, 0 -[INSERT], 948, 0 -[INSERT], 949, 0 -[INSERT], 950, 0 -[INSERT], 951, 0 -[INSERT], 952, 0 -[INSERT], 953, 0 -[INSERT], 954, 0 -[INSERT], 955, 0 -[INSERT], 956, 0 -[INSERT], 957, 0 -[INSERT], 958, 0 -[INSERT], 959, 0 -[INSERT], 960, 0 -[INSERT], 961, 0 -[INSERT], 962, 0 -[INSERT], 963, 0 -[INSERT], 964, 0 -[INSERT], 965, 0 -[INSERT], 966, 0 -[INSERT], 967, 0 -[INSERT], 968, 0 -[INSERT], 969, 0 -[INSERT], 970, 0 -[INSERT], 971, 0 -[INSERT], 972, 0 -[INSERT], 973, 0 -[INSERT], 974, 0 -[INSERT], 975, 0 -[INSERT], 976, 0 -[INSERT], 977, 0 -[INSERT], 978, 0 -[INSERT], 979, 0 -[INSERT], 980, 0 -[INSERT], 981, 0 -[INSERT], 982, 0 -[INSERT], 983, 0 -[INSERT], 984, 0 -[INSERT], 985, 0 -[INSERT], 986, 0 -[INSERT], 987, 0 -[INSERT], 988, 0 -[INSERT], 989, 0 -[INSERT], 990, 0 -[INSERT], 991, 0 -[INSERT], 992, 0 -[INSERT], 993, 0 -[INSERT], 994, 0 -[INSERT], 995, 0 -[INSERT], 996, 0 -[INSERT], 997, 0 -[INSERT], 998, 0 -[INSERT], 999, 0 -[INSERT], >1000, 0 -[CLEANUP], Operations, 1 -[CLEANUP], AverageLatency(us), 222.0 -[CLEANUP], MinLatency(us), 222 -[CLEANUP], MaxLatency(us), 222 -[CLEANUP], 95thPercentileLatency(ms), 0 -[CLEANUP], 99thPercentileLatency(ms), 0 -[CLEANUP], 0, 1 -[CLEANUP], 1, 0 -[CLEANUP], 2, 0 -[CLEANUP], 3, 0 -[CLEANUP], 4, 0 -[CLEANUP], 5, 0 -[CLEANUP], 6, 0 -[CLEANUP], 7, 0 -[CLEANUP], 8, 0 -[CLEANUP], 9, 0 -[CLEANUP], 10, 0 -[CLEANUP], 11, 0 -[CLEANUP], 12, 0 -[CLEANUP], 13, 0 -[CLEANUP], 14, 0 -[CLEANUP], 15, 0 -[CLEANUP], 16, 0 -[CLEANUP], 17, 0 -[CLEANUP], 18, 0 -[CLEANUP], 19, 0 -[CLEANUP], 20, 0 -[CLEANUP], 21, 0 -[CLEANUP], 22, 0 -[CLEANUP], 23, 0 -[CLEANUP], 24, 0 -[CLEANUP], 25, 0 -[CLEANUP], 26, 0 -[CLEANUP], 27, 0 -[CLEANUP], 28, 0 -[CLEANUP], 29, 0 -[CLEANUP], 30, 0 -[CLEANUP], 31, 0 -[CLEANUP], 32, 0 -[CLEANUP], 33, 0 -[CLEANUP], 34, 0 -[CLEANUP], 35, 0 -[CLEANUP], 36, 0 -[CLEANUP], 37, 0 -[CLEANUP], 38, 0 -[CLEANUP], 39, 0 -[CLEANUP], 40, 0 -[CLEANUP], 41, 0 -[CLEANUP], 42, 0 -[CLEANUP], 43, 0 -[CLEANUP], 44, 0 -[CLEANUP], 45, 0 -[CLEANUP], 46, 0 -[CLEANUP], 47, 0 -[CLEANUP], 48, 0 -[CLEANUP], 49, 0 -[CLEANUP], 50, 0 -[CLEANUP], 51, 0 -[CLEANUP], 52, 0 -[CLEANUP], 53, 0 -[CLEANUP], 54, 0 -[CLEANUP], 55, 0 -[CLEANUP], 56, 0 -[CLEANUP], 57, 0 -[CLEANUP], 58, 0 -[CLEANUP], 59, 0 -[CLEANUP], 60, 0 -[CLEANUP], 61, 0 -[CLEANUP], 62, 0 -[CLEANUP], 63, 0 -[CLEANUP], 64, 0 -[CLEANUP], 65, 0 -[CLEANUP], 66, 0 -[CLEANUP], 67, 0 -[CLEANUP], 68, 0 -[CLEANUP], 69, 0 -[CLEANUP], 70, 0 -[CLEANUP], 71, 0 -[CLEANUP], 72, 0 -[CLEANUP], 73, 0 -[CLEANUP], 74, 0 -[CLEANUP], 75, 0 -[CLEANUP], 76, 0 -[CLEANUP], 77, 0 -[CLEANUP], 78, 0 -[CLEANUP], 79, 0 -[CLEANUP], 80, 0 -[CLEANUP], 81, 0 -[CLEANUP], 82, 0 -[CLEANUP], 83, 0 -[CLEANUP], 84, 0 -[CLEANUP], 85, 0 -[CLEANUP], 86, 0 -[CLEANUP], 87, 0 -[CLEANUP], 88, 0 -[CLEANUP], 89, 0 -[CLEANUP], 90, 0 -[CLEANUP], 91, 0 -[CLEANUP], 92, 0 -[CLEANUP], 93, 0 -[CLEANUP], 94, 0 -[CLEANUP], 95, 0 -[CLEANUP], 96, 0 -[CLEANUP], 97, 0 -[CLEANUP], 98, 0 -[CLEANUP], 99, 0 -[CLEANUP], 100, 0 -[CLEANUP], 101, 0 -[CLEANUP], 102, 0 -[CLEANUP], 103, 0 -[CLEANUP], 104, 0 -[CLEANUP], 105, 0 -[CLEANUP], 106, 0 -[CLEANUP], 107, 0 -[CLEANUP], 108, 0 -[CLEANUP], 109, 0 -[CLEANUP], 110, 0 -[CLEANUP], 111, 0 -[CLEANUP], 112, 0 -[CLEANUP], 113, 0 -[CLEANUP], 114, 0 -[CLEANUP], 115, 0 -[CLEANUP], 116, 0 -[CLEANUP], 117, 0 -[CLEANUP], 118, 0 -[CLEANUP], 119, 0 -[CLEANUP], 120, 0 -[CLEANUP], 121, 0 -[CLEANUP], 122, 0 -[CLEANUP], 123, 0 -[CLEANUP], 124, 0 -[CLEANUP], 125, 0 -[CLEANUP], 126, 0 -[CLEANUP], 127, 0 -[CLEANUP], 128, 0 -[CLEANUP], 129, 0 -[CLEANUP], 130, 0 -[CLEANUP], 131, 0 -[CLEANUP], 132, 0 -[CLEANUP], 133, 0 -[CLEANUP], 134, 0 -[CLEANUP], 135, 0 -[CLEANUP], 136, 0 -[CLEANUP], 137, 0 -[CLEANUP], 138, 0 -[CLEANUP], 139, 0 -[CLEANUP], 140, 0 -[CLEANUP], 141, 0 -[CLEANUP], 142, 0 -[CLEANUP], 143, 0 -[CLEANUP], 144, 0 -[CLEANUP], 145, 0 -[CLEANUP], 146, 0 -[CLEANUP], 147, 0 -[CLEANUP], 148, 0 -[CLEANUP], 149, 0 -[CLEANUP], 150, 0 -[CLEANUP], 151, 0 -[CLEANUP], 152, 0 -[CLEANUP], 153, 0 -[CLEANUP], 154, 0 -[CLEANUP], 155, 0 -[CLEANUP], 156, 0 -[CLEANUP], 157, 0 -[CLEANUP], 158, 0 -[CLEANUP], 159, 0 -[CLEANUP], 160, 0 -[CLEANUP], 161, 0 -[CLEANUP], 162, 0 -[CLEANUP], 163, 0 -[CLEANUP], 164, 0 -[CLEANUP], 165, 0 -[CLEANUP], 166, 0 -[CLEANUP], 167, 0 -[CLEANUP], 168, 0 -[CLEANUP], 169, 0 -[CLEANUP], 170, 0 -[CLEANUP], 171, 0 -[CLEANUP], 172, 0 -[CLEANUP], 173, 0 -[CLEANUP], 174, 0 -[CLEANUP], 175, 0 -[CLEANUP], 176, 0 -[CLEANUP], 177, 0 -[CLEANUP], 178, 0 -[CLEANUP], 179, 0 -[CLEANUP], 180, 0 -[CLEANUP], 181, 0 -[CLEANUP], 182, 0 -[CLEANUP], 183, 0 -[CLEANUP], 184, 0 -[CLEANUP], 185, 0 -[CLEANUP], 186, 0 -[CLEANUP], 187, 0 -[CLEANUP], 188, 0 -[CLEANUP], 189, 0 -[CLEANUP], 190, 0 -[CLEANUP], 191, 0 -[CLEANUP], 192, 0 -[CLEANUP], 193, 0 -[CLEANUP], 194, 0 -[CLEANUP], 195, 0 -[CLEANUP], 196, 0 -[CLEANUP], 197, 0 -[CLEANUP], 198, 0 -[CLEANUP], 199, 0 -[CLEANUP], 200, 0 -[CLEANUP], 201, 0 -[CLEANUP], 202, 0 -[CLEANUP], 203, 0 -[CLEANUP], 204, 0 -[CLEANUP], 205, 0 -[CLEANUP], 206, 0 -[CLEANUP], 207, 0 -[CLEANUP], 208, 0 -[CLEANUP], 209, 0 -[CLEANUP], 210, 0 -[CLEANUP], 211, 0 -[CLEANUP], 212, 0 -[CLEANUP], 213, 0 -[CLEANUP], 214, 0 -[CLEANUP], 215, 0 -[CLEANUP], 216, 0 -[CLEANUP], 217, 0 -[CLEANUP], 218, 0 -[CLEANUP], 219, 0 -[CLEANUP], 220, 0 -[CLEANUP], 221, 0 -[CLEANUP], 222, 0 -[CLEANUP], 223, 0 -[CLEANUP], 224, 0 -[CLEANUP], 225, 0 -[CLEANUP], 226, 0 -[CLEANUP], 227, 0 -[CLEANUP], 228, 0 -[CLEANUP], 229, 0 -[CLEANUP], 230, 0 -[CLEANUP], 231, 0 -[CLEANUP], 232, 0 -[CLEANUP], 233, 0 -[CLEANUP], 234, 0 -[CLEANUP], 235, 0 -[CLEANUP], 236, 0 -[CLEANUP], 237, 0 -[CLEANUP], 238, 0 -[CLEANUP], 239, 0 -[CLEANUP], 240, 0 -[CLEANUP], 241, 0 -[CLEANUP], 242, 0 -[CLEANUP], 243, 0 -[CLEANUP], 244, 0 -[CLEANUP], 245, 0 -[CLEANUP], 246, 0 -[CLEANUP], 247, 0 -[CLEANUP], 248, 0 -[CLEANUP], 249, 0 -[CLEANUP], 250, 0 -[CLEANUP], 251, 0 -[CLEANUP], 252, 0 -[CLEANUP], 253, 0 -[CLEANUP], 254, 0 -[CLEANUP], 255, 0 -[CLEANUP], 256, 0 -[CLEANUP], 257, 0 -[CLEANUP], 258, 0 -[CLEANUP], 259, 0 -[CLEANUP], 260, 0 -[CLEANUP], 261, 0 -[CLEANUP], 262, 0 -[CLEANUP], 263, 0 -[CLEANUP], 264, 0 -[CLEANUP], 265, 0 -[CLEANUP], 266, 0 -[CLEANUP], 267, 0 -[CLEANUP], 268, 0 -[CLEANUP], 269, 0 -[CLEANUP], 270, 0 -[CLEANUP], 271, 0 -[CLEANUP], 272, 0 -[CLEANUP], 273, 0 -[CLEANUP], 274, 0 -[CLEANUP], 275, 0 -[CLEANUP], 276, 0 -[CLEANUP], 277, 0 -[CLEANUP], 278, 0 -[CLEANUP], 279, 0 -[CLEANUP], 280, 0 -[CLEANUP], 281, 0 -[CLEANUP], 282, 0 -[CLEANUP], 283, 0 -[CLEANUP], 284, 0 -[CLEANUP], 285, 0 -[CLEANUP], 286, 0 -[CLEANUP], 287, 0 -[CLEANUP], 288, 0 -[CLEANUP], 289, 0 -[CLEANUP], 290, 0 -[CLEANUP], 291, 0 -[CLEANUP], 292, 0 -[CLEANUP], 293, 0 -[CLEANUP], 294, 0 -[CLEANUP], 295, 0 -[CLEANUP], 296, 0 -[CLEANUP], 297, 0 -[CLEANUP], 298, 0 -[CLEANUP], 299, 0 -[CLEANUP], 300, 0 -[CLEANUP], 301, 0 -[CLEANUP], 302, 0 -[CLEANUP], 303, 0 -[CLEANUP], 304, 0 -[CLEANUP], 305, 0 -[CLEANUP], 306, 0 -[CLEANUP], 307, 0 -[CLEANUP], 308, 0 -[CLEANUP], 309, 0 -[CLEANUP], 310, 0 -[CLEANUP], 311, 0 -[CLEANUP], 312, 0 -[CLEANUP], 313, 0 -[CLEANUP], 314, 0 -[CLEANUP], 315, 0 -[CLEANUP], 316, 0 -[CLEANUP], 317, 0 -[CLEANUP], 318, 0 -[CLEANUP], 319, 0 -[CLEANUP], 320, 0 -[CLEANUP], 321, 0 -[CLEANUP], 322, 0 -[CLEANUP], 323, 0 -[CLEANUP], 324, 0 -[CLEANUP], 325, 0 -[CLEANUP], 326, 0 -[CLEANUP], 327, 0 -[CLEANUP], 328, 0 -[CLEANUP], 329, 0 -[CLEANUP], 330, 0 -[CLEANUP], 331, 0 -[CLEANUP], 332, 0 -[CLEANUP], 333, 0 -[CLEANUP], 334, 0 -[CLEANUP], 335, 0 -[CLEANUP], 336, 0 -[CLEANUP], 337, 0 -[CLEANUP], 338, 0 -[CLEANUP], 339, 0 -[CLEANUP], 340, 0 -[CLEANUP], 341, 0 -[CLEANUP], 342, 0 -[CLEANUP], 343, 0 -[CLEANUP], 344, 0 -[CLEANUP], 345, 0 -[CLEANUP], 346, 0 -[CLEANUP], 347, 0 -[CLEANUP], 348, 0 -[CLEANUP], 349, 0 -[CLEANUP], 350, 0 -[CLEANUP], 351, 0 -[CLEANUP], 352, 0 -[CLEANUP], 353, 0 -[CLEANUP], 354, 0 -[CLEANUP], 355, 0 -[CLEANUP], 356, 0 -[CLEANUP], 357, 0 -[CLEANUP], 358, 0 -[CLEANUP], 359, 0 -[CLEANUP], 360, 0 -[CLEANUP], 361, 0 -[CLEANUP], 362, 0 -[CLEANUP], 363, 0 -[CLEANUP], 364, 0 -[CLEANUP], 365, 0 -[CLEANUP], 366, 0 -[CLEANUP], 367, 0 -[CLEANUP], 368, 0 -[CLEANUP], 369, 0 -[CLEANUP], 370, 0 -[CLEANUP], 371, 0 -[CLEANUP], 372, 0 -[CLEANUP], 373, 0 -[CLEANUP], 374, 0 -[CLEANUP], 375, 0 -[CLEANUP], 376, 0 -[CLEANUP], 377, 0 -[CLEANUP], 378, 0 -[CLEANUP], 379, 0 -[CLEANUP], 380, 0 -[CLEANUP], 381, 0 -[CLEANUP], 382, 0 -[CLEANUP], 383, 0 -[CLEANUP], 384, 0 -[CLEANUP], 385, 0 -[CLEANUP], 386, 0 -[CLEANUP], 387, 0 -[CLEANUP], 388, 0 -[CLEANUP], 389, 0 -[CLEANUP], 390, 0 -[CLEANUP], 391, 0 -[CLEANUP], 392, 0 -[CLEANUP], 393, 0 -[CLEANUP], 394, 0 -[CLEANUP], 395, 0 -[CLEANUP], 396, 0 -[CLEANUP], 397, 0 -[CLEANUP], 398, 0 -[CLEANUP], 399, 0 -[CLEANUP], 400, 0 -[CLEANUP], 401, 0 -[CLEANUP], 402, 0 -[CLEANUP], 403, 0 -[CLEANUP], 404, 0 -[CLEANUP], 405, 0 -[CLEANUP], 406, 0 -[CLEANUP], 407, 0 -[CLEANUP], 408, 0 -[CLEANUP], 409, 0 -[CLEANUP], 410, 0 -[CLEANUP], 411, 0 -[CLEANUP], 412, 0 -[CLEANUP], 413, 0 -[CLEANUP], 414, 0 -[CLEANUP], 415, 0 -[CLEANUP], 416, 0 -[CLEANUP], 417, 0 -[CLEANUP], 418, 0 -[CLEANUP], 419, 0 -[CLEANUP], 420, 0 -[CLEANUP], 421, 0 -[CLEANUP], 422, 0 -[CLEANUP], 423, 0 -[CLEANUP], 424, 0 -[CLEANUP], 425, 0 -[CLEANUP], 426, 0 -[CLEANUP], 427, 0 -[CLEANUP], 428, 0 -[CLEANUP], 429, 0 -[CLEANUP], 430, 0 -[CLEANUP], 431, 0 -[CLEANUP], 432, 0 -[CLEANUP], 433, 0 -[CLEANUP], 434, 0 -[CLEANUP], 435, 0 -[CLEANUP], 436, 0 -[CLEANUP], 437, 0 -[CLEANUP], 438, 0 -[CLEANUP], 439, 0 -[CLEANUP], 440, 0 -[CLEANUP], 441, 0 -[CLEANUP], 442, 0 -[CLEANUP], 443, 0 -[CLEANUP], 444, 0 -[CLEANUP], 445, 0 -[CLEANUP], 446, 0 -[CLEANUP], 447, 0 -[CLEANUP], 448, 0 -[CLEANUP], 449, 0 -[CLEANUP], 450, 0 -[CLEANUP], 451, 0 -[CLEANUP], 452, 0 -[CLEANUP], 453, 0 -[CLEANUP], 454, 0 -[CLEANUP], 455, 0 -[CLEANUP], 456, 0 -[CLEANUP], 457, 0 -[CLEANUP], 458, 0 -[CLEANUP], 459, 0 -[CLEANUP], 460, 0 -[CLEANUP], 461, 0 -[CLEANUP], 462, 0 -[CLEANUP], 463, 0 -[CLEANUP], 464, 0 -[CLEANUP], 465, 0 -[CLEANUP], 466, 0 -[CLEANUP], 467, 0 -[CLEANUP], 468, 0 -[CLEANUP], 469, 0 -[CLEANUP], 470, 0 -[CLEANUP], 471, 0 -[CLEANUP], 472, 0 -[CLEANUP], 473, 0 -[CLEANUP], 474, 0 -[CLEANUP], 475, 0 -[CLEANUP], 476, 0 -[CLEANUP], 477, 0 -[CLEANUP], 478, 0 -[CLEANUP], 479, 0 -[CLEANUP], 480, 0 -[CLEANUP], 481, 0 -[CLEANUP], 482, 0 -[CLEANUP], 483, 0 -[CLEANUP], 484, 0 -[CLEANUP], 485, 0 -[CLEANUP], 486, 0 -[CLEANUP], 487, 0 -[CLEANUP], 488, 0 -[CLEANUP], 489, 0 -[CLEANUP], 490, 0 -[CLEANUP], 491, 0 -[CLEANUP], 492, 0 -[CLEANUP], 493, 0 -[CLEANUP], 494, 0 -[CLEANUP], 495, 0 -[CLEANUP], 496, 0 -[CLEANUP], 497, 0 -[CLEANUP], 498, 0 -[CLEANUP], 499, 0 -[CLEANUP], 500, 0 -[CLEANUP], 501, 0 -[CLEANUP], 502, 0 -[CLEANUP], 503, 0 -[CLEANUP], 504, 0 -[CLEANUP], 505, 0 -[CLEANUP], 506, 0 -[CLEANUP], 507, 0 -[CLEANUP], 508, 0 -[CLEANUP], 509, 0 -[CLEANUP], 510, 0 -[CLEANUP], 511, 0 -[CLEANUP], 512, 0 -[CLEANUP], 513, 0 -[CLEANUP], 514, 0 -[CLEANUP], 515, 0 -[CLEANUP], 516, 0 -[CLEANUP], 517, 0 -[CLEANUP], 518, 0 -[CLEANUP], 519, 0 -[CLEANUP], 520, 0 -[CLEANUP], 521, 0 -[CLEANUP], 522, 0 -[CLEANUP], 523, 0 -[CLEANUP], 524, 0 -[CLEANUP], 525, 0 -[CLEANUP], 526, 0 -[CLEANUP], 527, 0 -[CLEANUP], 528, 0 -[CLEANUP], 529, 0 -[CLEANUP], 530, 0 -[CLEANUP], 531, 0 -[CLEANUP], 532, 0 -[CLEANUP], 533, 0 -[CLEANUP], 534, 0 -[CLEANUP], 535, 0 -[CLEANUP], 536, 0 -[CLEANUP], 537, 0 -[CLEANUP], 538, 0 -[CLEANUP], 539, 0 -[CLEANUP], 540, 0 -[CLEANUP], 541, 0 -[CLEANUP], 542, 0 -[CLEANUP], 543, 0 -[CLEANUP], 544, 0 -[CLEANUP], 545, 0 -[CLEANUP], 546, 0 -[CLEANUP], 547, 0 -[CLEANUP], 548, 0 -[CLEANUP], 549, 0 -[CLEANUP], 550, 0 -[CLEANUP], 551, 0 -[CLEANUP], 552, 0 -[CLEANUP], 553, 0 -[CLEANUP], 554, 0 -[CLEANUP], 555, 0 -[CLEANUP], 556, 0 -[CLEANUP], 557, 0 -[CLEANUP], 558, 0 -[CLEANUP], 559, 0 -[CLEANUP], 560, 0 -[CLEANUP], 561, 0 -[CLEANUP], 562, 0 -[CLEANUP], 563, 0 -[CLEANUP], 564, 0 -[CLEANUP], 565, 0 -[CLEANUP], 566, 0 -[CLEANUP], 567, 0 -[CLEANUP], 568, 0 -[CLEANUP], 569, 0 -[CLEANUP], 570, 0 -[CLEANUP], 571, 0 -[CLEANUP], 572, 0 -[CLEANUP], 573, 0 -[CLEANUP], 574, 0 -[CLEANUP], 575, 0 -[CLEANUP], 576, 0 -[CLEANUP], 577, 0 -[CLEANUP], 578, 0 -[CLEANUP], 579, 0 -[CLEANUP], 580, 0 -[CLEANUP], 581, 0 -[CLEANUP], 582, 0 -[CLEANUP], 583, 0 -[CLEANUP], 584, 0 -[CLEANUP], 585, 0 -[CLEANUP], 586, 0 -[CLEANUP], 587, 0 -[CLEANUP], 588, 0 -[CLEANUP], 589, 0 -[CLEANUP], 590, 0 -[CLEANUP], 591, 0 -[CLEANUP], 592, 0 -[CLEANUP], 593, 0 -[CLEANUP], 594, 0 -[CLEANUP], 595, 0 -[CLEANUP], 596, 0 -[CLEANUP], 597, 0 -[CLEANUP], 598, 0 -[CLEANUP], 599, 0 -[CLEANUP], 600, 0 -[CLEANUP], 601, 0 -[CLEANUP], 602, 0 -[CLEANUP], 603, 0 -[CLEANUP], 604, 0 -[CLEANUP], 605, 0 -[CLEANUP], 606, 0 -[CLEANUP], 607, 0 -[CLEANUP], 608, 0 -[CLEANUP], 609, 0 -[CLEANUP], 610, 0 -[CLEANUP], 611, 0 -[CLEANUP], 612, 0 -[CLEANUP], 613, 0 -[CLEANUP], 614, 0 -[CLEANUP], 615, 0 -[CLEANUP], 616, 0 -[CLEANUP], 617, 0 -[CLEANUP], 618, 0 -[CLEANUP], 619, 0 -[CLEANUP], 620, 0 -[CLEANUP], 621, 0 -[CLEANUP], 622, 0 -[CLEANUP], 623, 0 -[CLEANUP], 624, 0 -[CLEANUP], 625, 0 -[CLEANUP], 626, 0 -[CLEANUP], 627, 0 -[CLEANUP], 628, 0 -[CLEANUP], 629, 0 -[CLEANUP], 630, 0 -[CLEANUP], 631, 0 -[CLEANUP], 632, 0 -[CLEANUP], 633, 0 -[CLEANUP], 634, 0 -[CLEANUP], 635, 0 -[CLEANUP], 636, 0 -[CLEANUP], 637, 0 -[CLEANUP], 638, 0 -[CLEANUP], 639, 0 -[CLEANUP], 640, 0 -[CLEANUP], 641, 0 -[CLEANUP], 642, 0 -[CLEANUP], 643, 0 -[CLEANUP], 644, 0 -[CLEANUP], 645, 0 -[CLEANUP], 646, 0 -[CLEANUP], 647, 0 -[CLEANUP], 648, 0 -[CLEANUP], 649, 0 -[CLEANUP], 650, 0 -[CLEANUP], 651, 0 -[CLEANUP], 652, 0 -[CLEANUP], 653, 0 -[CLEANUP], 654, 0 -[CLEANUP], 655, 0 -[CLEANUP], 656, 0 -[CLEANUP], 657, 0 -[CLEANUP], 658, 0 -[CLEANUP], 659, 0 -[CLEANUP], 660, 0 -[CLEANUP], 661, 0 -[CLEANUP], 662, 0 -[CLEANUP], 663, 0 -[CLEANUP], 664, 0 -[CLEANUP], 665, 0 -[CLEANUP], 666, 0 -[CLEANUP], 667, 0 -[CLEANUP], 668, 0 -[CLEANUP], 669, 0 -[CLEANUP], 670, 0 -[CLEANUP], 671, 0 -[CLEANUP], 672, 0 -[CLEANUP], 673, 0 -[CLEANUP], 674, 0 -[CLEANUP], 675, 0 -[CLEANUP], 676, 0 -[CLEANUP], 677, 0 -[CLEANUP], 678, 0 -[CLEANUP], 679, 0 -[CLEANUP], 680, 0 -[CLEANUP], 681, 0 -[CLEANUP], 682, 0 -[CLEANUP], 683, 0 -[CLEANUP], 684, 0 -[CLEANUP], 685, 0 -[CLEANUP], 686, 0 -[CLEANUP], 687, 0 -[CLEANUP], 688, 0 -[CLEANUP], 689, 0 -[CLEANUP], 690, 0 -[CLEANUP], 691, 0 -[CLEANUP], 692, 0 -[CLEANUP], 693, 0 -[CLEANUP], 694, 0 -[CLEANUP], 695, 0 -[CLEANUP], 696, 0 -[CLEANUP], 697, 0 -[CLEANUP], 698, 0 -[CLEANUP], 699, 0 -[CLEANUP], 700, 0 -[CLEANUP], 701, 0 -[CLEANUP], 702, 0 -[CLEANUP], 703, 0 -[CLEANUP], 704, 0 -[CLEANUP], 705, 0 -[CLEANUP], 706, 0 -[CLEANUP], 707, 0 -[CLEANUP], 708, 0 -[CLEANUP], 709, 0 -[CLEANUP], 710, 0 -[CLEANUP], 711, 0 -[CLEANUP], 712, 0 -[CLEANUP], 713, 0 -[CLEANUP], 714, 0 -[CLEANUP], 715, 0 -[CLEANUP], 716, 0 -[CLEANUP], 717, 0 -[CLEANUP], 718, 0 -[CLEANUP], 719, 0 -[CLEANUP], 720, 0 -[CLEANUP], 721, 0 -[CLEANUP], 722, 0 -[CLEANUP], 723, 0 -[CLEANUP], 724, 0 -[CLEANUP], 725, 0 -[CLEANUP], 726, 0 -[CLEANUP], 727, 0 -[CLEANUP], 728, 0 -[CLEANUP], 729, 0 -[CLEANUP], 730, 0 -[CLEANUP], 731, 0 -[CLEANUP], 732, 0 -[CLEANUP], 733, 0 -[CLEANUP], 734, 0 -[CLEANUP], 735, 0 -[CLEANUP], 736, 0 -[CLEANUP], 737, 0 -[CLEANUP], 738, 0 -[CLEANUP], 739, 0 -[CLEANUP], 740, 0 -[CLEANUP], 741, 0 -[CLEANUP], 742, 0 -[CLEANUP], 743, 0 -[CLEANUP], 744, 0 -[CLEANUP], 745, 0 -[CLEANUP], 746, 0 -[CLEANUP], 747, 0 -[CLEANUP], 748, 0 -[CLEANUP], 749, 0 -[CLEANUP], 750, 0 -[CLEANUP], 751, 0 -[CLEANUP], 752, 0 -[CLEANUP], 753, 0 -[CLEANUP], 754, 0 -[CLEANUP], 755, 0 -[CLEANUP], 756, 0 -[CLEANUP], 757, 0 -[CLEANUP], 758, 0 -[CLEANUP], 759, 0 -[CLEANUP], 760, 0 -[CLEANUP], 761, 0 -[CLEANUP], 762, 0 -[CLEANUP], 763, 0 -[CLEANUP], 764, 0 -[CLEANUP], 765, 0 -[CLEANUP], 766, 0 -[CLEANUP], 767, 0 -[CLEANUP], 768, 0 -[CLEANUP], 769, 0 -[CLEANUP], 770, 0 -[CLEANUP], 771, 0 -[CLEANUP], 772, 0 -[CLEANUP], 773, 0 -[CLEANUP], 774, 0 -[CLEANUP], 775, 0 -[CLEANUP], 776, 0 -[CLEANUP], 777, 0 -[CLEANUP], 778, 0 -[CLEANUP], 779, 0 -[CLEANUP], 780, 0 -[CLEANUP], 781, 0 -[CLEANUP], 782, 0 -[CLEANUP], 783, 0 -[CLEANUP], 784, 0 -[CLEANUP], 785, 0 -[CLEANUP], 786, 0 -[CLEANUP], 787, 0 -[CLEANUP], 788, 0 -[CLEANUP], 789, 0 -[CLEANUP], 790, 0 -[CLEANUP], 791, 0 -[CLEANUP], 792, 0 -[CLEANUP], 793, 0 -[CLEANUP], 794, 0 -[CLEANUP], 795, 0 -[CLEANUP], 796, 0 -[CLEANUP], 797, 0 -[CLEANUP], 798, 0 -[CLEANUP], 799, 0 -[CLEANUP], 800, 0 -[CLEANUP], 801, 0 -[CLEANUP], 802, 0 -[CLEANUP], 803, 0 -[CLEANUP], 804, 0 -[CLEANUP], 805, 0 -[CLEANUP], 806, 0 -[CLEANUP], 807, 0 -[CLEANUP], 808, 0 -[CLEANUP], 809, 0 -[CLEANUP], 810, 0 -[CLEANUP], 811, 0 -[CLEANUP], 812, 0 -[CLEANUP], 813, 0 -[CLEANUP], 814, 0 -[CLEANUP], 815, 0 -[CLEANUP], 816, 0 -[CLEANUP], 817, 0 -[CLEANUP], 818, 0 -[CLEANUP], 819, 0 -[CLEANUP], 820, 0 -[CLEANUP], 821, 0 -[CLEANUP], 822, 0 -[CLEANUP], 823, 0 -[CLEANUP], 824, 0 -[CLEANUP], 825, 0 -[CLEANUP], 826, 0 -[CLEANUP], 827, 0 -[CLEANUP], 828, 0 -[CLEANUP], 829, 0 -[CLEANUP], 830, 0 -[CLEANUP], 831, 0 -[CLEANUP], 832, 0 -[CLEANUP], 833, 0 -[CLEANUP], 834, 0 -[CLEANUP], 835, 0 -[CLEANUP], 836, 0 -[CLEANUP], 837, 0 -[CLEANUP], 838, 0 -[CLEANUP], 839, 0 -[CLEANUP], 840, 0 -[CLEANUP], 841, 0 -[CLEANUP], 842, 0 -[CLEANUP], 843, 0 -[CLEANUP], 844, 0 -[CLEANUP], 845, 0 -[CLEANUP], 846, 0 -[CLEANUP], 847, 0 -[CLEANUP], 848, 0 -[CLEANUP], 849, 0 -[CLEANUP], 850, 0 -[CLEANUP], 851, 0 -[CLEANUP], 852, 0 -[CLEANUP], 853, 0 -[CLEANUP], 854, 0 -[CLEANUP], 855, 0 -[CLEANUP], 856, 0 -[CLEANUP], 857, 0 -[CLEANUP], 858, 0 -[CLEANUP], 859, 0 -[CLEANUP], 860, 0 -[CLEANUP], 861, 0 -[CLEANUP], 862, 0 -[CLEANUP], 863, 0 -[CLEANUP], 864, 0 -[CLEANUP], 865, 0 -[CLEANUP], 866, 0 -[CLEANUP], 867, 0 -[CLEANUP], 868, 0 -[CLEANUP], 869, 0 -[CLEANUP], 870, 0 -[CLEANUP], 871, 0 -[CLEANUP], 872, 0 -[CLEANUP], 873, 0 -[CLEANUP], 874, 0 -[CLEANUP], 875, 0 -[CLEANUP], 876, 0 -[CLEANUP], 877, 0 -[CLEANUP], 878, 0 -[CLEANUP], 879, 0 -[CLEANUP], 880, 0 -[CLEANUP], 881, 0 -[CLEANUP], 882, 0 -[CLEANUP], 883, 0 -[CLEANUP], 884, 0 -[CLEANUP], 885, 0 -[CLEANUP], 886, 0 -[CLEANUP], 887, 0 -[CLEANUP], 888, 0 -[CLEANUP], 889, 0 -[CLEANUP], 890, 0 -[CLEANUP], 891, 0 -[CLEANUP], 892, 0 -[CLEANUP], 893, 0 -[CLEANUP], 894, 0 -[CLEANUP], 895, 0 -[CLEANUP], 896, 0 -[CLEANUP], 897, 0 -[CLEANUP], 898, 0 -[CLEANUP], 899, 0 -[CLEANUP], 900, 0 -[CLEANUP], 901, 0 -[CLEANUP], 902, 0 -[CLEANUP], 903, 0 -[CLEANUP], 904, 0 -[CLEANUP], 905, 0 -[CLEANUP], 906, 0 -[CLEANUP], 907, 0 -[CLEANUP], 908, 0 -[CLEANUP], 909, 0 -[CLEANUP], 910, 0 -[CLEANUP], 911, 0 -[CLEANUP], 912, 0 -[CLEANUP], 913, 0 -[CLEANUP], 914, 0 -[CLEANUP], 915, 0 -[CLEANUP], 916, 0 -[CLEANUP], 917, 0 -[CLEANUP], 918, 0 -[CLEANUP], 919, 0 -[CLEANUP], 920, 0 -[CLEANUP], 921, 0 -[CLEANUP], 922, 0 -[CLEANUP], 923, 0 -[CLEANUP], 924, 0 -[CLEANUP], 925, 0 -[CLEANUP], 926, 0 -[CLEANUP], 927, 0 -[CLEANUP], 928, 0 -[CLEANUP], 929, 0 -[CLEANUP], 930, 0 -[CLEANUP], 931, 0 -[CLEANUP], 932, 0 -[CLEANUP], 933, 0 -[CLEANUP], 934, 0 -[CLEANUP], 935, 0 -[CLEANUP], 936, 0 -[CLEANUP], 937, 0 -[CLEANUP], 938, 0 -[CLEANUP], 939, 0 -[CLEANUP], 940, 0 -[CLEANUP], 941, 0 -[CLEANUP], 942, 0 -[CLEANUP], 943, 0 -[CLEANUP], 944, 0 -[CLEANUP], 945, 0 -[CLEANUP], 946, 0 -[CLEANUP], 947, 0 -[CLEANUP], 948, 0 -[CLEANUP], 949, 0 -[CLEANUP], 950, 0 -[CLEANUP], 951, 0 -[CLEANUP], 952, 0 -[CLEANUP], 953, 0 -[CLEANUP], 954, 0 -[CLEANUP], 955, 0 -[CLEANUP], 956, 0 -[CLEANUP], 957, 0 -[CLEANUP], 958, 0 -[CLEANUP], 959, 0 -[CLEANUP], 960, 0 -[CLEANUP], 961, 0 -[CLEANUP], 962, 0 -[CLEANUP], 963, 0 -[CLEANUP], 964, 0 -[CLEANUP], 965, 0 -[CLEANUP], 966, 0 -[CLEANUP], 967, 0 -[CLEANUP], 968, 0 -[CLEANUP], 969, 0 -[CLEANUP], 970, 0 -[CLEANUP], 971, 0 -[CLEANUP], 972, 0 -[CLEANUP], 973, 0 -[CLEANUP], 974, 0 -[CLEANUP], 975, 0 -[CLEANUP], 976, 0 -[CLEANUP], 977, 0 -[CLEANUP], 978, 0 -[CLEANUP], 979, 0 -[CLEANUP], 980, 0 -[CLEANUP], 981, 0 -[CLEANUP], 982, 0 -[CLEANUP], 983, 0 -[CLEANUP], 984, 0 -[CLEANUP], 985, 0 -[CLEANUP], 986, 0 -[CLEANUP], 987, 0 -[CLEANUP], 988, 0 -[CLEANUP], 989, 0 -[CLEANUP], 990, 0 -[CLEANUP], 991, 0 -[CLEANUP], 992, 0 -[CLEANUP], 993, 0 -[CLEANUP], 994, 0 -[CLEANUP], 995, 0 -[CLEANUP], 996, 0 -[CLEANUP], 997, 0 -[CLEANUP], 998, 0 -[CLEANUP], 999, 0 -[CLEANUP], >1000, 0 -java -cp /home/YCSB/dynamodb/conf:/home/YCSB/core/target/core-0.1.4.jar:/home/YCSB/cassandra/target/slf4j-simple-1.7.2.jar:/home/YCSB/redis/target/redis-binding-0.1.4.jar:/home/YCSB/redis/target/archive-tmp/redis-binding-0.1.4.jar:/home/YCSB/infinispan/src/main/conf:/home/YCSB/nosqldb/src/main/conf:/home/YCSB/voldemort/src/main/conf:/home/YCSB/jdbc/src/main/conf:/home/YCSB/gemfire/src/main/conf:/home/YCSB/hbase/src/main/conf com.yahoo.ycsb.Client -db com.yahoo.ycsb.db.RedisClient -p redis.host=localhost -p redis.port=6379 -P workloads/workloada -p recordcount=1000000 -load DELETED YCSB/redistransactions.dat Index: YCSB/redistransactions.dat ================================================================== --- YCSB/redistransactions.dat +++ /dev/null @@ -1,3028 +0,0 @@ -YCSB Client 0.1 -Command line: -db com.yahoo.ycsb.db.RedisClient -p redis.host=localhost -p redis.port=6379 -P workloads/workloada -p operationcount=1000000 -t -[OVERALL], RunTime(ms), 99288.0 -[OVERALL], Throughput(ops/sec), 10071.710579324792 -[UPDATE], Operations, 499694 -[UPDATE], AverageLatency(us), 89.56316465676994 -[UPDATE], MinLatency(us), 75 -[UPDATE], MaxLatency(us), 10501 -[UPDATE], 95thPercentileLatency(ms), 0 -[UPDATE], 99thPercentileLatency(ms), 0 -[UPDATE], Return=0, 499694 -[UPDATE], 0, 499456 -[UPDATE], 1, 92 -[UPDATE], 2, 49 -[UPDATE], 3, 51 -[UPDATE], 4, 23 -[UPDATE], 5, 12 -[UPDATE], 6, 6 -[UPDATE], 7, 2 -[UPDATE], 8, 1 -[UPDATE], 9, 1 -[UPDATE], 10, 1 -[UPDATE], 11, 0 -[UPDATE], 12, 0 -[UPDATE], 13, 0 -[UPDATE], 14, 0 -[UPDATE], 15, 0 -[UPDATE], 16, 0 -[UPDATE], 17, 0 -[UPDATE], 18, 0 -[UPDATE], 19, 0 -[UPDATE], 20, 0 -[UPDATE], 21, 0 -[UPDATE], 22, 0 -[UPDATE], 23, 0 -[UPDATE], 24, 0 -[UPDATE], 25, 0 -[UPDATE], 26, 0 -[UPDATE], 27, 0 -[UPDATE], 28, 0 -[UPDATE], 29, 0 -[UPDATE], 30, 0 -[UPDATE], 31, 0 -[UPDATE], 32, 0 -[UPDATE], 33, 0 -[UPDATE], 34, 0 -[UPDATE], 35, 0 -[UPDATE], 36, 0 -[UPDATE], 37, 0 -[UPDATE], 38, 0 -[UPDATE], 39, 0 -[UPDATE], 40, 0 -[UPDATE], 41, 0 -[UPDATE], 42, 0 -[UPDATE], 43, 0 -[UPDATE], 44, 0 -[UPDATE], 45, 0 -[UPDATE], 46, 0 -[UPDATE], 47, 0 -[UPDATE], 48, 0 -[UPDATE], 49, 0 -[UPDATE], 50, 0 -[UPDATE], 51, 0 -[UPDATE], 52, 0 -[UPDATE], 53, 0 -[UPDATE], 54, 0 -[UPDATE], 55, 0 -[UPDATE], 56, 0 -[UPDATE], 57, 0 -[UPDATE], 58, 0 -[UPDATE], 59, 0 -[UPDATE], 60, 0 -[UPDATE], 61, 0 -[UPDATE], 62, 0 -[UPDATE], 63, 0 -[UPDATE], 64, 0 -[UPDATE], 65, 0 -[UPDATE], 66, 0 -[UPDATE], 67, 0 -[UPDATE], 68, 0 -[UPDATE], 69, 0 -[UPDATE], 70, 0 -[UPDATE], 71, 0 -[UPDATE], 72, 0 -[UPDATE], 73, 0 -[UPDATE], 74, 0 -[UPDATE], 75, 0 -[UPDATE], 76, 0 -[UPDATE], 77, 0 -[UPDATE], 78, 0 -[UPDATE], 79, 0 -[UPDATE], 80, 0 -[UPDATE], 81, 0 -[UPDATE], 82, 0 -[UPDATE], 83, 0 -[UPDATE], 84, 0 -[UPDATE], 85, 0 -[UPDATE], 86, 0 -[UPDATE], 87, 0 -[UPDATE], 88, 0 -[UPDATE], 89, 0 -[UPDATE], 90, 0 -[UPDATE], 91, 0 -[UPDATE], 92, 0 -[UPDATE], 93, 0 -[UPDATE], 94, 0 -[UPDATE], 95, 0 -[UPDATE], 96, 0 -[UPDATE], 97, 0 -[UPDATE], 98, 0 -[UPDATE], 99, 0 -[UPDATE], 100, 0 -[UPDATE], 101, 0 -[UPDATE], 102, 0 -[UPDATE], 103, 0 -[UPDATE], 104, 0 -[UPDATE], 105, 0 -[UPDATE], 106, 0 -[UPDATE], 107, 0 -[UPDATE], 108, 0 -[UPDATE], 109, 0 -[UPDATE], 110, 0 -[UPDATE], 111, 0 -[UPDATE], 112, 0 -[UPDATE], 113, 0 -[UPDATE], 114, 0 -[UPDATE], 115, 0 -[UPDATE], 116, 0 -[UPDATE], 117, 0 -[UPDATE], 118, 0 -[UPDATE], 119, 0 -[UPDATE], 120, 0 -[UPDATE], 121, 0 -[UPDATE], 122, 0 -[UPDATE], 123, 0 -[UPDATE], 124, 0 -[UPDATE], 125, 0 -[UPDATE], 126, 0 -[UPDATE], 127, 0 -[UPDATE], 128, 0 -[UPDATE], 129, 0 -[UPDATE], 130, 0 -[UPDATE], 131, 0 -[UPDATE], 132, 0 -[UPDATE], 133, 0 -[UPDATE], 134, 0 -[UPDATE], 135, 0 -[UPDATE], 136, 0 -[UPDATE], 137, 0 -[UPDATE], 138, 0 -[UPDATE], 139, 0 -[UPDATE], 140, 0 -[UPDATE], 141, 0 -[UPDATE], 142, 0 -[UPDATE], 143, 0 -[UPDATE], 144, 0 -[UPDATE], 145, 0 -[UPDATE], 146, 0 -[UPDATE], 147, 0 -[UPDATE], 148, 0 -[UPDATE], 149, 0 -[UPDATE], 150, 0 -[UPDATE], 151, 0 -[UPDATE], 152, 0 -[UPDATE], 153, 0 -[UPDATE], 154, 0 -[UPDATE], 155, 0 -[UPDATE], 156, 0 -[UPDATE], 157, 0 -[UPDATE], 158, 0 -[UPDATE], 159, 0 -[UPDATE], 160, 0 -[UPDATE], 161, 0 -[UPDATE], 162, 0 -[UPDATE], 163, 0 -[UPDATE], 164, 0 -[UPDATE], 165, 0 -[UPDATE], 166, 0 -[UPDATE], 167, 0 -[UPDATE], 168, 0 -[UPDATE], 169, 0 -[UPDATE], 170, 0 -[UPDATE], 171, 0 -[UPDATE], 172, 0 -[UPDATE], 173, 0 -[UPDATE], 174, 0 -[UPDATE], 175, 0 -[UPDATE], 176, 0 -[UPDATE], 177, 0 -[UPDATE], 178, 0 -[UPDATE], 179, 0 -[UPDATE], 180, 0 -[UPDATE], 181, 0 -[UPDATE], 182, 0 -[UPDATE], 183, 0 -[UPDATE], 184, 0 -[UPDATE], 185, 0 -[UPDATE], 186, 0 -[UPDATE], 187, 0 -[UPDATE], 188, 0 -[UPDATE], 189, 0 -[UPDATE], 190, 0 -[UPDATE], 191, 0 -[UPDATE], 192, 0 -[UPDATE], 193, 0 -[UPDATE], 194, 0 -[UPDATE], 195, 0 -[UPDATE], 196, 0 -[UPDATE], 197, 0 -[UPDATE], 198, 0 -[UPDATE], 199, 0 -[UPDATE], 200, 0 -[UPDATE], 201, 0 -[UPDATE], 202, 0 -[UPDATE], 203, 0 -[UPDATE], 204, 0 -[UPDATE], 205, 0 -[UPDATE], 206, 0 -[UPDATE], 207, 0 -[UPDATE], 208, 0 -[UPDATE], 209, 0 -[UPDATE], 210, 0 -[UPDATE], 211, 0 -[UPDATE], 212, 0 -[UPDATE], 213, 0 -[UPDATE], 214, 0 -[UPDATE], 215, 0 -[UPDATE], 216, 0 -[UPDATE], 217, 0 -[UPDATE], 218, 0 -[UPDATE], 219, 0 -[UPDATE], 220, 0 -[UPDATE], 221, 0 -[UPDATE], 222, 0 -[UPDATE], 223, 0 -[UPDATE], 224, 0 -[UPDATE], 225, 0 -[UPDATE], 226, 0 -[UPDATE], 227, 0 -[UPDATE], 228, 0 -[UPDATE], 229, 0 -[UPDATE], 230, 0 -[UPDATE], 231, 0 -[UPDATE], 232, 0 -[UPDATE], 233, 0 -[UPDATE], 234, 0 -[UPDATE], 235, 0 -[UPDATE], 236, 0 -[UPDATE], 237, 0 -[UPDATE], 238, 0 -[UPDATE], 239, 0 -[UPDATE], 240, 0 -[UPDATE], 241, 0 -[UPDATE], 242, 0 -[UPDATE], 243, 0 -[UPDATE], 244, 0 -[UPDATE], 245, 0 -[UPDATE], 246, 0 -[UPDATE], 247, 0 -[UPDATE], 248, 0 -[UPDATE], 249, 0 -[UPDATE], 250, 0 -[UPDATE], 251, 0 -[UPDATE], 252, 0 -[UPDATE], 253, 0 -[UPDATE], 254, 0 -[UPDATE], 255, 0 -[UPDATE], 256, 0 -[UPDATE], 257, 0 -[UPDATE], 258, 0 -[UPDATE], 259, 0 -[UPDATE], 260, 0 -[UPDATE], 261, 0 -[UPDATE], 262, 0 -[UPDATE], 263, 0 -[UPDATE], 264, 0 -[UPDATE], 265, 0 -[UPDATE], 266, 0 -[UPDATE], 267, 0 -[UPDATE], 268, 0 -[UPDATE], 269, 0 -[UPDATE], 270, 0 -[UPDATE], 271, 0 -[UPDATE], 272, 0 -[UPDATE], 273, 0 -[UPDATE], 274, 0 -[UPDATE], 275, 0 -[UPDATE], 276, 0 -[UPDATE], 277, 0 -[UPDATE], 278, 0 -[UPDATE], 279, 0 -[UPDATE], 280, 0 -[UPDATE], 281, 0 -[UPDATE], 282, 0 -[UPDATE], 283, 0 -[UPDATE], 284, 0 -[UPDATE], 285, 0 -[UPDATE], 286, 0 -[UPDATE], 287, 0 -[UPDATE], 288, 0 -[UPDATE], 289, 0 -[UPDATE], 290, 0 -[UPDATE], 291, 0 -[UPDATE], 292, 0 -[UPDATE], 293, 0 -[UPDATE], 294, 0 -[UPDATE], 295, 0 -[UPDATE], 296, 0 -[UPDATE], 297, 0 -[UPDATE], 298, 0 -[UPDATE], 299, 0 -[UPDATE], 300, 0 -[UPDATE], 301, 0 -[UPDATE], 302, 0 -[UPDATE], 303, 0 -[UPDATE], 304, 0 -[UPDATE], 305, 0 -[UPDATE], 306, 0 -[UPDATE], 307, 0 -[UPDATE], 308, 0 -[UPDATE], 309, 0 -[UPDATE], 310, 0 -[UPDATE], 311, 0 -[UPDATE], 312, 0 -[UPDATE], 313, 0 -[UPDATE], 314, 0 -[UPDATE], 315, 0 -[UPDATE], 316, 0 -[UPDATE], 317, 0 -[UPDATE], 318, 0 -[UPDATE], 319, 0 -[UPDATE], 320, 0 -[UPDATE], 321, 0 -[UPDATE], 322, 0 -[UPDATE], 323, 0 -[UPDATE], 324, 0 -[UPDATE], 325, 0 -[UPDATE], 326, 0 -[UPDATE], 327, 0 -[UPDATE], 328, 0 -[UPDATE], 329, 0 -[UPDATE], 330, 0 -[UPDATE], 331, 0 -[UPDATE], 332, 0 -[UPDATE], 333, 0 -[UPDATE], 334, 0 -[UPDATE], 335, 0 -[UPDATE], 336, 0 -[UPDATE], 337, 0 -[UPDATE], 338, 0 -[UPDATE], 339, 0 -[UPDATE], 340, 0 -[UPDATE], 341, 0 -[UPDATE], 342, 0 -[UPDATE], 343, 0 -[UPDATE], 344, 0 -[UPDATE], 345, 0 -[UPDATE], 346, 0 -[UPDATE], 347, 0 -[UPDATE], 348, 0 -[UPDATE], 349, 0 -[UPDATE], 350, 0 -[UPDATE], 351, 0 -[UPDATE], 352, 0 -[UPDATE], 353, 0 -[UPDATE], 354, 0 -[UPDATE], 355, 0 -[UPDATE], 356, 0 -[UPDATE], 357, 0 -[UPDATE], 358, 0 -[UPDATE], 359, 0 -[UPDATE], 360, 0 -[UPDATE], 361, 0 -[UPDATE], 362, 0 -[UPDATE], 363, 0 -[UPDATE], 364, 0 -[UPDATE], 365, 0 -[UPDATE], 366, 0 -[UPDATE], 367, 0 -[UPDATE], 368, 0 -[UPDATE], 369, 0 -[UPDATE], 370, 0 -[UPDATE], 371, 0 -[UPDATE], 372, 0 -[UPDATE], 373, 0 -[UPDATE], 374, 0 -[UPDATE], 375, 0 -[UPDATE], 376, 0 -[UPDATE], 377, 0 -[UPDATE], 378, 0 -[UPDATE], 379, 0 -[UPDATE], 380, 0 -[UPDATE], 381, 0 -[UPDATE], 382, 0 -[UPDATE], 383, 0 -[UPDATE], 384, 0 -[UPDATE], 385, 0 -[UPDATE], 386, 0 -[UPDATE], 387, 0 -[UPDATE], 388, 0 -[UPDATE], 389, 0 -[UPDATE], 390, 0 -[UPDATE], 391, 0 -[UPDATE], 392, 0 -[UPDATE], 393, 0 -[UPDATE], 394, 0 -[UPDATE], 395, 0 -[UPDATE], 396, 0 -[UPDATE], 397, 0 -[UPDATE], 398, 0 -[UPDATE], 399, 0 -[UPDATE], 400, 0 -[UPDATE], 401, 0 -[UPDATE], 402, 0 -[UPDATE], 403, 0 -[UPDATE], 404, 0 -[UPDATE], 405, 0 -[UPDATE], 406, 0 -[UPDATE], 407, 0 -[UPDATE], 408, 0 -[UPDATE], 409, 0 -[UPDATE], 410, 0 -[UPDATE], 411, 0 -[UPDATE], 412, 0 -[UPDATE], 413, 0 -[UPDATE], 414, 0 -[UPDATE], 415, 0 -[UPDATE], 416, 0 -[UPDATE], 417, 0 -[UPDATE], 418, 0 -[UPDATE], 419, 0 -[UPDATE], 420, 0 -[UPDATE], 421, 0 -[UPDATE], 422, 0 -[UPDATE], 423, 0 -[UPDATE], 424, 0 -[UPDATE], 425, 0 -[UPDATE], 426, 0 -[UPDATE], 427, 0 -[UPDATE], 428, 0 -[UPDATE], 429, 0 -[UPDATE], 430, 0 -[UPDATE], 431, 0 -[UPDATE], 432, 0 -[UPDATE], 433, 0 -[UPDATE], 434, 0 -[UPDATE], 435, 0 -[UPDATE], 436, 0 -[UPDATE], 437, 0 -[UPDATE], 438, 0 -[UPDATE], 439, 0 -[UPDATE], 440, 0 -[UPDATE], 441, 0 -[UPDATE], 442, 0 -[UPDATE], 443, 0 -[UPDATE], 444, 0 -[UPDATE], 445, 0 -[UPDATE], 446, 0 -[UPDATE], 447, 0 -[UPDATE], 448, 0 -[UPDATE], 449, 0 -[UPDATE], 450, 0 -[UPDATE], 451, 0 -[UPDATE], 452, 0 -[UPDATE], 453, 0 -[UPDATE], 454, 0 -[UPDATE], 455, 0 -[UPDATE], 456, 0 -[UPDATE], 457, 0 -[UPDATE], 458, 0 -[UPDATE], 459, 0 -[UPDATE], 460, 0 -[UPDATE], 461, 0 -[UPDATE], 462, 0 -[UPDATE], 463, 0 -[UPDATE], 464, 0 -[UPDATE], 465, 0 -[UPDATE], 466, 0 -[UPDATE], 467, 0 -[UPDATE], 468, 0 -[UPDATE], 469, 0 -[UPDATE], 470, 0 -[UPDATE], 471, 0 -[UPDATE], 472, 0 -[UPDATE], 473, 0 -[UPDATE], 474, 0 -[UPDATE], 475, 0 -[UPDATE], 476, 0 -[UPDATE], 477, 0 -[UPDATE], 478, 0 -[UPDATE], 479, 0 -[UPDATE], 480, 0 -[UPDATE], 481, 0 -[UPDATE], 482, 0 -[UPDATE], 483, 0 -[UPDATE], 484, 0 -[UPDATE], 485, 0 -[UPDATE], 486, 0 -[UPDATE], 487, 0 -[UPDATE], 488, 0 -[UPDATE], 489, 0 -[UPDATE], 490, 0 -[UPDATE], 491, 0 -[UPDATE], 492, 0 -[UPDATE], 493, 0 -[UPDATE], 494, 0 -[UPDATE], 495, 0 -[UPDATE], 496, 0 -[UPDATE], 497, 0 -[UPDATE], 498, 0 -[UPDATE], 499, 0 -[UPDATE], 500, 0 -[UPDATE], 501, 0 -[UPDATE], 502, 0 -[UPDATE], 503, 0 -[UPDATE], 504, 0 -[UPDATE], 505, 0 -[UPDATE], 506, 0 -[UPDATE], 507, 0 -[UPDATE], 508, 0 -[UPDATE], 509, 0 -[UPDATE], 510, 0 -[UPDATE], 511, 0 -[UPDATE], 512, 0 -[UPDATE], 513, 0 -[UPDATE], 514, 0 -[UPDATE], 515, 0 -[UPDATE], 516, 0 -[UPDATE], 517, 0 -[UPDATE], 518, 0 -[UPDATE], 519, 0 -[UPDATE], 520, 0 -[UPDATE], 521, 0 -[UPDATE], 522, 0 -[UPDATE], 523, 0 -[UPDATE], 524, 0 -[UPDATE], 525, 0 -[UPDATE], 526, 0 -[UPDATE], 527, 0 -[UPDATE], 528, 0 -[UPDATE], 529, 0 -[UPDATE], 530, 0 -[UPDATE], 531, 0 -[UPDATE], 532, 0 -[UPDATE], 533, 0 -[UPDATE], 534, 0 -[UPDATE], 535, 0 -[UPDATE], 536, 0 -[UPDATE], 537, 0 -[UPDATE], 538, 0 -[UPDATE], 539, 0 -[UPDATE], 540, 0 -[UPDATE], 541, 0 -[UPDATE], 542, 0 -[UPDATE], 543, 0 -[UPDATE], 544, 0 -[UPDATE], 545, 0 -[UPDATE], 546, 0 -[UPDATE], 547, 0 -[UPDATE], 548, 0 -[UPDATE], 549, 0 -[UPDATE], 550, 0 -[UPDATE], 551, 0 -[UPDATE], 552, 0 -[UPDATE], 553, 0 -[UPDATE], 554, 0 -[UPDATE], 555, 0 -[UPDATE], 556, 0 -[UPDATE], 557, 0 -[UPDATE], 558, 0 -[UPDATE], 559, 0 -[UPDATE], 560, 0 -[UPDATE], 561, 0 -[UPDATE], 562, 0 -[UPDATE], 563, 0 -[UPDATE], 564, 0 -[UPDATE], 565, 0 -[UPDATE], 566, 0 -[UPDATE], 567, 0 -[UPDATE], 568, 0 -[UPDATE], 569, 0 -[UPDATE], 570, 0 -[UPDATE], 571, 0 -[UPDATE], 572, 0 -[UPDATE], 573, 0 -[UPDATE], 574, 0 -[UPDATE], 575, 0 -[UPDATE], 576, 0 -[UPDATE], 577, 0 -[UPDATE], 578, 0 -[UPDATE], 579, 0 -[UPDATE], 580, 0 -[UPDATE], 581, 0 -[UPDATE], 582, 0 -[UPDATE], 583, 0 -[UPDATE], 584, 0 -[UPDATE], 585, 0 -[UPDATE], 586, 0 -[UPDATE], 587, 0 -[UPDATE], 588, 0 -[UPDATE], 589, 0 -[UPDATE], 590, 0 -[UPDATE], 591, 0 -[UPDATE], 592, 0 -[UPDATE], 593, 0 -[UPDATE], 594, 0 -[UPDATE], 595, 0 -[UPDATE], 596, 0 -[UPDATE], 597, 0 -[UPDATE], 598, 0 -[UPDATE], 599, 0 -[UPDATE], 600, 0 -[UPDATE], 601, 0 -[UPDATE], 602, 0 -[UPDATE], 603, 0 -[UPDATE], 604, 0 -[UPDATE], 605, 0 -[UPDATE], 606, 0 -[UPDATE], 607, 0 -[UPDATE], 608, 0 -[UPDATE], 609, 0 -[UPDATE], 610, 0 -[UPDATE], 611, 0 -[UPDATE], 612, 0 -[UPDATE], 613, 0 -[UPDATE], 614, 0 -[UPDATE], 615, 0 -[UPDATE], 616, 0 -[UPDATE], 617, 0 -[UPDATE], 618, 0 -[UPDATE], 619, 0 -[UPDATE], 620, 0 -[UPDATE], 621, 0 -[UPDATE], 622, 0 -[UPDATE], 623, 0 -[UPDATE], 624, 0 -[UPDATE], 625, 0 -[UPDATE], 626, 0 -[UPDATE], 627, 0 -[UPDATE], 628, 0 -[UPDATE], 629, 0 -[UPDATE], 630, 0 -[UPDATE], 631, 0 -[UPDATE], 632, 0 -[UPDATE], 633, 0 -[UPDATE], 634, 0 -[UPDATE], 635, 0 -[UPDATE], 636, 0 -[UPDATE], 637, 0 -[UPDATE], 638, 0 -[UPDATE], 639, 0 -[UPDATE], 640, 0 -[UPDATE], 641, 0 -[UPDATE], 642, 0 -[UPDATE], 643, 0 -[UPDATE], 644, 0 -[UPDATE], 645, 0 -[UPDATE], 646, 0 -[UPDATE], 647, 0 -[UPDATE], 648, 0 -[UPDATE], 649, 0 -[UPDATE], 650, 0 -[UPDATE], 651, 0 -[UPDATE], 652, 0 -[UPDATE], 653, 0 -[UPDATE], 654, 0 -[UPDATE], 655, 0 -[UPDATE], 656, 0 -[UPDATE], 657, 0 -[UPDATE], 658, 0 -[UPDATE], 659, 0 -[UPDATE], 660, 0 -[UPDATE], 661, 0 -[UPDATE], 662, 0 -[UPDATE], 663, 0 -[UPDATE], 664, 0 -[UPDATE], 665, 0 -[UPDATE], 666, 0 -[UPDATE], 667, 0 -[UPDATE], 668, 0 -[UPDATE], 669, 0 -[UPDATE], 670, 0 -[UPDATE], 671, 0 -[UPDATE], 672, 0 -[UPDATE], 673, 0 -[UPDATE], 674, 0 -[UPDATE], 675, 0 -[UPDATE], 676, 0 -[UPDATE], 677, 0 -[UPDATE], 678, 0 -[UPDATE], 679, 0 -[UPDATE], 680, 0 -[UPDATE], 681, 0 -[UPDATE], 682, 0 -[UPDATE], 683, 0 -[UPDATE], 684, 0 -[UPDATE], 685, 0 -[UPDATE], 686, 0 -[UPDATE], 687, 0 -[UPDATE], 688, 0 -[UPDATE], 689, 0 -[UPDATE], 690, 0 -[UPDATE], 691, 0 -[UPDATE], 692, 0 -[UPDATE], 693, 0 -[UPDATE], 694, 0 -[UPDATE], 695, 0 -[UPDATE], 696, 0 -[UPDATE], 697, 0 -[UPDATE], 698, 0 -[UPDATE], 699, 0 -[UPDATE], 700, 0 -[UPDATE], 701, 0 -[UPDATE], 702, 0 -[UPDATE], 703, 0 -[UPDATE], 704, 0 -[UPDATE], 705, 0 -[UPDATE], 706, 0 -[UPDATE], 707, 0 -[UPDATE], 708, 0 -[UPDATE], 709, 0 -[UPDATE], 710, 0 -[UPDATE], 711, 0 -[UPDATE], 712, 0 -[UPDATE], 713, 0 -[UPDATE], 714, 0 -[UPDATE], 715, 0 -[UPDATE], 716, 0 -[UPDATE], 717, 0 -[UPDATE], 718, 0 -[UPDATE], 719, 0 -[UPDATE], 720, 0 -[UPDATE], 721, 0 -[UPDATE], 722, 0 -[UPDATE], 723, 0 -[UPDATE], 724, 0 -[UPDATE], 725, 0 -[UPDATE], 726, 0 -[UPDATE], 727, 0 -[UPDATE], 728, 0 -[UPDATE], 729, 0 -[UPDATE], 730, 0 -[UPDATE], 731, 0 -[UPDATE], 732, 0 -[UPDATE], 733, 0 -[UPDATE], 734, 0 -[UPDATE], 735, 0 -[UPDATE], 736, 0 -[UPDATE], 737, 0 -[UPDATE], 738, 0 -[UPDATE], 739, 0 -[UPDATE], 740, 0 -[UPDATE], 741, 0 -[UPDATE], 742, 0 -[UPDATE], 743, 0 -[UPDATE], 744, 0 -[UPDATE], 745, 0 -[UPDATE], 746, 0 -[UPDATE], 747, 0 -[UPDATE], 748, 0 -[UPDATE], 749, 0 -[UPDATE], 750, 0 -[UPDATE], 751, 0 -[UPDATE], 752, 0 -[UPDATE], 753, 0 -[UPDATE], 754, 0 -[UPDATE], 755, 0 -[UPDATE], 756, 0 -[UPDATE], 757, 0 -[UPDATE], 758, 0 -[UPDATE], 759, 0 -[UPDATE], 760, 0 -[UPDATE], 761, 0 -[UPDATE], 762, 0 -[UPDATE], 763, 0 -[UPDATE], 764, 0 -[UPDATE], 765, 0 -[UPDATE], 766, 0 -[UPDATE], 767, 0 -[UPDATE], 768, 0 -[UPDATE], 769, 0 -[UPDATE], 770, 0 -[UPDATE], 771, 0 -[UPDATE], 772, 0 -[UPDATE], 773, 0 -[UPDATE], 774, 0 -[UPDATE], 775, 0 -[UPDATE], 776, 0 -[UPDATE], 777, 0 -[UPDATE], 778, 0 -[UPDATE], 779, 0 -[UPDATE], 780, 0 -[UPDATE], 781, 0 -[UPDATE], 782, 0 -[UPDATE], 783, 0 -[UPDATE], 784, 0 -[UPDATE], 785, 0 -[UPDATE], 786, 0 -[UPDATE], 787, 0 -[UPDATE], 788, 0 -[UPDATE], 789, 0 -[UPDATE], 790, 0 -[UPDATE], 791, 0 -[UPDATE], 792, 0 -[UPDATE], 793, 0 -[UPDATE], 794, 0 -[UPDATE], 795, 0 -[UPDATE], 796, 0 -[UPDATE], 797, 0 -[UPDATE], 798, 0 -[UPDATE], 799, 0 -[UPDATE], 800, 0 -[UPDATE], 801, 0 -[UPDATE], 802, 0 -[UPDATE], 803, 0 -[UPDATE], 804, 0 -[UPDATE], 805, 0 -[UPDATE], 806, 0 -[UPDATE], 807, 0 -[UPDATE], 808, 0 -[UPDATE], 809, 0 -[UPDATE], 810, 0 -[UPDATE], 811, 0 -[UPDATE], 812, 0 -[UPDATE], 813, 0 -[UPDATE], 814, 0 -[UPDATE], 815, 0 -[UPDATE], 816, 0 -[UPDATE], 817, 0 -[UPDATE], 818, 0 -[UPDATE], 819, 0 -[UPDATE], 820, 0 -[UPDATE], 821, 0 -[UPDATE], 822, 0 -[UPDATE], 823, 0 -[UPDATE], 824, 0 -[UPDATE], 825, 0 -[UPDATE], 826, 0 -[UPDATE], 827, 0 -[UPDATE], 828, 0 -[UPDATE], 829, 0 -[UPDATE], 830, 0 -[UPDATE], 831, 0 -[UPDATE], 832, 0 -[UPDATE], 833, 0 -[UPDATE], 834, 0 -[UPDATE], 835, 0 -[UPDATE], 836, 0 -[UPDATE], 837, 0 -[UPDATE], 838, 0 -[UPDATE], 839, 0 -[UPDATE], 840, 0 -[UPDATE], 841, 0 -[UPDATE], 842, 0 -[UPDATE], 843, 0 -[UPDATE], 844, 0 -[UPDATE], 845, 0 -[UPDATE], 846, 0 -[UPDATE], 847, 0 -[UPDATE], 848, 0 -[UPDATE], 849, 0 -[UPDATE], 850, 0 -[UPDATE], 851, 0 -[UPDATE], 852, 0 -[UPDATE], 853, 0 -[UPDATE], 854, 0 -[UPDATE], 855, 0 -[UPDATE], 856, 0 -[UPDATE], 857, 0 -[UPDATE], 858, 0 -[UPDATE], 859, 0 -[UPDATE], 860, 0 -[UPDATE], 861, 0 -[UPDATE], 862, 0 -[UPDATE], 863, 0 -[UPDATE], 864, 0 -[UPDATE], 865, 0 -[UPDATE], 866, 0 -[UPDATE], 867, 0 -[UPDATE], 868, 0 -[UPDATE], 869, 0 -[UPDATE], 870, 0 -[UPDATE], 871, 0 -[UPDATE], 872, 0 -[UPDATE], 873, 0 -[UPDATE], 874, 0 -[UPDATE], 875, 0 -[UPDATE], 876, 0 -[UPDATE], 877, 0 -[UPDATE], 878, 0 -[UPDATE], 879, 0 -[UPDATE], 880, 0 -[UPDATE], 881, 0 -[UPDATE], 882, 0 -[UPDATE], 883, 0 -[UPDATE], 884, 0 -[UPDATE], 885, 0 -[UPDATE], 886, 0 -[UPDATE], 887, 0 -[UPDATE], 888, 0 -[UPDATE], 889, 0 -[UPDATE], 890, 0 -[UPDATE], 891, 0 -[UPDATE], 892, 0 -[UPDATE], 893, 0 -[UPDATE], 894, 0 -[UPDATE], 895, 0 -[UPDATE], 896, 0 -[UPDATE], 897, 0 -[UPDATE], 898, 0 -[UPDATE], 899, 0 -[UPDATE], 900, 0 -[UPDATE], 901, 0 -[UPDATE], 902, 0 -[UPDATE], 903, 0 -[UPDATE], 904, 0 -[UPDATE], 905, 0 -[UPDATE], 906, 0 -[UPDATE], 907, 0 -[UPDATE], 908, 0 -[UPDATE], 909, 0 -[UPDATE], 910, 0 -[UPDATE], 911, 0 -[UPDATE], 912, 0 -[UPDATE], 913, 0 -[UPDATE], 914, 0 -[UPDATE], 915, 0 -[UPDATE], 916, 0 -[UPDATE], 917, 0 -[UPDATE], 918, 0 -[UPDATE], 919, 0 -[UPDATE], 920, 0 -[UPDATE], 921, 0 -[UPDATE], 922, 0 -[UPDATE], 923, 0 -[UPDATE], 924, 0 -[UPDATE], 925, 0 -[UPDATE], 926, 0 -[UPDATE], 927, 0 -[UPDATE], 928, 0 -[UPDATE], 929, 0 -[UPDATE], 930, 0 -[UPDATE], 931, 0 -[UPDATE], 932, 0 -[UPDATE], 933, 0 -[UPDATE], 934, 0 -[UPDATE], 935, 0 -[UPDATE], 936, 0 -[UPDATE], 937, 0 -[UPDATE], 938, 0 -[UPDATE], 939, 0 -[UPDATE], 940, 0 -[UPDATE], 941, 0 -[UPDATE], 942, 0 -[UPDATE], 943, 0 -[UPDATE], 944, 0 -[UPDATE], 945, 0 -[UPDATE], 946, 0 -[UPDATE], 947, 0 -[UPDATE], 948, 0 -[UPDATE], 949, 0 -[UPDATE], 950, 0 -[UPDATE], 951, 0 -[UPDATE], 952, 0 -[UPDATE], 953, 0 -[UPDATE], 954, 0 -[UPDATE], 955, 0 -[UPDATE], 956, 0 -[UPDATE], 957, 0 -[UPDATE], 958, 0 -[UPDATE], 959, 0 -[UPDATE], 960, 0 -[UPDATE], 961, 0 -[UPDATE], 962, 0 -[UPDATE], 963, 0 -[UPDATE], 964, 0 -[UPDATE], 965, 0 -[UPDATE], 966, 0 -[UPDATE], 967, 0 -[UPDATE], 968, 0 -[UPDATE], 969, 0 -[UPDATE], 970, 0 -[UPDATE], 971, 0 -[UPDATE], 972, 0 -[UPDATE], 973, 0 -[UPDATE], 974, 0 -[UPDATE], 975, 0 -[UPDATE], 976, 0 -[UPDATE], 977, 0 -[UPDATE], 978, 0 -[UPDATE], 979, 0 -[UPDATE], 980, 0 -[UPDATE], 981, 0 -[UPDATE], 982, 0 -[UPDATE], 983, 0 -[UPDATE], 984, 0 -[UPDATE], 985, 0 -[UPDATE], 986, 0 -[UPDATE], 987, 0 -[UPDATE], 988, 0 -[UPDATE], 989, 0 -[UPDATE], 990, 0 -[UPDATE], 991, 0 -[UPDATE], 992, 0 -[UPDATE], 993, 0 -[UPDATE], 994, 0 -[UPDATE], 995, 0 -[UPDATE], 996, 0 -[UPDATE], 997, 0 -[UPDATE], 998, 0 -[UPDATE], 999, 0 -[UPDATE], >1000, 0 -[READ], Operations, 500306 -[READ], AverageLatency(us), 96.3444212142169 -[READ], MinLatency(us), 80 -[READ], MaxLatency(us), 12344 -[READ], 95thPercentileLatency(ms), 0 -[READ], 99thPercentileLatency(ms), 0 -[READ], Return=0, 500306 -[READ], 0, 500078 -[READ], 1, 102 -[READ], 2, 49 -[READ], 3, 36 -[READ], 4, 20 -[READ], 5, 12 -[READ], 6, 5 -[READ], 7, 2 -[READ], 8, 0 -[READ], 9, 1 -[READ], 10, 0 -[READ], 11, 0 -[READ], 12, 1 -[READ], 13, 0 -[READ], 14, 0 -[READ], 15, 0 -[READ], 16, 0 -[READ], 17, 0 -[READ], 18, 0 -[READ], 19, 0 -[READ], 20, 0 -[READ], 21, 0 -[READ], 22, 0 -[READ], 23, 0 -[READ], 24, 0 -[READ], 25, 0 -[READ], 26, 0 -[READ], 27, 0 -[READ], 28, 0 -[READ], 29, 0 -[READ], 30, 0 -[READ], 31, 0 -[READ], 32, 0 -[READ], 33, 0 -[READ], 34, 0 -[READ], 35, 0 -[READ], 36, 0 -[READ], 37, 0 -[READ], 38, 0 -[READ], 39, 0 -[READ], 40, 0 -[READ], 41, 0 -[READ], 42, 0 -[READ], 43, 0 -[READ], 44, 0 -[READ], 45, 0 -[READ], 46, 0 -[READ], 47, 0 -[READ], 48, 0 -[READ], 49, 0 -[READ], 50, 0 -[READ], 51, 0 -[READ], 52, 0 -[READ], 53, 0 -[READ], 54, 0 -[READ], 55, 0 -[READ], 56, 0 -[READ], 57, 0 -[READ], 58, 0 -[READ], 59, 0 -[READ], 60, 0 -[READ], 61, 0 -[READ], 62, 0 -[READ], 63, 0 -[READ], 64, 0 -[READ], 65, 0 -[READ], 66, 0 -[READ], 67, 0 -[READ], 68, 0 -[READ], 69, 0 -[READ], 70, 0 -[READ], 71, 0 -[READ], 72, 0 -[READ], 73, 0 -[READ], 74, 0 -[READ], 75, 0 -[READ], 76, 0 -[READ], 77, 0 -[READ], 78, 0 -[READ], 79, 0 -[READ], 80, 0 -[READ], 81, 0 -[READ], 82, 0 -[READ], 83, 0 -[READ], 84, 0 -[READ], 85, 0 -[READ], 86, 0 -[READ], 87, 0 -[READ], 88, 0 -[READ], 89, 0 -[READ], 90, 0 -[READ], 91, 0 -[READ], 92, 0 -[READ], 93, 0 -[READ], 94, 0 -[READ], 95, 0 -[READ], 96, 0 -[READ], 97, 0 -[READ], 98, 0 -[READ], 99, 0 -[READ], 100, 0 -[READ], 101, 0 -[READ], 102, 0 -[READ], 103, 0 -[READ], 104, 0 -[READ], 105, 0 -[READ], 106, 0 -[READ], 107, 0 -[READ], 108, 0 -[READ], 109, 0 -[READ], 110, 0 -[READ], 111, 0 -[READ], 112, 0 -[READ], 113, 0 -[READ], 114, 0 -[READ], 115, 0 -[READ], 116, 0 -[READ], 117, 0 -[READ], 118, 0 -[READ], 119, 0 -[READ], 120, 0 -[READ], 121, 0 -[READ], 122, 0 -[READ], 123, 0 -[READ], 124, 0 -[READ], 125, 0 -[READ], 126, 0 -[READ], 127, 0 -[READ], 128, 0 -[READ], 129, 0 -[READ], 130, 0 -[READ], 131, 0 -[READ], 132, 0 -[READ], 133, 0 -[READ], 134, 0 -[READ], 135, 0 -[READ], 136, 0 -[READ], 137, 0 -[READ], 138, 0 -[READ], 139, 0 -[READ], 140, 0 -[READ], 141, 0 -[READ], 142, 0 -[READ], 143, 0 -[READ], 144, 0 -[READ], 145, 0 -[READ], 146, 0 -[READ], 147, 0 -[READ], 148, 0 -[READ], 149, 0 -[READ], 150, 0 -[READ], 151, 0 -[READ], 152, 0 -[READ], 153, 0 -[READ], 154, 0 -[READ], 155, 0 -[READ], 156, 0 -[READ], 157, 0 -[READ], 158, 0 -[READ], 159, 0 -[READ], 160, 0 -[READ], 161, 0 -[READ], 162, 0 -[READ], 163, 0 -[READ], 164, 0 -[READ], 165, 0 -[READ], 166, 0 -[READ], 167, 0 -[READ], 168, 0 -[READ], 169, 0 -[READ], 170, 0 -[READ], 171, 0 -[READ], 172, 0 -[READ], 173, 0 -[READ], 174, 0 -[READ], 175, 0 -[READ], 176, 0 -[READ], 177, 0 -[READ], 178, 0 -[READ], 179, 0 -[READ], 180, 0 -[READ], 181, 0 -[READ], 182, 0 -[READ], 183, 0 -[READ], 184, 0 -[READ], 185, 0 -[READ], 186, 0 -[READ], 187, 0 -[READ], 188, 0 -[READ], 189, 0 -[READ], 190, 0 -[READ], 191, 0 -[READ], 192, 0 -[READ], 193, 0 -[READ], 194, 0 -[READ], 195, 0 -[READ], 196, 0 -[READ], 197, 0 -[READ], 198, 0 -[READ], 199, 0 -[READ], 200, 0 -[READ], 201, 0 -[READ], 202, 0 -[READ], 203, 0 -[READ], 204, 0 -[READ], 205, 0 -[READ], 206, 0 -[READ], 207, 0 -[READ], 208, 0 -[READ], 209, 0 -[READ], 210, 0 -[READ], 211, 0 -[READ], 212, 0 -[READ], 213, 0 -[READ], 214, 0 -[READ], 215, 0 -[READ], 216, 0 -[READ], 217, 0 -[READ], 218, 0 -[READ], 219, 0 -[READ], 220, 0 -[READ], 221, 0 -[READ], 222, 0 -[READ], 223, 0 -[READ], 224, 0 -[READ], 225, 0 -[READ], 226, 0 -[READ], 227, 0 -[READ], 228, 0 -[READ], 229, 0 -[READ], 230, 0 -[READ], 231, 0 -[READ], 232, 0 -[READ], 233, 0 -[READ], 234, 0 -[READ], 235, 0 -[READ], 236, 0 -[READ], 237, 0 -[READ], 238, 0 -[READ], 239, 0 -[READ], 240, 0 -[READ], 241, 0 -[READ], 242, 0 -[READ], 243, 0 -[READ], 244, 0 -[READ], 245, 0 -[READ], 246, 0 -[READ], 247, 0 -[READ], 248, 0 -[READ], 249, 0 -[READ], 250, 0 -[READ], 251, 0 -[READ], 252, 0 -[READ], 253, 0 -[READ], 254, 0 -[READ], 255, 0 -[READ], 256, 0 -[READ], 257, 0 -[READ], 258, 0 -[READ], 259, 0 -[READ], 260, 0 -[READ], 261, 0 -[READ], 262, 0 -[READ], 263, 0 -[READ], 264, 0 -[READ], 265, 0 -[READ], 266, 0 -[READ], 267, 0 -[READ], 268, 0 -[READ], 269, 0 -[READ], 270, 0 -[READ], 271, 0 -[READ], 272, 0 -[READ], 273, 0 -[READ], 274, 0 -[READ], 275, 0 -[READ], 276, 0 -[READ], 277, 0 -[READ], 278, 0 -[READ], 279, 0 -[READ], 280, 0 -[READ], 281, 0 -[READ], 282, 0 -[READ], 283, 0 -[READ], 284, 0 -[READ], 285, 0 -[READ], 286, 0 -[READ], 287, 0 -[READ], 288, 0 -[READ], 289, 0 -[READ], 290, 0 -[READ], 291, 0 -[READ], 292, 0 -[READ], 293, 0 -[READ], 294, 0 -[READ], 295, 0 -[READ], 296, 0 -[READ], 297, 0 -[READ], 298, 0 -[READ], 299, 0 -[READ], 300, 0 -[READ], 301, 0 -[READ], 302, 0 -[READ], 303, 0 -[READ], 304, 0 -[READ], 305, 0 -[READ], 306, 0 -[READ], 307, 0 -[READ], 308, 0 -[READ], 309, 0 -[READ], 310, 0 -[READ], 311, 0 -[READ], 312, 0 -[READ], 313, 0 -[READ], 314, 0 -[READ], 315, 0 -[READ], 316, 0 -[READ], 317, 0 -[READ], 318, 0 -[READ], 319, 0 -[READ], 320, 0 -[READ], 321, 0 -[READ], 322, 0 -[READ], 323, 0 -[READ], 324, 0 -[READ], 325, 0 -[READ], 326, 0 -[READ], 327, 0 -[READ], 328, 0 -[READ], 329, 0 -[READ], 330, 0 -[READ], 331, 0 -[READ], 332, 0 -[READ], 333, 0 -[READ], 334, 0 -[READ], 335, 0 -[READ], 336, 0 -[READ], 337, 0 -[READ], 338, 0 -[READ], 339, 0 -[READ], 340, 0 -[READ], 341, 0 -[READ], 342, 0 -[READ], 343, 0 -[READ], 344, 0 -[READ], 345, 0 -[READ], 346, 0 -[READ], 347, 0 -[READ], 348, 0 -[READ], 349, 0 -[READ], 350, 0 -[READ], 351, 0 -[READ], 352, 0 -[READ], 353, 0 -[READ], 354, 0 -[READ], 355, 0 -[READ], 356, 0 -[READ], 357, 0 -[READ], 358, 0 -[READ], 359, 0 -[READ], 360, 0 -[READ], 361, 0 -[READ], 362, 0 -[READ], 363, 0 -[READ], 364, 0 -[READ], 365, 0 -[READ], 366, 0 -[READ], 367, 0 -[READ], 368, 0 -[READ], 369, 0 -[READ], 370, 0 -[READ], 371, 0 -[READ], 372, 0 -[READ], 373, 0 -[READ], 374, 0 -[READ], 375, 0 -[READ], 376, 0 -[READ], 377, 0 -[READ], 378, 0 -[READ], 379, 0 -[READ], 380, 0 -[READ], 381, 0 -[READ], 382, 0 -[READ], 383, 0 -[READ], 384, 0 -[READ], 385, 0 -[READ], 386, 0 -[READ], 387, 0 -[READ], 388, 0 -[READ], 389, 0 -[READ], 390, 0 -[READ], 391, 0 -[READ], 392, 0 -[READ], 393, 0 -[READ], 394, 0 -[READ], 395, 0 -[READ], 396, 0 -[READ], 397, 0 -[READ], 398, 0 -[READ], 399, 0 -[READ], 400, 0 -[READ], 401, 0 -[READ], 402, 0 -[READ], 403, 0 -[READ], 404, 0 -[READ], 405, 0 -[READ], 406, 0 -[READ], 407, 0 -[READ], 408, 0 -[READ], 409, 0 -[READ], 410, 0 -[READ], 411, 0 -[READ], 412, 0 -[READ], 413, 0 -[READ], 414, 0 -[READ], 415, 0 -[READ], 416, 0 -[READ], 417, 0 -[READ], 418, 0 -[READ], 419, 0 -[READ], 420, 0 -[READ], 421, 0 -[READ], 422, 0 -[READ], 423, 0 -[READ], 424, 0 -[READ], 425, 0 -[READ], 426, 0 -[READ], 427, 0 -[READ], 428, 0 -[READ], 429, 0 -[READ], 430, 0 -[READ], 431, 0 -[READ], 432, 0 -[READ], 433, 0 -[READ], 434, 0 -[READ], 435, 0 -[READ], 436, 0 -[READ], 437, 0 -[READ], 438, 0 -[READ], 439, 0 -[READ], 440, 0 -[READ], 441, 0 -[READ], 442, 0 -[READ], 443, 0 -[READ], 444, 0 -[READ], 445, 0 -[READ], 446, 0 -[READ], 447, 0 -[READ], 448, 0 -[READ], 449, 0 -[READ], 450, 0 -[READ], 451, 0 -[READ], 452, 0 -[READ], 453, 0 -[READ], 454, 0 -[READ], 455, 0 -[READ], 456, 0 -[READ], 457, 0 -[READ], 458, 0 -[READ], 459, 0 -[READ], 460, 0 -[READ], 461, 0 -[READ], 462, 0 -[READ], 463, 0 -[READ], 464, 0 -[READ], 465, 0 -[READ], 466, 0 -[READ], 467, 0 -[READ], 468, 0 -[READ], 469, 0 -[READ], 470, 0 -[READ], 471, 0 -[READ], 472, 0 -[READ], 473, 0 -[READ], 474, 0 -[READ], 475, 0 -[READ], 476, 0 -[READ], 477, 0 -[READ], 478, 0 -[READ], 479, 0 -[READ], 480, 0 -[READ], 481, 0 -[READ], 482, 0 -[READ], 483, 0 -[READ], 484, 0 -[READ], 485, 0 -[READ], 486, 0 -[READ], 487, 0 -[READ], 488, 0 -[READ], 489, 0 -[READ], 490, 0 -[READ], 491, 0 -[READ], 492, 0 -[READ], 493, 0 -[READ], 494, 0 -[READ], 495, 0 -[READ], 496, 0 -[READ], 497, 0 -[READ], 498, 0 -[READ], 499, 0 -[READ], 500, 0 -[READ], 501, 0 -[READ], 502, 0 -[READ], 503, 0 -[READ], 504, 0 -[READ], 505, 0 -[READ], 506, 0 -[READ], 507, 0 -[READ], 508, 0 -[READ], 509, 0 -[READ], 510, 0 -[READ], 511, 0 -[READ], 512, 0 -[READ], 513, 0 -[READ], 514, 0 -[READ], 515, 0 -[READ], 516, 0 -[READ], 517, 0 -[READ], 518, 0 -[READ], 519, 0 -[READ], 520, 0 -[READ], 521, 0 -[READ], 522, 0 -[READ], 523, 0 -[READ], 524, 0 -[READ], 525, 0 -[READ], 526, 0 -[READ], 527, 0 -[READ], 528, 0 -[READ], 529, 0 -[READ], 530, 0 -[READ], 531, 0 -[READ], 532, 0 -[READ], 533, 0 -[READ], 534, 0 -[READ], 535, 0 -[READ], 536, 0 -[READ], 537, 0 -[READ], 538, 0 -[READ], 539, 0 -[READ], 540, 0 -[READ], 541, 0 -[READ], 542, 0 -[READ], 543, 0 -[READ], 544, 0 -[READ], 545, 0 -[READ], 546, 0 -[READ], 547, 0 -[READ], 548, 0 -[READ], 549, 0 -[READ], 550, 0 -[READ], 551, 0 -[READ], 552, 0 -[READ], 553, 0 -[READ], 554, 0 -[READ], 555, 0 -[READ], 556, 0 -[READ], 557, 0 -[READ], 558, 0 -[READ], 559, 0 -[READ], 560, 0 -[READ], 561, 0 -[READ], 562, 0 -[READ], 563, 0 -[READ], 564, 0 -[READ], 565, 0 -[READ], 566, 0 -[READ], 567, 0 -[READ], 568, 0 -[READ], 569, 0 -[READ], 570, 0 -[READ], 571, 0 -[READ], 572, 0 -[READ], 573, 0 -[READ], 574, 0 -[READ], 575, 0 -[READ], 576, 0 -[READ], 577, 0 -[READ], 578, 0 -[READ], 579, 0 -[READ], 580, 0 -[READ], 581, 0 -[READ], 582, 0 -[READ], 583, 0 -[READ], 584, 0 -[READ], 585, 0 -[READ], 586, 0 -[READ], 587, 0 -[READ], 588, 0 -[READ], 589, 0 -[READ], 590, 0 -[READ], 591, 0 -[READ], 592, 0 -[READ], 593, 0 -[READ], 594, 0 -[READ], 595, 0 -[READ], 596, 0 -[READ], 597, 0 -[READ], 598, 0 -[READ], 599, 0 -[READ], 600, 0 -[READ], 601, 0 -[READ], 602, 0 -[READ], 603, 0 -[READ], 604, 0 -[READ], 605, 0 -[READ], 606, 0 -[READ], 607, 0 -[READ], 608, 0 -[READ], 609, 0 -[READ], 610, 0 -[READ], 611, 0 -[READ], 612, 0 -[READ], 613, 0 -[READ], 614, 0 -[READ], 615, 0 -[READ], 616, 0 -[READ], 617, 0 -[READ], 618, 0 -[READ], 619, 0 -[READ], 620, 0 -[READ], 621, 0 -[READ], 622, 0 -[READ], 623, 0 -[READ], 624, 0 -[READ], 625, 0 -[READ], 626, 0 -[READ], 627, 0 -[READ], 628, 0 -[READ], 629, 0 -[READ], 630, 0 -[READ], 631, 0 -[READ], 632, 0 -[READ], 633, 0 -[READ], 634, 0 -[READ], 635, 0 -[READ], 636, 0 -[READ], 637, 0 -[READ], 638, 0 -[READ], 639, 0 -[READ], 640, 0 -[READ], 641, 0 -[READ], 642, 0 -[READ], 643, 0 -[READ], 644, 0 -[READ], 645, 0 -[READ], 646, 0 -[READ], 647, 0 -[READ], 648, 0 -[READ], 649, 0 -[READ], 650, 0 -[READ], 651, 0 -[READ], 652, 0 -[READ], 653, 0 -[READ], 654, 0 -[READ], 655, 0 -[READ], 656, 0 -[READ], 657, 0 -[READ], 658, 0 -[READ], 659, 0 -[READ], 660, 0 -[READ], 661, 0 -[READ], 662, 0 -[READ], 663, 0 -[READ], 664, 0 -[READ], 665, 0 -[READ], 666, 0 -[READ], 667, 0 -[READ], 668, 0 -[READ], 669, 0 -[READ], 670, 0 -[READ], 671, 0 -[READ], 672, 0 -[READ], 673, 0 -[READ], 674, 0 -[READ], 675, 0 -[READ], 676, 0 -[READ], 677, 0 -[READ], 678, 0 -[READ], 679, 0 -[READ], 680, 0 -[READ], 681, 0 -[READ], 682, 0 -[READ], 683, 0 -[READ], 684, 0 -[READ], 685, 0 -[READ], 686, 0 -[READ], 687, 0 -[READ], 688, 0 -[READ], 689, 0 -[READ], 690, 0 -[READ], 691, 0 -[READ], 692, 0 -[READ], 693, 0 -[READ], 694, 0 -[READ], 695, 0 -[READ], 696, 0 -[READ], 697, 0 -[READ], 698, 0 -[READ], 699, 0 -[READ], 700, 0 -[READ], 701, 0 -[READ], 702, 0 -[READ], 703, 0 -[READ], 704, 0 -[READ], 705, 0 -[READ], 706, 0 -[READ], 707, 0 -[READ], 708, 0 -[READ], 709, 0 -[READ], 710, 0 -[READ], 711, 0 -[READ], 712, 0 -[READ], 713, 0 -[READ], 714, 0 -[READ], 715, 0 -[READ], 716, 0 -[READ], 717, 0 -[READ], 718, 0 -[READ], 719, 0 -[READ], 720, 0 -[READ], 721, 0 -[READ], 722, 0 -[READ], 723, 0 -[READ], 724, 0 -[READ], 725, 0 -[READ], 726, 0 -[READ], 727, 0 -[READ], 728, 0 -[READ], 729, 0 -[READ], 730, 0 -[READ], 731, 0 -[READ], 732, 0 -[READ], 733, 0 -[READ], 734, 0 -[READ], 735, 0 -[READ], 736, 0 -[READ], 737, 0 -[READ], 738, 0 -[READ], 739, 0 -[READ], 740, 0 -[READ], 741, 0 -[READ], 742, 0 -[READ], 743, 0 -[READ], 744, 0 -[READ], 745, 0 -[READ], 746, 0 -[READ], 747, 0 -[READ], 748, 0 -[READ], 749, 0 -[READ], 750, 0 -[READ], 751, 0 -[READ], 752, 0 -[READ], 753, 0 -[READ], 754, 0 -[READ], 755, 0 -[READ], 756, 0 -[READ], 757, 0 -[READ], 758, 0 -[READ], 759, 0 -[READ], 760, 0 -[READ], 761, 0 -[READ], 762, 0 -[READ], 763, 0 -[READ], 764, 0 -[READ], 765, 0 -[READ], 766, 0 -[READ], 767, 0 -[READ], 768, 0 -[READ], 769, 0 -[READ], 770, 0 -[READ], 771, 0 -[READ], 772, 0 -[READ], 773, 0 -[READ], 774, 0 -[READ], 775, 0 -[READ], 776, 0 -[READ], 777, 0 -[READ], 778, 0 -[READ], 779, 0 -[READ], 780, 0 -[READ], 781, 0 -[READ], 782, 0 -[READ], 783, 0 -[READ], 784, 0 -[READ], 785, 0 -[READ], 786, 0 -[READ], 787, 0 -[READ], 788, 0 -[READ], 789, 0 -[READ], 790, 0 -[READ], 791, 0 -[READ], 792, 0 -[READ], 793, 0 -[READ], 794, 0 -[READ], 795, 0 -[READ], 796, 0 -[READ], 797, 0 -[READ], 798, 0 -[READ], 799, 0 -[READ], 800, 0 -[READ], 801, 0 -[READ], 802, 0 -[READ], 803, 0 -[READ], 804, 0 -[READ], 805, 0 -[READ], 806, 0 -[READ], 807, 0 -[READ], 808, 0 -[READ], 809, 0 -[READ], 810, 0 -[READ], 811, 0 -[READ], 812, 0 -[READ], 813, 0 -[READ], 814, 0 -[READ], 815, 0 -[READ], 816, 0 -[READ], 817, 0 -[READ], 818, 0 -[READ], 819, 0 -[READ], 820, 0 -[READ], 821, 0 -[READ], 822, 0 -[READ], 823, 0 -[READ], 824, 0 -[READ], 825, 0 -[READ], 826, 0 -[READ], 827, 0 -[READ], 828, 0 -[READ], 829, 0 -[READ], 830, 0 -[READ], 831, 0 -[READ], 832, 0 -[READ], 833, 0 -[READ], 834, 0 -[READ], 835, 0 -[READ], 836, 0 -[READ], 837, 0 -[READ], 838, 0 -[READ], 839, 0 -[READ], 840, 0 -[READ], 841, 0 -[READ], 842, 0 -[READ], 843, 0 -[READ], 844, 0 -[READ], 845, 0 -[READ], 846, 0 -[READ], 847, 0 -[READ], 848, 0 -[READ], 849, 0 -[READ], 850, 0 -[READ], 851, 0 -[READ], 852, 0 -[READ], 853, 0 -[READ], 854, 0 -[READ], 855, 0 -[READ], 856, 0 -[READ], 857, 0 -[READ], 858, 0 -[READ], 859, 0 -[READ], 860, 0 -[READ], 861, 0 -[READ], 862, 0 -[READ], 863, 0 -[READ], 864, 0 -[READ], 865, 0 -[READ], 866, 0 -[READ], 867, 0 -[READ], 868, 0 -[READ], 869, 0 -[READ], 870, 0 -[READ], 871, 0 -[READ], 872, 0 -[READ], 873, 0 -[READ], 874, 0 -[READ], 875, 0 -[READ], 876, 0 -[READ], 877, 0 -[READ], 878, 0 -[READ], 879, 0 -[READ], 880, 0 -[READ], 881, 0 -[READ], 882, 0 -[READ], 883, 0 -[READ], 884, 0 -[READ], 885, 0 -[READ], 886, 0 -[READ], 887, 0 -[READ], 888, 0 -[READ], 889, 0 -[READ], 890, 0 -[READ], 891, 0 -[READ], 892, 0 -[READ], 893, 0 -[READ], 894, 0 -[READ], 895, 0 -[READ], 896, 0 -[READ], 897, 0 -[READ], 898, 0 -[READ], 899, 0 -[READ], 900, 0 -[READ], 901, 0 -[READ], 902, 0 -[READ], 903, 0 -[READ], 904, 0 -[READ], 905, 0 -[READ], 906, 0 -[READ], 907, 0 -[READ], 908, 0 -[READ], 909, 0 -[READ], 910, 0 -[READ], 911, 0 -[READ], 912, 0 -[READ], 913, 0 -[READ], 914, 0 -[READ], 915, 0 -[READ], 916, 0 -[READ], 917, 0 -[READ], 918, 0 -[READ], 919, 0 -[READ], 920, 0 -[READ], 921, 0 -[READ], 922, 0 -[READ], 923, 0 -[READ], 924, 0 -[READ], 925, 0 -[READ], 926, 0 -[READ], 927, 0 -[READ], 928, 0 -[READ], 929, 0 -[READ], 930, 0 -[READ], 931, 0 -[READ], 932, 0 -[READ], 933, 0 -[READ], 934, 0 -[READ], 935, 0 -[READ], 936, 0 -[READ], 937, 0 -[READ], 938, 0 -[READ], 939, 0 -[READ], 940, 0 -[READ], 941, 0 -[READ], 942, 0 -[READ], 943, 0 -[READ], 944, 0 -[READ], 945, 0 -[READ], 946, 0 -[READ], 947, 0 -[READ], 948, 0 -[READ], 949, 0 -[READ], 950, 0 -[READ], 951, 0 -[READ], 952, 0 -[READ], 953, 0 -[READ], 954, 0 -[READ], 955, 0 -[READ], 956, 0 -[READ], 957, 0 -[READ], 958, 0 -[READ], 959, 0 -[READ], 960, 0 -[READ], 961, 0 -[READ], 962, 0 -[READ], 963, 0 -[READ], 964, 0 -[READ], 965, 0 -[READ], 966, 0 -[READ], 967, 0 -[READ], 968, 0 -[READ], 969, 0 -[READ], 970, 0 -[READ], 971, 0 -[READ], 972, 0 -[READ], 973, 0 -[READ], 974, 0 -[READ], 975, 0 -[READ], 976, 0 -[READ], 977, 0 -[READ], 978, 0 -[READ], 979, 0 -[READ], 980, 0 -[READ], 981, 0 -[READ], 982, 0 -[READ], 983, 0 -[READ], 984, 0 -[READ], 985, 0 -[READ], 986, 0 -[READ], 987, 0 -[READ], 988, 0 -[READ], 989, 0 -[READ], 990, 0 -[READ], 991, 0 -[READ], 992, 0 -[READ], 993, 0 -[READ], 994, 0 -[READ], 995, 0 -[READ], 996, 0 -[READ], 997, 0 -[READ], 998, 0 -[READ], 999, 0 -[READ], >1000, 0 -[CLEANUP], Operations, 1 -[CLEANUP], AverageLatency(us), 216.0 -[CLEANUP], MinLatency(us), 216 -[CLEANUP], MaxLatency(us), 216 -[CLEANUP], 95thPercentileLatency(ms), 0 -[CLEANUP], 99thPercentileLatency(ms), 0 -[CLEANUP], 0, 1 -[CLEANUP], 1, 0 -[CLEANUP], 2, 0 -[CLEANUP], 3, 0 -[CLEANUP], 4, 0 -[CLEANUP], 5, 0 -[CLEANUP], 6, 0 -[CLEANUP], 7, 0 -[CLEANUP], 8, 0 -[CLEANUP], 9, 0 -[CLEANUP], 10, 0 -[CLEANUP], 11, 0 -[CLEANUP], 12, 0 -[CLEANUP], 13, 0 -[CLEANUP], 14, 0 -[CLEANUP], 15, 0 -[CLEANUP], 16, 0 -[CLEANUP], 17, 0 -[CLEANUP], 18, 0 -[CLEANUP], 19, 0 -[CLEANUP], 20, 0 -[CLEANUP], 21, 0 -[CLEANUP], 22, 0 -[CLEANUP], 23, 0 -[CLEANUP], 24, 0 -[CLEANUP], 25, 0 -[CLEANUP], 26, 0 -[CLEANUP], 27, 0 -[CLEANUP], 28, 0 -[CLEANUP], 29, 0 -[CLEANUP], 30, 0 -[CLEANUP], 31, 0 -[CLEANUP], 32, 0 -[CLEANUP], 33, 0 -[CLEANUP], 34, 0 -[CLEANUP], 35, 0 -[CLEANUP], 36, 0 -[CLEANUP], 37, 0 -[CLEANUP], 38, 0 -[CLEANUP], 39, 0 -[CLEANUP], 40, 0 -[CLEANUP], 41, 0 -[CLEANUP], 42, 0 -[CLEANUP], 43, 0 -[CLEANUP], 44, 0 -[CLEANUP], 45, 0 -[CLEANUP], 46, 0 -[CLEANUP], 47, 0 -[CLEANUP], 48, 0 -[CLEANUP], 49, 0 -[CLEANUP], 50, 0 -[CLEANUP], 51, 0 -[CLEANUP], 52, 0 -[CLEANUP], 53, 0 -[CLEANUP], 54, 0 -[CLEANUP], 55, 0 -[CLEANUP], 56, 0 -[CLEANUP], 57, 0 -[CLEANUP], 58, 0 -[CLEANUP], 59, 0 -[CLEANUP], 60, 0 -[CLEANUP], 61, 0 -[CLEANUP], 62, 0 -[CLEANUP], 63, 0 -[CLEANUP], 64, 0 -[CLEANUP], 65, 0 -[CLEANUP], 66, 0 -[CLEANUP], 67, 0 -[CLEANUP], 68, 0 -[CLEANUP], 69, 0 -[CLEANUP], 70, 0 -[CLEANUP], 71, 0 -[CLEANUP], 72, 0 -[CLEANUP], 73, 0 -[CLEANUP], 74, 0 -[CLEANUP], 75, 0 -[CLEANUP], 76, 0 -[CLEANUP], 77, 0 -[CLEANUP], 78, 0 -[CLEANUP], 79, 0 -[CLEANUP], 80, 0 -[CLEANUP], 81, 0 -[CLEANUP], 82, 0 -[CLEANUP], 83, 0 -[CLEANUP], 84, 0 -[CLEANUP], 85, 0 -[CLEANUP], 86, 0 -[CLEANUP], 87, 0 -[CLEANUP], 88, 0 -[CLEANUP], 89, 0 -[CLEANUP], 90, 0 -[CLEANUP], 91, 0 -[CLEANUP], 92, 0 -[CLEANUP], 93, 0 -[CLEANUP], 94, 0 -[CLEANUP], 95, 0 -[CLEANUP], 96, 0 -[CLEANUP], 97, 0 -[CLEANUP], 98, 0 -[CLEANUP], 99, 0 -[CLEANUP], 100, 0 -[CLEANUP], 101, 0 -[CLEANUP], 102, 0 -[CLEANUP], 103, 0 -[CLEANUP], 104, 0 -[CLEANUP], 105, 0 -[CLEANUP], 106, 0 -[CLEANUP], 107, 0 -[CLEANUP], 108, 0 -[CLEANUP], 109, 0 -[CLEANUP], 110, 0 -[CLEANUP], 111, 0 -[CLEANUP], 112, 0 -[CLEANUP], 113, 0 -[CLEANUP], 114, 0 -[CLEANUP], 115, 0 -[CLEANUP], 116, 0 -[CLEANUP], 117, 0 -[CLEANUP], 118, 0 -[CLEANUP], 119, 0 -[CLEANUP], 120, 0 -[CLEANUP], 121, 0 -[CLEANUP], 122, 0 -[CLEANUP], 123, 0 -[CLEANUP], 124, 0 -[CLEANUP], 125, 0 -[CLEANUP], 126, 0 -[CLEANUP], 127, 0 -[CLEANUP], 128, 0 -[CLEANUP], 129, 0 -[CLEANUP], 130, 0 -[CLEANUP], 131, 0 -[CLEANUP], 132, 0 -[CLEANUP], 133, 0 -[CLEANUP], 134, 0 -[CLEANUP], 135, 0 -[CLEANUP], 136, 0 -[CLEANUP], 137, 0 -[CLEANUP], 138, 0 -[CLEANUP], 139, 0 -[CLEANUP], 140, 0 -[CLEANUP], 141, 0 -[CLEANUP], 142, 0 -[CLEANUP], 143, 0 -[CLEANUP], 144, 0 -[CLEANUP], 145, 0 -[CLEANUP], 146, 0 -[CLEANUP], 147, 0 -[CLEANUP], 148, 0 -[CLEANUP], 149, 0 -[CLEANUP], 150, 0 -[CLEANUP], 151, 0 -[CLEANUP], 152, 0 -[CLEANUP], 153, 0 -[CLEANUP], 154, 0 -[CLEANUP], 155, 0 -[CLEANUP], 156, 0 -[CLEANUP], 157, 0 -[CLEANUP], 158, 0 -[CLEANUP], 159, 0 -[CLEANUP], 160, 0 -[CLEANUP], 161, 0 -[CLEANUP], 162, 0 -[CLEANUP], 163, 0 -[CLEANUP], 164, 0 -[CLEANUP], 165, 0 -[CLEANUP], 166, 0 -[CLEANUP], 167, 0 -[CLEANUP], 168, 0 -[CLEANUP], 169, 0 -[CLEANUP], 170, 0 -[CLEANUP], 171, 0 -[CLEANUP], 172, 0 -[CLEANUP], 173, 0 -[CLEANUP], 174, 0 -[CLEANUP], 175, 0 -[CLEANUP], 176, 0 -[CLEANUP], 177, 0 -[CLEANUP], 178, 0 -[CLEANUP], 179, 0 -[CLEANUP], 180, 0 -[CLEANUP], 181, 0 -[CLEANUP], 182, 0 -[CLEANUP], 183, 0 -[CLEANUP], 184, 0 -[CLEANUP], 185, 0 -[CLEANUP], 186, 0 -[CLEANUP], 187, 0 -[CLEANUP], 188, 0 -[CLEANUP], 189, 0 -[CLEANUP], 190, 0 -[CLEANUP], 191, 0 -[CLEANUP], 192, 0 -[CLEANUP], 193, 0 -[CLEANUP], 194, 0 -[CLEANUP], 195, 0 -[CLEANUP], 196, 0 -[CLEANUP], 197, 0 -[CLEANUP], 198, 0 -[CLEANUP], 199, 0 -[CLEANUP], 200, 0 -[CLEANUP], 201, 0 -[CLEANUP], 202, 0 -[CLEANUP], 203, 0 -[CLEANUP], 204, 0 -[CLEANUP], 205, 0 -[CLEANUP], 206, 0 -[CLEANUP], 207, 0 -[CLEANUP], 208, 0 -[CLEANUP], 209, 0 -[CLEANUP], 210, 0 -[CLEANUP], 211, 0 -[CLEANUP], 212, 0 -[CLEANUP], 213, 0 -[CLEANUP], 214, 0 -[CLEANUP], 215, 0 -[CLEANUP], 216, 0 -[CLEANUP], 217, 0 -[CLEANUP], 218, 0 -[CLEANUP], 219, 0 -[CLEANUP], 220, 0 -[CLEANUP], 221, 0 -[CLEANUP], 222, 0 -[CLEANUP], 223, 0 -[CLEANUP], 224, 0 -[CLEANUP], 225, 0 -[CLEANUP], 226, 0 -[CLEANUP], 227, 0 -[CLEANUP], 228, 0 -[CLEANUP], 229, 0 -[CLEANUP], 230, 0 -[CLEANUP], 231, 0 -[CLEANUP], 232, 0 -[CLEANUP], 233, 0 -[CLEANUP], 234, 0 -[CLEANUP], 235, 0 -[CLEANUP], 236, 0 -[CLEANUP], 237, 0 -[CLEANUP], 238, 0 -[CLEANUP], 239, 0 -[CLEANUP], 240, 0 -[CLEANUP], 241, 0 -[CLEANUP], 242, 0 -[CLEANUP], 243, 0 -[CLEANUP], 244, 0 -[CLEANUP], 245, 0 -[CLEANUP], 246, 0 -[CLEANUP], 247, 0 -[CLEANUP], 248, 0 -[CLEANUP], 249, 0 -[CLEANUP], 250, 0 -[CLEANUP], 251, 0 -[CLEANUP], 252, 0 -[CLEANUP], 253, 0 -[CLEANUP], 254, 0 -[CLEANUP], 255, 0 -[CLEANUP], 256, 0 -[CLEANUP], 257, 0 -[CLEANUP], 258, 0 -[CLEANUP], 259, 0 -[CLEANUP], 260, 0 -[CLEANUP], 261, 0 -[CLEANUP], 262, 0 -[CLEANUP], 263, 0 -[CLEANUP], 264, 0 -[CLEANUP], 265, 0 -[CLEANUP], 266, 0 -[CLEANUP], 267, 0 -[CLEANUP], 268, 0 -[CLEANUP], 269, 0 -[CLEANUP], 270, 0 -[CLEANUP], 271, 0 -[CLEANUP], 272, 0 -[CLEANUP], 273, 0 -[CLEANUP], 274, 0 -[CLEANUP], 275, 0 -[CLEANUP], 276, 0 -[CLEANUP], 277, 0 -[CLEANUP], 278, 0 -[CLEANUP], 279, 0 -[CLEANUP], 280, 0 -[CLEANUP], 281, 0 -[CLEANUP], 282, 0 -[CLEANUP], 283, 0 -[CLEANUP], 284, 0 -[CLEANUP], 285, 0 -[CLEANUP], 286, 0 -[CLEANUP], 287, 0 -[CLEANUP], 288, 0 -[CLEANUP], 289, 0 -[CLEANUP], 290, 0 -[CLEANUP], 291, 0 -[CLEANUP], 292, 0 -[CLEANUP], 293, 0 -[CLEANUP], 294, 0 -[CLEANUP], 295, 0 -[CLEANUP], 296, 0 -[CLEANUP], 297, 0 -[CLEANUP], 298, 0 -[CLEANUP], 299, 0 -[CLEANUP], 300, 0 -[CLEANUP], 301, 0 -[CLEANUP], 302, 0 -[CLEANUP], 303, 0 -[CLEANUP], 304, 0 -[CLEANUP], 305, 0 -[CLEANUP], 306, 0 -[CLEANUP], 307, 0 -[CLEANUP], 308, 0 -[CLEANUP], 309, 0 -[CLEANUP], 310, 0 -[CLEANUP], 311, 0 -[CLEANUP], 312, 0 -[CLEANUP], 313, 0 -[CLEANUP], 314, 0 -[CLEANUP], 315, 0 -[CLEANUP], 316, 0 -[CLEANUP], 317, 0 -[CLEANUP], 318, 0 -[CLEANUP], 319, 0 -[CLEANUP], 320, 0 -[CLEANUP], 321, 0 -[CLEANUP], 322, 0 -[CLEANUP], 323, 0 -[CLEANUP], 324, 0 -[CLEANUP], 325, 0 -[CLEANUP], 326, 0 -[CLEANUP], 327, 0 -[CLEANUP], 328, 0 -[CLEANUP], 329, 0 -[CLEANUP], 330, 0 -[CLEANUP], 331, 0 -[CLEANUP], 332, 0 -[CLEANUP], 333, 0 -[CLEANUP], 334, 0 -[CLEANUP], 335, 0 -[CLEANUP], 336, 0 -[CLEANUP], 337, 0 -[CLEANUP], 338, 0 -[CLEANUP], 339, 0 -[CLEANUP], 340, 0 -[CLEANUP], 341, 0 -[CLEANUP], 342, 0 -[CLEANUP], 343, 0 -[CLEANUP], 344, 0 -[CLEANUP], 345, 0 -[CLEANUP], 346, 0 -[CLEANUP], 347, 0 -[CLEANUP], 348, 0 -[CLEANUP], 349, 0 -[CLEANUP], 350, 0 -[CLEANUP], 351, 0 -[CLEANUP], 352, 0 -[CLEANUP], 353, 0 -[CLEANUP], 354, 0 -[CLEANUP], 355, 0 -[CLEANUP], 356, 0 -[CLEANUP], 357, 0 -[CLEANUP], 358, 0 -[CLEANUP], 359, 0 -[CLEANUP], 360, 0 -[CLEANUP], 361, 0 -[CLEANUP], 362, 0 -[CLEANUP], 363, 0 -[CLEANUP], 364, 0 -[CLEANUP], 365, 0 -[CLEANUP], 366, 0 -[CLEANUP], 367, 0 -[CLEANUP], 368, 0 -[CLEANUP], 369, 0 -[CLEANUP], 370, 0 -[CLEANUP], 371, 0 -[CLEANUP], 372, 0 -[CLEANUP], 373, 0 -[CLEANUP], 374, 0 -[CLEANUP], 375, 0 -[CLEANUP], 376, 0 -[CLEANUP], 377, 0 -[CLEANUP], 378, 0 -[CLEANUP], 379, 0 -[CLEANUP], 380, 0 -[CLEANUP], 381, 0 -[CLEANUP], 382, 0 -[CLEANUP], 383, 0 -[CLEANUP], 384, 0 -[CLEANUP], 385, 0 -[CLEANUP], 386, 0 -[CLEANUP], 387, 0 -[CLEANUP], 388, 0 -[CLEANUP], 389, 0 -[CLEANUP], 390, 0 -[CLEANUP], 391, 0 -[CLEANUP], 392, 0 -[CLEANUP], 393, 0 -[CLEANUP], 394, 0 -[CLEANUP], 395, 0 -[CLEANUP], 396, 0 -[CLEANUP], 397, 0 -[CLEANUP], 398, 0 -[CLEANUP], 399, 0 -[CLEANUP], 400, 0 -[CLEANUP], 401, 0 -[CLEANUP], 402, 0 -[CLEANUP], 403, 0 -[CLEANUP], 404, 0 -[CLEANUP], 405, 0 -[CLEANUP], 406, 0 -[CLEANUP], 407, 0 -[CLEANUP], 408, 0 -[CLEANUP], 409, 0 -[CLEANUP], 410, 0 -[CLEANUP], 411, 0 -[CLEANUP], 412, 0 -[CLEANUP], 413, 0 -[CLEANUP], 414, 0 -[CLEANUP], 415, 0 -[CLEANUP], 416, 0 -[CLEANUP], 417, 0 -[CLEANUP], 418, 0 -[CLEANUP], 419, 0 -[CLEANUP], 420, 0 -[CLEANUP], 421, 0 -[CLEANUP], 422, 0 -[CLEANUP], 423, 0 -[CLEANUP], 424, 0 -[CLEANUP], 425, 0 -[CLEANUP], 426, 0 -[CLEANUP], 427, 0 -[CLEANUP], 428, 0 -[CLEANUP], 429, 0 -[CLEANUP], 430, 0 -[CLEANUP], 431, 0 -[CLEANUP], 432, 0 -[CLEANUP], 433, 0 -[CLEANUP], 434, 0 -[CLEANUP], 435, 0 -[CLEANUP], 436, 0 -[CLEANUP], 437, 0 -[CLEANUP], 438, 0 -[CLEANUP], 439, 0 -[CLEANUP], 440, 0 -[CLEANUP], 441, 0 -[CLEANUP], 442, 0 -[CLEANUP], 443, 0 -[CLEANUP], 444, 0 -[CLEANUP], 445, 0 -[CLEANUP], 446, 0 -[CLEANUP], 447, 0 -[CLEANUP], 448, 0 -[CLEANUP], 449, 0 -[CLEANUP], 450, 0 -[CLEANUP], 451, 0 -[CLEANUP], 452, 0 -[CLEANUP], 453, 0 -[CLEANUP], 454, 0 -[CLEANUP], 455, 0 -[CLEANUP], 456, 0 -[CLEANUP], 457, 0 -[CLEANUP], 458, 0 -[CLEANUP], 459, 0 -[CLEANUP], 460, 0 -[CLEANUP], 461, 0 -[CLEANUP], 462, 0 -[CLEANUP], 463, 0 -[CLEANUP], 464, 0 -[CLEANUP], 465, 0 -[CLEANUP], 466, 0 -[CLEANUP], 467, 0 -[CLEANUP], 468, 0 -[CLEANUP], 469, 0 -[CLEANUP], 470, 0 -[CLEANUP], 471, 0 -[CLEANUP], 472, 0 -[CLEANUP], 473, 0 -[CLEANUP], 474, 0 -[CLEANUP], 475, 0 -[CLEANUP], 476, 0 -[CLEANUP], 477, 0 -[CLEANUP], 478, 0 -[CLEANUP], 479, 0 -[CLEANUP], 480, 0 -[CLEANUP], 481, 0 -[CLEANUP], 482, 0 -[CLEANUP], 483, 0 -[CLEANUP], 484, 0 -[CLEANUP], 485, 0 -[CLEANUP], 486, 0 -[CLEANUP], 487, 0 -[CLEANUP], 488, 0 -[CLEANUP], 489, 0 -[CLEANUP], 490, 0 -[CLEANUP], 491, 0 -[CLEANUP], 492, 0 -[CLEANUP], 493, 0 -[CLEANUP], 494, 0 -[CLEANUP], 495, 0 -[CLEANUP], 496, 0 -[CLEANUP], 497, 0 -[CLEANUP], 498, 0 -[CLEANUP], 499, 0 -[CLEANUP], 500, 0 -[CLEANUP], 501, 0 -[CLEANUP], 502, 0 -[CLEANUP], 503, 0 -[CLEANUP], 504, 0 -[CLEANUP], 505, 0 -[CLEANUP], 506, 0 -[CLEANUP], 507, 0 -[CLEANUP], 508, 0 -[CLEANUP], 509, 0 -[CLEANUP], 510, 0 -[CLEANUP], 511, 0 -[CLEANUP], 512, 0 -[CLEANUP], 513, 0 -[CLEANUP], 514, 0 -[CLEANUP], 515, 0 -[CLEANUP], 516, 0 -[CLEANUP], 517, 0 -[CLEANUP], 518, 0 -[CLEANUP], 519, 0 -[CLEANUP], 520, 0 -[CLEANUP], 521, 0 -[CLEANUP], 522, 0 -[CLEANUP], 523, 0 -[CLEANUP], 524, 0 -[CLEANUP], 525, 0 -[CLEANUP], 526, 0 -[CLEANUP], 527, 0 -[CLEANUP], 528, 0 -[CLEANUP], 529, 0 -[CLEANUP], 530, 0 -[CLEANUP], 531, 0 -[CLEANUP], 532, 0 -[CLEANUP], 533, 0 -[CLEANUP], 534, 0 -[CLEANUP], 535, 0 -[CLEANUP], 536, 0 -[CLEANUP], 537, 0 -[CLEANUP], 538, 0 -[CLEANUP], 539, 0 -[CLEANUP], 540, 0 -[CLEANUP], 541, 0 -[CLEANUP], 542, 0 -[CLEANUP], 543, 0 -[CLEANUP], 544, 0 -[CLEANUP], 545, 0 -[CLEANUP], 546, 0 -[CLEANUP], 547, 0 -[CLEANUP], 548, 0 -[CLEANUP], 549, 0 -[CLEANUP], 550, 0 -[CLEANUP], 551, 0 -[CLEANUP], 552, 0 -[CLEANUP], 553, 0 -[CLEANUP], 554, 0 -[CLEANUP], 555, 0 -[CLEANUP], 556, 0 -[CLEANUP], 557, 0 -[CLEANUP], 558, 0 -[CLEANUP], 559, 0 -[CLEANUP], 560, 0 -[CLEANUP], 561, 0 -[CLEANUP], 562, 0 -[CLEANUP], 563, 0 -[CLEANUP], 564, 0 -[CLEANUP], 565, 0 -[CLEANUP], 566, 0 -[CLEANUP], 567, 0 -[CLEANUP], 568, 0 -[CLEANUP], 569, 0 -[CLEANUP], 570, 0 -[CLEANUP], 571, 0 -[CLEANUP], 572, 0 -[CLEANUP], 573, 0 -[CLEANUP], 574, 0 -[CLEANUP], 575, 0 -[CLEANUP], 576, 0 -[CLEANUP], 577, 0 -[CLEANUP], 578, 0 -[CLEANUP], 579, 0 -[CLEANUP], 580, 0 -[CLEANUP], 581, 0 -[CLEANUP], 582, 0 -[CLEANUP], 583, 0 -[CLEANUP], 584, 0 -[CLEANUP], 585, 0 -[CLEANUP], 586, 0 -[CLEANUP], 587, 0 -[CLEANUP], 588, 0 -[CLEANUP], 589, 0 -[CLEANUP], 590, 0 -[CLEANUP], 591, 0 -[CLEANUP], 592, 0 -[CLEANUP], 593, 0 -[CLEANUP], 594, 0 -[CLEANUP], 595, 0 -[CLEANUP], 596, 0 -[CLEANUP], 597, 0 -[CLEANUP], 598, 0 -[CLEANUP], 599, 0 -[CLEANUP], 600, 0 -[CLEANUP], 601, 0 -[CLEANUP], 602, 0 -[CLEANUP], 603, 0 -[CLEANUP], 604, 0 -[CLEANUP], 605, 0 -[CLEANUP], 606, 0 -[CLEANUP], 607, 0 -[CLEANUP], 608, 0 -[CLEANUP], 609, 0 -[CLEANUP], 610, 0 -[CLEANUP], 611, 0 -[CLEANUP], 612, 0 -[CLEANUP], 613, 0 -[CLEANUP], 614, 0 -[CLEANUP], 615, 0 -[CLEANUP], 616, 0 -[CLEANUP], 617, 0 -[CLEANUP], 618, 0 -[CLEANUP], 619, 0 -[CLEANUP], 620, 0 -[CLEANUP], 621, 0 -[CLEANUP], 622, 0 -[CLEANUP], 623, 0 -[CLEANUP], 624, 0 -[CLEANUP], 625, 0 -[CLEANUP], 626, 0 -[CLEANUP], 627, 0 -[CLEANUP], 628, 0 -[CLEANUP], 629, 0 -[CLEANUP], 630, 0 -[CLEANUP], 631, 0 -[CLEANUP], 632, 0 -[CLEANUP], 633, 0 -[CLEANUP], 634, 0 -[CLEANUP], 635, 0 -[CLEANUP], 636, 0 -[CLEANUP], 637, 0 -[CLEANUP], 638, 0 -[CLEANUP], 639, 0 -[CLEANUP], 640, 0 -[CLEANUP], 641, 0 -[CLEANUP], 642, 0 -[CLEANUP], 643, 0 -[CLEANUP], 644, 0 -[CLEANUP], 645, 0 -[CLEANUP], 646, 0 -[CLEANUP], 647, 0 -[CLEANUP], 648, 0 -[CLEANUP], 649, 0 -[CLEANUP], 650, 0 -[CLEANUP], 651, 0 -[CLEANUP], 652, 0 -[CLEANUP], 653, 0 -[CLEANUP], 654, 0 -[CLEANUP], 655, 0 -[CLEANUP], 656, 0 -[CLEANUP], 657, 0 -[CLEANUP], 658, 0 -[CLEANUP], 659, 0 -[CLEANUP], 660, 0 -[CLEANUP], 661, 0 -[CLEANUP], 662, 0 -[CLEANUP], 663, 0 -[CLEANUP], 664, 0 -[CLEANUP], 665, 0 -[CLEANUP], 666, 0 -[CLEANUP], 667, 0 -[CLEANUP], 668, 0 -[CLEANUP], 669, 0 -[CLEANUP], 670, 0 -[CLEANUP], 671, 0 -[CLEANUP], 672, 0 -[CLEANUP], 673, 0 -[CLEANUP], 674, 0 -[CLEANUP], 675, 0 -[CLEANUP], 676, 0 -[CLEANUP], 677, 0 -[CLEANUP], 678, 0 -[CLEANUP], 679, 0 -[CLEANUP], 680, 0 -[CLEANUP], 681, 0 -[CLEANUP], 682, 0 -[CLEANUP], 683, 0 -[CLEANUP], 684, 0 -[CLEANUP], 685, 0 -[CLEANUP], 686, 0 -[CLEANUP], 687, 0 -[CLEANUP], 688, 0 -[CLEANUP], 689, 0 -[CLEANUP], 690, 0 -[CLEANUP], 691, 0 -[CLEANUP], 692, 0 -[CLEANUP], 693, 0 -[CLEANUP], 694, 0 -[CLEANUP], 695, 0 -[CLEANUP], 696, 0 -[CLEANUP], 697, 0 -[CLEANUP], 698, 0 -[CLEANUP], 699, 0 -[CLEANUP], 700, 0 -[CLEANUP], 701, 0 -[CLEANUP], 702, 0 -[CLEANUP], 703, 0 -[CLEANUP], 704, 0 -[CLEANUP], 705, 0 -[CLEANUP], 706, 0 -[CLEANUP], 707, 0 -[CLEANUP], 708, 0 -[CLEANUP], 709, 0 -[CLEANUP], 710, 0 -[CLEANUP], 711, 0 -[CLEANUP], 712, 0 -[CLEANUP], 713, 0 -[CLEANUP], 714, 0 -[CLEANUP], 715, 0 -[CLEANUP], 716, 0 -[CLEANUP], 717, 0 -[CLEANUP], 718, 0 -[CLEANUP], 719, 0 -[CLEANUP], 720, 0 -[CLEANUP], 721, 0 -[CLEANUP], 722, 0 -[CLEANUP], 723, 0 -[CLEANUP], 724, 0 -[CLEANUP], 725, 0 -[CLEANUP], 726, 0 -[CLEANUP], 727, 0 -[CLEANUP], 728, 0 -[CLEANUP], 729, 0 -[CLEANUP], 730, 0 -[CLEANUP], 731, 0 -[CLEANUP], 732, 0 -[CLEANUP], 733, 0 -[CLEANUP], 734, 0 -[CLEANUP], 735, 0 -[CLEANUP], 736, 0 -[CLEANUP], 737, 0 -[CLEANUP], 738, 0 -[CLEANUP], 739, 0 -[CLEANUP], 740, 0 -[CLEANUP], 741, 0 -[CLEANUP], 742, 0 -[CLEANUP], 743, 0 -[CLEANUP], 744, 0 -[CLEANUP], 745, 0 -[CLEANUP], 746, 0 -[CLEANUP], 747, 0 -[CLEANUP], 748, 0 -[CLEANUP], 749, 0 -[CLEANUP], 750, 0 -[CLEANUP], 751, 0 -[CLEANUP], 752, 0 -[CLEANUP], 753, 0 -[CLEANUP], 754, 0 -[CLEANUP], 755, 0 -[CLEANUP], 756, 0 -[CLEANUP], 757, 0 -[CLEANUP], 758, 0 -[CLEANUP], 759, 0 -[CLEANUP], 760, 0 -[CLEANUP], 761, 0 -[CLEANUP], 762, 0 -[CLEANUP], 763, 0 -[CLEANUP], 764, 0 -[CLEANUP], 765, 0 -[CLEANUP], 766, 0 -[CLEANUP], 767, 0 -[CLEANUP], 768, 0 -[CLEANUP], 769, 0 -[CLEANUP], 770, 0 -[CLEANUP], 771, 0 -[CLEANUP], 772, 0 -[CLEANUP], 773, 0 -[CLEANUP], 774, 0 -[CLEANUP], 775, 0 -[CLEANUP], 776, 0 -[CLEANUP], 777, 0 -[CLEANUP], 778, 0 -[CLEANUP], 779, 0 -[CLEANUP], 780, 0 -[CLEANUP], 781, 0 -[CLEANUP], 782, 0 -[CLEANUP], 783, 0 -[CLEANUP], 784, 0 -[CLEANUP], 785, 0 -[CLEANUP], 786, 0 -[CLEANUP], 787, 0 -[CLEANUP], 788, 0 -[CLEANUP], 789, 0 -[CLEANUP], 790, 0 -[CLEANUP], 791, 0 -[CLEANUP], 792, 0 -[CLEANUP], 793, 0 -[CLEANUP], 794, 0 -[CLEANUP], 795, 0 -[CLEANUP], 796, 0 -[CLEANUP], 797, 0 -[CLEANUP], 798, 0 -[CLEANUP], 799, 0 -[CLEANUP], 800, 0 -[CLEANUP], 801, 0 -[CLEANUP], 802, 0 -[CLEANUP], 803, 0 -[CLEANUP], 804, 0 -[CLEANUP], 805, 0 -[CLEANUP], 806, 0 -[CLEANUP], 807, 0 -[CLEANUP], 808, 0 -[CLEANUP], 809, 0 -[CLEANUP], 810, 0 -[CLEANUP], 811, 0 -[CLEANUP], 812, 0 -[CLEANUP], 813, 0 -[CLEANUP], 814, 0 -[CLEANUP], 815, 0 -[CLEANUP], 816, 0 -[CLEANUP], 817, 0 -[CLEANUP], 818, 0 -[CLEANUP], 819, 0 -[CLEANUP], 820, 0 -[CLEANUP], 821, 0 -[CLEANUP], 822, 0 -[CLEANUP], 823, 0 -[CLEANUP], 824, 0 -[CLEANUP], 825, 0 -[CLEANUP], 826, 0 -[CLEANUP], 827, 0 -[CLEANUP], 828, 0 -[CLEANUP], 829, 0 -[CLEANUP], 830, 0 -[CLEANUP], 831, 0 -[CLEANUP], 832, 0 -[CLEANUP], 833, 0 -[CLEANUP], 834, 0 -[CLEANUP], 835, 0 -[CLEANUP], 836, 0 -[CLEANUP], 837, 0 -[CLEANUP], 838, 0 -[CLEANUP], 839, 0 -[CLEANUP], 840, 0 -[CLEANUP], 841, 0 -[CLEANUP], 842, 0 -[CLEANUP], 843, 0 -[CLEANUP], 844, 0 -[CLEANUP], 845, 0 -[CLEANUP], 846, 0 -[CLEANUP], 847, 0 -[CLEANUP], 848, 0 -[CLEANUP], 849, 0 -[CLEANUP], 850, 0 -[CLEANUP], 851, 0 -[CLEANUP], 852, 0 -[CLEANUP], 853, 0 -[CLEANUP], 854, 0 -[CLEANUP], 855, 0 -[CLEANUP], 856, 0 -[CLEANUP], 857, 0 -[CLEANUP], 858, 0 -[CLEANUP], 859, 0 -[CLEANUP], 860, 0 -[CLEANUP], 861, 0 -[CLEANUP], 862, 0 -[CLEANUP], 863, 0 -[CLEANUP], 864, 0 -[CLEANUP], 865, 0 -[CLEANUP], 866, 0 -[CLEANUP], 867, 0 -[CLEANUP], 868, 0 -[CLEANUP], 869, 0 -[CLEANUP], 870, 0 -[CLEANUP], 871, 0 -[CLEANUP], 872, 0 -[CLEANUP], 873, 0 -[CLEANUP], 874, 0 -[CLEANUP], 875, 0 -[CLEANUP], 876, 0 -[CLEANUP], 877, 0 -[CLEANUP], 878, 0 -[CLEANUP], 879, 0 -[CLEANUP], 880, 0 -[CLEANUP], 881, 0 -[CLEANUP], 882, 0 -[CLEANUP], 883, 0 -[CLEANUP], 884, 0 -[CLEANUP], 885, 0 -[CLEANUP], 886, 0 -[CLEANUP], 887, 0 -[CLEANUP], 888, 0 -[CLEANUP], 889, 0 -[CLEANUP], 890, 0 -[CLEANUP], 891, 0 -[CLEANUP], 892, 0 -[CLEANUP], 893, 0 -[CLEANUP], 894, 0 -[CLEANUP], 895, 0 -[CLEANUP], 896, 0 -[CLEANUP], 897, 0 -[CLEANUP], 898, 0 -[CLEANUP], 899, 0 -[CLEANUP], 900, 0 -[CLEANUP], 901, 0 -[CLEANUP], 902, 0 -[CLEANUP], 903, 0 -[CLEANUP], 904, 0 -[CLEANUP], 905, 0 -[CLEANUP], 906, 0 -[CLEANUP], 907, 0 -[CLEANUP], 908, 0 -[CLEANUP], 909, 0 -[CLEANUP], 910, 0 -[CLEANUP], 911, 0 -[CLEANUP], 912, 0 -[CLEANUP], 913, 0 -[CLEANUP], 914, 0 -[CLEANUP], 915, 0 -[CLEANUP], 916, 0 -[CLEANUP], 917, 0 -[CLEANUP], 918, 0 -[CLEANUP], 919, 0 -[CLEANUP], 920, 0 -[CLEANUP], 921, 0 -[CLEANUP], 922, 0 -[CLEANUP], 923, 0 -[CLEANUP], 924, 0 -[CLEANUP], 925, 0 -[CLEANUP], 926, 0 -[CLEANUP], 927, 0 -[CLEANUP], 928, 0 -[CLEANUP], 929, 0 -[CLEANUP], 930, 0 -[CLEANUP], 931, 0 -[CLEANUP], 932, 0 -[CLEANUP], 933, 0 -[CLEANUP], 934, 0 -[CLEANUP], 935, 0 -[CLEANUP], 936, 0 -[CLEANUP], 937, 0 -[CLEANUP], 938, 0 -[CLEANUP], 939, 0 -[CLEANUP], 940, 0 -[CLEANUP], 941, 0 -[CLEANUP], 942, 0 -[CLEANUP], 943, 0 -[CLEANUP], 944, 0 -[CLEANUP], 945, 0 -[CLEANUP], 946, 0 -[CLEANUP], 947, 0 -[CLEANUP], 948, 0 -[CLEANUP], 949, 0 -[CLEANUP], 950, 0 -[CLEANUP], 951, 0 -[CLEANUP], 952, 0 -[CLEANUP], 953, 0 -[CLEANUP], 954, 0 -[CLEANUP], 955, 0 -[CLEANUP], 956, 0 -[CLEANUP], 957, 0 -[CLEANUP], 958, 0 -[CLEANUP], 959, 0 -[CLEANUP], 960, 0 -[CLEANUP], 961, 0 -[CLEANUP], 962, 0 -[CLEANUP], 963, 0 -[CLEANUP], 964, 0 -[CLEANUP], 965, 0 -[CLEANUP], 966, 0 -[CLEANUP], 967, 0 -[CLEANUP], 968, 0 -[CLEANUP], 969, 0 -[CLEANUP], 970, 0 -[CLEANUP], 971, 0 -[CLEANUP], 972, 0 -[CLEANUP], 973, 0 -[CLEANUP], 974, 0 -[CLEANUP], 975, 0 -[CLEANUP], 976, 0 -[CLEANUP], 977, 0 -[CLEANUP], 978, 0 -[CLEANUP], 979, 0 -[CLEANUP], 980, 0 -[CLEANUP], 981, 0 -[CLEANUP], 982, 0 -[CLEANUP], 983, 0 -[CLEANUP], 984, 0 -[CLEANUP], 985, 0 -[CLEANUP], 986, 0 -[CLEANUP], 987, 0 -[CLEANUP], 988, 0 -[CLEANUP], 989, 0 -[CLEANUP], 990, 0 -[CLEANUP], 991, 0 -[CLEANUP], 992, 0 -[CLEANUP], 993, 0 -[CLEANUP], 994, 0 -[CLEANUP], 995, 0 -[CLEANUP], 996, 0 -[CLEANUP], 997, 0 -[CLEANUP], 998, 0 -[CLEANUP], 999, 0 -[CLEANUP], >1000, 0 -java -cp /home/YCSB/dynamodb/conf:/home/YCSB/core/target/core-0.1.4.jar:/home/YCSB/cassandra/target/slf4j-simple-1.7.2.jar:/home/YCSB/redis/target/redis-binding-0.1.4.jar:/home/YCSB/redis/target/archive-tmp/redis-binding-0.1.4.jar:/home/YCSB/infinispan/src/main/conf:/home/YCSB/nosqldb/src/main/conf:/home/YCSB/voldemort/src/main/conf:/home/YCSB/jdbc/src/main/conf:/home/YCSB/gemfire/src/main/conf:/home/YCSB/hbase/src/main/conf com.yahoo.ycsb.Client -db com.yahoo.ycsb.db.RedisClient -p redis.host=localhost -p redis.port=6379 -P workloads/workloada -p operationcount=1000000 -t DELETED YCSB/voldemort/pom.xml Index: YCSB/voldemort/pom.xml ================================================================== --- YCSB/voldemort/pom.xml +++ /dev/null @@ -1,65 +0,0 @@ - - - - 4.0.0 - - com.yahoo.ycsb - root - 0.1.4 - - - voldemort-binding - Voldemort DB Binding - jar - - - - voldemort - voldemort - ${voldemort.version} - - - log4j - log4j - 1.2.16 - - - com.yahoo.ycsb - core - ${project.version} - - - - - - clojars.org - http://clojars.org/repo - - - - - - - org.apache.maven.plugins - maven-assembly-plugin - ${maven.assembly.version} - - - jar-with-dependencies - - false - - - - package - - single - - - - - - - - - DELETED YCSB/voldemort/src/main/conf/cluster.xml Index: YCSB/voldemort/src/main/conf/cluster.xml ================================================================== --- YCSB/voldemort/src/main/conf/cluster.xml +++ /dev/null @@ -1,11 +0,0 @@ - - mycluster - - 0 - localhost - 8081 - 6666 - 0, 1 - - - DELETED YCSB/voldemort/src/main/conf/server.properties Index: YCSB/voldemort/src/main/conf/server.properties ================================================================== --- YCSB/voldemort/src/main/conf/server.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The ID of *this* particular cluster node -node.id=0 - -max.threads=100 - -############### DB options ###################### - -http.enable=true -socket.enable=true - -# BDB -bdb.write.transactions=false -bdb.flush.transactions=false -bdb.cache.size=1G - -# Mysql -mysql.host=localhost -mysql.port=1521 -mysql.user=root -mysql.password=3306 -mysql.database=test - -#NIO connector settings. -enable.nio.connector=true - -storage.configs=voldemort.store.bdb.BdbStorageConfiguration, voldemort.store.readonly.ReadOnlyStorageConfiguration DELETED YCSB/voldemort/src/main/conf/stores.xml Index: YCSB/voldemort/src/main/conf/stores.xml ================================================================== --- YCSB/voldemort/src/main/conf/stores.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - usertable - bdb - client - 1 - 1 - 1 - - string - - - java-serialization - - - DELETED YCSB/voldemort/src/main/java/com/yahoo/ycsb/db/VoldemortClient.java Index: YCSB/voldemort/src/main/java/com/yahoo/ycsb/db/VoldemortClient.java ================================================================== --- YCSB/voldemort/src/main/java/com/yahoo/ycsb/db/VoldemortClient.java +++ /dev/null @@ -1,151 +0,0 @@ -package com.yahoo.ycsb.db; - -import java.util.HashMap; -import java.util.Set; -import java.util.Vector; -import java.util.Map.Entry; - -import org.apache.log4j.Logger; - -import voldemort.client.ClientConfig; -import voldemort.client.SocketStoreClientFactory; -import voldemort.client.StoreClient; -import voldemort.versioning.VectorClock; -import voldemort.versioning.Versioned; - -import com.yahoo.ycsb.DB; -import com.yahoo.ycsb.DBException; -import com.yahoo.ycsb.ByteIterator; -import com.yahoo.ycsb.StringByteIterator; - - -public class VoldemortClient extends DB { - - private StoreClient> storeClient; - private SocketStoreClientFactory socketFactory; - private String storeName; - private final Logger logger = Logger.getLogger(VoldemortClient.class); - - public static final int OK = 0; - public static final int ERROR = -1; - public static final int NOT_FOUND = -2; - - /** - * Initialize the DB layer. This accepts all properties allowed by the Voldemort client. - * A store maps to a table. - * Required : bootstrap_urls - * Additional property : store_name -> to preload once, should be same as -t - * - * {@linktourl http://project-voldemort.com/javadoc/client/voldemort/client/ClientConfig.html} - */ - public void init() throws DBException { - ClientConfig clientConfig = new ClientConfig(getProperties()); - socketFactory = new SocketStoreClientFactory(clientConfig); - - // Retrieve store name - storeName = getProperties().getProperty("store_name", "usertable"); - - // Use store name to retrieve client - storeClient = socketFactory.getStoreClient(storeName); - if ( storeClient == null ) - throw new DBException("Unable to instantiate store client"); - - } - - public void cleanup() throws DBException { - socketFactory.close(); - } - - @Override - public int delete(String table, String key) { - if ( checkStore(table) == ERROR ) { - return ERROR; - } - - if ( storeClient.delete(key) ) - return OK; - else - return ERROR; - } - - @Override - public int insert(String table, String key, HashMap values) { - if ( checkStore(table) == ERROR ) { - return ERROR; - } - storeClient.put(key, (HashMap)StringByteIterator.getStringMap(values)); - return OK; - } - - @Override - public int read(String table, String key, Set fields, - HashMap result) { - if ( checkStore(table) == ERROR ) { - return ERROR; - } - - Versioned> versionedValue = storeClient.get(key); - - if ( versionedValue == null ) - return NOT_FOUND; - - if ( fields != null ) { - for (String field : fields) { - String val = versionedValue.getValue().get(field); - if ( val != null ) - result.put(field, new StringByteIterator(val)); - } - } else { - StringByteIterator.putAllAsByteIterators(result, versionedValue.getValue()); - } - return OK; - } - - @Override - public int scan(String table, String startkey, int recordcount, - Set fields, Vector> result) { - logger.warn("Voldemort does not support Scan semantics"); - return OK; - } - - @Override - public int update(String table, String key, HashMap values) { - if ( checkStore(table) == ERROR ) { - return ERROR; - } - - Versioned> versionedValue = storeClient.get(key); - HashMap value = new HashMap(); - VectorClock version; - if ( versionedValue != null ) { - version = ((VectorClock) versionedValue.getVersion()).incremented(0, 1); - value = versionedValue.getValue(); - for (Entry entry : values.entrySet()) { - value.put(entry.getKey(), entry.getValue().toString()); - } - } else { - version = new VectorClock(); - StringByteIterator.putAllAsStrings(value, values); - } - - storeClient.put(key, Versioned.value(value, version)); - return OK; - } - - private int checkStore(String table) { - if ( table.compareTo(storeName) != 0 ) { - try { - storeClient = socketFactory.getStoreClient(table); - if ( storeClient == null ) { - logger.error("Could not instantiate storeclient for " + table); - return ERROR; - } - storeName = table; - } catch ( Exception e ) { - return ERROR; - } - } - return OK; - } - -} DELETED YCSB/voldemort/src/main/resources/config/cluster.xml Index: YCSB/voldemort/src/main/resources/config/cluster.xml ================================================================== --- YCSB/voldemort/src/main/resources/config/cluster.xml +++ /dev/null @@ -1,11 +0,0 @@ - - mycluster - - 0 - localhost - 8081 - 6666 - 0, 1 - - - DELETED YCSB/voldemort/src/main/resources/config/server.properties Index: YCSB/voldemort/src/main/resources/config/server.properties ================================================================== --- YCSB/voldemort/src/main/resources/config/server.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The ID of *this* particular cluster node -node.id=0 - -max.threads=100 - -############### DB options ###################### - -http.enable=true -socket.enable=true - -# BDB -bdb.write.transactions=false -bdb.flush.transactions=false -bdb.cache.size=1G - -# Mysql -mysql.host=localhost -mysql.port=1521 -mysql.user=root -mysql.password=3306 -mysql.database=test - -#NIO connector settings. -enable.nio.connector=true - -storage.configs=voldemort.store.bdb.BdbStorageConfiguration, voldemort.store.readonly.ReadOnlyStorageConfiguration DELETED YCSB/voldemort/src/main/resources/config/stores.xml Index: YCSB/voldemort/src/main/resources/config/stores.xml ================================================================== --- YCSB/voldemort/src/main/resources/config/stores.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - usertable - bdb - client - 1 - 1 - 1 - - string - - - java-serialization - - - DELETED YCSB/voldemort/target/archive-tmp/voldemort-binding-0.1.4.jar Index: YCSB/voldemort/target/archive-tmp/voldemort-binding-0.1.4.jar ================================================================== --- YCSB/voldemort/target/archive-tmp/voldemort-binding-0.1.4.jar +++ /dev/null cannot compute difference between binary files DELETED YCSB/voldemort/target/checkstyle-cachefile Index: YCSB/voldemort/target/checkstyle-cachefile ================================================================== --- YCSB/voldemort/target/checkstyle-cachefile +++ /dev/null @@ -1,2 +0,0 @@ -#Tue Mar 12 07:18:59 UTC 2013 -configuration*?=B694E45A7703D9D91054EDC5679C83B5F767BD09 DELETED YCSB/voldemort/target/checkstyle-checker.xml Index: YCSB/voldemort/target/checkstyle-checker.xml ================================================================== --- YCSB/voldemort/target/checkstyle-checker.xml +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DELETED YCSB/voldemort/target/checkstyle-header.txt Index: YCSB/voldemort/target/checkstyle-header.txt ================================================================== --- YCSB/voldemort/target/checkstyle-header.txt +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. DELETED YCSB/voldemort/target/checkstyle-result.xml Index: YCSB/voldemort/target/checkstyle-result.xml ================================================================== --- YCSB/voldemort/target/checkstyle-result.xml +++ /dev/null @@ -1,151 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DELETED YCSB/voldemort/target/classes/com/yahoo/ycsb/db/VoldemortClient.class Index: YCSB/voldemort/target/classes/com/yahoo/ycsb/db/VoldemortClient.class ================================================================== --- YCSB/voldemort/target/classes/com/yahoo/ycsb/db/VoldemortClient.class +++ /dev/null cannot compute difference between binary files DELETED YCSB/voldemort/target/classes/config/cluster.xml Index: YCSB/voldemort/target/classes/config/cluster.xml ================================================================== --- YCSB/voldemort/target/classes/config/cluster.xml +++ /dev/null @@ -1,11 +0,0 @@ - - mycluster - - 0 - localhost - 8081 - 6666 - 0, 1 - - - DELETED YCSB/voldemort/target/classes/config/server.properties Index: YCSB/voldemort/target/classes/config/server.properties ================================================================== --- YCSB/voldemort/target/classes/config/server.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The ID of *this* particular cluster node -node.id=0 - -max.threads=100 - -############### DB options ###################### - -http.enable=true -socket.enable=true - -# BDB -bdb.write.transactions=false -bdb.flush.transactions=false -bdb.cache.size=1G - -# Mysql -mysql.host=localhost -mysql.port=1521 -mysql.user=root -mysql.password=3306 -mysql.database=test - -#NIO connector settings. -enable.nio.connector=true - -storage.configs=voldemort.store.bdb.BdbStorageConfiguration, voldemort.store.readonly.ReadOnlyStorageConfiguration DELETED YCSB/voldemort/target/classes/config/stores.xml Index: YCSB/voldemort/target/classes/config/stores.xml ================================================================== --- YCSB/voldemort/target/classes/config/stores.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - usertable - bdb - client - 1 - 1 - 1 - - string - - - java-serialization - - - DELETED YCSB/voldemort/target/maven-archiver/pom.properties Index: YCSB/voldemort/target/maven-archiver/pom.properties ================================================================== --- YCSB/voldemort/target/maven-archiver/pom.properties +++ /dev/null @@ -1,5 +0,0 @@ -#Generated by Maven -#Tue Mar 12 07:19:01 UTC 2013 -version=0.1.4 -groupId=com.yahoo.ycsb -artifactId=voldemort-binding DELETED YCSB/voldemort/target/site/checkstyle.html Index: YCSB/voldemort/target/site/checkstyle.html ================================================================== --- YCSB/voldemort/target/site/checkstyle.html +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - Checkstyle Results - - - - - - - - - -
- -
-
-
-

Checkstyle Results

The following document contains the results of Checkstylerss feed

Summary

FilesInfos InfosWarnings WarningsErrors Errors
100146

Rules

RulesViolationsSeverity
JavadocPackage1Errors Error
Translation0Errors Error
FileLength0Errors Error
FileTabCharacter1Errors Error
JavadocType
  • allowMissingParamTags: "true"
  • scope: "public"
1Errors Error
JavadocStyle1Errors Error
ConstantName0Errors Error
LocalFinalVariableName0Errors Error
LocalVariableName0Errors Error
MemberName0Errors Error
MethodName0Errors Error
PackageName0Errors Error
ParameterName0Errors Error
StaticVariableName0Errors Error
TypeName0Errors Error
IllegalImport0Errors Error
RedundantImport0Errors Error
UnusedImports0Errors Error
LineLength19Errors Error
MethodLength0Errors Error
ParameterNumber0Errors Error
EmptyForIteratorPad0Errors Error
MethodParamPad0Errors Error
NoWhitespaceAfter0Errors Error
NoWhitespaceBefore0Errors Error
ParenPad26Errors Error
TypecastParenPad0Errors Error
WhitespaceAfter
  • tokens: "COMMA, SEMI"
1Errors Error
ModifierOrder0Errors Error
RedundantModifier0Errors Error
AvoidNestedBlocks0Errors Error
EmptyBlock0Errors Error
LeftCurly0Errors Error
NeedBraces5Errors Error
RightCurly0Errors Error
DoubleCheckedLocking0Errors Error
EmptyStatement0Errors Error
EqualsHashCode0Errors Error
HiddenField
  • ignoreConstructorParameter: "true"
0Errors Error
IllegalInstantiation0Errors Error
InnerAssignment0Errors Error
MissingSwitchDefault0Errors Error
RedundantThrows0Errors Error
SimplifyBooleanExpression0Errors Error
SimplifyBooleanReturn0Errors Error
FinalClass0Errors Error
HideUtilityClassConstructor0Errors Error
InterfaceIsType0Errors Error
VisibilityModifier0Errors Error
ArrayTypeStyle0Errors Error
Indentation
  • caseIndent: "0"
  • basicOffset: "2"
91Errors Error
TodoComment0Errors Error
UpperEll0Errors Error

Details

com/yahoo/ycsb/db/VoldemortClient.java

ViolationMessageLine
ErrorsMissing package-info.java file.0
ErrorsMissing a Javadoc comment.22
Errorsmember def modifier at indentation level 8 not at correct indentation, 224
ErrorsFile contains tab characters (this is the first instance).24
Errorsmember def modifier at indentation level 8 not at correct indentation, 225
Errorsmember def modifier at indentation level 8 not at correct indentation, 226
Errorsmember def modifier at indentation level 4 not at correct indentation, 227
Errorsmember def modifier at indentation level 4 not at correct indentation, 229
Errorsmember def modifier at indentation level 4 not at correct indentation, 230
Errorsmember def modifier at indentation level 4 not at correct indentation, 231
ErrorsLine is longer than 80 characters.34
ErrorsLine is longer than 80 characters.37
ErrorsUnclosed HTML tag found: <table>37
ErrorsLine is longer than 80 characters.39
Errorsmethod def modifier at indentation level 8 not at correct indentation, 241
Errorsmethod def child at indentation level 16 not at correct indentation, 442
Errorsmethod def child at indentation level 16 not at correct indentation, 443
ErrorsLine is longer than 80 characters.46
Errorsmethod def child at indentation level 16 not at correct indentation, 446
Errorsmethod def child at indentation level 16 not at correct indentation, 449
Errors'if' construct must use '{}'s.50
Errorsif at indentation level 16 not at correct indentation, 450
Errors'(' is followed by whitespace.50
Errors')' is preceded with whitespace.50
ErrorsLine is longer than 80 characters.51
Errorsmethod def rcurly at indentation level 8 not at correct indentation, 253
Errorsmethod def modifier at indentation level 8 not at correct indentation, 255
Errorsmethod def child at indentation level 16 not at correct indentation, 456
Errorsmethod def rcurly at indentation level 8 not at correct indentation, 257
Errorsmethod def modifier at indentation level 8 not at correct indentation, 259
Errorsmethod def modifier at indentation level 8 not at correct indentation, 260
Errorsif at indentation level 16 not at correct indentation, 461
Errors'(' is followed by whitespace.61
Errors')' is preceded with whitespace.61
Errorsif child at indentation level 24 not at correct indentation, 662
Errorsif rcurly at indentation level 16 not at correct indentation, 463
Errors'if' construct must use '{}'s.65
Errorsif at indentation level 16 not at correct indentation, 465
Errors'(' is followed by whitespace.65
Errors')' is preceded with whitespace.65
Errors'else' construct must use '{}'s.67
Errorselse at indentation level 16 not at correct indentation, 467
Errorsmethod def rcurly at indentation level 8 not at correct indentation, 269
Errorsmethod def modifier at indentation level 8 not at correct indentation, 271
ErrorsLine is longer than 80 characters.72
Errorsmethod def modifier at indentation level 8 not at correct indentation, 272
Errorsif at indentation level 16 not at correct indentation, 473
Errors'(' is followed by whitespace.73
Errors')' is preceded with whitespace.73
Errorsif child at indentation level 24 not at correct indentation, 674
Errorsif rcurly at indentation level 16 not at correct indentation, 475
ErrorsLine is longer than 80 characters.76
Errorsmethod def child at indentation level 16 not at correct indentation, 476
Errors',' is not followed by whitespace.76
Errorsmethod def child at indentation level 16 not at correct indentation, 477
Errorsmethod def rcurly at indentation level 8 not at correct indentation, 278
Errorsmethod def modifier at indentation level 8 not at correct indentation, 280
Errorsmethod def modifier at indentation level 8 not at correct indentation, 281
Errorsif at indentation level 16 not at correct indentation, 483
Errors'(' is followed by whitespace.83
Errors')' is preceded with whitespace.83
Errorsif child at indentation level 24 not at correct indentation, 684
Errorsif rcurly at indentation level 16 not at correct indentation, 485
ErrorsLine is longer than 80 characters.87
Errorsmethod def child at indentation level 16 not at correct indentation, 487
Errors'if' construct must use '{}'s.89
Errorsif at indentation level 16 not at correct indentation, 489
Errors'(' is followed by whitespace.89
Errors')' is preceded with whitespace.89
Errorsif at indentation level 16 not at correct indentation, 492
Errors'(' is followed by whitespace.92
Errors')' is preceded with whitespace.92
Errorsfor at indentation level 24 not at correct indentation, 693
ErrorsLine is longer than 80 characters.94
Errorsfor child at indentation level 32 not at correct indentation, 894
Errors'if' construct must use '{}'s.95
Errorsif at indentation level 32 not at correct indentation, 895
Errors'(' is followed by whitespace.95
Errors')' is preceded with whitespace.95
ErrorsLine is longer than 80 characters.96
Errorsfor rcurly at indentation level 24 not at correct indentation, 697
Errorsif rcurly at indentation level 16 not at correct indentation, 498
ErrorsLine is longer than 80 characters.99
Errorselse child at indentation level 24 not at correct indentation, 699
Errorselse rcurly at indentation level 16 not at correct indentation, 4100
Errorsmethod def child at indentation level 16 not at correct indentation, 4101
Errorsmethod def rcurly at indentation level 8 not at correct indentation, 2102
Errorsmethod def modifier at indentation level 8 not at correct indentation, 2104
Errorsmethod def modifier at indentation level 8 not at correct indentation, 2105
ErrorsLine is longer than 80 characters.106
Errorsmethod def child at indentation level 16 not at correct indentation, 4107
Errorsmethod def child at indentation level 16 not at correct indentation, 4108
Errorsmethod def rcurly at indentation level 8 not at correct indentation, 2109
Errorsmethod def modifier at indentation level 8 not at correct indentation, 2111
ErrorsLine is longer than 80 characters.112
Errorsmethod def modifier at indentation level 8 not at correct indentation, 2112
Errorsif at indentation level 16 not at correct indentation, 4113
Errors'(' is followed by whitespace.113
Errors')' is preceded with whitespace.113
Errorsif child at indentation level 24 not at correct indentation, 6114
Errorsif rcurly at indentation level 16 not at correct indentation, 4115
ErrorsLine is longer than 80 characters.117
Errorsmethod def child at indentation level 16 not at correct indentation, 4117
Errorsmethod def child at indentation level 16 not at correct indentation, 4118
Errorsmethod def child at indentation level 16 not at correct indentation, 4119
Errorsif at indentation level 16 not at correct indentation, 4120
Errors'(' is followed by whitespace.120
Errors')' is preceded with whitespace.120
ErrorsLine is longer than 80 characters.121
Errorsif child at indentation level 24 not at correct indentation, 6121
Errorsif child at indentation level 24 not at correct indentation, 6122
ErrorsLine is longer than 80 characters.123
Errorsfor at indentation level 24 not at correct indentation, 6123
ErrorsLine is longer than 80 characters.124
Errorsfor child at indentation level 32 not at correct indentation, 8124
Errorsfor rcurly at indentation level 24 not at correct indentation, 6125
Errorsif rcurly at indentation level 16 not at correct indentation, 4126
Errorselse child at indentation level 24 not at correct indentation, 6127
Errorselse child at indentation level 24 not at correct indentation, 6128
Errorselse rcurly at indentation level 16 not at correct indentation, 4129
Errorsmethod def child at indentation level 16 not at correct indentation, 4131
Errorsmethod def child at indentation level 16 not at correct indentation, 4132
Errorsmethod def rcurly at indentation level 8 not at correct indentation, 2133
Errorsmethod def modifier at indentation level 8 not at correct indentation, 2135
Errorsif at indentation level 16 not at correct indentation, 4136
Errors'(' is followed by whitespace.136
Errors')' is preceded with whitespace.136
Errorstry at indentation level 24 not at correct indentation, 6137
ErrorsLine is longer than 80 characters.138
Errorstry child at indentation level 32 not at correct indentation, 8138
Errorsif at indentation level 32 not at correct indentation, 8139
Errors'(' is followed by whitespace.139
Errors')' is preceded with whitespace.139
ErrorsLine is longer than 80 characters.140
Errorsif child at indentation level 40 not at correct indentation, 10140
Errorsif child at indentation level 40 not at correct indentation, 10141
Errorsif rcurly at indentation level 32 not at correct indentation, 8142
Errorstry child at indentation level 32 not at correct indentation, 8143
Errorstry rcurly at indentation level 24 not at correct indentation, 6144
Errors'(' is followed by whitespace.144
Errors')' is preceded with whitespace.144
Errorscatch child at indentation level 32 not at correct indentation, 8145
Errorscatch rcurly at indentation level 24 not at correct indentation, 6146
Errorsif rcurly at indentation level 16 not at correct indentation, 4147
Errorsmethod def child at indentation level 16 not at correct indentation, 4148
Errorsmethod def rcurly at indentation level 8 not at correct indentation, 2149
- - -
-
-
- - - DELETED YCSB/voldemort/target/site/checkstyle.rss Index: YCSB/voldemort/target/site/checkstyle.rss ================================================================== --- YCSB/voldemort/target/site/checkstyle.rss +++ /dev/null @@ -1,51 +0,0 @@ - - - - - Voldemort DB Binding - Checkstyle report - ${project.url} - Voldemort DB Binding - Checkstyle report - en-us - ©2013 - - File: 1, - Errors: 146, - Warnings: 0, - Infos: 0 - - ${project.url}/checkstyle.html - -

Click here for the full Checkstyle report.

- - - - - - - - - - - - - - - - - - -
FilesIWE
- com/yahoo/ycsb/db/VoldemortClient.java - - 0 - - 0 - - 146 -
- -
-
-
-
- DELETED YCSB/voldemort/target/site/images/rss.png Index: YCSB/voldemort/target/site/images/rss.png ================================================================== --- YCSB/voldemort/target/site/images/rss.png +++ /dev/null cannot compute difference between binary files DELETED YCSB/voldemort/target/voldemort-binding-0.1.4.jar Index: YCSB/voldemort/target/voldemort-binding-0.1.4.jar ================================================================== --- YCSB/voldemort/target/voldemort-binding-0.1.4.jar +++ /dev/null cannot compute difference between binary files DELETED YCSB/workloads/workloada Index: YCSB/workloads/workloada ================================================================== --- YCSB/workloads/workloada +++ /dev/null @@ -1,37 +0,0 @@ -# Copyright (c) 2010 Yahoo! Inc. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you -# may not use this file except in compliance with the License. You -# may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or -# implied. See the License for the specific language governing -# permissions and limitations under the License. See accompanying -# LICENSE file. - - -# Yahoo! Cloud System Benchmark -# Workload A: Update heavy workload -# Application example: Session store recording recent actions -# -# Read/update ratio: 50/50 -# Default data size: 1 KB records (10 fields, 100 bytes each, plus key) -# Request distribution: zipfian - -recordcount=100000 -operationcount=100000 -workload=com.yahoo.ycsb.workloads.CoreWorkload - -readallfields=true - -readproportion=0.5 -updateproportion=0.5 -scanproportion=0 -insertproportion=0 - -requestdistribution=zipfian - DELETED YCSB/workloads/workloada~ Index: YCSB/workloads/workloada~ ================================================================== --- YCSB/workloads/workloada~ +++ /dev/null DELETED YCSB/workloads/workloadb Index: YCSB/workloads/workloadb ================================================================== --- YCSB/workloads/workloadb +++ /dev/null @@ -1,36 +0,0 @@ -# Copyright (c) 2010 Yahoo! Inc. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you -# may not use this file except in compliance with the License. You -# may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or -# implied. See the License for the specific language governing -# permissions and limitations under the License. See accompanying -# LICENSE file. - -# Yahoo! Cloud System Benchmark -# Workload B: Read mostly workload -# Application example: photo tagging; add a tag is an update, but most operations are to read tags -# -# Read/update ratio: 95/5 -# Default data size: 1 KB records (10 fields, 100 bytes each, plus key) -# Request distribution: zipfian - -recordcount=1000 -operationcount=1000 -workload=com.yahoo.ycsb.workloads.CoreWorkload - -readallfields=true - -readproportion=0.95 -updateproportion=0.05 -scanproportion=0 -insertproportion=0 - -requestdistribution=zipfian - DELETED YCSB/workloads/workloadc Index: YCSB/workloads/workloadc ================================================================== --- YCSB/workloads/workloadc +++ /dev/null @@ -1,38 +0,0 @@ -# Copyright (c) 2010 Yahoo! Inc. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you -# may not use this file except in compliance with the License. You -# may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or -# implied. See the License for the specific language governing -# permissions and limitations under the License. See accompanying -# LICENSE file. - -# Yahoo! Cloud System Benchmark -# Workload C: Read only -# Application example: user profile cache, where profiles are constructed elsewhere (e.g., Hadoop) -# -# Read/update ratio: 100/0 -# Default data size: 1 KB records (10 fields, 100 bytes each, plus key) -# Request distribution: zipfian - -recordcount=1000 -operationcount=1000 -workload=com.yahoo.ycsb.workloads.CoreWorkload - -readallfields=true - -readproportion=1 -updateproportion=0 -scanproportion=0 -insertproportion=0 - -requestdistribution=zipfian - - - DELETED YCSB/workloads/workloadd Index: YCSB/workloads/workloadd ================================================================== --- YCSB/workloads/workloadd +++ /dev/null @@ -1,41 +0,0 @@ -# Copyright (c) 2010 Yahoo! Inc. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you -# may not use this file except in compliance with the License. You -# may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or -# implied. See the License for the specific language governing -# permissions and limitations under the License. See accompanying -# LICENSE file. - -# Yahoo! Cloud System Benchmark -# Workload D: Read latest workload -# Application example: user status updates; people want to read the latest -# -# Read/update/insert ratio: 95/0/5 -# Default data size: 1 KB records (10 fields, 100 bytes each, plus key) -# Request distribution: latest - -# The insert order for this is hashed, not ordered. The "latest" items may be -# scattered around the keyspace if they are keyed by userid.timestamp. A workload -# which orders items purely by time, and demands the latest, is very different than -# workload here (which we believe is more typical of how people build systems.) - -recordcount=1000 -operationcount=1000 -workload=com.yahoo.ycsb.workloads.CoreWorkload - -readallfields=true - -readproportion=0.95 -updateproportion=0 -scanproportion=0 -insertproportion=0.05 - -requestdistribution=latest - DELETED YCSB/workloads/workloade Index: YCSB/workloads/workloade ================================================================== --- YCSB/workloads/workloade +++ /dev/null @@ -1,46 +0,0 @@ -# Copyright (c) 2010 Yahoo! Inc. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you -# may not use this file except in compliance with the License. You -# may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or -# implied. See the License for the specific language governing -# permissions and limitations under the License. See accompanying -# LICENSE file. - -# Yahoo! Cloud System Benchmark -# Workload E: Short ranges -# Application example: threaded conversations, where each scan is for the posts in a given thread (assumed to be clustered by thread id) -# -# Scan/insert ratio: 95/5 -# Default data size: 1 KB records (10 fields, 100 bytes each, plus key) -# Request distribution: zipfian - -# The insert order is hashed, not ordered. Although the scans are ordered, it does not necessarily -# follow that the data is inserted in order. For example, posts for thread 342 may not be inserted contiguously, but -# instead interspersed with posts from lots of other threads. The way the YCSB client works is that it will pick a start -# key, and then request a number of records; this works fine even for hashed insertion. - -recordcount=1000 -operationcount=1000 -workload=com.yahoo.ycsb.workloads.CoreWorkload - -readallfields=true - -readproportion=0 -updateproportion=0 -scanproportion=0.95 -insertproportion=0.05 - -requestdistribution=zipfian - -maxscanlength=100 - -scanlengthdistribution=uniform - - DELETED YCSB/workloads/workloadf Index: YCSB/workloads/workloadf ================================================================== --- YCSB/workloads/workloadf +++ /dev/null @@ -1,37 +0,0 @@ -# Copyright (c) 2010 Yahoo! Inc. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you -# may not use this file except in compliance with the License. You -# may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or -# implied. See the License for the specific language governing -# permissions and limitations under the License. See accompanying -# LICENSE file. - -# Yahoo! Cloud System Benchmark -# Workload F: Read-modify-write workload -# Application example: user database, where user records are read and modified by the user or to record user activity. -# -# Read/read-modify-write ratio: 50/50 -# Default data size: 1 KB records (10 fields, 100 bytes each, plus key) -# Request distribution: zipfian - -recordcount=1000 -operationcount=1000 -workload=com.yahoo.ycsb.workloads.CoreWorkload - -readallfields=true - -readproportion=0.5 -updateproportion=0 -scanproportion=0 -insertproportion=0 -readmodifywriteproportion=0.5 - -requestdistribution=zipfian - DELETED test1Results/readme.txt Index: test1Results/readme.txt ================================================================== --- test1Results/readme.txt +++ /dev/null @@ -1,5 +0,0 @@ -Test 1 Setup: - - - -Test 1 Results Format: DELETED test1Results/readme.txt~ Index: test1Results/readme.txt~ ================================================================== --- test1Results/readme.txt~ +++ /dev/null