I'm working on parallel multithreaded systems. I wrote a M:N kernel-thread to lightweight thread userspace scheduler which multiplexes multiple lightweight threads onto kernel threads. I also wrote part of my own libuv.
I also wrote a multithreaded actor implementation in Java. I am currently working on solving the expression problem and thinking of how entity component systems (ECS) can be used for parallelism and solving the problem of deciding how to map data to operations efficiently.
I am also thinking of how to patch running systems without downtime.
I think if the system behaviour is a data structure then data structures can be loaded during runtime and again later on, this is a bit similar to Entity Component System, entities can come and go at runtime and be efficiently handled.
If you combine this with dynamic embedded scripting, you can have runtime systems that are completely reloadable while running. You can also decide when to serve requests with the new design and old design.
I'm trying to bring the patch to the application itself rather than at the network layer.
I also wrote a multithreaded actor implementation in Java. I am currently working on solving the expression problem and thinking of how entity component systems (ECS) can be used for parallelism and solving the problem of deciding how to map data to operations efficiently.
I am also thinking of how to patch running systems without downtime.
See my repository multiversion-concurrency-control for my parallel work https://github.com/samsquire/multiversion-concurrency-contro... and the userspace scheduler in preemptible-thread https://github.com/samsquire/preemptible-thread
See my profile for links to my journal/blog where I write of my progress everyday, specifically ideas4.