Skip to content

Instantly share code, notes, and snippets.

@johnmee
Last active August 29, 2015 14:05
Show Gist options
  • Save johnmee/75d1fdf8e7c741a56dc6 to your computer and use it in GitHub Desktop.
Save johnmee/75d1fdf8e7c741a56dc6 to your computer and use it in GitHub Desktop.
Nearmap.com Test
import time
class DataSource(object):
"""
A datasource that starts with some data and takes 50 ms to read/write
"""
DELAY = 0.05 # 50 milliseconds
def __init__(self):
"""
Start with data key0/value0, key1/value1, ..., key10/value10
"""
self.values = {}
for idx in range(10):
self.values["key{}".format(idx)] = "value{}".format(idx)
def get_value(self, key):
"""
Return the value for key after waiting 50ms
"""
time.sleep(self.DELAY)
try:
return self.values[key]
except KeyError:
return None
def store_value(self, key, value):
"""
Store the key/value pair after waiting 50ms
"""
time.sleep(self.DELAY)
self.values[key] = value
class DistributedCacheStore(object):
"""
The distributed cache starts empty and needs 5ms to read/write
"""
DELAY = 0.005 # 5 milliseconds
def __init__(self):
"""
The cache starts empty
"""
self.values = {}
def get_value(self, key):
"""
Return the value for key after waiting 50ms
"""
time.sleep(self.DELAY)
try:
return self.values[key]
except KeyError:
return None
def store_value(self, key, value):
"""
Store the key/value pair after waiting 50ms
"""
time.sleep(self.DELAY)
self.values[key] = value
Python version of the Nearmap.com technical test
https://github.com/izevaka/nearmap-test
The test is set in C#. I suggested that was a bit silly for a Python candidate, and they agreed. So I translated it into a Python test for them.
They were intrigued by this solution, but, after much internal discussion, ultimately concluded they didn't like it. The primary objection was "why didn't you just use a conventional lock?". The question successfully exposed that I was completely unaware of what convention dictated. Nonetheless, I defend this solution, because, and I didn't enunciate it eloquently at the time, it does not create the bottleneck that a conventional lock would; in a typical lock/release solution all threads must pass through a common gate, creating a potential bottleneck.
This solution implements no gate and no bottleneck. Threads seeking known keys can get on with their life without queuing for a lock. Threads seeking unknown keys sleep until, the single thread that is fetching the value, returns.
Of course, my theorizing might be complete bunk depending on the implementation of a Global Interpreter Lock.
http://www.jeffknupp.com/blog/2012/03/31/pythons-hardest-problem/
http://www.jeffknupp.com/blog/2013/06/30/pythons-hardest-problem-revisited/
This solution also doesn't find any use for the 5ms distributed cache: it would only be useful when there are multiple local machines. They were happy with this answer. The thing to note, if you were to implement such a cache, is that you might want to fork the thread so that this one can return the value immediately, whilst another can undergo the delay of writing the value.
My services were not required.
"""
Nearmap.com Technical Test
A python implementation of a test for interviewing technical candidates at nearmap.com.
See https://github.com/izevaka/nearmap-test
Generate 10 threads that resolve 50 values from a slow datastore as quickly as possible.
"""
__author__ = 'johnmee'
import sys
import threading
import time
import random
import datasource
# the remote datasource
source = datasource.DataSource()
# a local dictionary of the remote data values, or event objects indicating their arrival
cache = {} # python dictionaries are thread-safe (whoot!)
def worker(thread_id):
"""
Sequentially request 50 keys at random and print how long it took to get each value.
Every pass initially assumes the cache has the key and the value is actually an event object/lock.
So first it attempts to wait:
- if it is an event then when it clears we know the cache has the real value
- if the value is not an event, then we must have the value already
- if the key is unknown then create an event, put it in the cache, fetch the value,
and signal that we have it
[1] assumes real values don't have an attribute named 'wait'
[2] threads with the same unknown key race to this point and all hit the datasource for the same value at the same time
- they will all succeed (assuming the datasource can cope with that).
"""
for idx in range(50):
key = 'key{}'.format(random.randrange(10)) # pick a key at random
timestamp = time.perf_counter() # stash a high precision timestamp
try: # lets not waste time testing what it is, just
cache[key].wait() # assume we're waiting for another thread to fetch it
except AttributeError: # ok, it's got no 'wait' function
pass # then it must be the value [1]
except KeyError: # oh, we've not seen this key before
event = threading.Event() # create an event for when we know what it is
cache[key] = event # put it where other threads can find it [2]
cache[key] = source.get_value(key) # fetch the value and put it in the local cache
event.set() # and fire off to all who are waiting
value = cache[key] # take value from the local cache
# print a progress report
wall_time = (time.perf_counter() - timestamp) * 1000 # milliseconds since the timestamp
sys.stdout.write("[{:2}] Request '{}', response '{}', time: {:5.2f} ms\n".format(
thread_id, key, value, wall_time))
if __name__ == '__main__':
# spin up ten workers
for idx in range(10):
thread = threading.Thread(target=worker, args=(idx,))
thread.start()
import unittest
import timeit
import datasource
class TestDatasource(unittest.TestCase):
"""
Test the datasource is initialised, reads and writes, and has a delay
"""
def setUp(self):
self.datasource = datasource.DataSource()
def test_init(self):
"""
Ensure datasource is initialised
"""
self.assertEqual(self.datasource.values['key0'], 'value0')
self.assertEqual(10, len(self.datasource.values))
self.assertEqual(self.datasource.values['key9'], 'value9')
def test_read(self):
"""
Ensure get_value returns the value for key, or None
"""
self.assertEqual('value0', self.datasource.get_value('key0'))
self.assertEqual(None, self.datasource.get_value('supercalafragelistic'))
def test_write(self):
"""
Ensure store_value routine saves to the dictionary
"""
self.datasource.store_value('key0', 'testvalue')
self.assertEqual('testvalue', self.datasource.values['key0'])
def test_delay(self):
"""
Ensure more than 50ms to read a value
"""
setup = 'import datasource; ds = datasource.DataSource()'
statement = 'ds.get_value("key1")'
seconds = timeit.timeit(setup=setup, stmt=statement, number=1 )
self.assertGreaterEqual(seconds, 0.05)
class TestDistributedCache(unittest.TestCase):
"""
Test the cache is initially empty, has a delay, and reads/writes
"""
def setUp(self):
self.cache = datasource.DistributedCacheStore()
def test_init(self):
self.assertEqual(len(self.cache.values), 0)
def test_write_and_read(self):
# put a value in the cache
self.cache.store_value('testkey', 'testvalue')
self.assertEqual(self.cache.values['testkey'], 'testvalue')
# read it back
self.assertEqual(self.cache.get_value('testkey'), 'testvalue')
def test_keyerror(self):
self.assertEqual(self.cache.get_value('qwerqwerqwer'), None)
def test_delay(self):
setup = 'import datasource; ds = datasource.DistributedCacheStore(); ds.values["testkey"] = "testvalue"'
statement = 'ds.get_value("testkey")'
seconds = timeit.timeit(setup=setup, stmt=statement, number=1 )
self.assertGreaterEqual(seconds, 0.005)
if __name__ == '__main__':
unittest.main()
nearmap-py3)Johns-iMac:src johnmee$ time python3 program.py
[ 0] Request 'key2', response 'value2', time: 50.59 ms
[ 2] Request 'key9', response 'value9', time: 50.56 ms
[ 4] Request 'key5', response 'value5', time: 50.39 ms
[ 4] Request 'key9', response 'value9', time: 0.00 ms
[ 4] Request 'key5', response 'value5', time: 0.00 ms
[ 4] Request 'key9', response 'value9', time: 0.00 ms
[ 6] Request 'key5', response 'value5', time: 50.08 ms
[ 5] Request 'key9', response 'value9', time: 50.30 ms
[ 5] Request 'key5', response 'value5', time: 0.00 ms
[ 7] Request 'key5', response 'value5', time: 50.13 ms
[ 3] Request 'key8', response 'value8', time: 50.76 ms
[ 3] Request 'key9', response 'value9', time: 0.00 ms
[ 8] Request 'key3', response 'value3', time: 50.17 ms
[ 9] Request 'key8', response 'value8', time: 50.12 ms
[ 7] Request 'key3', response 'value3', time: 0.30 ms
[ 7] Request 'key2', response 'value2', time: 0.01 ms
[ 5] Request 'key3', response 'value3', time: 0.46 ms
[ 5] Request 'key8', response 'value8', time: 0.00 ms
[ 5] Request 'key5', response 'value5', time: 0.00 ms
[ 5] Request 'key5', response 'value5', time: 0.00 ms
[ 5] Request 'key9', response 'value9', time: 0.00 ms
[ 5] Request 'key3', response 'value3', time: 0.00 ms
[ 5] Request 'key3', response 'value3', time: 0.02 ms
[ 5] Request 'key9', response 'value9', time: 0.00 ms
[ 1] Request 'key7', response 'value7', time: 51.63 ms
[ 8] Request 'key7', response 'value7', time: 0.58 ms
[ 4] Request 'key7', response 'value7', time: 0.98 ms
[ 8] Request 'key7', response 'value7', time: 0.00 ms
[ 8] Request 'key2', response 'value2', time: 0.00 ms
[ 8] Request 'key3', response 'value3', time: 0.00 ms
[ 8] Request 'key8', response 'value8', time: 0.00 ms
[ 8] Request 'key3', response 'value3', time: 0.00 ms
[ 0] Request 'key1', response 'value1', time: 51.19 ms
[ 0] Request 'key3', response 'value3', time: 0.01 ms
[ 0] Request 'key2', response 'value2', time: 0.00 ms
[ 0] Request 'key5', response 'value5', time: 0.00 ms
[ 1] Request 'key1', response 'value1', time: 50.25 ms
[ 8] Request 'key1', response 'value1', time: 50.11 ms
[ 9] Request 'key0', response 'value0', time: 50.91 ms
[ 0] Request 'key3', response 'value3', time: 0.00 ms
[ 3] Request 'key1', response 'value1', time: 51.29 ms
[ 5] Request 'key6', response 'value6', time: 50.76 ms
[ 2] Request 'key0', response 'value0', time: 51.42 ms
[ 8] Request 'key5', response 'value5', time: 0.00 ms
[ 9] Request 'key1', response 'value1', time: 0.01 ms
[ 3] Request 'key2', response 'value2', time: 0.00 ms
[ 5] Request 'key1', response 'value1', time: 0.00 ms
[ 6] Request 'key6', response 'value6', time: 51.39 ms
[ 8] Request 'key7', response 'value7', time: 0.00 ms
[ 9] Request 'key8', response 'value8', time: 0.00 ms
[ 1] Request 'key0', response 'value0', time: 0.00 ms
[ 2] Request 'key9', response 'value9', time: 0.00 ms
[ 7] Request 'key0', response 'value0', time: 51.04 ms
[ 3] Request 'key1', response 'value1', time: 0.00 ms
[ 5] Request 'key9', response 'value9', time: 0.00 ms
[ 6] Request 'key9', response 'value9', time: 0.00 ms
[ 2] Request 'key3', response 'value3', time: 0.00 ms
[ 7] Request 'key6', response 'value6', time: 0.00 ms
[ 3] Request 'key3', response 'value3', time: 0.01 ms
[ 4] Request 'key1', response 'value1', time: 50.20 ms
[ 6] Request 'key5', response 'value5', time: 0.00 ms
[ 2] Request 'key2', response 'value2', time: 0.00 ms
[ 5] Request 'key0', response 'value0', time: 0.00 ms
[ 9] Request 'key7', response 'value7', time: 0.01 ms
[ 1] Request 'key7', response 'value7', time: 0.00 ms
[ 2] Request 'key8', response 'value8', time: 0.00 ms
[ 5] Request 'key1', response 'value1', time: 0.00 ms
[ 9] Request 'key7', response 'value7', time: 0.00 ms
[ 3] Request 'key1', response 'value1', time: 0.01 ms
[ 4] Request 'key6', response 'value6', time: 0.00 ms
[ 1] Request 'key2', response 'value2', time: 0.00 ms
[ 2] Request 'key0', response 'value0', time: 0.00 ms
[ 6] Request 'key1', response 'value1', time: 0.00 ms
[ 9] Request 'key7', response 'value7', time: 0.00 ms
[ 3] Request 'key7', response 'value7', time: 0.00 ms
[ 4] Request 'key7', response 'value7', time: 0.00 ms
[ 6] Request 'key0', response 'value0', time: 0.00 ms
[ 2] Request 'key1', response 'value1', time: 0.01 ms
[ 1] Request 'key9', response 'value9', time: 0.01 ms
[ 9] Request 'key5', response 'value5', time: 0.00 ms
[ 3] Request 'key5', response 'value5', time: 0.00 ms
[ 4] Request 'key3', response 'value3', time: 0.00 ms
[ 6] Request 'key7', response 'value7', time: 0.00 ms
[ 2] Request 'key2', response 'value2', time: 0.00 ms
[ 4] Request 'key3', response 'value3', time: 0.00 ms
[ 6] Request 'key3', response 'value3', time: 0.00 ms
[ 1] Request 'key8', response 'value8', time: 0.00 ms
[ 4] Request 'key7', response 'value7', time: 0.00 ms
[ 6] Request 'key3', response 'value3', time: 0.00 ms
[ 9] Request 'key2', response 'value2', time: 0.00 ms
[ 4] Request 'key8', response 'value8', time: 0.00 ms
[ 6] Request 'key3', response 'value3', time: 0.00 ms
[ 9] Request 'key6', response 'value6', time: 0.00 ms
[ 4] Request 'key2', response 'value2', time: 0.00 ms
[ 6] Request 'key3', response 'value3', time: 0.00 ms
[ 2] Request 'key6', response 'value6', time: 0.00 ms
[ 4] Request 'key1', response 'value1', time: 0.00 ms
[ 6] Request 'key1', response 'value1', time: 0.01 ms
[ 1] Request 'key7', response 'value7', time: 0.00 ms
[ 4] Request 'key3', response 'value3', time: 0.00 ms
[ 2] Request 'key2', response 'value2', time: 0.00 ms
[ 6] Request 'key7', response 'value7', time: 0.00 ms
[ 1] Request 'key3', response 'value3', time: 0.01 ms
[ 4] Request 'key8', response 'value8', time: 0.00 ms
[ 2] Request 'key5', response 'value5', time: 0.00 ms
[ 1] Request 'key6', response 'value6', time: 0.00 ms
[ 6] Request 'key1', response 'value1', time: 0.00 ms
[ 2] Request 'key3', response 'value3', time: 0.00 ms
[ 4] Request 'key2', response 'value2', time: 0.00 ms
[ 6] Request 'key6', response 'value6', time: 0.00 ms
[ 4] Request 'key3', response 'value3', time: 0.00 ms
[ 6] Request 'key9', response 'value9', time: 0.00 ms
[ 4] Request 'key6', response 'value6', time: 0.00 ms
[ 1] Request 'key7', response 'value7', time: 0.00 ms
[ 4] Request 'key6', response 'value6', time: 0.00 ms
[ 1] Request 'key9', response 'value9', time: 0.00 ms
[ 4] Request 'key1', response 'value1', time: 0.00 ms
[ 1] Request 'key0', response 'value0', time: 0.00 ms
[ 4] Request 'key5', response 'value5', time: 0.00 ms
[ 1] Request 'key0', response 'value0', time: 0.00 ms
[ 4] Request 'key6', response 'value6', time: 0.00 ms
[ 1] Request 'key7', response 'value7', time: 0.00 ms
[ 4] Request 'key7', response 'value7', time: 0.00 ms
[ 6] Request 'key6', response 'value6', time: 0.00 ms
[ 4] Request 'key2', response 'value2', time: 0.00 ms
[ 6] Request 'key5', response 'value5', time: 0.00 ms
[ 4] Request 'key0', response 'value0', time: 0.00 ms
[ 4] Request 'key0', response 'value0', time: 0.00 ms
[ 4] Request 'key8', response 'value8', time: 0.00 ms
[ 4] Request 'key9', response 'value9', time: 0.00 ms
[ 4] Request 'key6', response 'value6', time: 0.00 ms
[ 4] Request 'key2', response 'value2', time: 0.00 ms
[ 0] Request 'key4', response 'value4', time: 51.28 ms
[ 0] Request 'key8', response 'value8', time: 0.01 ms
[ 0] Request 'key3', response 'value3', time: 0.00 ms
[ 0] Request 'key4', response 'value4', time: 0.00 ms
[ 0] Request 'key3', response 'value3', time: 0.00 ms
[ 0] Request 'key0', response 'value0', time: 0.00 ms
[ 0] Request 'key8', response 'value8', time: 0.00 ms
[ 0] Request 'key9', response 'value9', time: 0.00 ms
[ 0] Request 'key3', response 'value3', time: 0.00 ms
[ 4] Request 'key4', response 'value4', time: 48.46 ms
[ 7] Request 'key4', response 'value4', time: 50.58 ms
[ 3] Request 'key4', response 'value4', time: 49.84 ms
[ 2] Request 'key4', response 'value4', time: 49.12 ms
[ 1] Request 'key4', response 'value4', time: 48.69 ms
[ 6] Request 'key4', response 'value4', time: 48.65 ms
[ 4] Request 'key4', response 'value4', time: 0.00 ms
[ 9] Request 'key4', response 'value4', time: 49.55 ms
[ 2] Request 'key4', response 'value4', time: 0.00 ms
[ 8] Request 'key4', response 'value4', time: 50.98 ms
[ 5] Request 'key4', response 'value4', time: 50.24 ms
[ 7] Request 'key4', response 'value4', time: 0.00 ms
[ 9] Request 'key0', response 'value0', time: 0.00 ms
[ 0] Request 'key4', response 'value4', time: 0.00 ms
[ 2] Request 'key1', response 'value1', time: 0.00 ms
[ 8] Request 'key8', response 'value8', time: 0.00 ms
[ 3] Request 'key1', response 'value1', time: 0.00 ms
[ 1] Request 'key6', response 'value6', time: 0.00 ms
[ 9] Request 'key8', response 'value8', time: 0.00 ms
[ 6] Request 'key3', response 'value3', time: 0.01 ms
[ 2] Request 'key2', response 'value2', time: 0.00 ms
[ 8] Request 'key1', response 'value1', time: 0.00 ms
[ 7] Request 'key4', response 'value4', time: 0.00 ms
[ 0] Request 'key9', response 'value9', time: 0.00 ms
[ 4] Request 'key3', response 'value3', time: 0.00 ms
[ 5] Request 'key2', response 'value2', time: 0.00 ms
[ 3] Request 'key9', response 'value9', time: 0.00 ms
[ 1] Request 'key6', response 'value6', time: 0.00 ms
[ 1] Request 'key9', response 'value9', time: 0.00 ms
[ 4] Request 'key2', response 'value2', time: 0.00 ms
[ 5] Request 'key5', response 'value5', time: 0.00 ms
[ 3] Request 'key4', response 'value4', time: 0.00 ms
[ 7] Request 'key0', response 'value0', time: 0.00 ms
[ 7] Request 'key2', response 'value2', time: 0.00 ms
[ 1] Request 'key8', response 'value8', time: 0.00 ms
[ 4] Request 'key8', response 'value8', time: 0.00 ms
[ 8] Request 'key1', response 'value1', time: 0.00 ms
[ 0] Request 'key5', response 'value5', time: 0.00 ms
[ 9] Request 'key0', response 'value0', time: 0.00 ms
[ 2] Request 'key7', response 'value7', time: 0.00 ms
[ 5] Request 'key1', response 'value1', time: 0.00 ms
[ 3] Request 'key4', response 'value4', time: 0.00 ms
[ 6] Request 'key8', response 'value8', time: 0.00 ms
[ 0] Request 'key9', response 'value9', time: 0.00 ms
[ 1] Request 'key6', response 'value6', time: 0.00 ms
[ 4] Request 'key3', response 'value3', time: 0.00 ms
[ 8] Request 'key5', response 'value5', time: 0.00 ms
[ 6] Request 'key5', response 'value5', time: 0.00 ms
[ 0] Request 'key3', response 'value3', time: 0.01 ms
[ 1] Request 'key2', response 'value2', time: 0.00 ms
[ 4] Request 'key0', response 'value0', time: 0.01 ms
[ 8] Request 'key5', response 'value5', time: 0.00 ms
[ 9] Request 'key4', response 'value4', time: 0.00 ms
[ 2] Request 'key4', response 'value4', time: 0.00 ms
[ 5] Request 'key1', response 'value1', time: 0.00 ms
[ 3] Request 'key8', response 'value8', time: 0.00 ms
[ 7] Request 'key0', response 'value0', time: 0.00 ms
[ 6] Request 'key0', response 'value0', time: 0.00 ms
[ 0] Request 'key2', response 'value2', time: 0.00 ms
[ 2] Request 'key1', response 'value1', time: 0.00 ms
[ 5] Request 'key3', response 'value3', time: 0.00 ms
[ 3] Request 'key5', response 'value5', time: 0.00 ms
[ 7] Request 'key2', response 'value2', time: 0.00 ms
[ 6] Request 'key1', response 'value1', time: 0.00 ms
[ 1] Request 'key4', response 'value4', time: 0.00 ms
[ 4] Request 'key1', response 'value1', time: 0.00 ms
[ 8] Request 'key9', response 'value9', time: 0.00 ms
[ 9] Request 'key1', response 'value1', time: 0.00 ms
[ 6] Request 'key4', response 'value4', time: 0.00 ms
[ 1] Request 'key5', response 'value5', time: 0.00 ms
[ 4] Request 'key5', response 'value5', time: 0.00 ms
[ 8] Request 'key4', response 'value4', time: 0.00 ms
[ 9] Request 'key5', response 'value5', time: 0.00 ms
[ 2] Request 'key0', response 'value0', time: 0.00 ms
[ 5] Request 'key8', response 'value8', time: 0.00 ms
[ 3] Request 'key0', response 'value0', time: 0.00 ms
[ 7] Request 'key5', response 'value5', time: 0.00 ms
[ 8] Request 'key7', response 'value7', time: 0.00 ms
[ 6] Request 'key0', response 'value0', time: 0.00 ms
[ 1] Request 'key5', response 'value5', time: 0.00 ms
[ 4] Request 'key6', response 'value6', time: 0.00 ms
[ 0] Request 'key6', response 'value6', time: 0.00 ms
[ 9] Request 'key2', response 'value2', time: 0.00 ms
[ 2] Request 'key7', response 'value7', time: 0.00 ms
[ 5] Request 'key5', response 'value5', time: 0.00 ms
[ 3] Request 'key0', response 'value0', time: 0.00 ms
[ 7] Request 'key3', response 'value3', time: 0.00 ms
[ 8] Request 'key5', response 'value5', time: 0.00 ms
[ 6] Request 'key6', response 'value6', time: 0.00 ms
[ 1] Request 'key8', response 'value8', time: 0.00 ms
[ 4] Request 'key1', response 'value1', time: 0.00 ms
[ 0] Request 'key0', response 'value0', time: 0.00 ms
[ 9] Request 'key9', response 'value9', time: 0.00 ms
[ 2] Request 'key7', response 'value7', time: 0.00 ms
[ 5] Request 'key1', response 'value1', time: 0.00 ms
[ 3] Request 'key4', response 'value4', time: 0.00 ms
[ 7] Request 'key5', response 'value5', time: 0.00 ms
[ 8] Request 'key1', response 'value1', time: 0.00 ms
[ 6] Request 'key0', response 'value0', time: 0.00 ms
[ 1] Request 'key9', response 'value9', time: 0.00 ms
[ 4] Request 'key6', response 'value6', time: 0.00 ms
[ 0] Request 'key7', response 'value7', time: 0.00 ms
[ 9] Request 'key3', response 'value3', time: 0.00 ms
[ 2] Request 'key9', response 'value9', time: 0.00 ms
[ 5] Request 'key4', response 'value4', time: 0.00 ms
[ 3] Request 'key5', response 'value5', time: 0.00 ms
[ 7] Request 'key0', response 'value0', time: 0.00 ms
[ 8] Request 'key7', response 'value7', time: 0.00 ms
[ 9] Request 'key5', response 'value5', time: 0.00 ms
[ 1] Request 'key0', response 'value0', time: 0.00 ms
[ 4] Request 'key8', response 'value8', time: 0.00 ms
[ 0] Request 'key9', response 'value9', time: 0.00 ms
[ 6] Request 'key6', response 'value6', time: 0.00 ms
[ 2] Request 'key9', response 'value9', time: 0.00 ms
[ 5] Request 'key9', response 'value9', time: 0.00 ms
[ 3] Request 'key0', response 'value0', time: 0.00 ms
[ 7] Request 'key6', response 'value6', time: 0.00 ms
[ 0] Request 'key6', response 'value6', time: 0.00 ms
[ 9] Request 'key6', response 'value6', time: 0.00 ms
[ 1] Request 'key9', response 'value9', time: 0.00 ms
[ 4] Request 'key0', response 'value0', time: 0.00 ms
[ 8] Request 'key5', response 'value5', time: 0.00 ms
[ 6] Request 'key5', response 'value5', time: 0.00 ms
[ 2] Request 'key0', response 'value0', time: 0.00 ms
[ 5] Request 'key1', response 'value1', time: 0.00 ms
[ 3] Request 'key9', response 'value9', time: 0.00 ms
[ 7] Request 'key3', response 'value3', time: 0.00 ms
[ 0] Request 'key6', response 'value6', time: 0.00 ms
[ 9] Request 'key1', response 'value1', time: 0.00 ms
[ 1] Request 'key1', response 'value1', time: 0.00 ms
[ 4] Request 'key8', response 'value8', time: 0.00 ms
[ 8] Request 'key7', response 'value7', time: 0.00 ms
[ 6] Request 'key0', response 'value0', time: 0.00 ms
[ 2] Request 'key9', response 'value9', time: 0.00 ms
[ 5] Request 'key7', response 'value7', time: 0.00 ms
[ 3] Request 'key1', response 'value1', time: 0.00 ms
[ 7] Request 'key6', response 'value6', time: 0.00 ms
[ 0] Request 'key9', response 'value9', time: 0.00 ms
[ 9] Request 'key8', response 'value8', time: 0.00 ms
[ 1] Request 'key4', response 'value4', time: 0.00 ms
[ 4] Request 'key4', response 'value4', time: 0.00 ms
[ 8] Request 'key2', response 'value2', time: 0.00 ms
[ 6] Request 'key6', response 'value6', time: 0.00 ms
[ 2] Request 'key3', response 'value3', time: 0.00 ms
[ 5] Request 'key2', response 'value2', time: 0.00 ms
[ 3] Request 'key0', response 'value0', time: 0.00 ms
[ 7] Request 'key8', response 'value8', time: 0.00 ms
[ 0] Request 'key5', response 'value5', time: 0.00 ms
[ 9] Request 'key6', response 'value6', time: 0.00 ms
[ 1] Request 'key1', response 'value1', time: 0.00 ms
[ 4] Request 'key4', response 'value4', time: 0.00 ms
[ 8] Request 'key2', response 'value2', time: 0.00 ms
[ 6] Request 'key6', response 'value6', time: 0.00 ms
[ 2] Request 'key0', response 'value0', time: 0.00 ms
[ 5] Request 'key9', response 'value9', time: 0.00 ms
[ 3] Request 'key3', response 'value3', time: 0.00 ms
[ 7] Request 'key0', response 'value0', time: 0.00 ms
[ 0] Request 'key3', response 'value3', time: 0.00 ms
[ 9] Request 'key7', response 'value7', time: 0.00 ms
[ 1] Request 'key1', response 'value1', time: 0.00 ms
[ 4] Request 'key3', response 'value3', time: 0.00 ms
[ 8] Request 'key1', response 'value1', time: 0.00 ms
[ 6] Request 'key4', response 'value4', time: 0.00 ms
[ 0] Request 'key1', response 'value1', time: 0.00 ms
[ 5] Request 'key6', response 'value6', time: 0.00 ms
[ 3] Request 'key8', response 'value8', time: 0.00 ms
[ 7] Request 'key2', response 'value2', time: 0.00 ms
[ 2] Request 'key8', response 'value8', time: 0.00 ms
[ 6] Request 'key2', response 'value2', time: 0.00 ms
[ 1] Request 'key9', response 'value9', time: 0.00 ms
[ 4] Request 'key3', response 'value3', time: 0.00 ms
[ 8] Request 'key6', response 'value6', time: 0.00 ms
[ 9] Request 'key5', response 'value5', time: 0.00 ms
[ 0] Request 'key1', response 'value1', time: 0.00 ms
[ 5] Request 'key9', response 'value9', time: 0.00 ms
[ 3] Request 'key6', response 'value6', time: 0.00 ms
[ 8] Request 'key7', response 'value7', time: 0.00 ms
[ 9] Request 'key1', response 'value1', time: 0.00 ms
[ 0] Request 'key8', response 'value8', time: 0.00 ms
[ 5] Request 'key2', response 'value2', time: 0.00 ms
[ 3] Request 'key4', response 'value4', time: 0.00 ms
[ 8] Request 'key9', response 'value9', time: 0.00 ms
[ 9] Request 'key2', response 'value2', time: 0.00 ms
[ 0] Request 'key4', response 'value4', time: 0.00 ms
[ 5] Request 'key6', response 'value6', time: 0.00 ms
[ 3] Request 'key6', response 'value6', time: 0.00 ms
[ 8] Request 'key3', response 'value3', time: 0.00 ms
[ 9] Request 'key6', response 'value6', time: 0.00 ms
[ 0] Request 'key9', response 'value9', time: 0.00 ms
[ 5] Request 'key2', response 'value2', time: 0.00 ms
[ 3] Request 'key8', response 'value8', time: 0.00 ms
[ 8] Request 'key4', response 'value4', time: 0.00 ms
[ 9] Request 'key0', response 'value0', time: 0.00 ms
[ 0] Request 'key5', response 'value5', time: 0.00 ms
[ 5] Request 'key6', response 'value6', time: 0.00 ms
[ 3] Request 'key5', response 'value5', time: 0.00 ms
[ 8] Request 'key1', response 'value1', time: 0.00 ms
[ 9] Request 'key2', response 'value2', time: 0.00 ms
[ 0] Request 'key4', response 'value4', time: 0.00 ms
[ 5] Request 'key2', response 'value2', time: 0.00 ms
[ 3] Request 'key0', response 'value0', time: 0.00 ms
[ 8] Request 'key9', response 'value9', time: 0.00 ms
[ 9] Request 'key7', response 'value7', time: 0.00 ms
[ 0] Request 'key0', response 'value0', time: 0.00 ms
[ 5] Request 'key5', response 'value5', time: 0.00 ms
[ 3] Request 'key6', response 'value6', time: 0.00 ms
[ 8] Request 'key6', response 'value6', time: 0.00 ms
[ 9] Request 'key2', response 'value2', time: 0.00 ms
[ 0] Request 'key3', response 'value3', time: 0.00 ms
[ 5] Request 'key5', response 'value5', time: 0.00 ms
[ 3] Request 'key1', response 'value1', time: 0.00 ms
[ 8] Request 'key4', response 'value4', time: 0.00 ms
[ 9] Request 'key5', response 'value5', time: 0.00 ms
[ 0] Request 'key0', response 'value0', time: 0.00 ms
[ 5] Request 'key2', response 'value2', time: 0.00 ms
[ 3] Request 'key9', response 'value9', time: 0.00 ms
[ 8] Request 'key2', response 'value2', time: 0.00 ms
[ 9] Request 'key4', response 'value4', time: 0.00 ms
[ 0] Request 'key8', response 'value8', time: 0.00 ms
[ 5] Request 'key3', response 'value3', time: 0.00 ms
[ 3] Request 'key5', response 'value5', time: 0.00 ms
[ 8] Request 'key4', response 'value4', time: 0.00 ms
[ 9] Request 'key8', response 'value8', time: 0.00 ms
[ 0] Request 'key4', response 'value4', time: 0.00 ms
[ 5] Request 'key4', response 'value4', time: 0.00 ms
[ 3] Request 'key0', response 'value0', time: 0.00 ms
[ 8] Request 'key0', response 'value0', time: 0.00 ms
[ 9] Request 'key6', response 'value6', time: 0.00 ms
[ 0] Request 'key3', response 'value3', time: 0.00 ms
[ 5] Request 'key0', response 'value0', time: 0.00 ms
[ 3] Request 'key8', response 'value8', time: 0.00 ms
[ 8] Request 'key4', response 'value4', time: 0.00 ms
[ 9] Request 'key0', response 'value0', time: 0.00 ms
[ 0] Request 'key4', response 'value4', time: 0.00 ms
[ 5] Request 'key6', response 'value6', time: 0.00 ms
[ 3] Request 'key6', response 'value6', time: 0.00 ms
[ 8] Request 'key8', response 'value8', time: 0.00 ms
[ 9] Request 'key3', response 'value3', time: 0.00 ms
[ 0] Request 'key3', response 'value3', time: 0.00 ms
[ 5] Request 'key0', response 'value0', time: 0.00 ms
[ 3] Request 'key0', response 'value0', time: 0.00 ms
[ 8] Request 'key0', response 'value0', time: 0.00 ms
[ 9] Request 'key3', response 'value3', time: 0.00 ms
[ 0] Request 'key1', response 'value1', time: 0.00 ms
[ 5] Request 'key5', response 'value5', time: 0.00 ms
[ 3] Request 'key8', response 'value8', time: 0.00 ms
[ 8] Request 'key9', response 'value9', time: 0.00 ms
[ 9] Request 'key5', response 'value5', time: 0.00 ms
[ 0] Request 'key5', response 'value5', time: 0.00 ms
[ 5] Request 'key6', response 'value6', time: 0.00 ms
[ 3] Request 'key4', response 'value4', time: 0.00 ms
[ 8] Request 'key9', response 'value9', time: 0.00 ms
[ 9] Request 'key5', response 'value5', time: 0.00 ms
[ 0] Request 'key0', response 'value0', time: 0.00 ms
[ 5] Request 'key6', response 'value6', time: 0.00 ms
[ 1] Request 'key3', response 'value3', time: 0.00 ms
[ 8] Request 'key2', response 'value2', time: 0.00 ms
[ 9] Request 'key6', response 'value6', time: 0.00 ms
[ 0] Request 'key8', response 'value8', time: 0.00 ms
[ 5] Request 'key1', response 'value1', time: 0.00 ms
[ 1] Request 'key2', response 'value2', time: 0.00 ms
[ 2] Request 'key8', response 'value8', time: 0.00 ms
[ 9] Request 'key6', response 'value6', time: 0.00 ms
[ 0] Request 'key8', response 'value8', time: 0.00 ms
[ 5] Request 'key5', response 'value5', time: 0.00 ms
[ 1] Request 'key2', response 'value2', time: 0.00 ms
[ 2] Request 'key9', response 'value9', time: 0.00 ms
[ 9] Request 'key5', response 'value5', time: 0.00 ms
[ 8] Request 'key1', response 'value1', time: 0.00 ms
[ 1] Request 'key5', response 'value5', time: 0.00 ms
[ 3] Request 'key1', response 'value1', time: 0.00 ms
[ 9] Request 'key0', response 'value0', time: 0.00 ms
[ 8] Request 'key7', response 'value7', time: 0.00 ms
[ 1] Request 'key9', response 'value9', time: 0.00 ms
[ 7] Request 'key8', response 'value8', time: 0.00 ms
[ 9] Request 'key3', response 'value3', time: 0.00 ms
[ 8] Request 'key7', response 'value7', time: 0.00 ms
[ 1] Request 'key1', response 'value1', time: 0.00 ms
[ 7] Request 'key4', response 'value4', time: 0.00 ms
[ 9] Request 'key7', response 'value7', time: 0.00 ms
[ 8] Request 'key5', response 'value5', time: 0.00 ms
[ 1] Request 'key1', response 'value1', time: 0.00 ms
[ 7] Request 'key4', response 'value4', time: 0.00 ms
[ 9] Request 'key6', response 'value6', time: 0.00 ms
[ 8] Request 'key5', response 'value5', time: 0.00 ms
[ 1] Request 'key6', response 'value6', time: 0.00 ms
[ 7] Request 'key9', response 'value9', time: 0.00 ms
[ 2] Request 'key9', response 'value9', time: 0.00 ms
[ 1] Request 'key8', response 'value8', time: 0.00 ms
[ 7] Request 'key2', response 'value2', time: 0.00 ms
[ 2] Request 'key9', response 'value9', time: 0.00 ms
[ 1] Request 'key9', response 'value9', time: 0.00 ms
[ 7] Request 'key8', response 'value8', time: 0.00 ms
[ 2] Request 'key8', response 'value8', time: 0.00 ms
[ 1] Request 'key3', response 'value3', time: 0.00 ms
[ 7] Request 'key2', response 'value2', time: 0.00 ms
[ 2] Request 'key5', response 'value5', time: 0.00 ms
[ 1] Request 'key7', response 'value7', time: 0.00 ms
[ 7] Request 'key4', response 'value4', time: 0.00 ms
[ 2] Request 'key1', response 'value1', time: 0.00 ms
[ 1] Request 'key9', response 'value9', time: 0.00 ms
[ 7] Request 'key3', response 'value3', time: 0.00 ms
[ 2] Request 'key2', response 'value2', time: 0.00 ms
[ 1] Request 'key6', response 'value6', time: 0.00 ms
[ 7] Request 'key4', response 'value4', time: 0.00 ms
[ 2] Request 'key4', response 'value4', time: 0.00 ms
[ 1] Request 'key1', response 'value1', time: 0.00 ms
[ 7] Request 'key8', response 'value8', time: 0.00 ms
[ 2] Request 'key7', response 'value7', time: 0.00 ms
[ 1] Request 'key0', response 'value0', time: 0.00 ms
[ 7] Request 'key8', response 'value8', time: 0.00 ms
[ 2] Request 'key9', response 'value9', time: 0.00 ms
[ 6] Request 'key9', response 'value9', time: 0.00 ms
[ 3] Request 'key0', response 'value0', time: 0.00 ms
[ 7] Request 'key7', response 'value7', time: 0.00 ms
[ 2] Request 'key4', response 'value4', time: 0.00 ms
[ 6] Request 'key6', response 'value6', time: 0.00 ms
[ 3] Request 'key8', response 'value8', time: 0.00 ms
[ 7] Request 'key9', response 'value9', time: 0.00 ms
[ 2] Request 'key1', response 'value1', time: 0.00 ms
[ 6] Request 'key8', response 'value8', time: 0.00 ms
[ 3] Request 'key0', response 'value0', time: 0.00 ms
[ 7] Request 'key0', response 'value0', time: 0.00 ms
[ 2] Request 'key1', response 'value1', time: 0.00 ms
[ 6] Request 'key3', response 'value3', time: 0.00 ms
[ 3] Request 'key1', response 'value1', time: 0.00 ms
[ 7] Request 'key5', response 'value5', time: 0.00 ms
[ 2] Request 'key3', response 'value3', time: 0.00 ms
[ 6] Request 'key1', response 'value1', time: 0.00 ms
[ 3] Request 'key9', response 'value9', time: 0.00 ms
[ 7] Request 'key2', response 'value2', time: 0.00 ms
[ 2] Request 'key1', response 'value1', time: 0.00 ms
[ 6] Request 'key2', response 'value2', time: 0.00 ms
[ 3] Request 'key9', response 'value9', time: 0.00 ms
[ 7] Request 'key8', response 'value8', time: 0.00 ms
[ 2] Request 'key1', response 'value1', time: 0.00 ms
[ 6] Request 'key7', response 'value7', time: 0.00 ms
[ 3] Request 'key0', response 'value0', time: 0.00 ms
[ 7] Request 'key3', response 'value3', time: 0.00 ms
[ 2] Request 'key0', response 'value0', time: 0.00 ms
[ 7] Request 'key8', response 'value8', time: 0.00 ms
[ 2] Request 'key2', response 'value2', time: 0.00 ms
[ 7] Request 'key4', response 'value4', time: 0.00 ms
[ 2] Request 'key2', response 'value2', time: 0.00 ms
[ 7] Request 'key8', response 'value8', time: 0.00 ms
[ 6] Request 'key6', response 'value6', time: 0.00 ms
[ 7] Request 'key4', response 'value4', time: 0.00 ms
[ 6] Request 'key1', response 'value1', time: 0.00 ms
[ 7] Request 'key5', response 'value5', time: 0.00 ms
[ 6] Request 'key0', response 'value0', time: 0.00 ms
[ 7] Request 'key7', response 'value7', time: 0.00 ms
[ 6] Request 'key9', response 'value9', time: 0.00 ms
[ 7] Request 'key6', response 'value6', time: 0.00 ms
[ 6] Request 'key5', response 'value5', time: 0.00 ms
[ 7] Request 'key6', response 'value6', time: 0.00 ms
[ 6] Request 'key7', response 'value7', time: 0.00 ms
[ 7] Request 'key6', response 'value6', time: 0.00 ms
[ 6] Request 'key8', response 'value8', time: 0.00 ms
[ 6] Request 'key3', response 'value3', time: 0.00 ms
real 0m0.190s
user 0m0.032s
sys 0m0.013s
(nearmap-py3)Johns-iMac:src johnmee$ time python3 program.py
[ 2] Request 'key2', response 'value2', time: 50.99 ms
[ 1] Request 'key8', response 'value8', time: 51.21 ms
[ 0] Request 'key7', response 'value7', time: 51.33 ms
[ 7] Request 'key9', response 'value9', time: 50.56 ms
[ 7] Request 'key7', response 'value7', time: 0.00 ms
[ 4] Request 'key1', response 'value1', time: 51.14 ms
[ 1] Request 'key9', response 'value9', time: 0.32 ms
[ 8] Request 'key7', response 'value7', time: 50.71 ms
[ 5] Request 'key6', response 'value6', time: 51.15 ms
[ 5] Request 'key8', response 'value8', time: 0.00 ms
[ 6] Request 'key1', response 'value1', time: 51.21 ms
[ 9] Request 'key6', response 'value6', time: 50.94 ms
[ 2] Request 'key6', response 'value6', time: 0.78 ms
[ 5] Request 'key5', response 'value5', time: 0.22 ms
[ 3] Request 'key5', response 'value5', time: 51.77 ms
[ 2] Request 'key1', response 'value1', time: 0.00 ms
[ 5] Request 'key6', response 'value6', time: 0.00 ms
[ 6] Request 'key6', response 'value6', time: 0.01 ms
[ 2] Request 'key9', response 'value9', time: 0.00 ms
[ 3] Request 'key9', response 'value9', time: 0.00 ms
[ 2] Request 'key6', response 'value6', time: 0.00 ms
[ 3] Request 'key9', response 'value9', time: 0.00 ms
[ 3] Request 'key2', response 'value2', time: 0.00 ms
[ 0] Request 'key0', response 'value0', time: 51.20 ms
[ 0] Request 'key5', response 'value5', time: 0.02 ms
[ 0] Request 'key2', response 'value2', time: 0.00 ms
[ 0] Request 'key6', response 'value6', time: 0.00 ms
[ 7] Request 'key4', response 'value4', time: 51.28 ms
[ 7] Request 'key0', response 'value0', time: 0.01 ms
[ 7] Request 'key5', response 'value5', time: 0.01 ms
[ 4] Request 'key4', response 'value4', time: 51.23 ms
[ 4] Request 'key0', response 'value0', time: 0.00 ms
[ 0] Request 'key4', response 'value4', time: 0.19 ms
[ 2] Request 'key3', response 'value3', time: 50.36 ms
[ 9] Request 'key3', response 'value3', time: 50.85 ms
[ 5] Request 'key3', response 'value3', time: 50.67 ms
[ 6] Request 'key4', response 'value4', time: 50.38 ms
[ 8] Request 'key3', response 'value3', time: 51.20 ms
[ 0] Request 'key0', response 'value0', time: 0.00 ms
[ 2] Request 'key5', response 'value5', time: 0.00 ms
[ 3] Request 'key4', response 'value4', time: 50.25 ms
[ 5] Request 'key9', response 'value9', time: 0.00 ms
[ 6] Request 'key1', response 'value1', time: 0.00 ms
[ 8] Request 'key5', response 'value5', time: 0.00 ms
[ 9] Request 'key9', response 'value9', time: 0.00 ms
[ 3] Request 'key5', response 'value5', time: 0.00 ms
[ 5] Request 'key8', response 'value8', time: 0.00 ms
[ 7] Request 'key3', response 'value3', time: 0.02 ms
[ 0] Request 'key4', response 'value4', time: 0.00 ms
[ 9] Request 'key3', response 'value3', time: 0.00 ms
[ 1] Request 'key4', response 'value4', time: 51.36 ms
[ 3] Request 'key5', response 'value5', time: 0.00 ms
[ 3] Request 'key4', response 'value4', time: 0.00 ms
[ 8] Request 'key7', response 'value7', time: 0.00 ms
[ 0] Request 'key3', response 'value3', time: 0.00 ms
[ 4] Request 'key8', response 'value8', time: 0.00 ms
[ 6] Request 'key5', response 'value5', time: 0.00 ms
[ 7] Request 'key6', response 'value6', time: 0.01 ms
[ 7] Request 'key5', response 'value5', time: 0.00 ms
[ 0] Request 'key9', response 'value9', time: 0.00 ms
[ 4] Request 'key1', response 'value1', time: 0.00 ms
[ 6] Request 'key9', response 'value9', time: 0.00 ms
[ 2] Request 'key6', response 'value6', time: 0.00 ms
[ 9] Request 'key1', response 'value1', time: 0.00 ms
[ 3] Request 'key0', response 'value0', time: 0.01 ms
[ 5] Request 'key0', response 'value0', time: 0.00 ms
[ 6] Request 'key1', response 'value1', time: 0.01 ms
[ 7] Request 'key7', response 'value7', time: 0.00 ms
[ 1] Request 'key4', response 'value4', time: 0.00 ms
[ 9] Request 'key3', response 'value3', time: 0.00 ms
[ 4] Request 'key8', response 'value8', time: 0.00 ms
[ 8] Request 'key4', response 'value4', time: 0.00 ms
[ 2] Request 'key8', response 'value8', time: 0.00 ms
[ 7] Request 'key0', response 'value0', time: 0.00 ms
[ 3] Request 'key7', response 'value7', time: 0.00 ms
[ 9] Request 'key3', response 'value3', time: 0.00 ms
[ 4] Request 'key9', response 'value9', time: 0.00 ms
[ 8] Request 'key1', response 'value1', time: 0.00 ms
[ 1] Request 'key6', response 'value6', time: 0.00 ms
[ 7] Request 'key0', response 'value0', time: 0.00 ms
[ 6] Request 'key3', response 'value3', time: 0.00 ms
[ 9] Request 'key0', response 'value0', time: 0.00 ms
[ 2] Request 'key6', response 'value6', time: 0.01 ms
[ 5] Request 'key6', response 'value6', time: 0.00 ms
[ 3] Request 'key1', response 'value1', time: 0.00 ms
[ 0] Request 'key2', response 'value2', time: 0.00 ms
[ 4] Request 'key0', response 'value0', time: 0.00 ms
[ 8] Request 'key0', response 'value0', time: 0.00 ms
[ 1] Request 'key4', response 'value4', time: 0.00 ms
[ 7] Request 'key3', response 'value3', time: 0.00 ms
[ 6] Request 'key3', response 'value3', time: 0.01 ms
[ 9] Request 'key3', response 'value3', time: 0.00 ms
[ 2] Request 'key7', response 'value7', time: 0.01 ms
[ 5] Request 'key4', response 'value4', time: 0.00 ms
[ 3] Request 'key7', response 'value7', time: 0.00 ms
[ 0] Request 'key8', response 'value8', time: 0.00 ms
[ 4] Request 'key6', response 'value6', time: 0.00 ms
[ 8] Request 'key4', response 'value4', time: 0.00 ms
[ 1] Request 'key9', response 'value9', time: 0.00 ms
[ 7] Request 'key1', response 'value1', time: 0.00 ms
[ 6] Request 'key7', response 'value7', time: 0.00 ms
[ 9] Request 'key3', response 'value3', time: 0.00 ms
[ 2] Request 'key7', response 'value7', time: 0.00 ms
[ 5] Request 'key3', response 'value3', time: 0.00 ms
[ 3] Request 'key1', response 'value1', time: 0.00 ms
[ 0] Request 'key3', response 'value3', time: 0.00 ms
[ 4] Request 'key7', response 'value7', time: 0.00 ms
[ 8] Request 'key9', response 'value9', time: 0.00 ms
[ 1] Request 'key4', response 'value4', time: 0.00 ms
[ 7] Request 'key3', response 'value3', time: 0.00 ms
[ 6] Request 'key7', response 'value7', time: 0.00 ms
[ 9] Request 'key9', response 'value9', time: 0.00 ms
[ 2] Request 'key5', response 'value5', time: 0.00 ms
[ 5] Request 'key3', response 'value3', time: 0.00 ms
[ 3] Request 'key9', response 'value9', time: 0.00 ms
[ 0] Request 'key1', response 'value1', time: 0.00 ms
[ 4] Request 'key7', response 'value7', time: 0.00 ms
[ 8] Request 'key3', response 'value3', time: 0.00 ms
[ 1] Request 'key2', response 'value2', time: 0.00 ms
[ 7] Request 'key2', response 'value2', time: 0.00 ms
[ 6] Request 'key2', response 'value2', time: 0.00 ms
[ 9] Request 'key5', response 'value5', time: 0.00 ms
[ 2] Request 'key4', response 'value4', time: 0.00 ms
[ 5] Request 'key5', response 'value5', time: 0.00 ms
[ 3] Request 'key6', response 'value6', time: 0.00 ms
[ 0] Request 'key9', response 'value9', time: 0.00 ms
[ 4] Request 'key8', response 'value8', time: 0.00 ms
[ 8] Request 'key7', response 'value7', time: 0.00 ms
[ 1] Request 'key8', response 'value8', time: 0.00 ms
[ 7] Request 'key3', response 'value3', time: 0.00 ms
[ 6] Request 'key8', response 'value8', time: 0.00 ms
[ 9] Request 'key8', response 'value8', time: 0.00 ms
[ 2] Request 'key6', response 'value6', time: 0.00 ms
[ 5] Request 'key5', response 'value5', time: 0.00 ms
[ 3] Request 'key8', response 'value8', time: 0.00 ms
[ 0] Request 'key5', response 'value5', time: 0.00 ms
[ 4] Request 'key7', response 'value7', time: 0.00 ms
[ 8] Request 'key7', response 'value7', time: 0.00 ms
[ 1] Request 'key6', response 'value6', time: 0.00 ms
[ 7] Request 'key6', response 'value6', time: 0.00 ms
[ 6] Request 'key8', response 'value8', time: 0.00 ms
[ 9] Request 'key5', response 'value5', time: 0.00 ms
[ 2] Request 'key6', response 'value6', time: 0.00 ms
[ 5] Request 'key1', response 'value1', time: 0.00 ms
[ 3] Request 'key0', response 'value0', time: 0.00 ms
[ 0] Request 'key1', response 'value1', time: 0.00 ms
[ 4] Request 'key9', response 'value9', time: 0.00 ms
[ 8] Request 'key7', response 'value7', time: 0.00 ms
[ 1] Request 'key4', response 'value4', time: 0.00 ms
[ 7] Request 'key7', response 'value7', time: 0.00 ms
[ 6] Request 'key9', response 'value9', time: 0.00 ms
[ 9] Request 'key6', response 'value6', time: 0.00 ms
[ 4] Request 'key1', response 'value1', time: 0.00 ms
[ 5] Request 'key9', response 'value9', time: 0.00 ms
[ 3] Request 'key1', response 'value1', time: 0.00 ms
[ 0] Request 'key0', response 'value0', time: 0.00 ms
[ 2] Request 'key3', response 'value3', time: 0.00 ms
[ 8] Request 'key6', response 'value6', time: 0.00 ms
[ 1] Request 'key8', response 'value8', time: 0.00 ms
[ 7] Request 'key5', response 'value5', time: 0.00 ms
[ 6] Request 'key8', response 'value8', time: 0.00 ms
[ 9] Request 'key8', response 'value8', time: 0.00 ms
[ 4] Request 'key7', response 'value7', time: 0.00 ms
[ 5] Request 'key8', response 'value8', time: 0.00 ms
[ 3] Request 'key6', response 'value6', time: 0.00 ms
[ 0] Request 'key1', response 'value1', time: 0.00 ms
[ 2] Request 'key5', response 'value5', time: 0.00 ms
[ 8] Request 'key3', response 'value3', time: 0.00 ms
[ 1] Request 'key9', response 'value9', time: 0.00 ms
[ 7] Request 'key0', response 'value0', time: 0.00 ms
[ 6] Request 'key9', response 'value9', time: 0.00 ms
[ 9] Request 'key3', response 'value3', time: 0.00 ms
[ 4] Request 'key3', response 'value3', time: 0.00 ms
[ 5] Request 'key0', response 'value0', time: 0.00 ms
[ 3] Request 'key1', response 'value1', time: 0.00 ms
[ 0] Request 'key0', response 'value0', time: 0.00 ms
[ 2] Request 'key0', response 'value0', time: 0.00 ms
[ 8] Request 'key8', response 'value8', time: 0.00 ms
[ 1] Request 'key0', response 'value0', time: 0.00 ms
[ 7] Request 'key1', response 'value1', time: 0.00 ms
[ 6] Request 'key5', response 'value5', time: 0.00 ms
[ 9] Request 'key4', response 'value4', time: 0.00 ms
[ 4] Request 'key1', response 'value1', time: 0.00 ms
[ 5] Request 'key8', response 'value8', time: 0.00 ms
[ 3] Request 'key8', response 'value8', time: 0.00 ms
[ 0] Request 'key4', response 'value4', time: 0.00 ms
[ 2] Request 'key4', response 'value4', time: 0.00 ms
[ 8] Request 'key0', response 'value0', time: 0.00 ms
[ 1] Request 'key5', response 'value5', time: 0.00 ms
[ 7] Request 'key6', response 'value6', time: 0.00 ms
[ 6] Request 'key5', response 'value5', time: 0.00 ms
[ 9] Request 'key8', response 'value8', time: 0.00 ms
[ 4] Request 'key4', response 'value4', time: 0.00 ms
[ 5] Request 'key1', response 'value1', time: 0.00 ms
[ 3] Request 'key5', response 'value5', time: 0.00 ms
[ 7] Request 'key8', response 'value8', time: 0.00 ms
[ 2] Request 'key0', response 'value0', time: 0.00 ms
[ 8] Request 'key7', response 'value7', time: 0.00 ms
[ 1] Request 'key7', response 'value7', time: 0.00 ms
[ 0] Request 'key1', response 'value1', time: 0.00 ms
[ 6] Request 'key7', response 'value7', time: 0.00 ms
[ 9] Request 'key0', response 'value0', time: 0.00 ms
[ 4] Request 'key9', response 'value9', time: 0.00 ms
[ 5] Request 'key2', response 'value2', time: 0.00 ms
[ 3] Request 'key9', response 'value9', time: 0.00 ms
[ 7] Request 'key1', response 'value1', time: 0.00 ms
[ 2] Request 'key6', response 'value6', time: 0.00 ms
[ 8] Request 'key4', response 'value4', time: 0.00 ms
[ 1] Request 'key8', response 'value8', time: 0.00 ms
[ 0] Request 'key3', response 'value3', time: 0.00 ms
[ 6] Request 'key9', response 'value9', time: 0.00 ms
[ 9] Request 'key4', response 'value4', time: 0.00 ms
[ 4] Request 'key2', response 'value2', time: 0.00 ms
[ 5] Request 'key9', response 'value9', time: 0.00 ms
[ 3] Request 'key1', response 'value1', time: 0.00 ms
[ 7] Request 'key7', response 'value7', time: 0.00 ms
[ 2] Request 'key0', response 'value0', time: 0.00 ms
[ 8] Request 'key8', response 'value8', time: 0.00 ms
[ 1] Request 'key7', response 'value7', time: 0.00 ms
[ 0] Request 'key1', response 'value1', time: 0.00 ms
[ 6] Request 'key4', response 'value4', time: 0.00 ms
[ 9] Request 'key8', response 'value8', time: 0.00 ms
[ 4] Request 'key7', response 'value7', time: 0.00 ms
[ 5] Request 'key9', response 'value9', time: 0.00 ms
[ 3] Request 'key5', response 'value5', time: 0.00 ms
[ 7] Request 'key4', response 'value4', time: 0.00 ms
[ 2] Request 'key7', response 'value7', time: 0.00 ms
[ 8] Request 'key4', response 'value4', time: 0.00 ms
[ 1] Request 'key0', response 'value0', time: 0.00 ms
[ 0] Request 'key0', response 'value0', time: 0.00 ms
[ 6] Request 'key5', response 'value5', time: 0.00 ms
[ 9] Request 'key2', response 'value2', time: 0.00 ms
[ 4] Request 'key6', response 'value6', time: 0.00 ms
[ 5] Request 'key6', response 'value6', time: 0.00 ms
[ 3] Request 'key8', response 'value8', time: 0.00 ms
[ 7] Request 'key0', response 'value0', time: 0.00 ms
[ 2] Request 'key5', response 'value5', time: 0.00 ms
[ 8] Request 'key3', response 'value3', time: 0.00 ms
[ 1] Request 'key7', response 'value7', time: 0.00 ms
[ 0] Request 'key7', response 'value7', time: 0.00 ms
[ 6] Request 'key5', response 'value5', time: 0.00 ms
[ 9] Request 'key1', response 'value1', time: 0.00 ms
[ 4] Request 'key3', response 'value3', time: 0.00 ms
[ 5] Request 'key1', response 'value1', time: 0.00 ms
[ 3] Request 'key5', response 'value5', time: 0.00 ms
[ 7] Request 'key6', response 'value6', time: 0.00 ms
[ 2] Request 'key7', response 'value7', time: 0.00 ms
[ 8] Request 'key0', response 'value0', time: 0.00 ms
[ 1] Request 'key3', response 'value3', time: 0.00 ms
[ 0] Request 'key1', response 'value1', time: 0.00 ms
[ 6] Request 'key8', response 'value8', time: 0.00 ms
[ 9] Request 'key4', response 'value4', time: 0.00 ms
[ 4] Request 'key2', response 'value2', time: 0.00 ms
[ 5] Request 'key0', response 'value0', time: 0.00 ms
[ 3] Request 'key0', response 'value0', time: 0.00 ms
[ 7] Request 'key6', response 'value6', time: 0.00 ms
[ 2] Request 'key9', response 'value9', time: 0.00 ms
[ 8] Request 'key4', response 'value4', time: 0.00 ms
[ 1] Request 'key8', response 'value8', time: 0.00 ms
[ 0] Request 'key5', response 'value5', time: 0.00 ms
[ 6] Request 'key7', response 'value7', time: 0.00 ms
[ 9] Request 'key7', response 'value7', time: 0.00 ms
[ 4] Request 'key9', response 'value9', time: 0.00 ms
[ 5] Request 'key5', response 'value5', time: 0.00 ms
[ 3] Request 'key5', response 'value5', time: 0.00 ms
[ 7] Request 'key5', response 'value5', time: 0.00 ms
[ 2] Request 'key8', response 'value8', time: 0.00 ms
[ 8] Request 'key2', response 'value2', time: 0.00 ms
[ 1] Request 'key2', response 'value2', time: 0.00 ms
[ 0] Request 'key8', response 'value8', time: 0.00 ms
[ 6] Request 'key1', response 'value1', time: 0.00 ms
[ 9] Request 'key8', response 'value8', time: 0.00 ms
[ 4] Request 'key3', response 'value3', time: 0.00 ms
[ 5] Request 'key7', response 'value7', time: 0.00 ms
[ 3] Request 'key8', response 'value8', time: 0.00 ms
[ 7] Request 'key4', response 'value4', time: 0.00 ms
[ 2] Request 'key5', response 'value5', time: 0.00 ms
[ 8] Request 'key6', response 'value6', time: 0.00 ms
[ 1] Request 'key7', response 'value7', time: 0.00 ms
[ 0] Request 'key3', response 'value3', time: 0.00 ms
[ 6] Request 'key2', response 'value2', time: 0.00 ms
[ 9] Request 'key8', response 'value8', time: 0.00 ms
[ 4] Request 'key4', response 'value4', time: 0.00 ms
[ 5] Request 'key4', response 'value4', time: 0.00 ms
[ 3] Request 'key3', response 'value3', time: 0.00 ms
[ 7] Request 'key1', response 'value1', time: 0.00 ms
[ 2] Request 'key5', response 'value5', time: 0.00 ms
[ 8] Request 'key1', response 'value1', time: 0.00 ms
[ 1] Request 'key1', response 'value1', time: 0.00 ms
[ 0] Request 'key7', response 'value7', time: 0.00 ms
[ 6] Request 'key6', response 'value6', time: 0.00 ms
[ 9] Request 'key7', response 'value7', time: 0.00 ms
[ 4] Request 'key1', response 'value1', time: 0.00 ms
[ 5] Request 'key9', response 'value9', time: 0.00 ms
[ 3] Request 'key0', response 'value0', time: 0.00 ms
[ 7] Request 'key1', response 'value1', time: 0.00 ms
[ 2] Request 'key9', response 'value9', time: 0.00 ms
[ 8] Request 'key4', response 'value4', time: 0.00 ms
[ 1] Request 'key1', response 'value1', time: 0.00 ms
[ 0] Request 'key9', response 'value9', time: 0.00 ms
[ 6] Request 'key4', response 'value4', time: 0.00 ms
[ 9] Request 'key9', response 'value9', time: 0.00 ms
[ 4] Request 'key1', response 'value1', time: 0.00 ms
[ 5] Request 'key9', response 'value9', time: 0.00 ms
[ 3] Request 'key9', response 'value9', time: 0.00 ms
[ 7] Request 'key1', response 'value1', time: 0.00 ms
[ 6] Request 'key5', response 'value5', time: 0.00 ms
[ 8] Request 'key4', response 'value4', time: 0.00 ms
[ 1] Request 'key0', response 'value0', time: 0.00 ms
[ 0] Request 'key8', response 'value8', time: 0.00 ms
[ 2] Request 'key1', response 'value1', time: 0.00 ms
[ 9] Request 'key2', response 'value2', time: 0.00 ms
[ 4] Request 'key9', response 'value9', time: 0.00 ms
[ 5] Request 'key6', response 'value6', time: 0.00 ms
[ 3] Request 'key6', response 'value6', time: 0.00 ms
[ 7] Request 'key2', response 'value2', time: 0.00 ms
[ 6] Request 'key4', response 'value4', time: 0.00 ms
[ 8] Request 'key7', response 'value7', time: 0.00 ms
[ 1] Request 'key8', response 'value8', time: 0.00 ms
[ 0] Request 'key1', response 'value1', time: 0.00 ms
[ 2] Request 'key7', response 'value7', time: 0.00 ms
[ 9] Request 'key7', response 'value7', time: 0.00 ms
[ 4] Request 'key7', response 'value7', time: 0.00 ms
[ 5] Request 'key7', response 'value7', time: 0.00 ms
[ 3] Request 'key3', response 'value3', time: 0.00 ms
[ 7] Request 'key9', response 'value9', time: 0.00 ms
[ 6] Request 'key3', response 'value3', time: 0.00 ms
[ 8] Request 'key5', response 'value5', time: 0.00 ms
[ 1] Request 'key8', response 'value8', time: 0.00 ms
[ 0] Request 'key7', response 'value7', time: 0.00 ms
[ 2] Request 'key7', response 'value7', time: 0.00 ms
[ 9] Request 'key6', response 'value6', time: 0.00 ms
[ 4] Request 'key1', response 'value1', time: 0.00 ms
[ 5] Request 'key3', response 'value3', time: 0.00 ms
[ 3] Request 'key7', response 'value7', time: 0.00 ms
[ 7] Request 'key9', response 'value9', time: 0.00 ms
[ 6] Request 'key6', response 'value6', time: 0.00 ms
[ 8] Request 'key2', response 'value2', time: 0.00 ms
[ 1] Request 'key3', response 'value3', time: 0.00 ms
[ 0] Request 'key6', response 'value6', time: 0.00 ms
[ 2] Request 'key2', response 'value2', time: 0.00 ms
[ 9] Request 'key4', response 'value4', time: 0.00 ms
[ 4] Request 'key7', response 'value7', time: 0.00 ms
[ 5] Request 'key4', response 'value4', time: 0.00 ms
[ 3] Request 'key9', response 'value9', time: 0.00 ms
[ 7] Request 'key2', response 'value2', time: 0.00 ms
[ 6] Request 'key5', response 'value5', time: 0.00 ms
[ 8] Request 'key4', response 'value4', time: 0.00 ms
[ 1] Request 'key0', response 'value0', time: 0.00 ms
[ 0] Request 'key1', response 'value1', time: 0.00 ms
[ 2] Request 'key5', response 'value5', time: 0.00 ms
[ 9] Request 'key8', response 'value8', time: 0.00 ms
[ 4] Request 'key0', response 'value0', time: 0.00 ms
[ 5] Request 'key3', response 'value3', time: 0.00 ms
[ 3] Request 'key0', response 'value0', time: 0.00 ms
[ 7] Request 'key3', response 'value3', time: 0.00 ms
[ 6] Request 'key2', response 'value2', time: 0.00 ms
[ 8] Request 'key5', response 'value5', time: 0.00 ms
[ 1] Request 'key1', response 'value1', time: 0.00 ms
[ 0] Request 'key9', response 'value9', time: 0.00 ms
[ 2] Request 'key0', response 'value0', time: 0.00 ms
[ 9] Request 'key8', response 'value8', time: 0.00 ms
[ 4] Request 'key3', response 'value3', time: 0.00 ms
[ 5] Request 'key9', response 'value9', time: 0.00 ms
[ 3] Request 'key1', response 'value1', time: 0.00 ms
[ 7] Request 'key4', response 'value4', time: 0.00 ms
[ 6] Request 'key5', response 'value5', time: 0.00 ms
[ 8] Request 'key6', response 'value6', time: 0.00 ms
[ 1] Request 'key5', response 'value5', time: 0.00 ms
[ 0] Request 'key6', response 'value6', time: 0.00 ms
[ 2] Request 'key1', response 'value1', time: 0.00 ms
[ 9] Request 'key3', response 'value3', time: 0.00 ms
[ 4] Request 'key4', response 'value4', time: 0.00 ms
[ 5] Request 'key1', response 'value1', time: 0.00 ms
[ 3] Request 'key9', response 'value9', time: 0.00 ms
[ 7] Request 'key0', response 'value0', time: 0.00 ms
[ 6] Request 'key8', response 'value8', time: 0.00 ms
[ 8] Request 'key1', response 'value1', time: 0.00 ms
[ 1] Request 'key0', response 'value0', time: 0.00 ms
[ 0] Request 'key0', response 'value0', time: 0.00 ms
[ 2] Request 'key1', response 'value1', time: 0.00 ms
[ 9] Request 'key1', response 'value1', time: 0.00 ms
[ 4] Request 'key7', response 'value7', time: 0.00 ms
[ 5] Request 'key8', response 'value8', time: 0.00 ms
[ 3] Request 'key4', response 'value4', time: 0.00 ms
[ 7] Request 'key2', response 'value2', time: 0.00 ms
[ 6] Request 'key2', response 'value2', time: 0.00 ms
[ 8] Request 'key1', response 'value1', time: 0.00 ms
[ 1] Request 'key7', response 'value7', time: 0.00 ms
[ 0] Request 'key3', response 'value3', time: 0.00 ms
[ 2] Request 'key0', response 'value0', time: 0.00 ms
[ 9] Request 'key6', response 'value6', time: 0.00 ms
[ 4] Request 'key2', response 'value2', time: 0.00 ms
[ 5] Request 'key9', response 'value9', time: 0.00 ms
[ 3] Request 'key8', response 'value8', time: 0.00 ms
[ 7] Request 'key7', response 'value7', time: 0.00 ms
[ 6] Request 'key6', response 'value6', time: 0.00 ms
[ 8] Request 'key4', response 'value4', time: 0.00 ms
[ 1] Request 'key4', response 'value4', time: 0.00 ms
[ 0] Request 'key8', response 'value8', time: 0.00 ms
[ 2] Request 'key3', response 'value3', time: 0.00 ms
[ 7] Request 'key0', response 'value0', time: 0.00 ms
[ 4] Request 'key5', response 'value5', time: 0.00 ms
[ 5] Request 'key8', response 'value8', time: 0.00 ms
[ 3] Request 'key7', response 'value7', time: 0.00 ms
[ 9] Request 'key7', response 'value7', time: 0.00 ms
[ 6] Request 'key2', response 'value2', time: 0.00 ms
[ 8] Request 'key7', response 'value7', time: 0.00 ms
[ 1] Request 'key4', response 'value4', time: 0.00 ms
[ 0] Request 'key4', response 'value4', time: 0.00 ms
[ 2] Request 'key5', response 'value5', time: 0.00 ms
[ 7] Request 'key7', response 'value7', time: 0.00 ms
[ 4] Request 'key3', response 'value3', time: 0.00 ms
[ 5] Request 'key7', response 'value7', time: 0.00 ms
[ 3] Request 'key7', response 'value7', time: 0.00 ms
[ 9] Request 'key8', response 'value8', time: 0.00 ms
[ 6] Request 'key7', response 'value7', time: 0.00 ms
[ 8] Request 'key7', response 'value7', time: 0.00 ms
[ 1] Request 'key8', response 'value8', time: 0.00 ms
[ 0] Request 'key7', response 'value7', time: 0.00 ms
[ 2] Request 'key3', response 'value3', time: 0.00 ms
[ 7] Request 'key9', response 'value9', time: 0.00 ms
[ 4] Request 'key3', response 'value3', time: 0.00 ms
[ 5] Request 'key1', response 'value1', time: 0.00 ms
[ 3] Request 'key3', response 'value3', time: 0.00 ms
[ 9] Request 'key4', response 'value4', time: 0.00 ms
[ 6] Request 'key7', response 'value7', time: 0.00 ms
[ 8] Request 'key2', response 'value2', time: 0.00 ms
[ 1] Request 'key2', response 'value2', time: 0.00 ms
[ 0] Request 'key1', response 'value1', time: 0.00 ms
[ 2] Request 'key6', response 'value6', time: 0.00 ms
[ 7] Request 'key8', response 'value8', time: 0.00 ms
[ 4] Request 'key0', response 'value0', time: 0.00 ms
[ 5] Request 'key4', response 'value4', time: 0.00 ms
[ 3] Request 'key8', response 'value8', time: 0.00 ms
[ 9] Request 'key5', response 'value5', time: 0.00 ms
[ 6] Request 'key0', response 'value0', time: 0.00 ms
[ 8] Request 'key9', response 'value9', time: 0.00 ms
[ 1] Request 'key5', response 'value5', time: 0.00 ms
[ 0] Request 'key7', response 'value7', time: 0.00 ms
[ 2] Request 'key0', response 'value0', time: 0.00 ms
[ 7] Request 'key3', response 'value3', time: 0.00 ms
[ 6] Request 'key3', response 'value3', time: 0.00 ms
[ 5] Request 'key5', response 'value5', time: 0.00 ms
[ 3] Request 'key2', response 'value2', time: 0.00 ms
[ 0] Request 'key5', response 'value5', time: 0.00 ms
[ 4] Request 'key8', response 'value8', time: 0.00 ms
[ 8] Request 'key0', response 'value0', time: 0.00 ms
[ 1] Request 'key5', response 'value5', time: 0.00 ms
[ 9] Request 'key8', response 'value8', time: 0.00 ms
[ 2] Request 'key2', response 'value2', time: 0.00 ms
[ 7] Request 'key9', response 'value9', time: 0.00 ms
[ 6] Request 'key4', response 'value4', time: 0.00 ms
[ 5] Request 'key9', response 'value9', time: 0.00 ms
[ 3] Request 'key1', response 'value1', time: 0.00 ms
[ 0] Request 'key7', response 'value7', time: 0.00 ms
[ 4] Request 'key8', response 'value8', time: 0.00 ms
[ 8] Request 'key2', response 'value2', time: 0.00 ms
[ 1] Request 'key3', response 'value3', time: 0.00 ms
[ 9] Request 'key1', response 'value1', time: 0.00 ms
[ 2] Request 'key2', response 'value2', time: 0.00 ms
[ 7] Request 'key3', response 'value3', time: 0.00 ms
[ 6] Request 'key1', response 'value1', time: 0.00 ms
[ 5] Request 'key4', response 'value4', time: 0.00 ms
[ 3] Request 'key3', response 'value3', time: 0.00 ms
[ 0] Request 'key4', response 'value4', time: 0.00 ms
[ 4] Request 'key4', response 'value4', time: 0.00 ms
[ 6] Request 'key3', response 'value3', time: 0.00 ms
[ 5] Request 'key0', response 'value0', time: 0.00 ms
[ 3] Request 'key6', response 'value6', time: 0.00 ms
[ 0] Request 'key3', response 'value3', time: 0.00 ms
[ 4] Request 'key5', response 'value5', time: 0.00 ms
[ 6] Request 'key5', response 'value5', time: 0.00 ms
[ 5] Request 'key3', response 'value3', time: 0.00 ms
[ 8] Request 'key8', response 'value8', time: 0.00 ms
[ 4] Request 'key1', response 'value1', time: 0.00 ms
[ 6] Request 'key8', response 'value8', time: 0.00 ms
[ 5] Request 'key8', response 'value8', time: 0.00 ms
[ 8] Request 'key2', response 'value2', time: 0.00 ms
[ 4] Request 'key8', response 'value8', time: 0.00 ms
[ 1] Request 'key2', response 'value2', time: 0.00 ms
[ 8] Request 'key3', response 'value3', time: 0.00 ms
[ 4] Request 'key5', response 'value5', time: 0.00 ms
[ 1] Request 'key7', response 'value7', time: 0.00 ms
[ 8] Request 'key7', response 'value7', time: 0.00 ms
[ 2] Request 'key0', response 'value0', time: 0.00 ms
[ 9] Request 'key9', response 'value9', time: 0.00 ms
[ 1] Request 'key0', response 'value0', time: 0.00 ms
[ 8] Request 'key1', response 'value1', time: 0.00 ms
[ 2] Request 'key7', response 'value7', time: 0.00 ms
[ 9] Request 'key2', response 'value2', time: 0.00 ms
[ 1] Request 'key9', response 'value9', time: 0.00 ms
[ 8] Request 'key3', response 'value3', time: 0.00 ms
[ 2] Request 'key6', response 'value6', time: 0.00 ms
[ 9] Request 'key6', response 'value6', time: 0.00 ms
[ 1] Request 'key3', response 'value3', time: 0.00 ms
[ 9] Request 'key7', response 'value7', time: 0.00 ms
[ 1] Request 'key0', response 'value0', time: 0.00 ms
[ 9] Request 'key5', response 'value5', time: 0.00 ms
[ 1] Request 'key3', response 'value3', time: 0.00 ms
real 0m0.141s
user 0m0.032s
sys 0m0.013s
(nearmap-py3)Johns-iMac:src johnmee$ python -m unittest tests -v
test_delay (tests.TestDatasource) ... ok
test_init (tests.TestDatasource) ... ok
test_read (tests.TestDatasource) ... ok
test_write (tests.TestDatasource) ... ok
test_delay (tests.TestDistributedCache) ... ok
test_init (tests.TestDistributedCache) ... ok
test_keyerror (tests.TestDistributedCache) ... ok
test_write_and_read (tests.TestDistributedCache) ... ok
----------------------------------------------------------------------
Ran 8 tests in 0.228s
OK
(nearmap-py3)Johns-iMac:src johnmee$
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment