|
| 1 | +This is your first big boi, "from GH issue" design, plan and |
| 2 | +implement task. |
| 3 | + |
| 4 | +We need to try and add sub-interpreter (aka subint) support per the |
| 5 | +issue, |
| 6 | + |
| 7 | +https://github.com/goodboy/tractor/issues/379 |
| 8 | + |
| 9 | +Part of this work should include, |
| 10 | + |
| 11 | +- modularizing and thus better origing the `.spawn.*` subpkg by |
| 12 | + breaking up various backends currently in `spawn._spawn` in to |
| 13 | + separate submods where it makes sense. |
| 14 | + |
| 15 | +- add a new `._subint` backend which tries to keep as much of the |
| 16 | + inter-process-isolation machinery in use as possible but with plans |
| 17 | + to optimize for localhost only benefits as offered by python's |
| 18 | + subints where possible. |
| 19 | + |
| 20 | + * utilizing localhost-only tpts like UDS, shm-buffers for |
| 21 | + performant IPC between subactors but also leveraging the benefits from |
| 22 | + the traditional OS subprocs mem/storage-domain isolation, linux |
| 23 | + namespaces where possible and as available/permitted by whatever |
| 24 | + is happening under the hood with how cpython implements subints. |
| 25 | + |
| 26 | + * default configuration should encourage state isolation as with |
| 27 | + with subprocs, but explicit public escape hatches to enable rigorously |
| 28 | + managed shm channels for high performance apps. |
| 29 | + |
| 30 | +- all tests should be (able to be) paramatrized to use the new |
| 31 | + `subints` backend and enabled by flag in the harness using the |
| 32 | + existing `pytest --spawn-backend <spawn-backend>` support offered in |
| 33 | + the `open_root_actor()` and `.testing._pytest` harness override |
| 34 | + fixture. |
0 commit comments