Skip to content

Feat/add micromerge#19

Merged
ArtroxGabriel merged 17 commits into
mainfrom
feat/add-micromerge
Jun 13, 2025
Merged

Feat/add micromerge#19
ArtroxGabriel merged 17 commits into
mainfrom
feat/add-micromerge

Conversation

@talDoFlemis

Copy link
Copy Markdown
Collaborator

No description provided.

talDoFlemis and others added 16 commits June 13, 2025 06:51
- Add XML documentation to IFileManager interface methods for clarity.
- Refactor SequentialHeapFileManager to use consistent fileName keys for
  in-memory dictionaries and disk operations.
- Improve file existence checks and error handling in CreateFileAsync and
  DeleteFileAsync.
- Implement OpenFileAsync to load metadata and heap files from disk if not
  present in memory.
- Make UnmarshalHeapMetadataFile asynchronous and update usages.
- Ensure proper async disposal of file streams in CloseFileAsync.
- Refactor helper methods for file creation, opening, and metadata updates
  to use consistent file paths and update in-memory state.
- Set default value for HeapFileMetadata.FilePath.
- Refactored ExternalMergeSort and related methods to clarify memory
  constraints and buffer management.
- Changed ExternalMergeSort to private and improved null checks.
- Improved merge logic to use a buffer-constrained k-way merge with
  explicit run iterators and output buffering.
- Simplified and clarified I/O operation counting.
Add detailed technical documentation (MicroMerge/README.md) describing
architecture, memory constraints, algorithm phases, and extension
guidelines for the MicroMerge sort-merge join implementation. Also add a
user-facing README.md at the project root with installation instructions,
usage examples, data schema, performance metrics, and contribution
guidelines. Both documents emphasize the strict 4-page memory constraint
and provide code snippets and troubleshooting tips.
Refactored Program.cs to robustly determine the base path for data and
output directories, supporting execution from various working directories.
Added informative console output for data and output locations. Updated
output file writing to use the resolved output directory. Removed
SubMerge project from solution and deleted user settings file.
Also updated output CSV to reflect new join results.
@ArtroxGabriel ArtroxGabriel merged commit ab1391a into main Jun 13, 2025
2 checks passed
@github-actions

Copy link
Copy Markdown

🎉 This PR is included in version 1.2.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants