class Sequel::SchemaSharding::DTraceProvider

Attributes

provider[R]

Public Class Methods

new() click to toggle source
# File lib/sequel/schema-sharding/dtrace_provider.rb, line 8
def initialize
  @provider = USDT::Provider.create(:ruby, :sequel_schema_sharding)
end
provider() click to toggle source
# File lib/sequel/schema-sharding/dtrace_provider.rb, line 24
def self.provider
  @provider ||= new.tap do |p|
    p.read_only_shard_for
    p.replica_hash_for
    p.shard_for
    p.provider.enable
  end
end

Public Instance Methods

read_only_shard_for() click to toggle source
# File lib/sequel/schema-sharding/dtrace_provider.rb, line 12
def read_only_shard_for
  @read_only_probe ||= provider.probe(:model, :read_only_shard_for, :string, :integer, :string)
end
replica_hash_for() click to toggle source
# File lib/sequel/schema-sharding/dtrace_provider.rb, line 16
def replica_hash_for
  @replica_hash_for ||= provider.probe(:connection_manager, :replica_hash_for, :string)
end
shard_for() click to toggle source
# File lib/sequel/schema-sharding/dtrace_provider.rb, line 20
def shard_for
  @shard_for_probe ||= provider.probe(:model, :shard_for, :string, :integer, :string)
end