Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
77 changes: 77 additions & 0 deletions blog/2025-02-05-chronolog-2.0.0/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
---
title: "ChronoLog 2.0.0 Release"
authors: grc
tags:
- ChronoLog
- Release
---

:::info
**We are thrilled to announce [ChronoLog 2.0.0 Release](https://github.com/grc-iit/ChronoLog/releases/tag/2025.02.03)!**
This release introduces the first end-to-end bidirectional version of the ChronoLog framework, completing the data service with new playback capabilities and enhanced usability.
:::

## About ChronoLog

ChronoLog is a scalable, high-performance distributed shared log store designed to handle the
ever-growing volume, velocity, and variety of modern activity data. Built for applications
ranging from edge computing to high-performance computing (HPC) systems, ChronoLog offers
multi-tiered storage, high concurrency, and synchronization-free ordering using physical time.
The system supports scientific applications, IoT, financial services, and system telemetry across
diverse computing environments. Learn more at [chronolog.dev](https://chronolog.dev).

Building on our [1.0.0 release in June 2024](/blog/2024/06/06/chronolog-1.0.0), ChronoLog 2.0.0 represents a major milestone by completing the bidirectional data flow with new playback capabilities and comprehensive improvements across the entire system.

## ChronoLog Release 2.0.0

### New Core Features

ChronoLog 2.0.0 introduces new functional components completing bidirectional end-to-end ChronoLog data service:

- **ChronoPlayer Component**: The new addition manages the extraction pipeline, enabling efficient data retrieval and playback. It ensures seamless user-level access to stored data, significantly enhancing usability.
- **ChronoLog Client Playback API**: Introduction of story playback API in ChronoLog Client provides precise control over data playback for use cases ranging from analytics to real-time applications.
- **HDF5-Based Data Store**: ChronoLog integration with the HDF5-based data store ensures efficient data retrieval and compatibility with existing datasets.

### Improvements

- **Deployment Tools**: Project deployment scripts have been revamped for simplicity and enhanced functionality, now supporting end-to-end deployment. Additionally, configurability has been expanded to support non-uniform RecordingGroup compositions.
- **Test Suite Enhancements**: The testing suite now includes Python-based tests for improved industry alignment and nuanced multithreaded tests for the ChronoLog Client.
- **Performance Benchmark Suite**: A new suite provides insights into ChronoLog's capabilities and establishes a baseline for measuring progress in future releases.
- **Build System Refinements**: The CMake structure has been streamlined for a more efficient build process.
- **ChronoGrapher Improvements**: Statistic messages have been added to enhance the ChronoGrapher component.
- **Monitoring System Updates**: Logging consistency has been improved across the system.

### Documentation

- **Architecture Overview**: Updated with ChronoPlayer component details.
- **Client API**: Expanded to include playback query APIs.
- **Client Documentation**: Refined for clarity, including simple code examples for different ChronoLog Clients.
- **Deployment Tools**: Enhanced documentation reflects updates in usability and component additions.
- **Configuration Guide**: Comprehensive documentation now covers the structure and setup of configuration files.

### Tutorials

In ChronoLog 2.0.0 we introduce ChronoLog Tutorials to lower the entry barrier for new users and administrators of the system:

- **Getting Started**: A guide on how to download and access the ChronoLog system.
- **How to Deploy ChronoLog**: A guide that describes the process from downloading the system to how to make it work.
- **How to Run ChronoLog Tests**: A guide to allow users to run ChronoLog tests.

### Bug Fixes

- **RPC Implementation**: Redundant RPC implementations were removed from the configuration file.
- **AcquireStory Return Value**: Resolved an issue with incorrect return values during AcquireStory operations.
- **Client "DestroyStory" Bug**: Fixed an error where the "DestroyStory" API call inadvertently triggered "DestroyChronicle."
- **StoryChunk Extraction Failures**: Addressed an issue where StoryChunks were not properly drained, causing system failures.
- **Keeper Segmentation Fault**: Fixed a segmentation fault occurring on the Keeper component.

## Development Team

ChronoLog is being developed by a team of researchers and engineers at Illinois Tech and the
University of Chicago.

## Acknowledgements

We gratefully acknowledge the support of the National Science Foundation (NSF) for funding
this project. We also thank our collaborators from various scientific and engineering domains for
their valuable insights and feedback.
70 changes: 70 additions & 0 deletions blog/2025-05-30-chronolog-2.1.0/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
---
title: "ChronoLog 2.1.0 Release"
authors: grc
tags:
- ChronoLog
- Release
---

:::info
**We are excited to announce [ChronoLog 2.1.0 Release](https://github.com/grc-iit/ChronoLog/releases/tag/2025.05.30)!**
This release introduces flexible client modes, Docker containerization, and significant improvements to deployment and client architecture.
:::

## About ChronoLog

ChronoLog is a scalable, high-performance distributed shared log store designed to handle the
ever-growing volume, velocity, and variety of modern activity data. Built for applications
ranging from edge computing to high-performance computing (HPC) systems, ChronoLog offers
multi-tiered storage, high concurrency, and synchronization-free ordering using physical time.
The system supports scientific applications, IoT, financial services, and system telemetry across
diverse computing environments. Learn more at [chronolog.dev](https://chronolog.dev).

Building on our [2.0.0 release in February 2025](/blog/2025/02/05/chronolog-2.0.0), ChronoLog 2.1.0 introduces flexible client modes, containerized deployment, and enhanced developer experience with improved error handling and testing capabilities.

## ChronoLog Release 2.1.0

### New Features

- **Flexible Client Modes**: ChronoLog Client can now be instantiated in lightweight `WRITER_MODE` for applications only producing logging events, or in `READER_MODE` for applications consuming recorded log event data. This provides better resource optimization and clearer separation of concerns.
- **Docker Containerization**: ChronoLog deployment is now available using Docker containers, significantly simplifying deployment and improving portability across different environments.
- **Enhanced Client Architecture**: Complete refactoring of `ChronoLogClientImpl` with improved separation between writer and reader functionality, providing better performance and maintainability.

### Deployment & Infrastructure Improvements

- **Docker Compose Support**: Added support for controlling Docker Compose scale through command line arguments, enabling flexible scaling of ChronoLog services.
- **ChronoPlayer Integration**: ChronoPlayer has been added to distributed deployment scripts, completing the end-to-end deployment process.
- **Deployment Script Enhancements**: Comprehensive improvements to deployment scripts including better error handling, path normalization, and compatibility with different shell environments (bash/zsh).
- **HDF5 Archive Improvements**: Added SWMR (Single Writer Multiple Reader) access flag when opening HDF5 archive files for better concurrent access support.

### Client & API Enhancements

- **Error Code Standardization**: Refactored client and server error codes into enums with string conversion capabilities, improving debugging and error reporting.
- **Dependency Cleanup**: Removed ChronoLog Client dependency on `ConfigurationManager.h` and created separate client error codes header file for better modularity.
- **Spack Package Management**: Created a dedicated `spack.yaml` for the client, improving package management and dependency resolution.
- **Interactive Mode Improvements**: Enhanced client admin interactive mode to handle strings containing spaces and special characters without assertion failures.

### Performance & Memory Management

- **Memory Growth Fixes**: Addressed unreasonable memory growth in ChronoGrapher through improved chunk merging logic and better memory management.
- **Data Integrity**: Fixed incorrect data writing in `StoryChunkWriter` and improved data pointer handling to ensure data integrity.
- **Service Registration**: Refactored ChronoProcess ServiceIds and registration messages for better service management and identification.

### Testing & Quality Assurance

- **Client Integration Tests**: Added comprehensive client integration tests including hybrid writer/reader client tests and story reader functionality.
- **CMake Standardization**: Standardized CMake source paths and removed current directory dependencies for better build consistency.
- **Documentation Fixes**: Resolved landing page image linking issues and improved documentation accessibility.

For detailed information about all changes, see the [complete changelog](https://github.com/grc-iit/ChronoLog/compare/2.0.0...2025.05.30).

## Development Team

ChronoLog is being developed by a team of researchers and engineers at Illinois Tech and the
University of Chicago.

## Acknowledgements

We gratefully acknowledge the support of the National Science Foundation (NSF) for funding
this project. We also thank our collaborators from various scientific and engineering domains for
their valuable insights and feedback.
72 changes: 72 additions & 0 deletions blog/2025-08-01-chronolog-2.2.0/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
---
title: "ChronoLog 2.2.0 Release"
authors: grc
tags:
- ChronoLog
- Release
---

:::info
**We are excited to announce [ChronoLog 2.2.0 Release](https://github.com/grc-iit/ChronoLog/releases/tag/2025.08.01)!**
This release introduces enhanced data processing capabilities, improved client tools, comprehensive testing, and better developer experience with CI/CD integration.
:::

## About ChronoLog

ChronoLog is a scalable, high-performance distributed shared log store designed to handle the
ever-growing volume, velocity, and variety of modern activity data. Built for applications
ranging from edge computing to high-performance computing (HPC) systems, ChronoLog offers
multi-tiered storage, high concurrency, and synchronization-free ordering using physical time.
The system supports scientific applications, IoT, financial services, and system telemetry across
diverse computing environments. Learn more at [chronolog.dev](https://chronolog.dev).

Building on our [2.1.0 release in May 2025](/blog/2025/05/30/chronolog-2.1.0), ChronoLog 2.2.0 focuses on enhanced data processing capabilities, improved client tools, and comprehensive testing infrastructure to ensure system reliability and developer productivity.

## ChronoLog Release 2.2.0

### Enhanced Data Processing

- **Dynamic Access Window**: Implemented configurable data store access windows that adapt to workload patterns, improving system responsiveness and resource utilization.
- **Consistent Pipeline Boundaries**: Enhanced story pipeline processing with consistent timeline handling across ChronoKeeper and ChronoGrapher components, ensuring data integrity and proper event ordering.
- **Delayed Story Chunk Extraction**: Added extraction logic for delayed partial story chunks in ChronoGrapher, enabling proper handling of late-arriving events and ensuring no data loss.
- **Configurable Data Store Parameters**: Made data store parameters configurable, allowing fine-tuning of system behavior for different use cases and environments.

### Client Tools & Examples

- **JSON Configuration Support**: Added comprehensive JSON configuration support to ChronoLog Client tools, simplifying setup and configuration management.
- **Python Bindings**: Extended Python bindings to include replay story API, enabling Python applications to leverage ChronoLog's playback capabilities.
- **Enhanced Client Admin**: Added read mode to client_admin tool with improved user interface and better interaction guidance for both reading and writing operations.
- **Distributed Telemetry Client**: New distributed telemetry client application for monitoring and collecting system metrics across distributed environments.
- **Simple Read/Write Examples**: Added basic client examples demonstrating simple read/write operations with clear documentation and error handling.

### Testing & Quality Assurance

- **CI/CD Integration**: Implemented comprehensive CI workflow for build, install, and deployment validation on pull requests, ensuring code quality and system reliability.
- **Story Chunk Unit Tests**: Added comprehensive unit tests for StoryChunk functionality, including thread safety tests and edge case coverage.
- **Pre-commit Formatting**: Added pre-commit formatting script to ensure consistent code style across the project.
- **Player Stability**: Fixed Player component crashes when handling single archive files, improving system stability.

### Deployment & Infrastructure

- **Docker Deployment Fixes**: Resolved issues with dynamic Docker deployment failing on the last container, improving deployment reliability.
- **Recording Group Configuration**: Enhanced Player component to properly set recording group IDs, ensuring correct data routing and processing.
- **Archive File Handling**: Improved archive file naming schema and auxiliary file handling for better data organization and retrieval.

### Developer Experience

- **Code Quality**: Enhanced code formatting and style consistency across the project.
- **Documentation**: Improved client examples with better comments, error handling, and readable return codes.
- **Error Handling**: Enhanced error reporting and debugging capabilities throughout the system.

For detailed information about all changes, see the [complete changelog](https://github.com/grc-iit/ChronoLog/compare/2025.06.16...2025.08.01).

## Development Team

ChronoLog is being developed by a team of researchers and engineers at Illinois Tech and the
University of Chicago.

## Acknowledgements

We gratefully acknowledge the support of the National Science Foundation (NSF) for funding
this project. We also thank our collaborators from various scientific and engineering domains for
their valuable insights and feedback.
1 change: 1 addition & 0 deletions docusaurus.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ const config = {
},
blog: {
showReadingTime: true,
blogSidebarCount: 'ALL',
// Please change this to your repo.
// Remove this to remove the "edit this page" links.
// editUrl:
Expand Down
Loading
Loading