Commit graph

34 commits

Author SHA1 Message Date
BukeLy
4742fc8efa test: Add comprehensive workspace isolation test suite for PR #2366
Why this change is needed:
PR #2366 introduces critical workspace isolation functionality to resolve
multi-instance concurrency issues, but lacks comprehensive automated tests
to validate the implementation. Without proper test coverage, we cannot
ensure the feature works correctly across all scenarios mentioned in the PR.

What this test suite covers:
1. Pipeline Status Isolation: Verifies different workspaces maintain
   independent pipeline status without interference
2. Lock Mechanism: Validates the new keyed lock system works correctly
   - Different workspaces can acquire locks in parallel
   - Same workspace locks serialize properly
   - No deadlocks occur
3. Backward Compatibility: Ensures legacy code without workspace parameters
   continues to work using default workspace
4. Multi-Workspace Concurrency: Confirms multiple LightRAG instances with
   different workspaces can run concurrently without data interference

Testing approach:
- All tests are automated and deterministic
- Uses timing assertions to verify parallel vs serial lock behavior
- Validates data isolation through direct namespace data inspection
- Comprehensive error handling and detailed test output

Test results:
All 9 test cases passed successfully, confirming the workspace isolation
feature is working correctly across all key scenarios.

Impact:
Provides confidence that PR #2366's workspace isolation feature is
production-ready and won't introduce regressions.
2025-11-17 12:54:33 +08:00
yangdx
926960e957 Refactor workspace handling to use default workspace and namespace locks
- Remove DB-specific workspace configs
- Add default workspace auto-setting
- Replace global locks with namespace locks
- Simplify pipeline status management
- Remove redundant graph DB locking
2025-11-17 12:54:33 +08:00
yangdx
a08bc72635 Fix empty dict handling after JSON sanitization
• Replace truthy checks with `is not None`
• Handle empty dict edge case properly
• Prevent data reload failures
• Add comprehensive test coverage
• Fix JsonKVStorage and DocStatusStorage
2025-11-17 12:54:32 +08:00
yangdx
cca0800ed4 Fix migration to reload sanitized data and prevent memory corruption
• Reload cleaned data after sanitization
• Update shared memory with clean data
• Add specific surrogate char tests
• Test migration sanitization flow
• Prevent dirty data in memory
2025-11-17 12:54:32 +08:00
yangdx
f289cf6225 Optimize JSON write with fast/slow path to reduce memory usage
- Fast path for clean data (no sanitization)
- Slow path sanitizes during encoding
- Reload shared memory after sanitization
- Custom encoder avoids deep copies
- Comprehensive test coverage
2025-11-17 12:54:32 +08:00
yangdx
36501b82f5 Initialize shared storage for all graph storage types in graph unit test 2025-11-06 19:24:12 +08:00
yangdx
0c47d1a2d1 Fix linting 2025-11-06 19:12:40 +08:00
yangdx
f3b2ba8152 Translate graph storage test from Chinese to English 2025-11-06 19:11:35 +08:00
yangdx
6b0f9795be Add workspace parameter and remove chunk-based query unit tests
- Add workspace param to test storage init
- Remove get_nodes_by_chunk_ids tests
- Remove get_edges_by_chunk_ids tests
- Clean up batch operations test function
2025-11-06 18:18:01 +08:00
yangdx
b3ed264707 Refactor PostgreSQL retry config to use centralized configuration
• Move retry config to ClientManager
• Remove env var parsing from PostgreSQLDB
• Add config params to test setup
2025-10-10 03:44:13 +08:00
yangdx
bd535e3e7a Add PostgreSQL connection retry configuration options
- Add retry environment variables
- Fix asyncpg import in retry tests
2025-10-10 03:06:21 +08:00
yangdx
e758204ab2 Add PostgreSQL connection retry mechanism with comprehensive error handling
• Implement connection retry with backoff
• Add transient error detection
• Pool management with timeout guards
2025-10-10 03:06:01 +08:00
yangdx
6190fa8985 Fix linting 2025-10-06 04:57:11 +08:00
yangdx
91387628ff Add test script for aquery_data endpoint validation 2025-10-06 03:59:50 +08:00
yangdx
46187b2507 Fix conditional logic in streaming response parser of unit test
• Change elif to if for response field
• Change elif to if for error field
• Allow multiple data types per chunk
• Fix mutually exclusive conditions
• Enable concurrent field processing
2025-09-27 21:43:46 +08:00
yangdx
bcf30a4c8a Add comprehensive reference testing for query endpoints
- Add reference format validation
- Test streaming response parsing
- Check reference consistency
- Support references enable/disable
- Add --references-only test mode
2025-09-25 16:56:09 +08:00
yangdx
5eb4a4b799 feat: simplify citations, add reference merging, and restructure API response format 2025-09-24 14:30:10 +08:00
yangdx
c0d5abba6b Fix linting 2025-09-15 02:59:21 +08:00
yangdx
b1c8206346 Add aquery_data endpoint for structured retrieval without LLM generation
- Add QueryDataResponse model
- Implement /query/data endpoint
- Add aquery_data method to LightRAG
- Return entities, relationships, chunks
2025-09-15 02:15:14 +08:00
yangdx
a69194c079 Merge branch 'main' into add-Memgraph-graph-db 2025-07-04 23:53:07 +08:00
yangdx
f15e67c82c Update comments 2025-06-29 21:53:05 +08:00
DavIvek
c0a3638d01 fix memgraph_impl.py according to test_graph_storage.py 2025-06-27 15:35:20 +02:00
Ken Chen
a3865caaea Implement get_nodes_by_chunk_ids and get_edges_by_chunk_ids, 2025-06-25 22:17:17 +08:00
yangdx
e9dcac7caf Update graph db test 2025-04-17 23:09:01 +08:00
yangdx
09cca6dbe6 Update graph db unit test 2025-04-17 22:58:49 +08:00
yangdx
54f720cb27 Fix linting 2025-04-16 14:55:54 +08:00
yangdx
d370c0ae12 Fix graph unit test edge direction problem 2025-04-16 14:33:25 +08:00
yangdx
2a950f3ff9 Fix linting 2025-04-16 14:07:22 +08:00
yangdx
e6b2a035ea Update graph unit test 2025-04-16 14:06:05 +08:00
yangdx
1de74c9228 Fix linting 2025-04-15 12:34:04 +08:00
yangdx
262c93d8da Add batch query unit test for grap storage 2025-04-13 01:07:39 +08:00
yangdx
394a6063ba Fix linting 2025-04-04 03:41:05 +08:00
yangdx
99cce237df Add graph storage unit test 2025-04-04 03:40:46 +08:00
Yannick Stephan
55cd900e8e clean comments and unused libs 2025-02-18 21:12:06 +01:00