class Movie::Cluster::PostgresSplitBrainLease

Overview

Production split-brain lease backed by Movie's shared PostgreSQL persistence pool. SQLite is intentionally rejected because it cannot arbitrate ownership across cluster nodes.

Defined in:

movie/persistence/split_brain.cr

Constant Summary

ENTITY_TYPE = "__movie_cluster_split_brain__"

Constructors

Instance Method Summary

Instance methods inherited from class Movie::Cluster::SplitBrainLease

acquire(owner : String, duration : Time::Span) : SplitBrainLeaseToken | Nil acquire, current : SplitBrainLeaseToken | Nil current, name : String name, release(token : SplitBrainLeaseToken) : Bool release, renew(token : SplitBrainLeaseToken, duration : Time::Span) : SplitBrainLeaseToken | Nil renew

Constructor Detail

def self.new(database : Movie::DatabaseExtension, cluster_name : String, lease_name : String = "default") #

[View source]

Instance Method Detail

def acquire(owner : String, duration : Time::Span) : SplitBrainLeaseToken | Nil #

[View source]
def current : SplitBrainLeaseToken | Nil #

[View source]
def name : String #

[View source]
def release(token : SplitBrainLeaseToken) : Bool #

[View source]
def renew(token : SplitBrainLeaseToken, duration : Time::Span) : SplitBrainLeaseToken | Nil #

[View source]