Skip to content

Latest commit

 

History

History
137 lines (109 loc) · 8.45 KB

File metadata and controls

137 lines (109 loc) · 8.45 KB

Changelog

All notable changes to SharpCoreDB will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[Unreleased]

Added

  • SIMD LoadUnsafe Optimization: All 16 columnar SIMD aggregate methods (SumInt32, SumInt64, SumDouble, MinInt32, MinInt64, MinDouble, MaxInt32, MaxInt64 — both single-threaded and parallel variants) now use Vector256.LoadUnsafe(ref data[i]) instead of Vector256.Create(data.AsSpan(i)). This eliminates per-iteration Span<T> construction and bounds checking overhead in SIMD hot loops, yielding tighter codegen on AVX2 hardware.
  • Auto-ROWID: Tables created without an explicit PRIMARY KEY now receive a hidden _rowid column (ULID type, auto-generated). Follows the SQLite rowid pattern — invisible in SELECT *, visible when explicitly queried via SELECT _rowid, .... See docs/features/AUTO_ROWID.md for full documentation.
  • Table.HasInternalRowId property (persisted in metadata) to track tables with auto-generated _rowid.
  • Table.SelectIncludingRowId() method for queries that explicitly request _rowid.
  • Database.GetColumnsIncludingHidden() for schema discovery including hidden columns (with IsHidden flag).
  • ColumnInfo.IsHidden property for metadata-driven schema tools.
  • PersistenceConstants.InternalRowIdColumnName constant ("_rowid").
  • 9 dedicated tests for the Auto-ROWID feature in AutoRowIdTests.cs.

Fixed

  • Unified IS NULL / IS NOT NULL behavior across runtime scan, join-helper, and compiled predicate paths.
  • Added parser support for scalar function expressions in SELECT columns (including COALESCE(...)) and parenthesized subquery expressions.
  • Improved EnhancedSqlParser malformed SQL detection by flagging unparsed trailing content via HasErrors.
  • Added LINQ translator handling for ExpressionType.Convert / ConvertChecked in enum-related comparison scenarios.
  • Improved German locale comparison behavior for ß/ss equivalence in locale-aware matching.
  • Fixed PAGE_BASED mixed-predicate filtering (column = value AND other_column <= value) by routing scan-time predicate evaluation through the shared SQL condition evaluator; added regression coverage for ORDER BY ... LIMIT retrieval.
  • ColumnStore SIMD consistency: Cleaned up inconsistent MaxInt64SIMDDirect implementation (previously used manual ref + Unsafe.Add pattern) to use the same Vector256.LoadUnsafe(ref data[i]) pattern as all other SIMD methods.

Changed

  • Updated project documentation and status reports to reflect current implementation and validation baseline.
  • Explicitly documented the remaining deferred single-file parameterized ExecuteCompiled disposal deadlock path.
  • Performance test hardening: ColumnStore_Average_10kRecords_Under2ms now runs 10 iterations and asserts the best (minimum) time, with an additional warmup call. This eliminates false failures caused by concurrent test execution, GC pauses, or OS scheduling jitter.

[1.7.0] - 2026-04-06

Added

  • SharpCoreDB.Graph.Advanced package for advanced graph analytics and GraphRAG workflows.
  • Functional package family: SharpCoreDB.Functional, SharpCoreDB.Functional.Dapper, SharpCoreDB.Functional.EntityFrameworkCore.
  • Expanded optional package guidance for SharpCoreDB.EventSourcing, SharpCoreDB.Projections, and SharpCoreDB.CQRS.

Changed

  • Ecosystem-wide package version synchronization on 1.7.0.
  • Documentation refresh across root/docs/src package README files with per-project features and v1.7.0 changes.
  • SIMD aggregate hot loops updated to Vector256.LoadUnsafe pattern in columnar paths.

Fixed

  • SQL lexer/parser reliability for parameterized compiled-query execution.
  • Metadata flush/reopen reliability paths with backward-compatible metadata format handling.

[1.6.0] - 2026-03-30

🎉 Major Achievement - Phase 12: GraphRAG Enhancement & Vector Search Integration COMPLETE

SharpCoreDB v1.6.0 introduces GraphRAG (Graph Retrieval-Augmented Generation) - a comprehensive graph analytics platform with semantic vector search integration for contextually rich search results.

✨ Added - Phase 12: GraphRAG Enhancement

GraphRAG Engine

  • Real Semantic Search: Vector search integration with HNSW indexing and SIMD acceleration (50-100x faster than SQLite)
  • Multi-Factor Ranking: Combines semantic similarity + topological importance + community context
  • Intelligent Caching: TTL-based result caching with automatic cleanup and memory monitoring
  • Production Performance: Sub-50ms end-to-end search with linear scaling
  • Enhanced Search Results: Rich context descriptions combining multiple ranking factors

Advanced Community Detection

  • Louvain Algorithm: O(n log n) modularity optimization - highest accuracy for community detection
  • Label Propagation: O(m) fast approximation - optimized for large graphs
  • Connected Components: O(n + m) simple grouping - perfect for basic clustering
  • SQL Integration: Direct SQL functions for community analysis (DETECT_COMMUNITIES_LOUVAIN, GET_COMMUNITY_MEMBERS)

Comprehensive Centrality Metrics

  • Degree Centrality: O(n) - Direct connection count measuring popularity
  • Betweenness Centrality: O(n × m) - Bridge detection for information flow analysis
  • Closeness Centrality: O(n²) - Distance efficiency measuring accessibility
  • Eigenvector Centrality: O(k × m) - Influence measurement for prestige analysis
  • SQL Functions: Direct database functions for all centrality calculations

Advanced Subgraph Queries

  • K-Core Decomposition: Find densely connected subgraphs and core structures
  • Triangle Detection: Identify mutual relationships and friend-of-friend patterns
  • Clique Detection: Find complete subgraphs and tightly knit groups
  • Subgraph Extraction: Extract neighborhoods, paths, and local structures

Performance & Optimization Suite

  • Performance Profiler: Comprehensive operation timing, memory tracking, and benchmarking
  • Memory Optimization: Batch processing, pooling, and efficient resource management
  • Scaling Strategies: Horizontal/vertical partitioning for massive graph processing
  • Health Monitoring: Cache statistics, performance alerts, and diagnostic tools

📚 Documentation & Examples

Comprehensive Documentation Suite

  • API Reference: Complete XML-documented API with complexity analysis
  • Basic Tutorial: 15-minute getting started guide for new users
  • Advanced Patterns: Multi-hop reasoning, custom ranking, production deployment
  • Performance Tuning: Optimization strategies, scaling guides, troubleshooting
  • Integration Guides: OpenAI, Cohere, and local embedding provider examples

Integration Examples

  • OpenAI Embeddings: Complete integration with cost tracking and rate limiting
  • Custom Providers: Extensible interface for any embedding service
  • Production Patterns: Error handling, caching, monitoring, and scaling

🧪 Testing & Quality Assurance

Comprehensive Test Suite

  • 20 integration tests covering all major functionality
  • 100% pass rate with extensive edge case coverage
  • Performance validation with automated benchmarking
  • Memory safety verified through comprehensive testing

📊 Performance Metrics

Benchmark Results

GraphRAG Search (k=10):     45ms  (222 ops/sec)
Vector Search (k=10):       12ms  (833 ops/sec)
Community Detection:        28ms  (178 ops/sec)
Enhanced Ranking:            5ms (2000 ops/sec)

Scaling Characteristics

  • Linear performance scaling with graph size for all operations
  • Memory efficient: < 10MB for 10K node graphs with intelligent caching
  • SIMD acceleration: Hardware-optimized vector operations
  • Batch processing: Handles large datasets without memory pressure

🧹 Documentation Migration & Cleanup

  • Removed obsolete phase-status, kickoff, completion, and superseded planning documents across docs/archived, docs/server, and docs/graphrag.
  • Consolidated documentation navigation to canonical entry points:
    • docs/INDEX.md
    • docs/README.md
    • docs/server/README.md
    • docs/scdb/README_INDEX.md
    • docs/graphrag/00_START_HERE.md
  • Updated root README.md documentation pointer to canonical index.
  • Cleaned stale references to removed files and validated documentation link consistency for removed targets.