Пример #1
0
 def setUp(self):
     self.client = Elevator(timeout=10)
     self._bootstrap_db()
Пример #2
0
def test_elevator_single_read(n):
    for i in xrange(n):
        db.Get(str(i))


@timeit
def test_elevator_multi_write(n):
    with WriteBatch() as batch:
        for i in xrange(n):
            batch.Put(str(i), str(i))


if __name__ == '__main__':
    n = 100000

    db = Elevator()
    test_elevator_single_write(n)
    test_elevator_single_read(n)
    test_elevator_multi_write(n)
    """
    # tcp
    # elevator -c config/elevator.conf -w 8
    'test_elevator_single_write' args: (100000,) 57.43 sec
    'test_elevator_single_read' args: (100000,) 64.16 sec
    'test_elevator_multi_write' args: (100000,) 0.51 sec

    # tcp
    # elevator -c config/elevator.conf -w 16
    'test_elevator_single_write' args: (100000,) 65.89 sec
    'test_elevator_single_read' args: (100000,) 63.12 sec
    'test_elevator_multi_write' args: (100000,) 0.50 sec
Пример #3
0
    weibos = db.MGet(weibo_ids)
    # weibos = [msgpack.unpackb(weibo) if weibo else None for weibo in weibos]
    weibos = [json.loads(weibo) if weibo else None for weibo in weibos]
    return weibos


def test_rw(n):
    weibos_from_mongo = load_weibos_from_mongo(n)
    elevator_multi_write(weibos_from_mongo)
    weibo_ids = [str(weibo['id']) for weibo in weibos_from_mongo]
    weibos_from_elevator = elevator_multi_read(weibo_ids)

    for i in xrange(len(weibos_from_mongo)):
        if weibos_from_mongo[i] != weibos_from_elevator[i]:
            print '** ' * 10, i


if __name__ == '__main__':
    mongo = _default_mongo(usedb='master_timeline')
    db = Elevator(timeout=1000)
    db.createdb('testdb')
    db.connect('testdb')
    test_rw(10000)
    db.dropdb('testdb')
    """
    load 100000 weibos
    'load_weibos_from_mongo' args: 7.71 sec
    'elevator_multi_read' args: 14.73 sec
    结论是elevator并不足以投入prod使用
    """