A component and helper functions to expose access to a specific schema accessible by FDB's record layer.
This is agnostic to the schema which will need to
be supplied to the component using the rough DDL
exposed in exoscale.vinyl.schema
A component and helper functions to expose access to a specific schema accessible by FDB's record layer. This is agnostic to the schema which will need to be supplied to the component using the rough DDL exposed in `exoscale.vinyl.schema`
(continuation-traversing-reducer db f val continuing-fn)
A reducer over large ranges.
Results are reduced into an accumulator with the help of the reducing
function f
.
The accumulator is initiated to init
. clojure.core.reduced
is honored.
Obviously, this approach does away with any consistency guarantees usually
offered by FDB. continuing-fn
is called at every step
Results being accumulated in memory, this also means that care must be taken with the accumulator.
A reducer over large ranges. Results are reduced into an accumulator with the help of the reducing function `f`. The accumulator is initiated to `init`. `clojure.core.reduced` is honored. Obviously, this approach does away with any consistency guarantees usually offered by FDB. `continuing-fn` is called at every step Results being accumulated in memory, this also means that care must be taken with the accumulator.
(get-metadata this)
Return this context's record metadata
Return this context's record metadata
(new-runner this)
Return a runner to handle retryable logic
Return a runner to handle retryable logic
(run-async this f)
Run an asynchronous function against an FDBRecordStore. Protocolized so it can be called against the database or the store
Run an asynchronous function against an FDBRecordStore. Protocolized so it can be called against the database or the store
(run-in-context this f)
Run a function against an FDBRecordStore. Protocolized so it can be called against the database or the store
Run a function against an FDBRecordStore. Protocolized so it can be called against the database or the store
(db-from-instance)
(db-from-instance cluster-file)
Build a valid FDB database from configuration. Use the standard cluster-file location or a specific one if instructed to do so.
Build a valid FDB database from configuration. Use the standard cluster-file location or a specific one if instructed to do so.
(delete-by-key-component txn-context record-type items)
In cases where composite keys are used, this can be used to clear all records for a specific composite key prefix
In cases where composite keys are used, this can be used to clear all records for a specific composite key prefix
(delete-by-prefix-scan txn-context record-type items)
Delete all records surfaced by a prefix scan
Delete all records surfaced by a prefix scan
(delete-by-query txn-context query)
Delete all records surfaced by a query
Delete all records surfaced by a query
(execute-properties {:exoscale.vinyl.store/keys [fail-on-scan-limit-reached?
isolation-level skip limit]
:as props})
(execute-query txn-context query)
(execute-query txn-context query opts)
(execute-query txn-context query opts values)
(inc-prefix p)
Given an object path, yield the next semantic one.
Given an object path, yield the next semantic one.
(initialize schema-name descriptor schema)
(initialize schema-name descriptor schema opts)
(list-query txn-context query)
(list-query txn-context query opts)
(list-query txn-context query opts values)
(long-query-reducer db f val query)
(long-query-reducer db
f
val
query
{:exoscale.vinyl.store/keys [values] :as opts})
(long-query-reducer db f init query opts values)
A reducer over large queries. Accepts queries as per execute-query
. Results
are reduced into an accumulator with the help of the reducing function f
.
The accumulator is initiated to init
. clojure.core.reduced
is honored.
Obviously, this approach does away with any consistency guarantees usually offered by FDB.
Results being accumulated in memory, this also means that care must be taken with the accumulator.
A reducer over large queries. Accepts queries as per `execute-query`. Results are reduced into an accumulator with the help of the reducing function `f`. The accumulator is initiated to `init`. `clojure.core.reduced` is honored. Obviously, this approach does away with any consistency guarantees usually offered by FDB. Results being accumulated in memory, this also means that care must be taken with the accumulator.
(long-range-reducer db f val record-type items)
(long-range-reducer db
f
val
record-type
items
{:exoscale.vinyl.store/keys [marker] :as opts})
A reducer over large ranges.
Results are reduced into an accumulator with the help of the reducing
function f
.
The accumulator is initiated to init
. clojure.core.reduced
is honored.
Obviously, this approach does away with any consistency guarantees usually offered by FDB.
Results being accumulated in memory, this also means that care must be taken with the accumulator.
A reducer over large ranges. Results are reduced into an accumulator with the help of the reducing function `f`. The accumulator is initiated to `init`. `clojure.core.reduced` is honored. Obviously, this approach does away with any consistency guarantees usually offered by FDB. Results being accumulated in memory, this also means that care must be taken with the accumulator.
(record-store-builder)
Yield a new record store builder
Yield a new record store builder
(runner-opts runner
{:exoscale.vinyl.store/keys [max-attempts initial-delay max-delay
transaction-timeout]})
(scan-properties {:exoscale.vinyl.store/keys [reverse?] :as props})
(scan-properties props reverse?)
(store-query-fn query
{:exoscale.vinyl.store/keys [values intercept-plan-fn log-plan?]
:as opts})
This builds a directory structure of /$environment/$schema
This builds a directory structure of /$environment/$schema
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close