Repository navigation
Commit afa6361
committed
libsql-server: durable creation marker; fix two pre-existing empty-entry sources
- The `.incomplete` marker and its directory entry are fsynced when written
(`incomplete::mark_incomplete`, also used for fork's temp dir), so the
marker is durable before anything else in the directory can be. Without
this a power loss could in principle leave a directory with content but no
marker, which nothing would discard.
- `checkpoint` of a namespace that is not loaded no longer inserts an empty
cache entry (pre-existing: lookups then found the empty entry instead of
loading the namespace, until eviction).
- A failed fork only removes its destination directory if it carries the
marker (pre-existing: it removed whatever was there).
- Dump tests: `tcp_capacity(4096)`. The fsync makes the following blocking fs
ops in setup slower in real time; turmoil advances simulated time while the
server waits on them and the dump store keeps writing 1-byte chunks into a
socket nobody reads yet, past turmoil's default 64-segment buffer. Real TCP
would apply back-pressure; turmoil panics.
- Bottomless is not used in our deployment: the design doc now says
"untested with this change" instead of reasoning about remote cleanup.1 parent 4cc2df7 commit afa6361
5 files changed
Lines changed: 33 additions & 20 deletions
File tree
- docs
- libsql-server
- src/namespace
- configurator
- tests/namespaces
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
28 | 28 | | |
29 | 29 | | |
30 | 30 | | |
31 | | - | |
| 31 | + | |
32 | 32 | | |
33 | 33 | | |
34 | 34 | | |
| |||
291 | 291 | | |
292 | 292 | | |
293 | 293 | | |
294 | | - | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
295 | 297 | | |
296 | 298 | | |
297 | 299 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
130 | 130 | | |
131 | 131 | | |
132 | 132 | | |
133 | | - | |
134 | | - | |
135 | | - | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
136 | 140 | | |
137 | 141 | | |
138 | 142 | | |
| |||
147 | 151 | | |
148 | 152 | | |
149 | 153 | | |
150 | | - | |
151 | | - | |
152 | | - | |
153 | | - | |
154 | | - | |
155 | | - | |
| 154 | + | |
156 | 155 | | |
157 | 156 | | |
158 | 157 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
38 | 38 | | |
39 | 39 | | |
40 | 40 | | |
41 | | - | |
42 | | - | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
43 | 45 | | |
44 | 46 | | |
45 | | - | |
46 | | - | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
47 | 54 | | |
48 | 55 | | |
49 | 56 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
369 | 369 | | |
370 | 370 | | |
371 | 371 | | |
372 | | - | |
373 | | - | |
374 | | - | |
375 | | - | |
376 | | - | |
| 372 | + | |
| 373 | + | |
| 374 | + | |
| 375 | + | |
| 376 | + | |
377 | 377 | | |
378 | 378 | | |
379 | 379 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
46 | 46 | | |
47 | 47 | | |
48 | 48 | | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
49 | 54 | | |
50 | 55 | | |
51 | 56 | | |
| |||
0 commit comments