summaryrefslogtreecommitdiff
path: root/internal/server/handlers/serverhandler.go
AgeCommit message (Collapse)Author
2026-03-20Optimize mapr parsing and stabilize aggregate shutdownPaul Buetow
2026-03-13Fix mapreduce integration drain racePaul Buetow
2026-03-13task 682e6ae9: filter stale generation outputPaul Buetow
2026-03-13task 398: implement session preemptionPaul Buetow
2026-03-13task 400: add server session command scaffoldingPaul Buetow
2026-03-08task: scope auth key dependencies to server instances (task 375)Paul Buetow
2026-03-05Improve lint/vet reliability and refactor client runtime/bootstrapPaul Buetow
2026-03-03Add auth-key fast reconnect integration coveragePaul Buetow
2026-03-03feat(server): add AUTHKEY command handlingPaul Buetow
2026-03-02config: make server timing and buffer knobs configurablePaul Buetow
2026-03-02refactor(handlers): use command registry in server handlerPaul Buetow
2026-03-02Extract protocol and turbo responsibilities from baseHandler (task 327)Paul Buetow
2026-03-02Refactor server path to use injected runtime config (task 329)Paul Buetow
2026-01-29refactor: improve Go best practices compliancePaul Buetow
- Add explicit interface satisfaction checks (var _ Interface = (*Type)(nil)) for compile-time verification: - TurboWriter implementations (DirectTurboWriter, TurboChannelWriter) - Processor implementations (GrepLineProcessor, ChannellessLineProcessor) - Parser implementations (genericParser, csvParser, genericKVParser, custom parsers, mimecastParser) - Logger implementations (file, stdout) - Handler implementations (ServerHandler, ClientHandler) - Connector implementations (Serverless, ServerConnection) - SSH callback implementations (KnownHostsCallback) - Improve error handling with context wrapping (%w): - SSH operations: GeneratePrivateRSAKey, Agent - Query parsing: Query.parse - SSH client connections: dial, session, handle methods - Fix receiver consistency: - Convert Query.String() from value to pointer receiver - Convert Outfile.String() from value to pointer receiver - Convert all KnownHostsCallback methods to pointer receivers - Convert mapCommand.Start() to pointer receiver - Reorganize file structure for better clarity: - internal/io/dlog/dlog.go: Move type definition before public functions - internal/mapr/token.go: Reorganize helper functions after public ones - Add documentation comments: - Query.String() method - Outfile.String() method - Regex.String() method - Improve config variable documentation All unit tests and integration tests pass. Amp-Thread-ID: https://ampcode.com/threads/T-019c0b08-0eeb-705d-a1f7-31bb764b659a Co-authored-by: Amp <amp@ampcode.com>
2025-07-03fix: implement thread-safe turbo mode for MapReduce operationsPaul Buetow
- Add SafeAggregateSet wrapper with mutex protection for concurrent access - Implement TurboAggregate for direct line processing without channels - Fix race conditions in turbo mode MapReduce aggregation - Add proper synchronization for batch processing completion - Update shutdown sequence to ensure all data is serialized - Add integration test configuration for high-concurrency scenarios The turbo mode now correctly handles MapReduce queries with significant performance improvements while maintaining data integrity and preventing race conditions during concurrent aggregation. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-02feat: add server info message for literal grep modePaul Buetow
- Add IsLiteral() and Pattern() methods to regex.Regex struct - Log info message when grep uses optimized literal string matching - Fix bug where grep commands were processed as cat commands - Add comprehensive integration tests to verify literal mode messages This gives users visibility when the performance-optimized literal string matching is being used instead of regex matching. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-30feat: track pending files to prevent premature server shutdownPaul Buetow
- Add pendingFiles counter to ServerHandler to track files waiting for limiter slots - Only shutdown when both activeCommands and pendingFiles are zero - Increment pendingFiles when starting to process a batch of files - Decrement as each file completes processing - Add comprehensive logging for debugging shutdown issues - Flush turbo data before signaling EOF to ensure all data is transmitted This fixes the issue where the server would shutdown while files were still queued in the catLimiter, causing incomplete processing when MaxConcurrentCats is lower than the number of files being processed. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
2022-02-15minor fix, add missing newlines to server messagesPaul Buetow
2021-12-05buffer line.Line for performancePaul Buetow
2021-10-24Fix DCat color test.Paul Buetow
2021-10-14Merging grep context from masterPaul Buetow
2021-10-10add another dmap test - reading 100 source files at oncePaul Buetow
fix a data race when reading multiple files on one server from the same session at once
2021-10-10vetting and linting and some code restylingPaul Buetow
2021-10-06move health check to separate client binaryPaul Buetow
2021-10-06enable faster shutdown - useful for dgrep/dmap and dcat commandsPaul Buetow
2021-10-05more on thisPaul Buetow
2021-10-05more on thisPaul Buetow
2021-10-02reduce logging in serverless modePaul Buetow
2021-10-02move args to config packagePaul Buetow
logger package rewrite as dlog
2021-10-02fix auto reconnectPaul Buetow
2021-10-02add spartan modePaul Buetow
2021-10-02bugfix: dmap skipped the last couple of mapreduce linesPaul Buetow
2021-10-02mapreduce tables are in colors now tooPaul Buetow
2021-09-06Print out client/server update notice even from dtail server 4 to dtailPaul Buetow
client 3.
2021-08-281. Major performance gain by not checking for file truncation aftterPaul Buetow
each bytes read. 2. Introduce field separator to the protocol package.
2021-08-28make use of more buffers on server sidePaul Buetow
2021-08-28use a byte.Buffer in the file readerPaul Buetow
2021-08-22introduces the protocol packagePaul Buetow
2021-08-21read files bytewise for more control of whats happening - change transport ↵Paul Buetow
protocol for more control over newlines
2020-12-27only try to read a file once in cat and grep mode but 10 times in tail modePaul Buetow
2020-12-26initial quiet switchPaul Buetow
2020-12-26rename spartan to quietPaul Buetow
2020-12-26initial spartan mode supportPaul Buetow
2020-12-26code cleanup and minor refactoringsPaul Buetow
2020-12-08merge developPaul Buetow
2020-09-10printing client stats every other second only if the connection count has ↵Paul Buetow
changed or when SIGUSR1 or SIGINFO recieved
2020-09-04add more unit tests and deserializer/serializer to regexPaul Buetow
2020-08-13bump up version to 3.0.0. can run continuous background mapreduce queries, ↵v3.0.0Paul Buetow
useful for log file monitorig for example. breaking protocol change which allows to mapreduce aggreate messages containing the default field separator |. add of more unit tests. add logformat mapreduce query keyword. add set mapreduce clause support and support to evaluate built-in functions such as md5sum() and maskdigits().
2020-03-04can tail probe with a given timeout and then write a mapreduce resultPaul Buetow
2020-02-29Merge branch 'develop' of gitlab.devuk.mimecast.lan:Storage/dtail into developPaul Buetow