How is cosmosDB RU throughput enforced

前端 未结 2 1614
隐瞒了意图╮
隐瞒了意图╮ 2020-12-22 01:45

I have a cosmosGB gremlin API set up with 400 RU/s. If I have to run a query that needs 800 RUs, does it mean that this query takes 2 sec to execute? If i increase the throu

2条回答
  •  长情又很酷
    2020-12-22 02:13

    A single query is charged a given amount of request units, so it's not quite accurate to say "query needs 800 RU/s". A 1KB doc read is 1 RU, and writing is more expensive starting around 10 RU each. Generally you should avoid any requests that would individually be more than say 50, and that is probably high. In my experience, I try to keep the individual charge for each operation as low as possible, usually under 20-30 for large list queries.

    The upshot is that 400/s is more than enough to at least complete 1 query. It's when you have multiple attempts that combine for overage in the timespan that Cosmos tells you to wait some time before being allowed to succeed again. This is dynamic and based on a more or less black box formula. It's not necessarily a simple division of allowance by charge, and no individual request would be faster or slower based on the limit.

    You can see if you're getting throttled by inspecting the response, or monitor by checking the Azure dashboard metrics.

提交回复
热议问题