Use snake_case for Connection etc methods

This commit is contained in:
2025-08-24 16:21:01 -04:00
parent e56cf41a01
commit ee721c7753
13 changed files with 74 additions and 57 deletions

21
todo.md
View File

@@ -26,8 +26,25 @@
- [ ] Implement thread-safe Prometheus metrics library and serve `GET /metrics` endpoint
- [ ] Implement gperf-based HTTP routing for efficient request dispatching
- [ ] Implement HTTP client for S3 interactions
- [ ] Design `HttpClient` class following WeaselDB patterns (factory creation, arena allocation, RAII)
- [ ] Implement connection pool with configurable limits (max connections, idle timeout)
- [ ] Support HTTP/1.1 with Keep-Alive for connection reuse
- [ ] Use epoll-based async I/O model similar to Server architecture
- [ ] Implement request pipeline: `HttpRequest` -> `HttpResponse` with arena-backed memory
- [ ] Support streaming request bodies (chunked encoding) for large S3 uploads
- [ ] Support streaming response bodies with callback-based data consumption
- [ ] Add timeout handling (connect timeout, read timeout, total request timeout)
- [ ] Implement retry logic with exponential backoff and jitter
- [ ] Support custom headers and authentication (AWS Signature V4 for S3)
- [ ] Single-threaded event-driven design for integration with persistence pipeline
- [ ] Integration with WeaselDB's ThreadPipeline for request batching
- [ ] Comprehensive error handling with detailed error codes and descriptions
- [ ] Support for HTTP redirects (3xx responses) with redirect limits
- [ ] SSL/TLS support using OpenSSL for HTTPS connections
- [ ] Request/response logging and metrics integration
- [ ] Memory-efficient design with zero-copy where possible
- [ ] Implement fake in-process S3 service using separate Server instance with S3 ConnectionHandler
- [ ] Use createLocalConnection to get fd for in-process communication
- [ ] Use create_local_connection to get fd for in-process communication
- [ ] Implement `ListObjectsV2` API for object enumeration
- [ ] Implement `PutObject` with chunked encoding support for streaming uploads
- [ ] Add `If-None-Match` conditional header handling for `PutObject`
@@ -52,7 +69,7 @@
- [ ] Test retention policy endpoints (`/v1/retention/*`)
- [ ] Test `/metrics` Prometheus endpoint
- [ ] Test error conditions and edge cases
- [ ] Test concurrent request handling and threading model
- [ ] Test single-threaded event-driven processing model
## ✅ Completed Tasks