redis-benchmarks-specification 0.2.9__py3-none-any.whl → 0.2.10__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of redis-benchmarks-specification might be problematic. Click here for more details.

@@ -1,9 +1,7 @@
1
1
  version: 0.4
2
2
  name: memtier_benchmark-playbook-rate-limiting-lua-100k-sessions
3
3
  description: |
4
- Runs memtier_benchmark to simulate **API rate limiting** using Redis with an atomic Lua script.
5
- Each user has a dedicated key in the form `ratelimit:user-<id>:/api/resource`, which tracks
6
- request counts under a **fixed time window** (e.g., 100 requests per 60 seconds).
4
+ Runs memtier_benchmark to model API rate limiting in Redis using a strings-only Lua script that enforces a sliding window via current/previous time buckets. Each call atomically checks user, org, and global counters with GET/INCRBY/PEXPIRE/TIME, increments only on allow, and returns allow/remaining/reset.
7
5
 
8
6
  The benchmark uses a Lua script to atomically enforce quotas:
9
7
 
@@ -87,9 +85,7 @@ clientconfig:
87
85
  --print-percentiles=50,90,95,99
88
86
  --run-count=1
89
87
  --test-time=120
90
- --command='EVAL "local key=KEYS[1];local limit=10;local window=60;local current=redis.call(\"INCR\",key);if current==1 then redis.call(\"EXPIRE\",key,window) end;if current>limit then return 0 else return 1 end" 1 ratelimit:user-__key__:/api/resource'
91
- --command-key-pattern=R
92
- --hide-histogram
88
+ --command='EVAL "local base=ARGV[1];local limit=tonumber(ARGV[2]);local window=tonumber(ARGV[3]);local slots=tonumber(ARGV[4]);local t=redis.call(\"TIME\");local now=t[1]*1000+math.floor(t[2]/1000);local bucket=math.floor(now/window);local key=base..\":\"..tostring(bucket);local slot=math.floor(((now%window)*slots)/window);local count=redis.call(\"BITCOUNT\",key);local allowed=0;if count<limit then redis.call(\"SETBIT\",key,slot,1);allowed=1;end;redis.call(\"PEXPIRE\",key,window*2);local reset=window-(now%window);local remaining=limit-(count+allowed);if remaining<0 then remaining=0 end;return {allowed,remaining,reset}" 0 ratelimit:{user-__key__}:/api/resource 100 60000 60000' --hide-histogram
93
89
  resources:
94
90
  requests:
95
91
  cpus: '4'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: redis-benchmarks-specification
3
- Version: 0.2.9
3
+ Version: 0.2.10
4
4
  Summary: The Redis benchmarks specification describes the cross-language/tools requirements and expectations to foster performance and observability standards around redis related technologies. Members from both industry and academia, including organizations and individuals are encouraged to contribute.
5
5
  Author: filipecosta90
6
6
  Author-email: filipecosta.90@gmail.com
@@ -277,7 +277,7 @@ redis_benchmarks_specification/test-suites/memtier_benchmark-nokeys-pubsub-mixed
277
277
  redis_benchmarks_specification/test-suites/memtier_benchmark-nokeys-pubsub-publish-1K-channels-10B-no-subscribers.yml,sha256=8M9AdpNaVBuSUm78cqKModOF_xITV_RM7RLCTyvtvaQ,825
278
278
  redis_benchmarks_specification/test-suites/memtier_benchmark-nokeys-server-time-pipeline-10.yml,sha256=zeTHtpbhNGfzTXHfr9P5e62PebxUONRvTsCbXJZhsTs,721
279
279
  redis_benchmarks_specification/test-suites/memtier_benchmark-playbook-leaderboard.yml,sha256=YZTgci8gAfGxTDAM-GHMn_w4hqeNoS4Yi6FYX9JyCt0,6690
280
- redis_benchmarks_specification/test-suites/memtier_benchmark-playbook-rate-limiting-lua-100k-sessions.yml,sha256=zyRjf6Y-XPL1RkCtIxMiwaAsq9fkViPLJADnlm_tXio,3072
280
+ redis_benchmarks_specification/test-suites/memtier_benchmark-playbook-rate-limiting-lua-100k-sessions.yml,sha256=QRG8AGNwfdf3Icwwrdt3Z6GeRl2Aau31zkBYnR2GgIA,3507
281
281
  redis_benchmarks_specification/test-suites/memtier_benchmark-playbook-realtime-analytics-membership-pipeline-10.yml,sha256=uh0J81Y27_YnQfDqzaTpYtJNvIdRFJtYsBUmXGTBrl4,2842
282
282
  redis_benchmarks_specification/test-suites/memtier_benchmark-playbook-realtime-analytics-membership.yml,sha256=y_q6GWbodKpVA48o1a1frqF0bU52utIOnjIjuiQt0qk,2816
283
283
  redis_benchmarks_specification/test-suites/memtier_benchmark-playbook-session-caching-hash-100k-sessions.yml,sha256=H98DrXlq-lRhoe1M7vehfDBbUdZ7WwWroriTpklx-PI,3646
@@ -287,8 +287,8 @@ redis_benchmarks_specification/test-suites/memtier_benchmark-playbook-session-st
287
287
  redis_benchmarks_specification/test-suites/memtier_benchmark-playbook-session-storage-1k-sessions.yml,sha256=2egtIxPxCze2jlbAfgsk4v9JSQHNMoPLbDWFEW8olDg,7006
288
288
  redis_benchmarks_specification/test-suites/template.txt,sha256=ezqGiRPOvuSDO0iG7GEf-AGXNfHbgXI89_G0RUEzL88,481
289
289
  redis_benchmarks_specification/vector-search-test-suites/vector_db_benchmark_test.yml,sha256=PD7ow-k4Ll2BkhEC3aIqiaCZt8Hc4aJIp96Lw3J3mcI,791
290
- redis_benchmarks_specification-0.2.9.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
291
- redis_benchmarks_specification-0.2.9.dist-info/METADATA,sha256=Vq1sm7xrOs4XePn-d58jGe_ZRGoW5ATpor_J22BwIGQ,22766
292
- redis_benchmarks_specification-0.2.9.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
293
- redis_benchmarks_specification-0.2.9.dist-info/entry_points.txt,sha256=x5WBXCZsnDRTZxV7SBGmC65L2k-ygdDOxV8vuKN00Nk,715
294
- redis_benchmarks_specification-0.2.9.dist-info/RECORD,,
290
+ redis_benchmarks_specification-0.2.10.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
291
+ redis_benchmarks_specification-0.2.10.dist-info/METADATA,sha256=9qy8SQ5NPYYQq6x6TG3HUApapHjqRU_2wvdIt6lwJow,22767
292
+ redis_benchmarks_specification-0.2.10.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
293
+ redis_benchmarks_specification-0.2.10.dist-info/entry_points.txt,sha256=x5WBXCZsnDRTZxV7SBGmC65L2k-ygdDOxV8vuKN00Nk,715
294
+ redis_benchmarks_specification-0.2.10.dist-info/RECORD,,