summaryrefslogtreecommitdiff
path: root/internal/mapr/server/aggregate.go
AgeCommit message (Collapse)Author
2026-03-20Optimize mapr parsing and stabilize aggregate shutdownPaul Buetow
2026-03-10Refactor server-side config singleton readsPaul Buetow
2026-03-08task: replace looped time.After with tickers (task 378)Paul Buetow
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: make turbo mode configurable via config filePaul Buetow
Add TurboModeEnable setting to server configuration with environment variable override. The DTAIL_TURBOBOOST_ENABLE environment variable takes precedence over config file setting. Turbo mode is automatically disabled for MapReduce operations to prevent data accuracy issues. - Add TurboModeEnable boolean to ServerConfig struct - Update config initializer to check environment variable for backward compatibility - Replace direct env var checks with config.Server.TurboModeEnable throughout codebase - Enable turbo mode in example config file (dtail.json.example) - Add property to JSON schema with descriptive documentation 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-29fix: improve aggregate channel switching for MapReduce operationsPaul Buetow
- Add mutex protection to prevent race conditions in nextLine() - Implement synchronous channel put-back in turbo mode when possible - Add timeout mechanism to prevent goroutine leaks - Increase NextLinesCh buffer size to 1000 for better concurrency handling - Document known limitation with turbo mode and high-concurrency MapReduce These changes ensure TestDMap3 passes consistently without turbo mode. With turbo mode, extreme concurrency (100+ files) may still have issues due to the fundamental mismatch between turbo mode's speed and the aggregate's channel rotation design. Workarounds are documented. Co-Authored-By: Claude <noreply@anthropic.com>
2023-09-07Refactor logformats so that they don't use reflection anymore.Paul Buetow
2021-12-10RefactorPaul Buetow
2021-12-05buffer line.Line for performancePaul Buetow
2021-10-29explicitly use dlog.Server for server packages and dlog.Clent for client ↵Paul Buetow
packages for logging
2021-10-24Fix DCat color test.Paul Buetow
2021-10-24Fix deadlock around aggregating data + server max concurrent file read limiterPaul Buetow
2021-10-10vetting and linting and some code restylingPaul Buetow
2021-10-10add dtail health check unit test.Paul Buetow
2021-10-02move args to config packagePaul Buetow
logger package rewrite as dlog
2021-10-02bugfix: dmap skipped the last couple of mapreduce linesPaul Buetow
2021-10-02mapreduce tables are in colors now tooPaul Buetow
2021-08-28use a byte.Buffer in the file readerPaul Buetow
2020-12-08merge developPaul 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-06-17initial log monitoring supportPaul Buetow
2020-03-07add support to run mapreduce queries on generic log lines, e.g. count all ↵Paul Buetow
log lines containing a certain string, such as "ERROR"
2020-03-04can tail probe with a given timeout and then write a mapreduce resultPaul Buetow
2020-02-07Introduce drun command, refactor code to use context packagePaul Bütow
2020-01-21Move commands to cmd/ and move internal dependencies to internal/Paul Bütow