сообщения больше не выполняется полный scan/rewrite архива для expiry. Очистка остаётся в maintenance и перед MAM-запросами; append и crash checkpoint до fanout сохранены. - Неизменённые native config/persistent index не перезаписываются при каждом сообщении. Удалённые файлы восстанавливаются, ошибки экспорта повторяются. - CSI больше не сохраняет SM snapshot при отсутствии изменения durable очереди. Изменённая очередь сохраняется до отправки; при ошибке записи очередь откатывается. - Личные сообщения, IQ и входящая федерация к аккаунтам больше не захватывают общий MUC mutex, ожидая несвязанную работу с комнатными архивами. - Добавлены регрессии native exports/archive scanning/CSI rollback и реальный TLS latency check в verify-local.sh, автоматически включённый и в CI. Измерения и границы подтверждения: [docs/MESSAGE-LATENCY.md](docs/MESSAGE-LATENCY.md). Результаты итогового прогона: [docs/VALIDATION-0.8.1.md](docs/VALIDATION-0.8.1.md). - Личные сообщения и SM ACK больше не ждут сетевую отправку push. Уведомления отправляются через очередь1024 с максимум8параллельных маршрутов; worker и его задачи отменяются при завершении serve. Ошибки очереди/маршрута логируются. - Offline сообщение сохраняется до публикации push, чтобы проснувшийся клиент мог сразу получить его. Подтверждена очередь при первом TLS stream push gateway. - По умолчанию CSI считает важными bodyless OMEMO legacy/2, delivery receipts и chat markers. Явный список `csi_important_payloads` заменяет расширенные defaults. Низкоприоритетный headline по-прежнему буферизуется. Policy обновляется и при SM resume. - Выбор адресатов и carbons фильтрует владельцев до захвата session mutex; зависшая сессия чужого аккаунта не задерживает этот путь. Duplicate SM ACK без изменения durable counters/queue не переписывает snapshot. - Bind2 и MAM metadata IQ читают только первый/последний native record вместо сканирования всей истории. Индекс не требуется; recovery/лимиты записи сохранены. - Добавлен `message-processing-slow`: обработка message дольше250мс, поля duration_ms/route, без payload/токенов. Это время обработки сервером, не peer receipt. - Новые сетевые регрессии включены в verify-local.sh/GitHub CI. Причины, изменение CSI policy, измерения и ограничения: [docs/PERSONAL-MESSAGE-LATENCY.md](docs/PERSONAL-MESSAGE-LATENCY.md).
233 lines
6.3 KiB
JSON
233 lines
6.3 KiB
JSON
{
|
|
"binary_sha256": "74882319fcb467dd1e1813ab61e85441ffd3dae2f9f7961b28fd98ec5da7c89a",
|
|
"scope": "loopback STARTTLS; isolated fixture; no production latency claim",
|
|
"cases": [
|
|
{
|
|
"mam_enabled": false,
|
|
"sm_enabled": true,
|
|
"rounds": 3,
|
|
"seeded_muc_archive_records": 0,
|
|
"active": {
|
|
"direct_peer": {
|
|
"samples": 3,
|
|
"median_ms": 4.910238999968897,
|
|
"p95_ms": 5.052589999991142,
|
|
"max_ms": 5.052589999991142,
|
|
"samples_ms": [
|
|
4.849958000022525,
|
|
4.910238999968897,
|
|
5.052589999991142
|
|
]
|
|
},
|
|
"direct_application_rtt": {
|
|
"samples": 3,
|
|
"median_ms": 9.99482099996385,
|
|
"p95_ms": 10.185542000044734,
|
|
"max_ms": 10.185542000044734,
|
|
"samples_ms": [
|
|
9.438553999984833,
|
|
9.99482099996385,
|
|
10.185542000044734
|
|
]
|
|
},
|
|
"muc_sender_echo": {
|
|
"samples": 3,
|
|
"median_ms": 7.185058999993998,
|
|
"p95_ms": 7.319806000054996,
|
|
"max_ms": 7.319806000054996,
|
|
"samples_ms": [
|
|
5.824679000056676,
|
|
7.185058999993998,
|
|
7.319806000054996
|
|
]
|
|
},
|
|
"muc_peer": {
|
|
"samples": 3,
|
|
"median_ms": 7.9024159999789845,
|
|
"p95_ms": 8.338388999959534,
|
|
"max_ms": 8.338388999959534,
|
|
"samples_ms": [
|
|
6.551824999974087,
|
|
7.9024159999789845,
|
|
8.338388999959534
|
|
]
|
|
}
|
|
},
|
|
"inactive": {
|
|
"direct_peer": {
|
|
"samples": 3,
|
|
"median_ms": 6.445996999900672,
|
|
"p95_ms": 7.172110000055909,
|
|
"max_ms": 7.172110000055909,
|
|
"samples_ms": [
|
|
4.87915000007888,
|
|
6.445996999900672,
|
|
7.172110000055909
|
|
]
|
|
},
|
|
"direct_application_rtt": {
|
|
"samples": 3,
|
|
"median_ms": 10.659646999897632,
|
|
"p95_ms": 12.850071000002572,
|
|
"max_ms": 12.850071000002572,
|
|
"samples_ms": [
|
|
9.232021000002533,
|
|
10.659646999897632,
|
|
12.850071000002572
|
|
]
|
|
},
|
|
"muc_sender_echo": {
|
|
"samples": 3,
|
|
"median_ms": 9.392836000074567,
|
|
"p95_ms": 14.882106999948519,
|
|
"max_ms": 14.882106999948519,
|
|
"samples_ms": [
|
|
5.741209000007075,
|
|
9.392836000074567,
|
|
14.882106999948519
|
|
]
|
|
},
|
|
"muc_peer": {
|
|
"samples": 3,
|
|
"median_ms": 10.40252400002828,
|
|
"p95_ms": 16.07552799998757,
|
|
"max_ms": 16.07552799998757,
|
|
"samples_ms": [
|
|
6.522893999999724,
|
|
10.40252400002828,
|
|
16.07552799998757
|
|
]
|
|
}
|
|
},
|
|
"urgent_flush": {
|
|
"samples": 1,
|
|
"median_ms": 6.09094300000379,
|
|
"p95_ms": 6.09094300000379,
|
|
"max_ms": 6.09094300000379,
|
|
"samples_ms": [
|
|
6.09094300000379
|
|
]
|
|
},
|
|
"headline_durably_buffered": true,
|
|
"activation_drained_queue": true,
|
|
"personal_archive_records": 0,
|
|
"muc_archive_records": 0,
|
|
"wire_body_deliveries": 27,
|
|
"status": "pass"
|
|
},
|
|
{
|
|
"mam_enabled": true,
|
|
"sm_enabled": true,
|
|
"rounds": 3,
|
|
"seeded_muc_archive_records": 100000,
|
|
"active": {
|
|
"direct_peer": {
|
|
"samples": 3,
|
|
"median_ms": 8.917705999920145,
|
|
"p95_ms": 10.107052999956068,
|
|
"max_ms": 10.107052999956068,
|
|
"samples_ms": [
|
|
8.420038000053864,
|
|
8.917705999920145,
|
|
10.107052999956068
|
|
]
|
|
},
|
|
"direct_application_rtt": {
|
|
"samples": 3,
|
|
"median_ms": 16.42384999991009,
|
|
"p95_ms": 17.16581000005135,
|
|
"max_ms": 17.16581000005135,
|
|
"samples_ms": [
|
|
16.391191000025174,
|
|
16.42384999991009,
|
|
17.16581000005135
|
|
]
|
|
},
|
|
"muc_sender_echo": {
|
|
"samples": 3,
|
|
"median_ms": 2517.3544539999284,
|
|
"p95_ms": 2520.2535930000067,
|
|
"max_ms": 2520.2535930000067,
|
|
"samples_ms": [
|
|
2501.2779300000147,
|
|
2517.3544539999284,
|
|
2520.2535930000067
|
|
]
|
|
},
|
|
"muc_peer": {
|
|
"samples": 3,
|
|
"median_ms": 2517.9402029999665,
|
|
"p95_ms": 2520.940784000004,
|
|
"max_ms": 2520.940784000004,
|
|
"samples_ms": [
|
|
2502.2604349999256,
|
|
2517.9402029999665,
|
|
2520.940784000004
|
|
]
|
|
}
|
|
},
|
|
"inactive": {
|
|
"direct_peer": {
|
|
"samples": 3,
|
|
"median_ms": 24.452612999994017,
|
|
"p95_ms": 26.775254999961362,
|
|
"max_ms": 26.775254999961362,
|
|
"samples_ms": [
|
|
8.767078000005313,
|
|
24.452612999994017,
|
|
26.775254999961362
|
|
]
|
|
},
|
|
"direct_application_rtt": {
|
|
"samples": 3,
|
|
"median_ms": 36.83773900002052,
|
|
"p95_ms": 50.86929899994175,
|
|
"max_ms": 50.86929899994175,
|
|
"samples_ms": [
|
|
17.80327500000567,
|
|
36.83773900002052,
|
|
50.86929899994175
|
|
]
|
|
},
|
|
"muc_sender_echo": {
|
|
"samples": 3,
|
|
"median_ms": 3855.8298680000007,
|
|
"p95_ms": 4150.020520999988,
|
|
"max_ms": 4150.020520999988,
|
|
"samples_ms": [
|
|
2901.40261199997,
|
|
3855.8298680000007,
|
|
4150.020520999988
|
|
]
|
|
},
|
|
"muc_peer": {
|
|
"samples": 3,
|
|
"median_ms": 3866.027479999957,
|
|
"p95_ms": 4150.866962999999,
|
|
"max_ms": 4150.866962999999,
|
|
"samples_ms": [
|
|
2901.4587140000003,
|
|
3866.027479999957,
|
|
4150.866962999999
|
|
]
|
|
}
|
|
},
|
|
"urgent_flush": {
|
|
"samples": 1,
|
|
"median_ms": 22.82110700002704,
|
|
"p95_ms": 22.82110700002704,
|
|
"max_ms": 22.82110700002704,
|
|
"samples_ms": [
|
|
22.82110700002704
|
|
]
|
|
},
|
|
"headline_durably_buffered": true,
|
|
"activation_drained_queue": true,
|
|
"personal_archive_records": 26,
|
|
"muc_archive_records": 100006,
|
|
"wire_body_deliveries": 27,
|
|
"status": "pass"
|
|
}
|
|
]
|
|
}
|