Skip to main content

ArrowLogStore

Struct ArrowLogStore 

Source
pub struct ArrowLogStore { /* private fields */ }
Expand description

One repository’s secrets, as an Arrow IPC log.

Cheap to clone: every clone is the same store, and the exclusive lock lives until the last handle is dropped.

Implementations§

Source§

impl ArrowLogStore

Source

pub fn open(dir: impl AsRef<Path>, hash_kind: Kind) -> Result<Self>

Open the logs in dir, creating them if absent, and take the exclusive lock.

Fails with Error::StoreLocked if another writer already holds it, and with Error::HashKindMismatch if the log on disk belongs to a repository of the other hash kind.

Source

pub fn open_with_policy( dir: impl AsRef<Path>, hash_kind: Kind, policy: CompactionPolicy, ) -> Result<Self>

ArrowLogStore::open with a chosen compaction policy.

The operator lever for threshold-based secret-log compaction. Replaced or deleted secrets are compacted immediately regardless of this policy.

Source

pub fn in_memory(hash_kind: Kind) -> Result<(Self, MemoryLog)>

A store with no file behind it. This is the no-OS shape, and what the no-filesystem conformance run uses.

The framing, encoding and replay code is the same as the file backing’s; what this shape cannot speak to is durability, since there is nothing for an fsync to mean. The durability claim is made by the file tests only.

Source

pub fn open_memory(log: &MemoryLog, hash_kind: Kind) -> Result<Self>

Rebuild a store by replaying log, the in-memory restart.

Source

pub fn open_memory_with_policy( log: &MemoryLog, hash_kind: Kind, policy: CompactionPolicy, ) -> Result<Self>

ArrowLogStore::open_memory with a chosen compaction policy.

Source

pub fn force_unlock(dir: impl AsRef<Path>) -> Result<()>

Remove a lock file left behind by a process that was killed.

Only ever correct when no gunnar is running against dir. The lock is what keeps Arrow stream appends single-writer; breaking one that is genuinely held lets two writers interleave frames and destroy the log.

§This is no longer the normal recovery path

open reclaims a lock whose owner is provably gone, so an appliance with no shell restarts after a power cut on its own. What is left for this verb is the undecidable cases, where breaking the lock is a judgement no program should make unasked: a platform with no /proc, a lock file written by a gunnar older than the liveness check, or one whose owner line never reached the disk.

Source

pub fn hash_kind(&self) -> Kind

The hash kind this repository uses.

Source

pub fn compaction_policy(&self) -> CompactionPolicy

The compaction policy in force.

Source

pub fn secrets(&self) -> ArrowLogSecretStore

A handle implementing SecretStore.

Trait Implementations§

Source§

impl Clone for ArrowLogStore

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ArrowLogStore

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Allocation for T
where T: RefUnwindSafe + Send + Sync,

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

Source§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

Source§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

Source§

fn implicit( self, class: Class, constructed: bool, tag: u32, ) -> TaggedParser<'a, Implicit, Self, E>

Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more