andrew
|
f458c6b249
|
Make pipeline policy/topology configurable
|
2025-11-06 15:55:27 -05:00 |
|
andrew
|
9f8562e30f
|
Fix histogram thread death bug
|
2025-09-18 12:39:47 -04:00 |
|
andrew
|
cb66d65479
|
Add a bit more precision to docs, plus philosophy
|
2025-09-16 00:57:20 -04:00 |
|
andrew
|
4d015fa3dc
|
Make recording metrics never block
|
2025-09-15 23:34:30 -04:00 |
|
andrew
|
0659319906
|
Prepare for try_lock optimization
So histogram observations never block
|
2025-09-15 23:04:54 -04:00 |
|
andrew
|
6f421629aa
|
Add comments to avoid blocking in sequence and resolve stages
|
2025-09-15 22:51:41 -04:00 |
|
andrew
|
ba59a992dd
|
Document per-connection locking strategy
|
2025-09-15 22:33:52 -04:00 |
|
andrew
|
0d76c73077
|
Only shut down write side for http
|
2025-09-15 21:42:36 -04:00 |
|
andrew
|
4ecbc07367
|
Fix flaky connection shutdown test
|
2025-09-15 21:39:48 -04:00 |
|
andrew
|
5e625197aa
|
Fix url accumulation bug
|
2025-09-15 21:36:49 -04:00 |
|
andrew
|
5dda7353fa
|
Add test for url accumulation bug
|
2025-09-15 21:36:49 -04:00 |
|
andrew
|
345d8e21b2
|
Use WaitIfUpstreamIdle
|
2025-09-15 20:48:12 -04:00 |
|
andrew
|
917066d8c0
|
Move thread local state into stack
|
2025-09-15 20:33:45 -04:00 |
|
andrew
|
5a88047b9f
|
Two release threads
|
2025-09-15 20:09:15 -04:00 |
|
andrew
|
1acdc1e753
|
Put Arena destructor and move constructors in header
|
2025-09-15 17:01:38 -04:00 |
|
andrew
|
ae0c014298
|
Don't clear write interest if pending_response_queue_ non empty
|
2025-09-15 16:35:37 -04:00 |
|
andrew
|
e2115152c8
|
Add tests for shutdown vs close
|
2025-09-15 15:48:10 -04:00 |
|
andrew
|
55f6ebc02b
|
Implement shutting down the write-side only
|
2025-09-15 15:39:28 -04:00 |
|
andrew
|
6b52c4289c
|
Prevent queueing of messages on connection after it will be closed
|
2025-09-15 15:25:40 -04:00 |
|
andrew
|
7ee5ca2a9b
|
Remove dead code, use proper send_ordered_response
And prepare to try to close a connection gracefully
|
2025-09-15 15:08:19 -04:00 |
|
andrew
|
9120c05847
|
Use spend_cpu_cycles instead of volatile loop
|
2025-09-15 14:07:38 -04:00 |
|
andrew
|
528a467518
|
Make test names match binary names
|
2025-09-15 13:06:15 -04:00 |
|
andrew
|
a67d7a8531
|
Consolidate into one send_ordered_response
|
2025-09-15 13:01:56 -04:00 |
|
andrew
|
6717b70772
|
Remove HttpConnectionState::response_queue_mutex
|
2025-09-15 12:32:19 -04:00 |
|
andrew
|
34accb9d80
|
Move GetVersion to commit pipeline
|
2025-09-15 12:30:02 -04:00 |
|
andrew
|
f3c3f77a24
|
Extract commit pipeline to its own module
|
2025-09-15 11:51:01 -04:00 |
|
andrew
|
afd240dba7
|
Remove vestigial "round-robin" code
|
2025-09-15 11:22:14 -04:00 |
|
andrew
|
1cb7a4c301
|
Remove has_pending_responses_
|
2025-09-15 11:10:47 -04:00 |
|
andrew
|
1b220d0d1c
|
WIP
|
2025-09-15 10:28:17 -04:00 |
|
andrew
|
ec2ad27e33
|
Add explanatory comments
|
2025-09-15 00:07:44 -04:00 |
|
andrew
|
eb98e51867
|
We expect to get valid fds to close in ~Connection in ~Server
|
2025-09-15 00:07:09 -04:00 |
|
andrew
|
022a79bf5b
|
Separate HttpRequestState and HttpConnectionState
Now HttpConnectionState has a queue of HttpRequestState
|
2025-09-14 23:49:32 -04:00 |
|
andrew
|
fac6b8de88
|
Add test that shows parsing issue
It's meant to show the pipelining issue. I guess we'll solve the
newly-discovered parsing issue first.
|
2025-09-14 22:24:02 -04:00 |
|
andrew
|
1f61f91bf5
|
Reset connection state after finishing with it in http_handler
|
2025-09-14 21:16:41 -04:00 |
|
andrew
|
632113f792
|
Add test for pipeline request parsing bug
|
2025-09-14 20:53:19 -04:00 |
|
andrew
|
f62770c4ab
|
Add copying utility methods to Arena
|
2025-09-14 20:38:54 -04:00 |
|
andrew
|
147edf5c93
|
More cleanup
|
2025-09-14 20:27:14 -04:00 |
|
andrew
|
f39149d516
|
Update documentation with new networking model
|
2025-09-14 19:03:56 -04:00 |
|
andrew
|
0389fd2c9f
|
Consistently use state->arena for http handling
|
2025-09-14 17:16:05 -04:00 |
|
andrew
|
7ef54a2d08
|
Call epoll_ctl in release stage
|
2025-09-14 16:28:12 -04:00 |
|
andrew
|
16c7ee0408
|
Separate Connection and Request lifetimes
|
2025-09-14 15:04:37 -04:00 |
|
andrew
|
cf0c1b7cc2
|
Add echo test for server
|
2025-09-14 12:56:22 -04:00 |
|
andrew
|
bd06798fd3
|
Remove test_http_handler and test_server_connection_return
|
2025-09-14 11:38:43 -04:00 |
|
andrew
|
e96a493835
|
Remove release_back_to_server
|
2025-09-14 09:03:05 -04:00 |
|
andrew
|
e887906da8
|
Remove some unused/indirectly used headers
|
2025-09-13 17:25:46 -04:00 |
|
andrew
|
de6f38694f
|
std::unique_ptr<Connection> -> Ref<Connection>
|
2025-09-13 17:25:46 -04:00 |
|
andrew
|
1fa3381e4b
|
Use send/sendmsg and don't ignore SIGPIPE
|
2025-09-13 17:25:20 -04:00 |
|
andrew
|
cd2e15677a
|
Remove epoll instances config
|
2025-09-12 18:05:07 -04:00 |
|
andrew
|
2b8f095d27
|
Fix minor issues
|
2025-09-12 12:13:50 -04:00 |
|
andrew
|
543447971f
|
Fix polymorphic WeakRef bug
|
2025-09-12 12:08:46 -04:00 |
|
andrew
|
f89868058a
|
Require explicit copies for Ref/WeakRef
|
2025-09-12 11:59:56 -04:00 |
|
andrew
|
674ff581e7
|
Update comments/docs to match code
|
2025-09-12 11:40:38 -04:00 |
|
andrew
|
be5a0c6d8e
|
Update some inaccuracies in markdown files
|
2025-09-12 11:31:22 -04:00 |
|
andrew
|
bf90b8856a
|
Add mdformat pre-commit hook
|
2025-09-12 11:24:16 -04:00 |
|
andrew
|
9d48caca76
|
add end-of-file-fixer
|
2025-09-12 11:21:00 -04:00 |
|
andrew
|
0561d951d4
|
Finish std::shared_ptr -> Ref migration
|
2025-09-11 15:06:04 -04:00 |
|
andrew
|
a2da7fba84
|
Explicitly support having a WeakRef to self
|
2025-09-11 14:54:42 -04:00 |
|
andrew
|
5d932bf36c
|
Add polymorphism support to Ref
|
2025-09-11 14:15:52 -04:00 |
|
andrew
|
9a8d4feedd
|
Add documentation
|
2025-09-11 13:54:00 -04:00 |
|
andrew
|
9cd83fc426
|
Call ~ControlBlock
It's trivially destructible, but just in case. Compiler should optimize it out
|
2025-09-11 13:18:19 -04:00 |
|
andrew
|
10e382f633
|
Used biased weak count, cache T* pointer
Logically, the strong pointer that destroys T owns +1 weak count too
|
2025-09-11 13:15:03 -04:00 |
|
andrew
|
f83e21b5a0
|
Defeat shared_ptr's single-threaded optimizations
WeaselDB is always going to start multiple threads, so we don't care
about single-threaded performance
|
2025-09-11 13:13:05 -04:00 |
|
andrew
|
5adbf8eee2
|
Organize bench_reference.cpp with doctest
|
2025-09-11 12:32:25 -04:00 |
|
andrew
|
2bc17cbfe6
|
Add bench_reference.cpp
Also update snake case script for nanobench symbols
|
2025-09-11 12:22:56 -04:00 |
|
andrew
|
89c5a2f165
|
Strengthen language instructing reading the style guide
|
2025-09-11 12:02:44 -04:00 |
|
andrew
|
d35a4fa4db
|
Update multi-threaded tests/benchmarks guidance
|
2025-09-11 12:01:18 -04:00 |
|
andrew
|
994e31032f
|
Fix data race in freeing control block
|
2025-09-11 11:32:59 -04:00 |
|
andrew
|
0f179eed88
|
Switch to two separate atomic counters
It's faster and still correct. I was confused remembering something
about atomic shared pointer ideas before.
|
2025-09-11 10:53:25 -04:00 |
|
andrew
|
b9106a0d3c
|
Add test_reference.cpp
|
2025-09-10 22:05:31 -04:00 |
|
andrew
|
6aaca4c171
|
Finish reference.hpp
|
2025-09-10 21:58:08 -04:00 |
|
andrew
|
7c4d928807
|
Start on Ref/WeakRef
|
2025-09-10 20:04:32 -04:00 |
|
andrew
|
5d289ddd42
|
Add metric for write EAGAIN failures
|
2025-09-10 16:48:27 -04:00 |
|
andrew
|
962a010724
|
Simplify process_connection_writes condition
And comment explaining that we there's something more precise but more
complex available.
|
2025-09-10 16:45:04 -04:00 |
|
andrew
|
f56ed2bfbe
|
Rename ArenaAllocator -> Arena
|
2025-09-05 17:57:04 -04:00 |
|
andrew
|
46fe51c0bb
|
Make config.toml comments more descriptive and accessible
|
2025-09-05 16:36:50 -04:00 |
|
andrew
|
b93cc2072a
|
Remove -Wno-vla-cxx-extension from .clangd
|
2025-09-05 16:29:12 -04:00 |
|
andrew
|
0357a41dd8
|
Implement spend_cpu_cycles in assembly
The compiler was unrolling it previously, so we're doing assembly now for consistency.
|
2025-09-05 15:16:49 -04:00 |
|
andrew
|
ffe7ab0a3e
|
Update default in config.toml
|
2025-09-05 13:06:10 -04:00 |
|
andrew
|
ed3cf25936
|
Update stale documentation
|
2025-09-05 13:04:34 -04:00 |
|
andrew
|
e67e4aee17
|
Update /ok to serve dual health check/benchmarking role
|
2025-09-05 12:39:10 -04:00 |
|
andrew
|
761eaa552b
|
Add -Wno-deprecated-literal-operator for clang
|
2025-09-05 11:39:04 -04:00 |
|
andrew
|
e846bc49f6
|
Set rapidjson docs + examples to off
|
2025-09-05 11:29:08 -04:00 |
|
andrew
|
72481be46d
|
Consolidate into two static libs - one with assertions and one without
|
2025-09-05 11:22:04 -04:00 |
|
andrew
|
d04705624a
|
Handle percent encoding
|
2025-09-04 20:47:58 -04:00 |
|
andrew
|
2278694f4f
|
Separate out api url parser
|
2025-09-04 16:39:19 -04:00 |
|
andrew
|
55069c0c79
|
Add counters for /v1/{commit,status,version}
|
2025-09-04 15:49:54 -04:00 |
|
andrew
|
96aae52853
|
Basic implementation of /commit, /version, and /status
No precondition checking, persistence, or log scanning yet.
|
2025-09-04 15:40:17 -04:00 |
|
andrew
|
8b6736127a
|
Add commit pipeline design
|
2025-09-04 13:40:03 -04:00 |
|
andrew
|
9272048108
|
Outline commit pipeline
|
2025-09-03 23:43:03 -04:00 |
|
andrew
|
b2ffe3bfab
|
Refactor to use format for http responses
|
2025-09-03 22:45:59 -04:00 |
|
andrew
|
978861c430
|
Parse commit request
|
2025-09-03 21:53:04 -04:00 |
|
andrew
|
46edb7cd26
|
Allow listening on multiple interfaces
|
2025-09-03 16:09:16 -04:00 |
|
andrew
|
b8eb00e313
|
Wrap up metrics library
|
2025-09-03 15:43:26 -04:00 |
|
andrew
|
18b0a642bf
|
Round out process collector
|
2025-09-03 15:34:55 -04:00 |
|
andrew
|
f0916d8269
|
Add process collector
|
2025-09-03 14:38:10 -04:00 |
|
andrew
|
2fa5b3e960
|
Instrument connections
|
2025-09-03 13:57:23 -04:00 |
|
andrew
|
6d480487da
|
Use temp_arena for formatting instead of cached plan arena
|
2025-09-03 13:23:58 -04:00 |
|
andrew
|
54d06c654f
|
Move PerThreadState to per-thread arenas
|
2025-09-03 13:16:35 -04:00 |
|
andrew
|
f067f4e85b
|
Add weaseldb_metrics_memory_bytes
|
2025-09-03 13:06:34 -04:00 |
|
andrew
|
0ac4c31a53
|
Measure per metric in render scale bench
|
2025-09-03 12:51:49 -04:00 |
|