Как эффективно извлекать данные с помощью клиентской библиотеки Coubase Python?

Действие: я запускаю следующий код:

#Code to fetch a key from Couachbase serially again and again
from couchbase.client import Couchbase
couchbase = Couchbase("ubuntumartini03", "default", "")
bucket = couchbase["martini-tag-manager"]
while True:
    print bucket.get("somekey")

Результат: запустив этот код, я смог выполнить 500 операций в секунду.

Действие: я выполнил четыре экземпляра этого кода.

Результат: мне удалось выполнить 2000 операций в секунду.

Вывод: узким местом является нечто иное, чем максимально возможное количество операций, которые может выполнять диванная база в секунду, ИЛИ максимальное количество возможных операций, которые может выполнить данная машина для приведенного выше кода.

Вопрос:

How to make max possible ops per sec by single instance itself?

person codersofthedark    schedule 26.02.2013    source источник


Ответы (1)


Клиент Couchbase Pytnon в основном синхронный и не использует несколько ядер, которые у вас, вероятно, есть. Он пытается реализовать многопоточное поведение, но с интерпретатором CPython это абсолютно бессмысленно. Поможет только полная повторная реализация с использованием чего-то вроде Gevent.

Также взгляните на эту ошибку.

person Pavel Paulau    schedule 26.02.2013
comment
Я использую Tornado, чтобы сделать запрос. Как я могу повысить свою производительность? - person codersofthedark; 26.02.2013