@mark1russell7/machines 0.3.12 → 0.3.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +19 -5
- package/build/index.d.ts +35 -0
- package/build/index.js +1005 -127
- package/build/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -43,13 +43,15 @@ The algebra reads these documents. It gives the closed form of each timer, the f
|
|
|
43
43
|
| `NODE_POSTGRES` | `node-postgres` | node-postgres 8.23.1 with pg-pool 3.14.0: one client of a `pg.Pool` | driver | 30 implemented, 2 documented, 1 derived |
|
|
44
44
|
| `POSTGRES_SESSION` | `postgres-session` | One client connection of a PostgreSQL 17.11 backend | server | 41 implemented, 2 documented |
|
|
45
45
|
| `HIKARICP_PGJDBC` | `hikaricp-pgjdbc` | HikariCP 7.1.0 over pgjdbc 42.7.13: one connection of a pool | driver | 41 implemented, 1 documented, 2 derived |
|
|
46
|
-
| `PGBOUNCER_CLIENT` | `pgbouncer-client` | PgBouncer 1.26.1 in transaction pooling: one client connection | proxy |
|
|
47
|
-
| `PGBOUNCER_SERVER` | `pgbouncer-server` | PgBouncer 1.26.1 in transaction pooling: one server connection of a pool | proxy |
|
|
48
|
-
| `PGPOOL_SESSION` | `pgpool-session` | Pgpool-II 4.7.3 with one backend: one session of a client in its child process | proxy |
|
|
49
|
-
| `SUPAVISOR_CLIENT` | `supavisor-client` | Supavisor 2.9.13 in transaction mode: one client connection | proxy |
|
|
46
|
+
| `PGBOUNCER_CLIENT` | `pgbouncer-client` | PgBouncer 1.26.1 in transaction pooling: one client connection | proxy | 30 implemented |
|
|
47
|
+
| `PGBOUNCER_SERVER` | `pgbouncer-server` | PgBouncer 1.26.1 in transaction pooling: one server connection of a pool | proxy | 27 implemented, 1 observed |
|
|
48
|
+
| `PGPOOL_SESSION` | `pgpool-session` | Pgpool-II 4.7.3 with one backend: one session of a client in its child process | proxy | 16 implemented |
|
|
49
|
+
| `SUPAVISOR_CLIENT` | `supavisor-client` | Supavisor 2.9.13 in transaction mode: one client connection | proxy | 16 implemented, 1 observed |
|
|
50
50
|
| `SUPAVISOR_SERVER` | `supavisor-server` | Supavisor 2.9.13 in transaction mode: one server connection of the pool of a tenant | proxy | 10 implemented, 1 observed |
|
|
51
|
+
| `AMQPLIB` | `amqplib` | amqplib 2.2.0: one connection to an AMQP 0-9-1 broker, its heartbeat and an RPC of its channel | driver | 18 implemented, 1 documented |
|
|
52
|
+
| `RABBITMQ_CONNECTION` | `rabbitmq-connection` | RabbitMQ 4.3.6: one connection of AMQP 0-9-1 on the broker | server | 14 implemented, 1 documented |
|
|
51
53
|
|
|
52
|
-
|
|
54
|
+
Twenty-one documents operate on Linux TCP (`over`). Linux TCP, conntrack, the Sentinel and the replication of mongod operate on no other document. The `conditions` of each document give the range where it holds, for example a range of kernels.
|
|
53
55
|
|
|
54
56
|
The package also gives these parts:
|
|
55
57
|
|
|
@@ -95,6 +97,18 @@ A change to the version of a system changes its sources too. Each fact of the do
|
|
|
95
97
|
|
|
96
98
|
In this repository, a snapshot of the predictions of the cells (`packages/cells/src/__snapshots__/predictions.json`) shows each prediction that a change to a document moves.
|
|
97
99
|
|
|
100
|
+
### 0.3.14
|
|
101
|
+
|
|
102
|
+
- **amqplib 2.2.0 and RabbitMQ 4.3.6.** Two new documents, each from the source at its tag:
|
|
103
|
+
- `amqplib`: one connection and one channel. At the defaults it takes the heartbeat of the broker, 60 s. It ends the connection 2 to 3 heartbeats after the last bytes of the broker. An idle connection sends a heartbeat frame each 60 s. Nagle is on, and an RPC has no timer.
|
|
104
|
+
- `rabbitmq-connection`: one connection on the broker. It sends a heartbeat frame each 30 s on an idle connection. It ends the connection 2 to 3 heartbeats after the last bytes of the client. Each socket has linger 0, thus each close of the broker is a reset. The listener of ranch 2.3.0 gives each socket a send timeout of 30 s.
|
|
105
|
+
|
|
106
|
+
### 0.3.13
|
|
107
|
+
|
|
108
|
+
- **A reload of a pooler.** `pgbouncer-client`, `pgbouncer-server` and `pgpool-session` have the event `local.reload`: SIGHUP, which reads the configuration again. No transition takes it, thus a session keeps its state, its server and each timer.
|
|
109
|
+
- PgBouncer: src/main.c:619-627, and src/loader.c:394-419 closes a server only when the connection of its database changed.
|
|
110
|
+
- Pgpool-II: src/main/pgpool_main.c:3551-3566 sends SIGHUP to each child, and a child in a session reads the configuration again in the loop of its query (src/protocol/pool_process_query.c:456-466).
|
|
111
|
+
|
|
98
112
|
### 0.3.12
|
|
99
113
|
|
|
100
114
|
- **The send timeout of the client socket of Supavisor.** Supavisor 2.9.13 locks ranch 2.2.0. ranch gives each client socket a send timeout of 30 s that closes the socket (src/ranch_tcp.erl:108-109). Thus a write of a reply that waits 30 s ends the client. `supavisor-client` gives it as a source and a note, with no timer. A write waits only when the client takes no data, and on a broken path the FIN of the close waits behind the data. In run 39170773426, behind an MTU black hole, the socket closed 30.068 to 30.086 s after the fault in each of 11 runs.
|
package/build/index.d.ts
CHANGED
|
@@ -337,6 +337,41 @@ export declare const PROCEDURES_WS_CLIENT: Machine;
|
|
|
337
337
|
*/
|
|
338
338
|
export declare const PROCEDURES_WS_SERVER: Machine;
|
|
339
339
|
//#endregion
|
|
340
|
+
//#region src/rabbit/amqplib.d.ts
|
|
341
|
+
/**
|
|
342
|
+
* This document is amqplib 2.2.0 on Node, for one connection to a broker of AMQP 0-9-1 and one channel
|
|
343
|
+
* on it. It gives the states of the connection, from its connect to its end, and the timers that act on
|
|
344
|
+
* it.
|
|
345
|
+
*
|
|
346
|
+
* At the defaults, amqplib takes the heartbeat that the broker proposes: 60 s for RabbitMQ 4.3. Each 30 s
|
|
347
|
+
* it sends a heartbeat frame when it sent nothing since the check before. Its own heartbeat counts as a
|
|
348
|
+
* send, thus an idle connection sends one each 60 s. Each 60 s it checks that the broker sent
|
|
349
|
+
* something, and after two checks with nothing it ends the connection: 'Heartbeat timeout'. That end
|
|
350
|
+
* comes 2 to 3 heartbeats after the last data.
|
|
351
|
+
*
|
|
352
|
+
* amqplib sets TCP_NODELAY only when the caller asks for it, thus Nagle is on at the defaults. It sets no
|
|
353
|
+
* keepalive and no connect timeout. An RPC of a channel has no timer. The package does not connect again
|
|
354
|
+
* by itself. Its recovery is a wrapper that this document does not hold.
|
|
355
|
+
*/
|
|
356
|
+
export declare const AMQPLIB: Machine;
|
|
357
|
+
//#endregion
|
|
358
|
+
//#region src/rabbit/rabbitmq-connection.d.ts
|
|
359
|
+
/**
|
|
360
|
+
* This document is RabbitMQ 4.3.6, for one connection of AMQP 0-9-1 on the broker. It gives the reader of
|
|
361
|
+
* the connection, from the accept to the close, and the timers that act on it.
|
|
362
|
+
*
|
|
363
|
+
* At the defaults the broker proposes a heartbeat of 60 s, and it uses the value of the tune-ok of the
|
|
364
|
+
* client. Each 30 s it sends a heartbeat frame when it sent nothing: its own heartbeat does not count,
|
|
365
|
+
* thus an idle connection gets one each 30 s. Each 60 s it checks that the client sent something. After
|
|
366
|
+
* two checks with nothing, it ends the connection, 2 to 3 heartbeats after the last data.
|
|
367
|
+
*
|
|
368
|
+
* Each socket of a listener has linger 0, thus each close of the broker is a reset, not a FIN. The
|
|
369
|
+
* listener of ranch gives each socket a send timeout of 30 s. After it, the BEAM closes the socket, with
|
|
370
|
+
* a reset too. A resource alarm blocks a connection that publishes: the reader stops to read
|
|
371
|
+
* its socket, and the receive check pauses.
|
|
372
|
+
*/
|
|
373
|
+
export declare const RABBITMQ_CONNECTION: Machine;
|
|
374
|
+
//#endregion
|
|
340
375
|
//#region src/sentinel.d.ts
|
|
341
376
|
/**
|
|
342
377
|
* This document is the Sentinel of Valkey 9.1.2. It gives the view of one Sentinel on the primary
|