Skip to content
Every cmdlet, in full

Every cmdlet, in full

Every cmdlet, in full

Every one of the 139 cmdlets the module exports, with each parameter, its type, whether it is required, and what the cmdlet writes, followed by the properties and methods of whatever came back. Generated from the built module by crates/subetha-pwrs/tools/Export-Reference.ps1, so it cannot disagree with the surface it describes.

For the shape of an actual returned value rather than its type, see What the values look like . In a shell, Get-Help <name> -Full adds an example to any of these.

Contents

The front door (7) - New-SubEthaAdaptiveQueue , New-SubEthaChannel , New-SubEthaKvMap , New-SubEthaQosPolicy , New-SubEthaWorkQueue , Open-SubEthaChannel , Open-SubEthaWorkQueue

Rings and channels (11) - New-SubEthaBroadcastRing , New-SubEthaLamportPair , New-SubEthaMpmcGrid , New-SubEthaMpscPool , New-SubEthaPubSub , New-SubEthaRing , New-SubEthaSpscRing , Open-SubEthaBroadcastRing , Open-SubEthaPubSub , Open-SubEthaRing , Open-SubEthaSpscRing

Rings that change themselves (4) - New-SubEthaCapacityRing , New-SubEthaLocaleRing , Open-SubEthaCapacityRing , Open-SubEthaLocaleRing

The sidecar (4) - Get-SubEthaSidecar , Invoke-SubEthaSidecarScan , New-SubEthaAdaptive , Set-SubEthaSidecar

Order (1) - New-SubEthaReorderWindow

Shared state (40) - New-SubEthaArena , New-SubEthaAtomic , New-SubEthaBitVec , New-SubEthaBTreeMap , New-SubEthaCell , New-SubEthaDeque , New-SubEthaFrameRegion , New-SubEthaGraph , New-SubEthaHandleTable , New-SubEthaHashMap , New-SubEthaLazyValue , New-SubEthaLinkedList , New-SubEthaRegion , New-SubEthaSharedArc , New-SubEthaSlab , New-SubEthaStack , New-SubEthaTopologyMap , New-SubEthaTower , New-SubEthaUniversal , New-SubEthaVec , Open-SubEthaArena , Open-SubEthaAtomic , Open-SubEthaBitVec , Open-SubEthaBTreeMap , Open-SubEthaCell , Open-SubEthaDeque , Open-SubEthaFrameRegion , Open-SubEthaGraph , Open-SubEthaHandleTable , Open-SubEthaHashMap , Open-SubEthaLazyValue , Open-SubEthaLinkedList , Open-SubEthaRegion , Open-SubEthaSharedArc , Open-SubEthaSlab , Open-SubEthaStack , Open-SubEthaTopologyMap , Open-SubEthaTower , Open-SubEthaUniversal , Open-SubEthaVec

State with a history (12) - New-SubEthaEpochs , New-SubEthaLanedMap , New-SubEthaTimePointTile , New-SubEthaVersionChain , New-SubEthaVersionedMap , New-SubEthaVersionedSlab , Open-SubEthaEpochs , Open-SubEthaLanedMap , Open-SubEthaTimePointTile , Open-SubEthaVersionChain , Open-SubEthaVersionedMap , Open-SubEthaVersionedSlab

Coordination (20) - New-SubEthaCondvar , New-SubEthaEpochBarrier , New-SubEthaFenceClock , New-SubEthaHeartbeat , New-SubEthaHolderTable , New-SubEthaLeaderElection , New-SubEthaNotifierSet , New-SubEthaOwnerLease , New-SubEthaRWLock , New-SubEthaSemaphore , Open-SubEthaCondvar , Open-SubEthaEpochBarrier , Open-SubEthaFenceClock , Open-SubEthaHeartbeat , Open-SubEthaHolderTable , Open-SubEthaLeaderElection , Open-SubEthaOwnerLease , Open-SubEthaRWLock , Open-SubEthaSemaphore , Wait-SubEthaCondition

Probabilistic (20) - Measure-SubEthaBloomSize , Measure-SubEthaSketchSize , New-SubEthaBlockedBloomFilter , New-SubEthaBloomFilter , New-SubEthaCountMinSketch , New-SubEthaFineBloom , New-SubEthaHistogram , New-SubEthaHyperLogLog , New-SubEthaLruCache , New-SubEthaRateLimiter , New-SubEthaReservoir , New-SubEthaTinyBloom , Open-SubEthaBlockedBloomFilter , Open-SubEthaBloomFilter , Open-SubEthaCountMinSketch , Open-SubEthaHistogram , Open-SubEthaHyperLogLog , Open-SubEthaLruCache , Open-SubEthaRateLimiter , Open-SubEthaReservoir

Clocks (2) - New-SubEthaCausalClock , New-SubEthaClock

Sensing (10) - New-SubEthaCapacity , New-SubEthaForecast , New-SubEthaLossBursts , New-SubEthaLossKind , New-SubEthaPathChanges , New-SubEthaPeriodicity , New-SubEthaRoundTripShape , New-SubEthaSensReceiver , New-SubEthaSensSender , New-SubEthaTiming

Bridges (6) - Get-SubEthaTransport , New-SubEthaQuicBridgeClient , New-SubEthaQuicBridgeServer , New-SubEthaSelfSignedCert , New-SubEthaTcpBridgeClient , New-SubEthaTcpBridgeServer

The pipeline (2) - Receive-SubEthaItem , Send-SubEthaItem

The front door

New-SubEthaAdaptiveQueue

Creates the adaptive queue at Path with Capacity items in flight (1024 when absent), starting as a ring for Senders and Readers and changing shape as the traffic says.

Also New-SEAdaptiveQueue.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Capacityulong-named-
Sendersulong-named-
Readersulong-named-
OrderingSubEtha.OrderingNeed-named-
AutoOrderdouble-named-

Writes SubEtha.AdaptiveQueue.

PropertyType
MaxItemSizeulong
Pathstring
MethodAnswers
ChangeShapeTo(SubEtha.QueueShape shape)void
Inversions()ulong
MaybeChangeShape()SubEtha.QueueShape?
Ordering()SubEtha.OrderingNeed
Recv()object
RecvFor(double? timeout)object
RecvMany(ulong? maxItems)object[]
Send(object item)bool
SendFor(object item, double? timeout)bool
SendMany(object[] items)ulong
SetOrdering(SubEtha.OrderingNeed ordering)void
Shape()SubEtha.QueueShape
ShapeGeneration()ulong
Traffic()SubEtha.Traffic

New-SubEthaChannel

Obtains the channel at Path with Capacity items in flight (1024 when absent, rounded up to a power of two), creating it for Senders and Readers when the file does not exist.

Also New-SEChannel.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Capacityulong-named-
Sendersulong-named-
Readersulong-named-

Writes SubEtha.Channel.

PropertyType
MaxItemSizeulong
Pathstring
MethodAnswers
Recv()object
RecvFor(double? timeout)object
RecvMany(ulong? maxItems)object[]
Send(object item)bool
SendFor(object item, double? timeout)bool
SendMany(object[] items)ulong

New-SubEthaKvMap

Creates the map at Path with Capacity entries (1024 when absent), shaped for Readers and Writers.

Also New-SEKvMap.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Capacityulong-named-
Readersulong-named-
Writersulong-named-

Writes SubEtha.KvMap.

PropertyType
Pathstring
MethodAnswers
Contains(ulong key)bool
Count()ulong
Get(ulong key)ulong?
GetMany(ulong[] keys)object[]
Insert(ulong key, ulong value)bool
InsertMany(ulong[] keys, ulong[] values)bool[]

New-SubEthaQosPolicy

Builds a policy from its settings, or from a Preset with any of the settings overriding it.

Also New-SEQosPolicy.

ParameterTypeRequiredPositionPipeline
PresetSubEtha.QosPreset-named-
DurabilitySubEtha.Durability-named-
ReliabilitySubEtha.Reliability-named-
KeepLastuint-named-
KeepAllswitch-named-
MaxLatencydouble-named-
OrderingSubEtha.OrderingNeed-named-

Writes SubEtha.QosPolicy.

MethodAnswers
Durability()SubEtha.Durability
KeepLast()uint?
MaxLatency()double
Ordering()SubEtha.OrderingNeed
Reliability()SubEtha.Reliability
SetDurability(SubEtha.Durability durability)void
SetKeepLast(uint? keepLast)void
SetMaxLatency(double seconds)void
SetOrdering(SubEtha.OrderingNeed ordering)void
SetReliability(SubEtha.Reliability reliability)void
Snapshot()SubEtha.QosSnapshot

New-SubEthaWorkQueue

Creates the work queue at Path as its owner, with Capacity items in flight (1024 when absent) and Thieves expected to take from it.

Also New-SEWorkQueue.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Capacityulong-named-
Thievesulong-named-

Writes SubEtha.WorkQueue.

PropertyType
MaxItemSizeulong
Pathstring
Thiefbool
MethodAnswers
Pop()object
Push(object item)bool
PushMany(object[] items)ulong
Steal()object
StealMany(ulong? maxItems)object[]

Open-SubEthaChannel

Attaches to the channel at Path, which must exist with the Capacity it was created with.

Also Open-SEChannel.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Capacityulong-named-

Writes SubEtha.Channel.

PropertyType
MaxItemSizeulong
Pathstring
MethodAnswers
Recv()object
RecvFor(double? timeout)object
RecvMany(ulong? maxItems)object[]
Send(object item)bool
SendFor(object item, double? timeout)bool
SendMany(object[] items)ulong

Open-SubEthaWorkQueue

Attaches to the work queue at Path as a thief, to take from it.

Also Open-SEWorkQueue.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-

Writes SubEtha.WorkQueue.

PropertyType
MaxItemSizeulong
Pathstring
Thiefbool
MethodAnswers
Pop()object
Push(object item)bool
PushMany(object[] items)ulong
Steal()object
StealMany(ulong? maxItems)object[]

Rings and channels

New-SubEthaBroadcastRing

Obtains the broadcast ring at Path holding Capacity slots, creating it when the file does not exist.

Also New-SEBroadcastRing.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Capacityulongyes1-

Writes SubEtha.BroadcastRing.

PropertyType
Capacityulong
Pathstring
PayloadSizeulong
MethodAnswers
ActiveConsumers()ulong
Lag(ulong consumer)ulong?
Observe(object policy)SubEtha.Registration
ProducerPosition()ulong
Push(object item)bool
PushMany(object[] items)ulong
Recv(ulong consumer)object
RecvMany(ulong consumer, ulong maxItems)object[]
RegisterConsumer()ulong
UnregisterConsumer(ulong consumer)void
WaitForConsumers(ulong want, double timeoutSeconds)ulong

New-SubEthaLamportPair

Makes a Lamport pair at Path, one producer and one consumer over one ring of Capacity slots, and writes the two in that order. Exactly one of each may exist per ring: within a process the types enforce that, and across processes it is the caller’s undertaking, which is why the pair is handed out rather than opened twice.

Also New-SELamportPair.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Capacityulongyes1-
Openswitch-named-

Writes SubEtha.LamportConsumer, SubEtha.LamportProducer.

On the SubEtha.LamportConsumer:

PropertyType
Capacityulong
Pathstring
MethodAnswers
Pop()object
PopMany(ulong maxItems)object[]
PopPacked(ulong maxItems)SubEtha.PackedItems

On the SubEtha.LamportProducer:

PropertyType
Capacityulong
Pathstring
PayloadSizeulong
MethodAnswers
Push(object item)bool
PushMany(object[] items)ulong
PushPacked(object data, ulong itemLen)ulong

New-SubEthaMpmcGrid

Makes a grid at Path of Producers rings of Capacity slots shared out among Consumers, and writes the producers and the consumers together. Open attaches to a grid that exists with the shape it was built at.

Also New-SEMpmcGrid.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Producersulongyes1-
Consumersulongyes2-
Capacityulongyes3-
Openswitch-named-

Writes SubEtha.MpmcGrid.

PropertyType
ConsumersSubEtha.MpmcConsumer[]
ProducersSubEtha.MpmcProducer[]

New-SubEthaMpscPool

Makes a pool at Path of Producers rings of Capacity slots, drained by one consumer, and writes the producers and the consumer together. Open attaches to a pool that exists with the shape it was built at.

Also New-SEMpscPool.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Producersulongyes1-
Capacityulongyes2-
Openswitch-named-

Writes SubEtha.MpscPool.

PropertyType
ConsumerSubEtha.MpscConsumer
ProducersSubEtha.MpscProducer[]

New-SubEthaPubSub

Obtains the publish/subscribe ring at Path keeping Capacity items, creating it when the file does not exist.

Also New-SEPubSub.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Capacityulongyes1-

Writes SubEtha.PubSub.

PropertyType
Capacityulong
Pathstring
PayloadSizeulong
MethodAnswers
Head()ulong
Publish(object item)ulong
PublishMany(object[] items)ulong?
ReadAt(ulong position)object
Subscribe()SubEtha.Subscriber
SubscribeFrom(ulong position)SubEtha.Subscriber

New-SubEthaRing

Obtains the adaptive ring at Path holding Capacity slots, creating it when the file does not exist.

Also New-SERing.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Capacityulongyes1-
MaxProducersulong-named-
MaxConsumersulong-named-
StampsSubEtha.StampKind-named-
Managedswitch-named-
ScanIntervalUsulong-named-

Writes SubEtha.Ring.

PropertyType
Managedbool
MaxConsumersulong
MaxProducersulong
Pathstring
StampsSubEtha.StampKind?
MethodAnswers
ApproxLen()ulong
Capacity()ulong
IsEmpty()bool
MorphRefusals()ulong
Observe(object policy)SubEtha.Registration
OrderedReceiver(ulong consumer)SubEtha.OrderedReceiver
Recv(ulong consumer)object
RecvFrame(ulong consumer)object
RecvMany(ulong consumer, ulong maxItems)object[]
RegisterConsumer()ulong
RegisterProducer()ulong
Send(ulong producer, object item)bool
SendFrame(ulong producer, object payload)bool
SendMany(ulong producer, object[] items)ulong
SendPacked(ulong producer, object data, ulong itemLen)ulong
Shape()string
SidecarMorphs()ulong
Stamped()bool
TotalCapacity()ulong

New-SubEthaSpscRing

Obtains the single-producer ring at Path holding Capacity slots, creating it when the file does not exist.

Also New-SESpscRing.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Capacityulongyes1-

Writes SubEtha.SpscRing.

PropertyType
Capacityulong
Pathstring
PayloadSizeulong
MethodAnswers
Pop()object
PopMany(ulong maxItems)object[]
PopPacked(ulong maxItems)SubEtha.PackedItems
Push(object item)bool
PushMany(object[] items)ulong
PushPacked(object data, ulong itemLen)ulong

Open-SubEthaBroadcastRing

Attaches to the broadcast ring at Path, which must exist with the Capacity it was created with.

Also Open-SEBroadcastRing.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Capacityulongyes1-

Writes SubEtha.BroadcastRing.

PropertyType
Capacityulong
Pathstring
PayloadSizeulong
MethodAnswers
ActiveConsumers()ulong
Lag(ulong consumer)ulong?
Observe(object policy)SubEtha.Registration
ProducerPosition()ulong
Push(object item)bool
PushMany(object[] items)ulong
Recv(ulong consumer)object
RecvMany(ulong consumer, ulong maxItems)object[]
RegisterConsumer()ulong
UnregisterConsumer(ulong consumer)void
WaitForConsumers(ulong want, double timeoutSeconds)ulong

Open-SubEthaPubSub

Attaches to the publish/subscribe ring at Path, which must exist with the Capacity it was created with.

Also Open-SEPubSub.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Capacityulongyes1-

Writes SubEtha.PubSub.

PropertyType
Capacityulong
Pathstring
PayloadSizeulong
MethodAnswers
Head()ulong
Publish(object item)ulong
PublishMany(object[] items)ulong?
ReadAt(ulong position)object
Subscribe()SubEtha.Subscriber
SubscribeFrom(ulong position)SubEtha.Subscriber

Open-SubEthaRing

Attaches to the adaptive ring at Path, which must exist with the capacity, counts and stamps it was created with.

Also Open-SERing.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Capacityulongyes1-
MaxProducersulong-named-
MaxConsumersulong-named-
StampsSubEtha.StampKind-named-
Managedswitch-named-
ScanIntervalUsulong-named-

Writes SubEtha.Ring.

PropertyType
Managedbool
MaxConsumersulong
MaxProducersulong
Pathstring
StampsSubEtha.StampKind?
MethodAnswers
ApproxLen()ulong
Capacity()ulong
IsEmpty()bool
MorphRefusals()ulong
Observe(object policy)SubEtha.Registration
OrderedReceiver(ulong consumer)SubEtha.OrderedReceiver
Recv(ulong consumer)object
RecvFrame(ulong consumer)object
RecvMany(ulong consumer, ulong maxItems)object[]
RegisterConsumer()ulong
RegisterProducer()ulong
Send(ulong producer, object item)bool
SendFrame(ulong producer, object payload)bool
SendMany(ulong producer, object[] items)ulong
SendPacked(ulong producer, object data, ulong itemLen)ulong
Shape()string
SidecarMorphs()ulong
Stamped()bool
TotalCapacity()ulong

Open-SubEthaSpscRing

Attaches to the single-producer ring at Path, which must exist with the Capacity it was created with.

Also Open-SESpscRing.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Capacityulongyes1-

Writes SubEtha.SpscRing.

PropertyType
Capacityulong
Pathstring
PayloadSizeulong
MethodAnswers
Pop()object
PopMany(ulong maxItems)object[]
PopPacked(ulong maxItems)SubEtha.PackedItems
Push(object item)bool
PushMany(object[] items)ulong
PushPacked(object data, ulong itemLen)ulong

Rings that change themselves

New-SubEthaCapacityRing

Obtains the resizable ring at Path holding Capacity slots, a power of two, creating it when the file does not exist.

Also New-SECapacityRing.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Capacityulongyes1-
MaxProducersulong-named-
MaxConsumersulong-named-
Stampedswitch-named-
Managedswitch-named-
ScanIntervalUsulong-named-

Writes SubEtha.CapacityRing.

PropertyType
Managedbool
MaxConsumersulong
MaxProducersulong
Pathstring
Stampedbool
MethodAnswers
Capacity()ulong
ClearWarm()void
Inversions()ulong
MorphTo(ulong capacity)void
OrderingMode()SubEtha.OrderingMode?
PinGeneration()ulong
Prewarm(ulong capacity)void
Recv(ulong consumer)object
RecvMany(ulong consumer, ulong maxItems)object[]
RegisterConsumer()ulong
RegisterProducer()ulong
Send(ulong producer, object item)bool
SendMany(ulong producer, object[] items)ulong
SetOrderingMode(SubEtha.OrderingMode mode)void
SidecarMorphs()ulong
SidecarPrewarms()ulong
StalePops()ulong
WarmCapacity()ulong?
WarmHits()ulong

New-SubEthaLocaleRing

Obtains the relocatable ring at Path holding Capacity slots, a power of two, creating it when the file does not exist. All three backings are built, so a later migration has somewhere to go without allocating.

Also New-SELocaleRing.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Capacityulongyes1-
MaxProducersulong-named-
MaxConsumersulong-named-
Stampedswitch-named-
Managedswitch-named-
ScanIntervalUsulong-named-

Writes SubEtha.LocaleRing.

PropertyType
Capacityulong
Managedbool
MaxConsumersulong
MaxProducersulong
Pathstring
Stampedbool
MethodAnswers
Inversions()ulong
Locale()SubEtha.Locale
LocaleGeneration()ulong
MigrateTo(SubEtha.Locale locale)void
OrderingMode()SubEtha.OrderingMode?
Recv(ulong consumer)object
RecvMany(ulong consumer, ulong maxItems)object[]
RegisterConsumer()ulong
RegisterProducer()ulong
RequestLocale(SubEtha.Locale locale)void
Send(ulong producer, object item)bool
SendMany(ulong producer, object[] items)ulong
SetOrderingMode(SubEtha.OrderingMode mode)void
SidecarMigrations()ulong

Open-SubEthaCapacityRing

Attaches to the resizable ring at Path, which must exist with the capacity, counts and stamping it was created with.

Also Open-SECapacityRing.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Capacityulongyes1-
MaxProducersulong-named-
MaxConsumersulong-named-
Stampedswitch-named-
Managedswitch-named-
ScanIntervalUsulong-named-

Writes SubEtha.CapacityRing.

PropertyType
Managedbool
MaxConsumersulong
MaxProducersulong
Pathstring
Stampedbool
MethodAnswers
Capacity()ulong
ClearWarm()void
Inversions()ulong
MorphTo(ulong capacity)void
OrderingMode()SubEtha.OrderingMode?
PinGeneration()ulong
Prewarm(ulong capacity)void
Recv(ulong consumer)object
RecvMany(ulong consumer, ulong maxItems)object[]
RegisterConsumer()ulong
RegisterProducer()ulong
Send(ulong producer, object item)bool
SendMany(ulong producer, object[] items)ulong
SetOrderingMode(SubEtha.OrderingMode mode)void
SidecarMorphs()ulong
SidecarPrewarms()ulong
StalePops()ulong
WarmCapacity()ulong?
WarmHits()ulong

Open-SubEthaLocaleRing

Attaches to the relocatable ring at Path, which must exist with the capacity, counts and stamping it was created with.

Also Open-SELocaleRing.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Capacityulongyes1-
MaxProducersulong-named-
MaxConsumersulong-named-
Stampedswitch-named-
Managedswitch-named-
ScanIntervalUsulong-named-

Writes SubEtha.LocaleRing.

PropertyType
Capacityulong
Managedbool
MaxConsumersulong
MaxProducersulong
Pathstring
Stampedbool
MethodAnswers
Inversions()ulong
Locale()SubEtha.Locale
LocaleGeneration()ulong
MigrateTo(SubEtha.Locale locale)void
OrderingMode()SubEtha.OrderingMode?
Recv(ulong consumer)object
RecvMany(ulong consumer, ulong maxItems)object[]
RegisterConsumer()ulong
RegisterProducer()ulong
RequestLocale(SubEtha.Locale locale)void
Send(ulong producer, object item)bool
SendMany(ulong producer, object[] items)ulong
SetOrderingMode(SubEtha.OrderingMode mode)void
SidecarMigrations()ulong

The sidecar

Get-SubEthaSidecar

Reports the process’s sidecar: how many objects it holds, the most it allows, and its scan threads.

Also Get-SESidecar.

No parameters.

Writes SubEtha.SidecarStatus.

PropertyType
InstanceCountulong
MaxInstancesulong
NodeCountulong

Invoke-SubEthaSidecarScan

Has every scan thread of the process’s sidecar scan now, and waits for it: an observation recorded before the call has been drained, and its policy asked, when it returns. With PassThru it writes the sidecar’s status once the scan is done; without it, nothing.

Also Invoke-SESidecarScan.

ParameterTypeRequiredPositionPipeline
PassThruswitch-named-

Writes SubEtha.SidecarStatus.

PropertyType
InstanceCountulong
MaxInstancesulong
NodeCountulong

New-SubEthaAdaptive

Makes an adaptive object of the script’s own, at tag 0.

Also New-SEAdaptive.

No parameters.

Writes SubEtha.Adaptive.

MethodAnswers
Observe(object policy)SubEtha.Registration
Record(uint opKind, ulong? latencyTicks, bool? contended, bool? empty)bool
SetTag(uint tag)void
Tag()uint

Set-SubEthaSidecar

Sets the most objects the process’s sidecar holds at once. What one scan can cost grows with the number registered, so raise it for a count you have measured and have room to scan. With PassThru it writes the sidecar’s status once the cap is set; without it, nothing.

Also Set-SESidecar.

ParameterTypeRequiredPositionPipeline
MaxInstancesulongyesnamed-
PassThruswitch-named-

Writes SubEtha.SidecarStatus.

PropertyType
InstanceCountulong
MaxInstancesulong
NodeCountulong

Order

New-SubEthaReorderWindow

Builds a reorder window. Floor is the window to start at and Cap the widest it may grow to; a window at least as wide as the number of senders puts every item back in order.

Also New-SEReorderWindow.

ParameterTypeRequiredPositionPipeline
Floorulong-named-
Capulong-named-

Writes SubEtha.ReorderWindow.

PropertyType
Capulong
Floorulong
MethodAnswers
Corrections()ulong
Count()ulong
Flush()SubEtha.StampedItem
FlushAll()SubEtha.StampedItem[]
Push(ulong stamp, object payload)void
PushMany(ulong[] stamps, object[] payloads)ulong
Take()SubEtha.StampedItem
WidenTo(ulong window)void
Window()ulong

Shared state

New-SubEthaArena

Obtains the arena at Path holding CapacityBytes, creating it when the file does not exist.

Also New-SEArena.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
CapacityBytesulongyes1-

Writes SubEtha.Arena.

PropertyType
CapacityBytesulong
Pathstring
Writablebool
MethodAnswers
Get(ulong reference)string
GetBytes(ulong reference)object
GetMany(ulong[] references)string[]
Intern(string value)ulong?
InternBytes(object value)ulong?
InternMany(string[] values)ulong[]
Observe(object policy)SubEtha.Registration
RemainingBytes()ulong
UsedBytes()ulong

New-SubEthaAtomic

Obtains the atomic at Path, creating it holding Init when the file does not exist and attaching to its live value when it does.

Also New-SEAtomic.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Initulong-named-

Writes SubEtha.Atomic.

PropertyType
Pathstring
MethodAnswers
CompareExchange(ulong expected, ulong desired, SubEtha.MemoryOrder? order)ulong
FetchAdd(ulong? value, SubEtha.MemoryOrder? order)ulong
FetchAddMany(ulong count, ulong? value, SubEtha.MemoryOrder? order)ulong
FetchAnd(ulong value, SubEtha.MemoryOrder? order)ulong
FetchOr(ulong value, SubEtha.MemoryOrder? order)ulong
FetchSub(ulong? value, SubEtha.MemoryOrder? order)ulong
FetchXor(ulong value, SubEtha.MemoryOrder? order)ulong
Load(SubEtha.MemoryOrder? order)ulong
Observe(object policy)SubEtha.Registration
Store(ulong value, SubEtha.MemoryOrder? order)void
Swap(ulong value, SubEtha.MemoryOrder? order)ulong

New-SubEthaBitVec

Obtains the bit vector at Path holding CapacityBits bits, creating it cleared when the file does not exist.

Also New-SEBitVec.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
CapacityBitsulongyes1-

Writes SubEtha.BitVec.

PropertyType
CapacityBitsulong
Pathstring
MethodAnswers
Clear(ulong index)bool
Get(ulong index)bool
Observe(object policy)SubEtha.Registration
Set(ulong index)bool
SetRange(ulong lo, ulong hi)void
Toggle(ulong index)bool

New-SubEthaBTreeMap

Obtains the ordered map at Path holding Capacity entries of KeySize-byte keys and ValueSize-byte values, creating it when the file does not exist.

Also New-SEBTreeMap.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Capacityulongyes1-
KeySizeulongyes2-
ValueSizeulongyes3-
Tagulong-named-

Writes SubEtha.BTreeMap.

PropertyType
Capacityulong
KeySizeulong
Pathstring
ValueSizeulong
MethodAnswers
Clear()void
Contains(object key)bool
Count()ulong
First()SubEtha.Pair
Flush()void
Get(object key)object
Insert(object key, object value)object
InsertMany(object[] keys, object[] values)ulong
Last()SubEtha.Pair
Nodes()ulong
Remove(object key)object

New-SubEthaCell

Obtains the cell at Path holding a value of ValueSize bytes, creating it when the file does not exist.

Also New-SECell.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
ValueSizeulongyes1-

Writes SubEtha.Cell.

PropertyType
Pathstring
ValueSizeulong
MethodAnswers
Flush()void
Get()object
Set(object value)void
Version()uint

New-SubEthaDeque

Obtains the deque at Path as its owner, holding Capacity items, a power of two, of ElementSize bytes, creating it when the file does not exist.

Also New-SEDeque.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Capacityulongyes1-
ElementSizeulongyes2-
Alignmentulong-named-
Tagulong-named-

Writes SubEtha.Deque.

PropertyType
Capacityulong
ElementSizeulong
Pathstring
Thiefbool
MethodAnswers
ApproxLen()ulong
Flush()void
Pop()object
Push(object item)bool
PushMany(object[] items)ulong
Steal()object
StealMany(ulong maxItems)object[]

New-SubEthaFrameRegion

Obtains the frame region at Path holding BlockCount blocks of BlockSize bytes, creating it when the file does not exist.

Also New-SEFrameRegion.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
BlockSizeulongyes1-
BlockCountulongyes2-

Writes SubEtha.FrameRegion.

PropertyType
BlockCountulong
BlockSizeulong
Pathstring
MethodAnswers
Allocate()uint?
Free(uint index)void
ReadBlock(uint index, ulong length)object
TakeBlock(uint index, ulong length)object
WriteBlock(uint index, object payload)void
WriteNew(object payload)uint?

New-SubEthaGraph

Obtains the graph beside Path holding up to MaxNodes nodes and MaxEdges edges, creating it when the files do not exist.

Also New-SEGraph.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
MaxNodesulongyes1-
MaxEdgesulongyes2-

Writes SubEtha.Graph.

PropertyType
MaxEdgesulong
MaxNodesulong
Pathstring
MethodAnswers
AddEdge(uint source, uint target, ulong value)uint
AddEdges(uint[] sources, uint[] targets, ulong[] values)uint[]
AddNode(ulong value)uint
AddNodes(ulong[] values)uint[]
EdgeCount()ulong
Flush()void
FlushAsync()void
Neighbors(uint source)SubEtha.Neighbor[]
NodeCount()ulong
NodeValue(uint node)ulong?
Observe(object policy)SubEtha.Registration
OutDegree(uint source)uint?
RemoveEdge(uint source, uint edge)ulong?

New-SubEthaHandleTable

Obtains the handle table at Path holding Capacity values, creating it when the file does not exist; with Reset, empties it and remakes it at that capacity.

Also New-SEHandleTable.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Capacityulongyes1-
Resetswitch-named-

Writes SubEtha.HandleTable.

PropertyType
Capacityulong
MaxValueBytesulong
Pathstring
MethodAnswers
Contains(ulong handle)bool
Count()ulong
Flush()void
FlushAsync()void
Get(ulong handle)object
GetMany(ulong[] handles)object[]
Insert(object value)ulong
InsertMany(object[] values)ulong[]
Observe(object policy)SubEtha.Registration
Remove(ulong handle)object

New-SubEthaHashMap

Obtains the hash map at Path holding Capacity entries of KeySize-byte keys and ValueSize-byte values, creating it when the file does not exist.

Also New-SEHashMap.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Capacityulongyes1-
KeySizeulongyes2-
ValueSizeulongyes3-

Writes SubEtha.HashMap.

PropertyType
Capacityulong
KeySizeulong
Pathstring
ValueSizeulong
MethodAnswers
Clear()void
CompareExchange(object key, object expected, object desired)SubEtha.Exchange
Contains(object key)bool
Count()ulong
Get(object key)object
GetMany(object[] keys)object[]
Insert(object key, object value)SubEtha.InsertOutcome
InsertMany(object[] keys, object[] values)ulong
Observe(object policy)SubEtha.Registration
Remove(object key)object
Tombstones()ulong

New-SubEthaLazyValue

Obtains the lazy value at Path holding ValueSize bytes, creating it unpublished when the file does not exist.

Also New-SELazyValue.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
ValueSizeulongyes1-

Writes SubEtha.LazyValue.

PropertyType
Pathstring
ValueSizeulong
MethodAnswers
Claim(uint? pid)bool
Get()object
Publish(object value, uint? pid)bool
Ready()bool
Wait(double? timeout)object

New-SubEthaLinkedList

Obtains the list at Path holding up to Capacity elements of ElementSize bytes, creating it when the file does not exist.

Also New-SELinkedList.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Capacityulongyes1-
ElementSizeulongyes2-
Alignmentulong-named-
Tagulong-named-

Writes SubEtha.LinkedList.

PropertyType
Capacityulong
ElementSizeulong
Pathstring
MethodAnswers
Count()ulong
Get(uint index)object
PopBack()object
PopFront()object
PushBack(object value)uint
PushBackMany(object[] values)uint[]
PushFront(object value)uint
Remove(uint index)object

New-SubEthaRegion

Obtains the region at Path holding Capacity slots of SlotSize bytes, creating it when the file does not exist.

Also New-SERegion.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Capacityulongyes1-
SlotSizeulongyes2-
Alignmentulong-named-
Tagulong-named-

Writes SubEtha.Region.

PropertyType
Capacityulong
Pathstring
SlotSizeulong
MethodAnswers
Allocate(object value)uint
Count()ulong
Get(uint index)object
Set(uint index, object value)void
Snapshot()object

New-SubEthaSharedArc

Obtains the shared value at Path, creating it holding Value when the file does not exist.

Also New-SESharedArc.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Valueobjectyes1-
MaxHoldersulong-named-
KeepOnLastswitch-named-

Writes SubEtha.SharedArc.

PropertyType
KeepOnLastbool
Pathstring
ValueSizeulong
MethodAnswers
Get()object
Holders()ulong
ReadAt(ulong offset, ulong length)object
WriteAt(ulong offset, object value)void

New-SubEthaSlab

Obtains the slab at Path holding Capacity slots of ElementSize bytes, creating it when the file does not exist.

Also New-SESlab.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Capacityulongyes1-
ElementSizeulongyes2-
Alignmentulong-named-
Tagulong-named-

Writes SubEtha.Slab.

PropertyType
Capacityulong
ElementSizeulong
Pathstring
Writablebool
MethodAnswers
Flush()void
Get(ulong index)object
ReadRange(ulong start, ulong count)object
Set(ulong index, object value)void
SlotVersion(ulong index)uint
WriteRange(ulong start, object data)ulong

New-SubEthaStack

Obtains the stack at Path holding up to Capacity items of ElementSize bytes, creating it when the file does not exist.

Also New-SEStack.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Capacityulongyes1-
ElementSizeulongyes2-
Alignmentulong-named-
Tagulong-named-

Writes SubEtha.Stack.

PropertyType
Capacityulong
ElementSizeulong
Pathstring
MethodAnswers
ApproxLen()ulong
Flush()void
IsEmpty()bool
Peek()object
Pop()object
PopMany(ulong maxItems)object[]
Push(object item)bool
PushMany(object[] items)ulong

New-SubEthaTopologyMap

Obtains the topology map at Path for Participants, creating it when the file does not exist; with Reset, empties the counts and remakes it. The thresholds are how many different places a participant has to reach, or be reached from, before the shape counts as one to many or many to one.

Also New-SETopologyMap.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Participantsulongyes1-
FanOutThresholduint-named-
FanInThresholduint-named-
Resetswitch-named-

Writes SubEtha.TopologyMap.

PropertyType
Participantsulong
Pathstring
MethodAnswers
BroadcastRoot()uint
BusiestReceiver()SubEtha.FanCount
BusiestSender()SubEtha.FanCount
FanIn(uint receiver)uint
FanOut(uint sender)uint
Observe(object policy)SubEtha.Registration
PublishedRecommendation()SubEtha.Topology
PublishRecommendation()SubEtha.Topology
Recommend()SubEtha.Topology
RecommendationEpoch()ulong
RecordMany(uint[] senders, uint[] receivers)ulong
RecordSend(uint sender, uint receiver)ulong
TotalSends()ulong

New-SubEthaTower

Obtains the tower whose bottom level lives at Path holding Capacity values of ValueSize bytes, with the levels above it at LevelPath holding LevelCapacity places each, given top first; creating them when the files do not exist. With no levels the tower is one deep, which is a plain region reached by a path of one number.

Also New-SETower.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Capacityulongyes1-
ValueSizeulongyes2-
LevelPathstring[]-named-
LevelCapacityulong[]-named-

Writes SubEtha.Tower.

PropertyType
Depthulong
Pathstring
ValueSizeulong
MethodAnswers
Append(object value)uint[]
AppendMany(object[] values)object[]
Count()ulong
Flush()void
Get(uint[] path)object
GetMany(object[] paths)object[]
InsertAtTop(uint top, object value)uint[]

New-SubEthaUniversal

Obtains the self-storing set beside Path holding Capacity values, creating it when the files do not exist; with Reset, empties it and remakes it at that capacity.

Also New-SEUniversal.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Capacityulongyes1-
Resetswitch-named-

Writes SubEtha.Universal.

PropertyType
Capacityulong
Pathstring
MethodAnswers
Clear()void
Contains(ulong value)bool
ContainsMany(ulong[] values)bool[]
Count()ulong
Generation()ushort
Insert(ulong value)void
InsertMany(ulong[] values)ulong
MigrateTo(SubEtha.SetStrategy strategy)void
Migrations()uint
Observe(object policy)SubEtha.Registration
OpCounts()SubEtha.OpCounts
Snapshot()ulong[]
Strategy()SubEtha.SetStrategy

New-SubEthaVec

Obtains the vector at Path holding up to Capacity elements of ElementSize bytes, creating it when the file does not exist.

Also New-SEVec.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Capacityulongyes1-
ElementSizeulongyes2-
Alignmentulong-named-
Tagulong-named-

Writes SubEtha.Vec.

PropertyType
Capacityulong
ElementSizeulong
Pathstring
Writablebool
MethodAnswers
Clear()void
Count()ulong
Flush()void
Get(ulong index)object
Pop()object
Push(object value)ulong?
PushMany(object[] values)ulong
ReadRange(ulong start, ulong count)object
Set(ulong index, object value)void
WriteRange(ulong start, object data)ulong

Open-SubEthaArena

Attaches to the arena at Path, which must exist with the CapacityBytes it was created with; ReadOnly opens it to resolve without interning.

Also Open-SEArena.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
CapacityBytesulongyes1-
ReadOnlyswitch-named-

Writes SubEtha.Arena.

PropertyType
CapacityBytesulong
Pathstring
Writablebool
MethodAnswers
Get(ulong reference)string
GetBytes(ulong reference)object
GetMany(ulong[] references)string[]
Intern(string value)ulong?
InternBytes(object value)ulong?
InternMany(string[] values)ulong[]
Observe(object policy)SubEtha.Registration
RemainingBytes()ulong
UsedBytes()ulong

Open-SubEthaAtomic

Attaches to the atomic at Path, which must exist, leaving its value alone.

Also Open-SEAtomic.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-

Writes SubEtha.Atomic.

PropertyType
Pathstring
MethodAnswers
CompareExchange(ulong expected, ulong desired, SubEtha.MemoryOrder? order)ulong
FetchAdd(ulong? value, SubEtha.MemoryOrder? order)ulong
FetchAddMany(ulong count, ulong? value, SubEtha.MemoryOrder? order)ulong
FetchAnd(ulong value, SubEtha.MemoryOrder? order)ulong
FetchOr(ulong value, SubEtha.MemoryOrder? order)ulong
FetchSub(ulong? value, SubEtha.MemoryOrder? order)ulong
FetchXor(ulong value, SubEtha.MemoryOrder? order)ulong
Load(SubEtha.MemoryOrder? order)ulong
Observe(object policy)SubEtha.Registration
Store(ulong value, SubEtha.MemoryOrder? order)void
Swap(ulong value, SubEtha.MemoryOrder? order)ulong

Open-SubEthaBitVec

Attaches to the bit vector at Path, which must exist holding CapacityBits bits.

Also Open-SEBitVec.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
CapacityBitsulongyes1-

Writes SubEtha.BitVec.

PropertyType
CapacityBitsulong
Pathstring
MethodAnswers
Clear(ulong index)bool
Get(ulong index)bool
Observe(object policy)SubEtha.Registration
Set(ulong index)bool
SetRange(ulong lo, ulong hi)void
Toggle(ulong index)bool

Open-SubEthaBTreeMap

Attaches to the ordered map at Path, which must exist with the capacity and sizes it was created with.

Also Open-SEBTreeMap.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Capacityulongyes1-
KeySizeulongyes2-
ValueSizeulongyes3-
Tagulong-named-

Writes SubEtha.BTreeMap.

PropertyType
Capacityulong
KeySizeulong
Pathstring
ValueSizeulong
MethodAnswers
Clear()void
Contains(object key)bool
Count()ulong
First()SubEtha.Pair
Flush()void
Get(object key)object
Insert(object key, object value)object
InsertMany(object[] keys, object[] values)ulong
Last()SubEtha.Pair
Nodes()ulong
Remove(object key)object

Open-SubEthaCell

Attaches to the cell at Path, which must exist with the same value size it was created with.

Also Open-SECell.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
ValueSizeulongyes1-

Writes SubEtha.Cell.

PropertyType
Pathstring
ValueSizeulong
MethodAnswers
Flush()void
Get()object
Set(object value)void
Version()uint

Open-SubEthaDeque

Attaches to the deque at Path as a thief: the handle steals from the deque another process owns, and neither pushes nor pops. No capacity is asked for, because the file states it.

Also Open-SEDeque.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
ElementSizeulongyes1-
Alignmentulong-named-
Tagulong-named-

Writes SubEtha.Deque.

PropertyType
Capacityulong
ElementSizeulong
Pathstring
Thiefbool
MethodAnswers
ApproxLen()ulong
Flush()void
Pop()object
Push(object item)bool
PushMany(object[] items)ulong
Steal()object
StealMany(ulong maxItems)object[]

Open-SubEthaFrameRegion

Attaches to the frame region at Path, which must exist with the block size and count it was created with.

Also Open-SEFrameRegion.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
BlockSizeulongyes1-
BlockCountulongyes2-

Writes SubEtha.FrameRegion.

PropertyType
BlockCountulong
BlockSizeulong
Pathstring
MethodAnswers
Allocate()uint?
Free(uint index)void
ReadBlock(uint index, ulong length)object
TakeBlock(uint index, ulong length)object
WriteBlock(uint index, object payload)void
WriteNew(object payload)uint?

Open-SubEthaGraph

Attaches to the graph beside Path, which must exist with the sizes it was made with.

Also Open-SEGraph.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
MaxNodesulongyes1-
MaxEdgesulongyes2-

Writes SubEtha.Graph.

PropertyType
MaxEdgesulong
MaxNodesulong
Pathstring
MethodAnswers
AddEdge(uint source, uint target, ulong value)uint
AddEdges(uint[] sources, uint[] targets, ulong[] values)uint[]
AddNode(ulong value)uint
AddNodes(ulong[] values)uint[]
EdgeCount()ulong
Flush()void
FlushAsync()void
Neighbors(uint source)SubEtha.Neighbor[]
NodeCount()ulong
NodeValue(uint node)ulong?
Observe(object policy)SubEtha.Registration
OutDegree(uint source)uint?
RemoveEdge(uint source, uint edge)ulong?

Open-SubEthaHandleTable

Attaches to the handle table at Path, which must exist with the Capacity it was made with.

Also Open-SEHandleTable.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Capacityulongyes1-

Writes SubEtha.HandleTable.

PropertyType
Capacityulong
MaxValueBytesulong
Pathstring
MethodAnswers
Contains(ulong handle)bool
Count()ulong
Flush()void
FlushAsync()void
Get(ulong handle)object
GetMany(ulong[] handles)object[]
Insert(object value)ulong
InsertMany(object[] values)ulong[]
Observe(object policy)SubEtha.Registration
Remove(ulong handle)object

Open-SubEthaHashMap

Attaches to the hash map at Path, which must exist with the capacity and sizes it was created with.

Also Open-SEHashMap.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Capacityulongyes1-
KeySizeulongyes2-
ValueSizeulongyes3-

Writes SubEtha.HashMap.

PropertyType
Capacityulong
KeySizeulong
Pathstring
ValueSizeulong
MethodAnswers
Clear()void
CompareExchange(object key, object expected, object desired)SubEtha.Exchange
Contains(object key)bool
Count()ulong
Get(object key)object
GetMany(object[] keys)object[]
Insert(object key, object value)SubEtha.InsertOutcome
InsertMany(object[] keys, object[] values)ulong
Observe(object policy)SubEtha.Registration
Remove(object key)object
Tombstones()ulong

Open-SubEthaLazyValue

Attaches to the lazy value at Path, which must exist holding ValueSize bytes.

Also Open-SELazyValue.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
ValueSizeulongyes1-

Writes SubEtha.LazyValue.

PropertyType
Pathstring
ValueSizeulong
MethodAnswers
Claim(uint? pid)bool
Get()object
Publish(object value, uint? pid)bool
Ready()bool
Wait(double? timeout)object

Open-SubEthaLinkedList

Attaches to the list at Path, which must exist with the capacity and layout it was created with.

Also Open-SELinkedList.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Capacityulongyes1-
ElementSizeulongyes2-
Alignmentulong-named-
Tagulong-named-

Writes SubEtha.LinkedList.

PropertyType
Capacityulong
ElementSizeulong
Pathstring
MethodAnswers
Count()ulong
Get(uint index)object
PopBack()object
PopFront()object
PushBack(object value)uint
PushBackMany(object[] values)uint[]
PushFront(object value)uint
Remove(uint index)object

Open-SubEthaRegion

Attaches to the region at Path, which must exist with the same capacity and layout it was created with.

Also Open-SERegion.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Capacityulongyes1-
SlotSizeulongyes2-
Alignmentulong-named-
Tagulong-named-

Writes SubEtha.Region.

PropertyType
Capacityulong
Pathstring
SlotSizeulong
MethodAnswers
Allocate(object value)uint
Count()ulong
Get(uint index)object
Set(uint index, object value)void
Snapshot()object

Open-SubEthaSharedArc

Attaches to the shared value at Path, which must exist holding ValueSize bytes.

Also Open-SESharedArc.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
ValueSizeulongyes1-
MaxHoldersulong-named-
KeepOnLastswitch-named-

Writes SubEtha.SharedArc.

PropertyType
KeepOnLastbool
Pathstring
ValueSizeulong
MethodAnswers
Get()object
Holders()ulong
ReadAt(ulong offset, ulong length)object
WriteAt(ulong offset, object value)void

Open-SubEthaSlab

Attaches to the slab at Path, which must exist with the capacity and layout it was created with; ReadOnly opens it without write access.

Also Open-SESlab.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Capacityulongyes1-
ElementSizeulongyes2-
Alignmentulong-named-
Tagulong-named-
ReadOnlyswitch-named-

Writes SubEtha.Slab.

PropertyType
Capacityulong
ElementSizeulong
Pathstring
Writablebool
MethodAnswers
Flush()void
Get(ulong index)object
ReadRange(ulong start, ulong count)object
Set(ulong index, object value)void
SlotVersion(ulong index)uint
WriteRange(ulong start, object data)ulong

Open-SubEthaStack

Attaches to the stack at Path, which must exist with the capacity and layout it was created with.

Also Open-SEStack.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Capacityulongyes1-
ElementSizeulongyes2-
Alignmentulong-named-
Tagulong-named-

Writes SubEtha.Stack.

PropertyType
Capacityulong
ElementSizeulong
Pathstring
MethodAnswers
ApproxLen()ulong
Flush()void
IsEmpty()bool
Peek()object
Pop()object
PopMany(ulong maxItems)object[]
Push(object item)bool
PushMany(object[] items)ulong

Open-SubEthaTopologyMap

Attaches to the topology map at Path, which must exist with the Participants it was made with.

Also Open-SETopologyMap.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Participantsulongyes1-

Writes SubEtha.TopologyMap.

PropertyType
Participantsulong
Pathstring
MethodAnswers
BroadcastRoot()uint
BusiestReceiver()SubEtha.FanCount
BusiestSender()SubEtha.FanCount
FanIn(uint receiver)uint
FanOut(uint sender)uint
Observe(object policy)SubEtha.Registration
PublishedRecommendation()SubEtha.Topology
PublishRecommendation()SubEtha.Topology
Recommend()SubEtha.Topology
RecommendationEpoch()ulong
RecordMany(uint[] senders, uint[] receivers)ulong
RecordSend(uint sender, uint receiver)ulong
TotalSends()ulong

Open-SubEthaTower

Attaches to the tower at Path, which must exist with the shape it was made with.

Also Open-SETower.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Capacityulongyes1-
ValueSizeulongyes2-
LevelPathstring[]-named-
LevelCapacityulong[]-named-

Writes SubEtha.Tower.

PropertyType
Depthulong
Pathstring
ValueSizeulong
MethodAnswers
Append(object value)uint[]
AppendMany(object[] values)object[]
Count()ulong
Flush()void
Get(uint[] path)object
GetMany(object[] paths)object[]
InsertAtTop(uint top, object value)uint[]

Open-SubEthaUniversal

Attaches to the self-storing set beside Path, which must exist with the Capacity it was made with.

Also Open-SEUniversal.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Capacityulongyes1-

Writes SubEtha.Universal.

PropertyType
Capacityulong
Pathstring
MethodAnswers
Clear()void
Contains(ulong value)bool
ContainsMany(ulong[] values)bool[]
Count()ulong
Generation()ushort
Insert(ulong value)void
InsertMany(ulong[] values)ulong
MigrateTo(SubEtha.SetStrategy strategy)void
Migrations()uint
Observe(object policy)SubEtha.Registration
OpCounts()SubEtha.OpCounts
Snapshot()ulong[]
Strategy()SubEtha.SetStrategy

Open-SubEthaVec

Attaches to the vector at Path, which must exist with the same capacity and layout it was created with.

Also Open-SEVec.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Capacityulongyes1-
ElementSizeulongyes2-
Alignmentulong-named-
Tagulong-named-

Writes SubEtha.Vec.

PropertyType
Capacityulong
ElementSizeulong
Pathstring
Writablebool
MethodAnswers
Clear()void
Count()ulong
Flush()void
Get(ulong index)object
Pop()object
Push(object value)ulong?
PushMany(object[] values)ulong
ReadRange(ulong start, ulong count)object
Set(ulong index, object value)void
WriteRange(ulong start, object data)ulong

State with a history

New-SubEthaEpochs

Obtains the epochs at Path holding Capacity tickets, creating them when the file does not exist.

Also New-SEEpochs.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Capacityulongyes1-

Writes SubEtha.Epochs.

PropertyType
Capacityulong
Pathstring
MethodAnswers
Advance()ulong
ClaimTicket()SubEtha.EpochTicket
DeadTickets()ulong[]
FreeDeadTicket(ulong epoch)bool
Now()ulong
OpenTickets()ulong
PublishTicket(ulong slot)void

New-SubEthaLanedMap

Obtains the laned map in Directory with Lanes lanes of NodesPerLane entries, creating it when the directory does not hold one.

Also New-SELanedMap.

ParameterTypeRequiredPositionPipeline
Directorystringyes0-
Lanesulong-named-
NodesPerLaneulong-named-
MaxPinsulong-named-

Writes SubEtha.LanedMap.

PropertyType
Directorystring
Lanesulong
MethodAnswers
ClaimLane()SubEtha.LaneClaim
ClaimLaneFor(ulong key)SubEtha.LaneClaim
Count()ulong
Flush()void
Get(ulong key)ulong?
GetMany(ulong[] keys)object[]
HeldLanes()ulong
LaneOf(ulong key)ulong?
Pin()SubEtha.LanedPin
ReapDeadClaims()ulong
Sweep()ulong
VoidEpoch(ulong epoch)ulong

New-SubEthaTimePointTile

Obtains the time-point tile at Path, creating it when the file does not exist; with Reset, empties it and remakes it.

Also New-SETimePointTile.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Resetswitch-named-

Writes SubEtha.TimePointTile.

PropertyType
Lanesulong
MaxValueBytesulong
Pathstring
MethodAnswers
At(uint lane)SubEtha.TileEntry
Count()ulong
Flush()void
FlushAsync()void
Insert(ulong version, object value)uint
IsFull()bool
Observe(object policy)SubEtha.Registration
Remove(uint lane)void
Visible(ulong version)SubEtha.TileEntry[]
VisibleCount(ulong version)uint
VisibleMask(ulong version)ushort

New-SubEthaVersionChain

Obtains the version chain at Path holding Capacity versions, creating it when the file does not exist; with Reset, empties it and remakes it at that capacity.

Also New-SEVersionChain.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Capacityulongyes1-
Resetswitch-named-

Writes SubEtha.VersionChain.

PropertyType
Capacityulong
MaxValueBytesulong
Pathstring
MethodAnswers
Clear()void
Count()ulong
Current()SubEtha.Versioned
Flush()void
FlushAsync()void
Observe(object policy)SubEtha.Registration
Push(ulong version, object value)void
ReadAt(ulong version)object

New-SubEthaVersionedMap

Obtains the versioned map at Path holding Capacity entries, with its epochs at EpochsPath, creating both when the files do not exist.

Also New-SEVersionedMap.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Capacityulongyes1-
EpochsPathstringyes2-
MaxPinsulong-named-

Writes SubEtha.VersionedMap.

PropertyType
Capacityulong
Pathstring
MethodAnswers
Count()ulong
Flush()void
Get(ulong key)ulong?
GetMany(ulong[] keys)object[]
Insert(ulong key, ulong value)ulong?
InsertAt(ulong key, ulong value, ulong born)ulong?
InsertMany(ulong[] keys, ulong[] values)object[]
Pin()SubEtha.MapPin
Remove(ulong key)ulong?
RemoveAt(ulong key, ulong died)ulong?
Sweep()ulong
VoidEpoch(ulong epoch)ulong

New-SubEthaVersionedSlab

Obtains the versioned slab at Path holding Capacity slots, with its epochs at EpochsPath, creating both when the files do not exist.

Also New-SEVersionedSlab.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Capacityulongyes1-
EpochsPathstringyes2-
MaxPinsulong-named-

Writes SubEtha.VersionedSlab.

PropertyType
Capacityulong
Depthulong
MaxValueBytesulong
Pathstring
MethodAnswers
Flush()void
Get(ulong slot)object
History(ulong slot)SubEtha.SlotVersion[]
Pin()SubEtha.SlabPin
Retire(ulong slot)object
RetireAt(ulong slot, ulong died)object
Set(ulong slot, object value)void
SetAt(ulong slot, object value, ulong born)void
SweepSlot(ulong slot)ulong
VoidEpoch(ulong epoch)ulong

Open-SubEthaEpochs

Attaches to the epochs at Path, which must exist with the Capacity they were created with.

Also Open-SEEpochs.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Capacityulongyes1-

Writes SubEtha.Epochs.

PropertyType
Capacityulong
Pathstring
MethodAnswers
Advance()ulong
ClaimTicket()SubEtha.EpochTicket
DeadTickets()ulong[]
FreeDeadTicket(ulong epoch)bool
Now()ulong
OpenTickets()ulong
PublishTicket(ulong slot)void

Open-SubEthaLanedMap

Attaches to the laned map in Directory, which must exist with the lane count, lane size and pin count it was made with.

Also Open-SELanedMap.

ParameterTypeRequiredPositionPipeline
Directorystringyes0-
Lanesulong-named-
NodesPerLaneulong-named-
MaxPinsulong-named-

Writes SubEtha.LanedMap.

PropertyType
Directorystring
Lanesulong
MethodAnswers
ClaimLane()SubEtha.LaneClaim
ClaimLaneFor(ulong key)SubEtha.LaneClaim
Count()ulong
Flush()void
Get(ulong key)ulong?
GetMany(ulong[] keys)object[]
HeldLanes()ulong
LaneOf(ulong key)ulong?
Pin()SubEtha.LanedPin
ReapDeadClaims()ulong
Sweep()ulong
VoidEpoch(ulong epoch)ulong

Open-SubEthaTimePointTile

Attaches to the time-point tile at Path, which must exist.

Also Open-SETimePointTile.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-

Writes SubEtha.TimePointTile.

PropertyType
Lanesulong
MaxValueBytesulong
Pathstring
MethodAnswers
At(uint lane)SubEtha.TileEntry
Count()ulong
Flush()void
FlushAsync()void
Insert(ulong version, object value)uint
IsFull()bool
Observe(object policy)SubEtha.Registration
Remove(uint lane)void
Visible(ulong version)SubEtha.TileEntry[]
VisibleCount(ulong version)uint
VisibleMask(ulong version)ushort

Open-SubEthaVersionChain

Attaches to the version chain at Path, which must exist with the Capacity it was made with.

Also Open-SEVersionChain.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Capacityulongyes1-

Writes SubEtha.VersionChain.

PropertyType
Capacityulong
MaxValueBytesulong
Pathstring
MethodAnswers
Clear()void
Count()ulong
Current()SubEtha.Versioned
Flush()void
FlushAsync()void
Observe(object policy)SubEtha.Registration
Push(ulong version, object value)void
ReadAt(ulong version)object

Open-SubEthaVersionedMap

Attaches to the versioned map at Path, which must exist with the capacity and pin count it was made with.

Also Open-SEVersionedMap.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Capacityulongyes1-
EpochsPathstringyes2-
MaxPinsulong-named-

Writes SubEtha.VersionedMap.

PropertyType
Capacityulong
Pathstring
MethodAnswers
Count()ulong
Flush()void
Get(ulong key)ulong?
GetMany(ulong[] keys)object[]
Insert(ulong key, ulong value)ulong?
InsertAt(ulong key, ulong value, ulong born)ulong?
InsertMany(ulong[] keys, ulong[] values)object[]
Pin()SubEtha.MapPin
Remove(ulong key)ulong?
RemoveAt(ulong key, ulong died)ulong?
Sweep()ulong
VoidEpoch(ulong epoch)ulong

Open-SubEthaVersionedSlab

Attaches to the versioned slab at Path, which must exist with the capacity and pin count it was made with.

Also Open-SEVersionedSlab.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Capacityulongyes1-
EpochsPathstringyes2-
MaxPinsulong-named-

Writes SubEtha.VersionedSlab.

PropertyType
Capacityulong
Depthulong
MaxValueBytesulong
Pathstring
MethodAnswers
Flush()void
Get(ulong slot)object
History(ulong slot)SubEtha.SlotVersion[]
Pin()SubEtha.SlabPin
Retire(ulong slot)object
RetireAt(ulong slot, ulong died)object
Set(ulong slot, object value)void
SetAt(ulong slot, object value, ulong born)void
SweepSlot(ulong slot)ulong
VoidEpoch(ulong epoch)ulong

Coordination

New-SubEthaCondvar

Obtains the condition at Path, creating it when the file does not exist.

Also New-SECondvar.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-

Writes SubEtha.Condvar.

PropertyType
Pathstring
MethodAnswers
Generation()ulong
NotifyAll()ulong
NotifyOne()ulong

New-SubEthaEpochBarrier

Obtains the barrier at Path over the heartbeat table at HeartbeatPath, creating it when the file does not exist.

Also New-SEEpochBarrier.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
HeartbeatPathstringyes1-
Capacityulongyes2-
GraceEpochsulong-named-

Writes SubEtha.EpochBarrier.

PropertyType
GraceEpochsulong
Pathstring
MethodAnswers
Arrived()uint
CurrentEpoch()uint
LivePeers()uint
Observe(object policy)SubEtha.Registration
Wait(uint epoch, double? timeout, uint? quorum)bool

New-SubEthaFenceClock

Obtains the fence clock at Path holding Capacity participants, creating it when the file does not exist.

Also New-SEFenceClock.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Capacityulongyes1-

Writes SubEtha.FenceClock.

PropertyType
Capacityulong
Pathstring
MethodAnswers
GetLocal(ulong slot)SubEtha.ClockReading
GlobalFence()SubEtha.ClockReading
Merge(ulong slot, ulong physicalUs, ulong logical)SubEtha.ClockReading
Observe(object policy)SubEtha.Registration
Register(uint? pid)ulong
SharedClockUs()ulong
Tick(ulong slot)SubEtha.ClockReading
Unregister(ulong slot)void

New-SubEthaHeartbeat

Obtains the heartbeat table at Path holding Capacity slots, creating it when the file does not exist.

Also New-SEHeartbeat.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Capacityulongyes1-

Writes SubEtha.Heartbeat.

PropertyType
Capacityulong
Pathstring
MethodAnswers
Barrier(string path, ulong? graceEpochs, bool? open)SubEtha.EpochBarrier
Beat(ulong slot)void
GlobalEpoch()ulong
Observe(object policy)SubEtha.Registration
Register(uint? pid)ulong
Snapshot(ulong slot)SubEtha.HeartbeatSlot
TickGlobalEpoch()ulong
Unregister(ulong slot)void

New-SubEthaHolderTable

Obtains the holder table at Path holding Capacity slots, creating it when the file does not exist.

Also New-SEHolderTable.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Capacityulongyes1-

Writes SubEtha.HolderTable.

PropertyType
Capacityulong
Pathstring
MethodAnswers
Claim(ulong payload)ulong?
Live()ulong
Payload(ulong slot)ulong?
Publish(ulong slot, ulong payload)void
Release(ulong slot)void
Reserve()ulong?

New-SubEthaLeaderElection

Obtains the election at Path, creating it with no leader when the file does not exist.

Also New-SELeaderElection.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-

Writes SubEtha.LeaderElection.

PropertyType
Pathstring
MethodAnswers
Beat(uint? pid)bool
GlobalEpoch()ulong
IsLeader(uint? pid)bool
Leader()uint?
Observe(object policy)SubEtha.Registration
StepDown(uint? pid)bool
Term()uint
TickEpoch()ulong
TryClaim(ulong? graceEpochs, uint? pid)bool

New-SubEthaNotifierSet

Obtains the notifier set at Path, creating it when the file does not exist.

Also New-SENotifierSet.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-

Writes SubEtha.NotifierSet.

PropertyType
Pathstring
MethodAnswers
Attach()SubEtha.Notifier
Attached()uint
Signal()ulong

New-SubEthaOwnerLease

Obtains the lease at Path, creating it with Value when the file does not exist; attaching to one that exists leaves its owner, its term and its value alone. With Reset, strips the lease back to no owner and Value, which throws away a claim another process may still believe it has, so it is for a lease known to be wedged.

Also New-SEOwnerLease.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Valueobject-named-
Resetswitch-named-

Writes SubEtha.OwnerLease.

PropertyType
MaxValueBytesulong
Pathstring
MethodAnswers
Beat(uint? pid)bool
Flush()void
FlushAsync()void
HeldBy(uint? pid)bool
Hold(ulong? graceEpochs, uint? pid)SubEtha.LeaseHold
Observe(object policy)SubEtha.Registration
Owner()uint?
Read(uint? pid)object
Release(uint? pid)bool
Term()uint
TickEpoch()ulong
TryAcquire(ulong? graceEpochs, uint? pid)bool
Write(object value, uint? pid)bool

New-SubEthaRWLock

Obtains the lock at Path, creating it when the file does not exist.

Also New-SERWLock.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-

Writes SubEtha.RWLock.

PropertyType
Pathstring
MethodAnswers
Observe(object policy)SubEtha.Registration
Read()SubEtha.Hold
Readers()uint
ReadFor(double timeout)SubEtha.Hold
TryRead()SubEtha.Hold
TryWrite()SubEtha.Hold
Write()SubEtha.Hold
WriteFor(double timeout)SubEtha.Hold

New-SubEthaSemaphore

Obtains the semaphore at Path holding Initial permits of at most MaxPermits (Initial when absent), creating it when the file does not exist.

Also New-SESemaphore.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Initialuintyes1-
MaxPermitsuint-named-

Writes SubEtha.Semaphore.

PropertyType
MaxPermitsuint
Pathstring
MethodAnswers
Acquire()SubEtha.PermitHold
AcquireFor(double timeout)SubEtha.PermitHold
Available()uint
Observe(object policy)SubEtha.Registration
TryAcquire()SubEtha.PermitHold
Waiters()uint

Open-SubEthaCondvar

Attaches to the condition at Path, which must exist.

Also Open-SECondvar.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-

Writes SubEtha.Condvar.

PropertyType
Pathstring
MethodAnswers
Generation()ulong
NotifyAll()ulong
NotifyOne()ulong

Open-SubEthaEpochBarrier

Attaches to the barrier at Path, which must exist, over the heartbeat table at HeartbeatPath.

Also Open-SEEpochBarrier.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
HeartbeatPathstringyes1-
Capacityulongyes2-
GraceEpochsulong-named-

Writes SubEtha.EpochBarrier.

PropertyType
GraceEpochsulong
Pathstring
MethodAnswers
Arrived()uint
CurrentEpoch()uint
LivePeers()uint
Observe(object policy)SubEtha.Registration
Wait(uint epoch, double? timeout, uint? quorum)bool

Open-SubEthaFenceClock

Attaches to the fence clock at Path, which must exist with the Capacity it was created with.

Also Open-SEFenceClock.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Capacityulongyes1-

Writes SubEtha.FenceClock.

PropertyType
Capacityulong
Pathstring
MethodAnswers
GetLocal(ulong slot)SubEtha.ClockReading
GlobalFence()SubEtha.ClockReading
Merge(ulong slot, ulong physicalUs, ulong logical)SubEtha.ClockReading
Observe(object policy)SubEtha.Registration
Register(uint? pid)ulong
SharedClockUs()ulong
Tick(ulong slot)SubEtha.ClockReading
Unregister(ulong slot)void

Open-SubEthaHeartbeat

Attaches to the heartbeat table at Path, which must exist with the Capacity it was created with.

Also Open-SEHeartbeat.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Capacityulongyes1-

Writes SubEtha.Heartbeat.

PropertyType
Capacityulong
Pathstring
MethodAnswers
Barrier(string path, ulong? graceEpochs, bool? open)SubEtha.EpochBarrier
Beat(ulong slot)void
GlobalEpoch()ulong
Observe(object policy)SubEtha.Registration
Register(uint? pid)ulong
Snapshot(ulong slot)SubEtha.HeartbeatSlot
TickGlobalEpoch()ulong
Unregister(ulong slot)void

Open-SubEthaHolderTable

Attaches to the holder table at Path, which must exist with the Capacity it was created with.

Also Open-SEHolderTable.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Capacityulongyes1-

Writes SubEtha.HolderTable.

PropertyType
Capacityulong
Pathstring
MethodAnswers
Claim(ulong payload)ulong?
Live()ulong
Payload(ulong slot)ulong?
Publish(ulong slot, ulong payload)void
Release(ulong slot)void
Reserve()ulong?

Open-SubEthaLeaderElection

Attaches to the election at Path, which must exist.

Also Open-SELeaderElection.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-

Writes SubEtha.LeaderElection.

PropertyType
Pathstring
MethodAnswers
Beat(uint? pid)bool
GlobalEpoch()ulong
IsLeader(uint? pid)bool
Leader()uint?
Observe(object policy)SubEtha.Registration
StepDown(uint? pid)bool
Term()uint
TickEpoch()ulong
TryClaim(ulong? graceEpochs, uint? pid)bool

Open-SubEthaOwnerLease

Attaches to the lease at Path, which must exist.

Also Open-SEOwnerLease.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-

Writes SubEtha.OwnerLease.

PropertyType
MaxValueBytesulong
Pathstring
MethodAnswers
Beat(uint? pid)bool
Flush()void
FlushAsync()void
HeldBy(uint? pid)bool
Hold(ulong? graceEpochs, uint? pid)SubEtha.LeaseHold
Observe(object policy)SubEtha.Registration
Owner()uint?
Read(uint? pid)object
Release(uint? pid)bool
Term()uint
TickEpoch()ulong
TryAcquire(ulong? graceEpochs, uint? pid)bool
Write(object value, uint? pid)bool

Open-SubEthaRWLock

Attaches to the lock at Path, which must exist.

Also Open-SERWLock.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-

Writes SubEtha.RWLock.

PropertyType
Pathstring
MethodAnswers
Observe(object policy)SubEtha.Registration
Read()SubEtha.Hold
Readers()uint
ReadFor(double timeout)SubEtha.Hold
TryRead()SubEtha.Hold
TryWrite()SubEtha.Hold
Write()SubEtha.Hold
WriteFor(double timeout)SubEtha.Hold

Open-SubEthaSemaphore

Attaches to the semaphore at Path, which must exist with the MaxPermits it was created with.

Also Open-SESemaphore.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
MaxPermitsuintyes1-

Writes SubEtha.Semaphore.

PropertyType
MaxPermitsuint
Pathstring
MethodAnswers
Acquire()SubEtha.PermitHold
AcquireFor(double timeout)SubEtha.PermitHold
Available()uint
Observe(object policy)SubEtha.Registration
TryAcquire()SubEtha.PermitHold
Waiters()uint

Wait-SubEthaCondition

Waits on the condition at Path until Until answers true, or until Timeout seconds pass, and writes whether the condition became true. Until runs from inside the wait on this thread; an error it raises ends the wait and is reported rather than read as a false answer.

Also Wait-SECondition.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Untilscriptblockyes1-
Timeoutdouble-named-

Writes bool.

Probabilistic

Measure-SubEthaBloomSize

The bits and hash count for holding Items with no more than FalsePositiveRate of wrong yeses, so a caller sizes a filter from what it means rather than from arithmetic. Blocked sizes for the blocked filter.

Also Measure-SEBloomSize.

ParameterTypeRequiredPositionPipeline
Itemsulongyes0-
FalsePositiveRatedoubleyes1-
Blockedswitch-named-

Writes SubEtha.BloomSize.

PropertyType
Bitsulong
Hashesuint

Measure-SubEthaSketchSize

The depth and width for a count-min sketch with an error of Epsilon at confidence Delta, so a caller sizes the sketch from what it needs.

Also Measure-SESketchSize.

ParameterTypeRequiredPositionPipeline
Epsilondoubleyes0-
Deltadoubleyes1-

Writes SubEtha.SketchSize.

PropertyType
Depthuint
Widthuint

New-SubEthaBlockedBloomFilter

Obtains the blocked Bloom filter at Path with Bits bits and Hashes hash functions, creating it when the file does not exist; with Reset, empties it and remakes it at that size.

Also New-SEBlockedBloomFilter.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Bitsulongyes1-
Hashesuintyes2-
Resetswitch-named-

Writes SubEtha.BlockedBloomFilter.

PropertyType
Blocksulong
Hashesuint
Pathstring
MethodAnswers
Clear()void
Contains(object item)bool
ContainsMany(object[] items)bool[]
Flush()void
Insert(object item)void
InsertMany(object[] items)ulong
Observe(object policy)SubEtha.Registration

New-SubEthaBloomFilter

Obtains the Bloom filter at Path with Bits bits and Hashes hash functions, creating it when the file does not exist.

Also New-SEBloomFilter.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Bitsulongyes1-
Hashesuintyes2-

Writes SubEtha.BloomFilter.

PropertyType
Bitsulong
Hashesuint
Pathstring
MethodAnswers
Clear()void
Contains(object item)bool
ContainsMany(object[] items)bool[]
FalsePositiveRate()double
Insert(object item)void
InsertMany(object[] items)ulong
Observe(object policy)SubEtha.Registration

New-SubEthaCountMinSketch

Obtains the count-min sketch at Path of Depth rows by Width counters, creating it when the file does not exist.

Also New-SECountMinSketch.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Depthuintyes1-
Widthuintyes2-

Writes SubEtha.CountMinSketch.

PropertyType
Depthuint
Pathstring
Widthuint
MethodAnswers
EstimateCount(object item)ulong
EstimateMany(object[] items)ulong[]
Insert(object item)void
InsertMany(object[] items)ulong
InsertN(object item, ulong count)void
Observe(object policy)SubEtha.Registration
Reset()void
TotalInserts()ulong

New-SubEthaFineBloom

Builds a four-word Bloom filter, empty or holding Key.

Also New-SEFineBloom.

ParameterTypeRequiredPositionPipeline
Keyobject[]-named-

Writes SubEtha.FineBloom.

PropertyType
SetBitsuint
MethodAnswers
Contains(object key)bool
ContainsMany(object[] keys)bool[]
Insert(object key)void
InsertMany(object[] keys)ulong
SuggestedCapacity()ulong

New-SubEthaHistogram

Obtains the histogram at Path with the rising bucket Boundaries, creating it when the file does not exist.

Also New-SEHistogram.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Boundariesulong[]yes1-

Writes SubEtha.Histogram.

PropertyType
Boundariesulong[]
Bucketsulong
Pathstring
MethodAnswers
Count(ulong bucket)ulong
Counts()ulong[]
Observe(object policy)SubEtha.Registration
Percentile(double p)ulong
Record(ulong value)ulong
RecordMany(ulong[] values)ulong
TotalCount()ulong

New-SubEthaHyperLogLog

Obtains the distinct counter at Path at Precision (fourteen when absent; four is the smallest the format allows and sixteen the largest), creating it when the file does not exist.

Also New-SEHyperLogLog.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Precisionbyte-named-

Writes SubEtha.HyperLogLog.

PropertyType
Pathstring
Precisionbyte
Registersuint
MethodAnswers
Estimate()ulong
Flush()void
Insert(object item)void
InsertMany(object[] items)ulong
Observe(object policy)SubEtha.Registration
Reset()void

New-SubEthaLruCache

Obtains the cache at Path holding Capacity entries of KeySize-byte keys and ValueSize-byte values, creating it when the file does not exist.

Also New-SELruCache.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Capacityuintyes1-
KeySizeulongyes2-
ValueSizeulongyes3-

Writes SubEtha.LruCache.

PropertyType
Capacityuint
KeySizeulong
Pathstring
ValueSizeulong
MethodAnswers
Contains(object key)bool
Count()ulong
Get(object key)object
GetAndTouch(object key)object
GetMany(object[] keys)object[]
Put(object key, object value)bool
PutMany(object[] keys, object[] values)ulong
Remove(object key)object
Touch(object key)bool

New-SubEthaRateLimiter

Obtains the rate limiter at Path holding Capacity tokens that come back at RefillPerSecond, creating it when the file does not exist.

Also New-SERateLimiter.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Capacityuintyes1-
RefillPerSeconduintyes2-

Writes SubEtha.RateLimiter.

PropertyType
Capacityuint
Pathstring
RefillPerSeconduint
MethodAnswers
Available()uint
Flush()void
Observe(object policy)SubEtha.Registration
Reset()void
TryAcquire(uint? n)bool

New-SubEthaReservoir

Obtains the reservoir at Path holding Capacity items, creating it when the file does not exist.

Also New-SEReservoir.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Capacityulongyes1-

Writes SubEtha.Reservoir.

PropertyType
Capacityulong
MaxValueBytesulong
Pathstring
MethodAnswers
Count()ulong
Flush()void
FlushAsync()void
Observe(object policy)SubEtha.Registration
Record(object value)ulong?
RecordMany(object[] values)ulong
Reset()void
Snapshot()object[]
TotalSeen()ulong

New-SubEthaTinyBloom

Builds a word-sized Bloom filter, empty, holding Key, or rebuilt from the number Bits an earlier one gave.

Also New-SETinyBloom.

ParameterTypeRequiredPositionPipeline
Keyobject[]-named-
Bitsulong-named-

Writes SubEtha.TinyBloom.

PropertyType
Bitsulong
MethodAnswers
Contains(object key)bool
ContainsMany(object[] keys)bool[]
FalsePositiveRate(ulong keys)double
Insert(object key)void
InsertMany(object[] keys)ulong
SetBits()uint
SuggestedCapacity()ulong

Open-SubEthaBlockedBloomFilter

Attaches to the blocked Bloom filter at Path, which must exist with the size it was created with.

Also Open-SEBlockedBloomFilter.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Bitsulongyes1-
Hashesuintyes2-

Writes SubEtha.BlockedBloomFilter.

PropertyType
Blocksulong
Hashesuint
Pathstring
MethodAnswers
Clear()void
Contains(object item)bool
ContainsMany(object[] items)bool[]
Flush()void
Insert(object item)void
InsertMany(object[] items)ulong
Observe(object policy)SubEtha.Registration

Open-SubEthaBloomFilter

Attaches to the Bloom filter at Path, which must exist with the size it was created with.

Also Open-SEBloomFilter.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Bitsulongyes1-
Hashesuintyes2-

Writes SubEtha.BloomFilter.

PropertyType
Bitsulong
Hashesuint
Pathstring
MethodAnswers
Clear()void
Contains(object item)bool
ContainsMany(object[] items)bool[]
FalsePositiveRate()double
Insert(object item)void
InsertMany(object[] items)ulong
Observe(object policy)SubEtha.Registration

Open-SubEthaCountMinSketch

Attaches to the count-min sketch at Path, which must exist with the depth and width it was created with.

Also Open-SECountMinSketch.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Depthuintyes1-
Widthuintyes2-

Writes SubEtha.CountMinSketch.

PropertyType
Depthuint
Pathstring
Widthuint
MethodAnswers
EstimateCount(object item)ulong
EstimateMany(object[] items)ulong[]
Insert(object item)void
InsertMany(object[] items)ulong
InsertN(object item, ulong count)void
Observe(object policy)SubEtha.Registration
Reset()void
TotalInserts()ulong

Open-SubEthaHistogram

Attaches to the histogram at Path, which must exist with the Boundaries it was created with.

Also Open-SEHistogram.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Boundariesulong[]yes1-

Writes SubEtha.Histogram.

PropertyType
Boundariesulong[]
Bucketsulong
Pathstring
MethodAnswers
Count(ulong bucket)ulong
Counts()ulong[]
Observe(object policy)SubEtha.Registration
Percentile(double p)ulong
Record(ulong value)ulong
RecordMany(ulong[] values)ulong
TotalCount()ulong

Open-SubEthaHyperLogLog

Attaches to the distinct counter at Path, which must exist at the Precision it was created with.

Also Open-SEHyperLogLog.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Precisionbyte-named-

Writes SubEtha.HyperLogLog.

PropertyType
Pathstring
Precisionbyte
Registersuint
MethodAnswers
Estimate()ulong
Flush()void
Insert(object item)void
InsertMany(object[] items)ulong
Observe(object policy)SubEtha.Registration
Reset()void

Open-SubEthaLruCache

Attaches to the cache at Path, which must exist with the capacity and sizes it was created with.

Also Open-SELruCache.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Capacityuintyes1-
KeySizeulongyes2-
ValueSizeulongyes3-

Writes SubEtha.LruCache.

PropertyType
Capacityuint
KeySizeulong
Pathstring
ValueSizeulong
MethodAnswers
Contains(object key)bool
Count()ulong
Get(object key)object
GetAndTouch(object key)object
GetMany(object[] keys)object[]
Put(object key, object value)bool
PutMany(object[] keys, object[] values)ulong
Remove(object key)object
Touch(object key)bool

Open-SubEthaRateLimiter

Attaches to the rate limiter at Path, which must exist with the capacity and rate it was created with.

Also Open-SERateLimiter.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Capacityuintyes1-
RefillPerSeconduintyes2-

Writes SubEtha.RateLimiter.

PropertyType
Capacityuint
Pathstring
RefillPerSeconduint
MethodAnswers
Available()uint
Flush()void
Observe(object policy)SubEtha.Registration
Reset()void
TryAcquire(uint? n)bool

Open-SubEthaReservoir

Attaches to the reservoir at Path, which must exist with the Capacity it was made with.

Also Open-SEReservoir.

ParameterTypeRequiredPositionPipeline
Pathstringyes0-
Capacityulongyes1-

Writes SubEtha.Reservoir.

PropertyType
Capacityulong
MaxValueBytesulong
Pathstring
MethodAnswers
Count()ulong
Flush()void
FlushAsync()void
Observe(object policy)SubEtha.Registration
Record(object value)ulong?
RecordMany(object[] values)ulong
Reset()void
Snapshot()object[]
TotalSeen()ulong

Clocks

New-SubEthaCausalClock

Builds a causal clock with every count at zero, or at Counts.

Also New-SECausalClock.

ParameterTypeRequiredPositionPipeline
Countsulong[]-named-

Writes SubEtha.CausalClock.

PropertyType
Countsulong[]
MethodAnswers
Compare(SubEtha.CausalClock other)string
ConcurrentWith(SubEtha.CausalClock other)bool
Count(ulong node)ulong
HappenedBefore(SubEtha.CausalClock other)bool
Merge(SubEtha.CausalClock other)SubEtha.CausalClock
Nodes()ulong
Tick(ulong node)SubEtha.CausalClock

New-SubEthaClock

Builds a hybrid logical clock reading: Physical and Logical as given, or with Now the moment this runs, in microseconds since the epoch, with the count at zero.

Also New-SEClock.

ParameterTypeRequiredPositionPipeline
Physicalulong-named-
Logicalulong-named-
Nowswitch-named-

Writes SubEtha.Clock.

PropertyType
Logicalulong
Physicalulong
MethodAnswers
Advance(ulong physical)SubEtha.Clock
After(SubEtha.Clock other)bool
Before(SubEtha.Clock other)bool
CompareTo(SubEtha.Clock other)int
Merge(SubEtha.Clock received, ulong physical)SubEtha.Clock
SameAs(SubEtha.Clock other)bool

Sensing

New-SubEthaCapacity

Builds a capacity estimator over probes of ProbeBytes, 1400 when absent.

Also New-SECapacity.

ParameterTypeRequiredPositionPipeline
ProbeBytesulong-named-

Writes SubEtha.Capacity.

PropertyType
ProbeBytesulong
MethodAnswers
Available()double?
LinkCapacity()double?
ObservePair(byte index, double arrivedMicroseconds)void
ObserveTrain(double arrivedMicroseconds)void
PairSamples()ulong
Reset()void
TrainRate()double?
TrainSamples()uint

New-SubEthaForecast

Builds an arrival forecast.

Also New-SEForecast.

No parameters.

Writes SubEtha.Forecast.

MethodAnswers
MeanRate()double
NextRate()double
Observe(ulong bytes, double seconds)void

New-SubEthaLossBursts

Builds a burst model.

Also New-SELossBursts.

No parameters.

Writes SubEtha.LossBursts.

MethodAnswers
MeanRunLength()double?
Observe(bool lost)void
ObserveMany(bool[] losses)ulong
Samples()ulong
SteadyLoss()double?
TransitionRates()SubEtha.BurstRates

New-SubEthaLossKind

Builds a loss classifier.

Also New-SELossKind.

No parameters.

Writes SubEtha.LossKind.

MethodAnswers
Classify(uint gap, double spacingMicroseconds)SubEtha.LossClass
CongestionShare()Single
DelaySpread()double
ObserveDelay(double microseconds)void
ObserveSpacing(double microseconds)void

New-SubEthaPathChanges

Builds a path sensor.

Also New-SEPathChanges.

No parameters.

Writes SubEtha.PathChanges.

MethodAnswers
Last()SubEtha.PathMark
MarkedShare()Single
Observe(byte ttl, byte congestionMark, byte hops)void
RouteMovement()Single

New-SubEthaPeriodicity

Builds a periodicity sensor.

Also New-SEPeriodicity.

No parameters.

Writes SubEtha.Periodicity.

MethodAnswers
Observe(double delayMicroseconds, ulong atMicroseconds)void
Period()SubEtha.Beat
SecondsToNext()double?

New-SubEthaRoundTripShape

Builds a round-trip shape sensor.

Also New-SERoundTripShape.

No parameters.

Writes SubEtha.RoundTripShape.

MethodAnswers
Observe(double microseconds)void
ObserveMany(double[] microseconds)ulong
Samples()ulong
TwoGroups()double?
WirelessConfidence()Single

New-SubEthaSensReceiver

Opens the reading end of a link on LocalHost and LocalPort, carrying items of up to MaxItemSize bytes, which must be what the sender was made with.

Also New-SESensReceiver.

ParameterTypeRequiredPositionPipeline
LocalPortushortyes0-
MaxItemSizeulongyes1-
LocalHoststring-named-
CodeSubEtha.SensCode-named-

Writes SubEtha.SensReceiver.

PropertyType
MaxItemSizeulong
MethodAnswers
Alive()bool
Code()SubEtha.SensCode
LocalAddr()SubEtha.Endpoint
Poll()object[]
PollFrom()SubEtha.SourcedItem[]
SendFailures()ulong
Switches()ulong

New-SubEthaSensSender

Opens the sending end of a link from LocalHost and LocalPort to PeerHost and PeerPort, carrying items of up to MaxItemSize bytes.

Also New-SESensSender.

ParameterTypeRequiredPositionPipeline
PeerHoststringyes0-
PeerPortushortyes1-
MaxItemSizeulongyes2-
LocalHoststring-named-
LocalPortushort-named-
CodeSubEtha.SensCode-named-

Writes SubEtha.SensSender.

PropertyType
MaxItemSizeulong
PeerSubEtha.Endpoint
MethodAnswers
Code()SubEtha.SensCode
DatagramsReceived()ulong
DatagramsSent()ulong
LocalAddr()SubEtha.Endpoint
Loss()double?
Send(object item)void
SendMany(object[] items)ulong
Switches()ulong

New-SubEthaTiming

Builds a timing sensor over a Window of recent items, sixty-four when absent.

Also New-SETiming.

ParameterTypeRequiredPositionPipeline
Windowulong-named-

Writes SubEtha.Timing.

PropertyType
Windowulong
MethodAnswers
ClockSkew()double
Jitter()double
Observe(ulong sent, ulong received)void
Samples()ulong
Spacing()double
Trend()double
TrendDebiased()double

Bridges

Get-SubEthaTransport

Writes the names of the transports this module carries: sens, the link across a lossy network, and the tcp and quic bridges.

Also Get-SETransport.

No parameters.

Writes string.

New-SubEthaQuicBridgeClient

Makes the sending end of a QUIC bridge from the ring at RingPath to the reading end at ServerHost and ServerPort, trusting Cert, the certificate that end was made with, issued for ServerName.

Also New-SEQuicBridgeClient.

ParameterTypeRequiredPositionPipeline
RingPathstringyes0-
Capacityulongyes1-
ServerHoststringyes2-
ServerPortushortyes3-
Certobjectyesnamed-
ServerNamestringyesnamed-
LocalHoststring-named-
LocalPortushort-named-
MaxProducersulong-named-
MaxConsumersulong-named-

Writes SubEtha.QuicBridgeClient.

PropertyType
RingPathstring
ServerSubEtha.Endpoint
ServerNamestring
MethodAnswers
Run(ulong items)void

New-SubEthaQuicBridgeServer

Makes the reading end of a QUIC bridge on LocalHost and LocalPort, proving itself with Cert and Key, putting arriving items into the ring at RingPath. A port of zero lets the system pick one, which LocalAddr then reports.

Also New-SEQuicBridgeServer.

ParameterTypeRequiredPositionPipeline
RingPathstringyes0-
Capacityulongyes1-
LocalPortushortyes2-
Certobjectyesnamed-
Keyobjectyesnamed-
LocalHoststring-named-
MaxProducersulong-named-
MaxConsumersulong-named-

Writes SubEtha.QuicBridgeServer.

PropertyType
RingPathstring
MethodAnswers
AcceptOne()ulong
LocalAddr()SubEtha.Endpoint

New-SubEthaSelfSignedCert

Makes a certificate and its key for a QUIC bridge. Name is what the certificate is issued for and what a client passes as ServerName; it names the certificate rather than the address, so any address the reading end is reachable at works. The certificate is signed by nobody, so the reading end holds both and the sending end holds the certificate alone, which is what it checks the reading end against.

Also New-SESelfSignedCert.

ParameterTypeRequiredPositionPipeline
Namestringyes0-

Writes SubEtha.Certificate.

PropertyType
Certobject
Keyobject
Namestring

New-SubEthaTcpBridgeClient

Makes the sending end of a TCP bridge from the ring at RingPath to the reading end at ServerHost and ServerPort.

Also New-SETcpBridgeClient.

ParameterTypeRequiredPositionPipeline
RingPathstringyes0-
Capacityulongyes1-
ServerHoststringyes2-
ServerPortushortyes3-
MaxProducersulong-named-
MaxConsumersulong-named-

Writes SubEtha.TcpBridgeClient.

PropertyType
RingPathstring
ServerSubEtha.Endpoint
MethodAnswers
Run(ulong items)void

New-SubEthaTcpBridgeServer

Makes the reading end of a TCP bridge on LocalHost and LocalPort, putting arriving items into the ring at RingPath. A port of zero lets the system pick one, which LocalAddr then reports.

Also New-SETcpBridgeServer.

ParameterTypeRequiredPositionPipeline
RingPathstringyes0-
Capacityulongyes1-
LocalPortushortyes2-
LocalHoststring-named-
MaxProducersulong-named-
MaxConsumersulong-named-

Writes SubEtha.TcpBridgeServer.

PropertyType
RingPathstring
MethodAnswers
AcceptOne()ulong
LocalAddr()SubEtha.Endpoint

The pipeline

Receive-SubEthaItem

Reads items out of From, a structure the module returned, into the pipeline: everything waiting, or up to Count of them, stopping when the structure runs empty. A ring that numbers its consumers takes the id in Consumer; a deque is stolen from unless Owner is given.

Also Receive-SEItem.

ParameterTypeRequiredPositionPipeline
Fromobjectyes0-
Countulong-named-
Consumerulong-named-
Ownerswitch-named-

Writes byte[].

Send-SubEthaItem

Sends each item piped in to To, a structure the module returned, and writes each item the structure refused, so a full structure hands the item back rather than dropping it. A ring that numbers its producers takes the id in Producer.

Also Send-SEItem.

ParameterTypeRequiredPositionPipeline
Itemobjectyes0value
Toobjectyesnamed-
Producerulong-named-

Writes object.