Tuesday, January 8, 2019

My segment manager is beginning to work

On a section of shared memory heap it will split out segmentso n request, and merge them back in on release. The API:

NewSeg seg_namesize
DelSeg seg_name

Internodal messages are notbeing tested, yet. Thery look like:

NodeMsg node_name node_method node-args

The plot here is namespace over a particular consent network. The consent nodes assigned to a group will all use the same segment names, and they are unique, or else.

Consider the case of distributed sql_lites.  The consistent table are only updated after a shared memory has been authorized.    After the nodes have consented, the sql table update messages are duplicated across the network of reserved segments.  It is up toe sql_lite to interpret the arrivals on reserved args list. It is up to data manger to assign the consenting nodes toa sql group. And it is up to the applications to operate the  'using' statements properly and avoid name space conflict.  Thus, the sql applications are divided into low and high priority consenting networks, but the application level syntax is unchanged. Ths behind the scenes overloading cpability ispowerful, a must have in all corporations.

The data manager tool set

In the trenches she wants console loops and consent snippets.  From her dashboards, she can deploy names spaces and htreads and process forks as needed to partition out consent snippets.  The applications are mostly unaware, using qt and bash command sequences as usual.  Bu the front end of the snippet tables, including console loop search path have all been modified by data manager.   Data managers program embedded in the "using, import" functions, and all the engines know about the global names space, nd how to deploy and obey it.  Bash commandos get systematic about system wide semantics, they figure out how environments need sharing across engines.

The consent agreement:

All the nodes on the consent agreement agree that some finite set of integer indexes into args list are reserved,  size 64 bit integers from ptr of specified size.  Very simple, and it makes us of the modern all 64 bit architectures, a single word that can point to or become an immediate value of a very large class of data structures. That is one of the big  Moore's law advantages we see, general adoption of a single, long object across all hardware. It great software simplifier.

Take the modern, and abused union. I find it the easiest semantic for holding varying object pointers.  Dangerous, but extremely efficient.

Faking sockets
In testing node messages, I will write he fake sockets, it just runs as in thread and makes stuff up, pretending to talk to other nodes. But in the process I will write the console lop thread launcher. Setting up test rigs is easy, so is setting up applications, it is all about  choosing from a set of snippets..

No comments: