Liking cljdoc? Tell your friends :D

taoensso.carmine

Clojure Redis client & message queue.

Clojure Redis client & message queue.
raw docstring

taoensso.carmine.connections

Handles socket connection lifecycle. Pool is implemented with Apache Commons pool. Originally adapted from redis-clojure.

Handles socket connection lifecycle. Pool is implemented with Apache Commons
pool. Originally adapted from redis-clojure.
raw docstring

taoensso.carmine.locks

Alpha - subject to change. Distributed lock implementation for Carmine based on work by Ronen Narkis and Josiah Carlson. Redis 2.6+.

Redis keys:

  • carmine:lock:<lock-name> -> ttl str, lock owner's UUID.

Ref. http://goo.gl/5UalQ for implementation details.

Alpha - subject to change.
Distributed lock implementation for Carmine based on work by Ronen Narkis
and Josiah Carlson. Redis 2.6+.

Redis keys:
  * carmine:lock:<lock-name> -> ttl str, lock owner's UUID.

Ref. http://goo.gl/5UalQ for implementation details.
raw docstring

taoensso.carmine.message-queue

Carmine-backed Clojure message queue, v2. All heavy lifting by Redis.

Uses an optimized message circle architecture that is simple, reliable, and has pretty good throughput and latency.

See mq-diagram.svg in repo for diagram of architecture, Ref. http://antirez.com/post/250 for initial inspiration.

Message status e/o: nil - Not in queue or already GC'd :queued - Awaiting handler :queued-with-backoff - Awaiting handler, but skip until backoff expired :locked - Currently with handler :locked-with-requeue - Currently with handler, will requeue when done :done-awaiting-gc - Finished handling, awaiting GC :done-with-backoff - Finished handling, awaiting GC, but skip until dedupe backoff expired :done-with-requeue - Will requeue, but skip until dedupe backoff expired

Redis keys (all prefixed with carmine:mq:<qname>:):

  • messages - hash: {mid mcontent} ; Message content

  • messages-rq - hash: {mid mcontent} ; '' for requeues

  • lock-times - hash: {mid lock-ms} ; Optional mid-specific lock duration

  • lock-times-rq - hash: {mid lock-ms} ; '' for requeues

  • udts - hash: {mid udt-first-enqueued}

  • locks - hash: {mid lock-expiry-time} ; Active locks

  • backoffs - hash: {mid backoff-expiry-time} ; Active backoffs

  • nattempts - hash: {mid attempt-count}

  • done - mid set: awaiting gc, etc.

  • requeue - mid set: awaiting requeue ; Deprecated

  • mids-ready - list: mids for immediate handling (push to left, pop from right)

  • mid-circle - list: mids for maintenance processing (push to left, pop from right)

  • ndry-runs - int: num times worker(s) have lapped queue w/o work to do

  • isleep-a - list: 0/1 sentinel element for interruptible-sleep

  • isleep-b - list: 0/1 sentinel element for interruptible-sleep

Carmine-backed Clojure message queue, v2.
All heavy lifting by Redis.

Uses an optimized message circle architecture that is simple, reliable,
and has pretty good throughput and latency.

See `mq-diagram.svg` in repo for diagram of architecture,
Ref. http://antirez.com/post/250 for initial inspiration.

Message status e/o:
  nil                  - Not in queue or already GC'd
  :queued              - Awaiting handler
  :queued-with-backoff - Awaiting handler, but skip until backoff expired
  :locked              - Currently with handler
  :locked-with-requeue - Currently with handler, will requeue when done
  :done-awaiting-gc    - Finished handling, awaiting GC
  :done-with-backoff   - Finished handling, awaiting GC,
                         but skip until dedupe backoff expired
  :done-with-requeue   - Will requeue, but skip until dedupe backoff expired

Redis keys (all prefixed with `carmine:mq:<qname>:`):
  * messages      - hash: {mid mcontent} ; Message content
  * messages-rq   - hash: {mid mcontent} ; '' for requeues
  * lock-times    - hash: {mid lock-ms}  ; Optional mid-specific lock duration
  * lock-times-rq - hash: {mid lock-ms}  ; '' for requeues
  * udts          - hash: {mid  udt-first-enqueued}
  * locks         - hash: {mid    lock-expiry-time} ; Active locks
  * backoffs      - hash: {mid backoff-expiry-time} ; Active backoffs
  * nattempts     - hash: {mid attempt-count}
  * done          - mid set: awaiting gc, etc.
  * requeue       - mid set: awaiting requeue ; Deprecated

  * mids-ready    - list: mids for immediate handling     (push to left, pop from right)
  * mid-circle    - list: mids for maintenance processing (push to left, pop from right)
  * ndry-runs     - int: num times worker(s) have lapped queue w/o work to do

  * isleep-a      - list: 0/1 sentinel element for `interruptible-sleep`
  * isleep-b      - list: 0/1 sentinel element for `interruptible-sleep`
raw docstring

taoensso.carmine.ring

Carmine-backed Ring session store.

Carmine-backed Ring session store.
raw docstring

taoensso.carmine.tundra

Semi-automatic archival datastore layer for Carmine. Use multiple Redis instances (recommended) or Redis databases for local key namespacing.

Redis keys:

  • carmine:tundra:evictable - set, ks for which ensure-ks fail should throw
Semi-automatic archival datastore layer for Carmine.
Use multiple Redis instances (recommended) or Redis databases for local key
namespacing.

Redis keys:
  * carmine:tundra:evictable - set, ks for which `ensure-ks` fail should throw
raw docstring

taoensso.carmine.tundra.carmine

Secondary Redis server DataStore implementation for Tundra.

Secondary Redis server DataStore implementation for Tundra.
raw docstring

No vars found in this namespace.

taoensso.carmine.tundra.disk

Simple disk-based DataStore implementation for Tundra.

Simple disk-based DataStore implementation for Tundra.
raw docstring

taoensso.carmine.tundra.faraday

Faraday (DynamoDB) DataStore implementation for Tundra.

Use AWS Data Pipeline to setup scheduled backups of DynamoDB table(s) to S3 (there is a template pipeline for exactly this purpose).

Faraday (DynamoDB) DataStore implementation for Tundra.

Use AWS Data Pipeline to setup scheduled backups of DynamoDB table(s) to S3
(there is a template pipeline for exactly this purpose).
raw docstring

taoensso.carmine.tundra.s3

AWS S3 (clj-aws-s3) DataStore implementation for Tundra.

AWS S3 (clj-aws-s3) DataStore implementation for Tundra.
raw docstring

cljdoc is a website building & hosting documentation for Clojure/Script libraries

× close