R. Tyler Croy
5581fe0d3a
Implement some Connection category commands
2019-01-06 16:53:13 -08:00
R. Tyler Croy
ba41d474dc
Document the Connection command status
2019-01-06 16:24:21 -08:00
R. Tyler Croy
327c53f969
Catalogue the commands implemented from the Strings section
2019-01-06 16:16:27 -08:00
R. Tyler Croy
46e7ef21f5
Fix the table header for the Keys table
2019-01-06 16:12:30 -08:00
R. Tyler Croy
8d8b28eaa0
Start documenting compatibility by section
2019-01-06 16:11:26 -08:00
R. Tyler Croy
35c7c9463c
Add a no-opped unit test for Handle_Del
2019-01-06 16:00:11 -08:00
R. Tyler Croy
fe40a7d638
Add support for the DEL command
2019-01-06 15:53:05 -08:00
R. Tyler Croy
033557f713
Reformat all the Mozzoni code to be a bit more readable
...
Just using GPS' built in "Format Selection"
2019-01-06 15:26:15 -08:00
R. Tyler Croy
3795b028c3
Add support for the EXISTS command
2019-01-06 15:19:18 -08:00
R. Tyler Croy
5e8b1cad12
Always regenerate the gnattest harness just to be sure it always works
2019-01-06 12:37:50 -08:00
R. Tyler Croy
d73bb4d269
No-op the tests for Mozzoni.Commands.Keys for the moment
2019-01-06 12:37:05 -08:00
R. Tyler Croy
96b9a9a458
Add some tests for Mozzon.Commands;
2019-01-06 12:37:04 -08:00
R. Tyler Croy
c772aabe9f
Implement some basic sanity-checking test cases for Mozzoni.Client
...
While this doesn't really give me much confidence right now, it does get us
closer to some form of functionally passing unit tests
2019-01-06 12:37:04 -08:00
R. Tyler Croy
24f48ff91b
Add some simplistic unit tests for Mozzoni.Dispatch
2019-01-06 11:41:44 -08:00
R. Tyler Croy
1bc7cf2008
Refactor out the Epoll shim and incorporate async-ada as well.
...
This is still using the raw epoll interfaces in the main subprogram, but I would
like to see some nicer abstraction happen here.
2019-01-06 11:19:30 -08:00
R. Tyler Croy
d972d64a11
Add a helpful little run target to the makefile
2019-01-05 21:32:04 -08:00
R. Tyler Croy
e1f6c6dc30
Add cloning instructions to the readme
2019-01-05 21:29:33 -08:00
R. Tyler Croy
4dfb0104f6
Drop Alog in favor of Logga
...
This cleans up a lot of silly build system hacks
2019-01-05 21:28:48 -08:00
R. Tyler Croy
c39ee3abbc
Add more information on getting started with Mozzoni to the readme
2019-01-05 15:23:48 -08:00
R. Tyler Croy
c05aa19c5d
Make the Makefile a wee bit more self-documenting
...
Clever little hack, I like it!
2019-01-05 14:51:00 -08:00
R. Tyler Croy
42ed075e0d
Remove some unnecessary log messages and avoid creating too many strings in Keys
...
I'm hunting down some performance challenges in gprof, and these don't seem to
have had any effect
2019-01-05 12:40:02 -08:00
R. Tyler Croy
853b471baf
Add new epoll(7) improved metrics!
2019-01-05 11:41:29 -08:00
R. Tyler Croy
604c7da21e
Commit some changes to the generated test files
2019-01-05 11:39:34 -08:00
R. Tyler Croy
bafdaecae7
Re-order the epoll event loop a bit to handle EPOLLIN | EPOLLRDHUP events
...
These events are associated with normal shutdowns of the socket wherein we have
the last few bytes to read on the socket before shutting it down.
2019-01-05 11:38:29 -08:00
R. Tyler Croy
f34e8eaa10
EPOLLET just makes everything more complicated and worse
...
Removing this since it's not necessary and very easy to screw up :-/
2019-01-05 11:37:28 -08:00
R. Tyler Croy
260dc13ba7
Log which descriptor is being disconnected
2019-01-05 10:23:47 -08:00
R. Tyler Croy
205e5d60c7
Refactor and rework the epoll utilization in the main subprogram
...
The primary issue addressed here is the creation of a new stack-allocated
Event_Type whenever we're added a socket to the epoll file descriptor. The
behavior previously was re-using the same object, and I _believe_ resulting in
only one socket (last one wins) being monitored.
With this change we're properly handling concurrent connections
2019-01-05 09:54:02 -08:00
R. Tyler Croy
04c5d631f3
Add a comment about what we're likely getting with an EINTR in Read()
2019-01-05 09:53:09 -08:00
R. Tyler Croy
b1b408f429
Modify the Epoll interface to properly handle the Event_Type
...
The removal of `aliased` for the Data_Type seems to correct any interop issues
with the Event_Type in and out of epoll_wait(2)
👏
2019-01-05 09:51:56 -08:00
R. Tyler Croy
7d01ee6117
Tweak the buffer sizes a bit
...
Still seeing weird behavior where the event loop disconnects clients even though
the clients don't believe they should yet be disconnected.
Basically ./redis-benchmark and mozzonid disagree after some amount of time
about who should be connected and who shouldn't
2018-12-25 17:39:54 -08:00
R. Tyler Croy
ecaa1951e7
Properly handle EINTR from read(2) and retry
...
I believe something is causing this to erroneously happen, resulting in a
performance loss
2018-12-25 17:30:18 -08:00
R. Tyler Croy
c02799024a
fixup! Support disconnecting when the Epoll event is EPOLLHUP
2018-12-25 17:30:12 -08:00
R. Tyler Croy
9f2d5c3710
Support disconnecting when the Epoll event is EPOLLHUP
...
This _appears _to be working fine, not 100% certain however
2018-12-25 17:20:29 -08:00
R. Tyler Croy
c71fc440da
Entering 's' should dump some debugging status
2018-12-25 17:19:57 -08:00
R. Tyler Croy
8162c06d53
Refactor an unnecessary procedure out of the main subprogram
...
Not needed if we're only calling it once
2018-12-25 17:19:33 -08:00
R. Tyler Croy
d8a1f0081c
Add the necessary supporting code to close and deregister clients when they're done
2018-12-25 17:19:01 -08:00
R. Tyler Croy
682b508e0e
Remove the fake-client script
2018-12-25 15:48:13 -08:00
R. Tyler Croy
edd16a5711
Tighten up the Epoll binding properly
2018-12-25 15:47:51 -08:00
R. Tyler Croy
7e01d74602
Ignore some auto-generated files in the root directory
2018-12-24 14:28:40 -08:00
R. Tyler Croy
1f173a2e69
Remove a number of inefficient logging statements
...
These logger statements result in significant amounts of CPU time spent logging
or allocating/finalizing unbounded strings. That's not great :-/
2018-12-24 14:27:03 -08:00
R. Tyler Croy
92649019ee
Add support for generating profiling output from the daemon
2018-12-24 14:26:08 -08:00
R. Tyler Croy
cb71b71326
Refactor the main subprogram to add more log messages
2018-12-24 11:47:51 -08:00
R. Tyler Croy
c8afe67ce9
Update the epoll_wait(2) mapping to take an array more properly
2018-12-24 11:47:29 -08:00
R. Tyler Croy
08bf4032a4
Reduce the Epoll Events array to just one element
...
It appears that there is some marshalling between Ada and C that is resulting in
the boundaries of this array of pointers to not work properly. With larger array
sizes, whenever there are concurrent connections to Mozzoni it results in
invalid Polled_Event.Data.FD values.
This is a **hack** right now, and the underlying bug still remains at large.
2018-12-24 11:45:55 -08:00
R. Tyler Croy
502353f431
Add a bit more clear logging and error handling inside of the main procedure
...
Right now when benchmarking mozzoni it is getting an EINVAL on read(2). So
something is fishy with the epoll(2) support here
2018-12-21 21:36:27 -08:00
R. Tyler Croy
0a4e313371
Finish up the support for the SET command and its options
...
This includes a number of tidying up in the acceptance tests. Along with the
cleaning up, I discovered some logic errors in the code handling requests, etc
2018-12-21 21:01:43 -08:00
R. Tyler Croy
525d81adbe
Remove the unused Mozzoni.Parser package
2018-12-21 16:45:43 -08:00
R. Tyler Croy
1dd732ae14
Ensure the right flags are present for running other gprbuild related tasks
2018-12-21 16:45:43 -08:00
R. Tyler Croy
e9a8861298
Use a simple aggregate project to ensure that ALOG_VERSION is *always* set
...
This is silly, but a reasonable hack IMO
Fixes #1
2018-12-19 21:06:13 -08:00
R. Tyler Croy
80a591a352
Incorporate a local hacked version of Alog
...
Thus far ALOG_VERSION needs to be set, doesn't seem to be a good way around that
2018-12-19 21:06:08 -08:00