Skip to content

Commit fb5db46

Browse files
committed
slight changes to doc
1 parent 8097790 commit fb5db46

File tree

1 file changed

+13
-14
lines changed

1 file changed

+13
-14
lines changed

docs/MIXED_WORKLOAD_IMPLEMENTATION_PLAN.md

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -43,13 +43,11 @@ Flow: Search + Concurrent Inserts (reuses existing data)
4343

4444
**File 1: `engine/base_client/search.py`**
4545
```python
46-
def process_chunk(chunk, search_one, insert_one, insert_fraction=0.1, test_set=None):
46+
def process_chunk(chunk, search_one, insert_one, insert_fraction=0.1):
4747
results = []
4848
for i, query in enumerate(chunk):
4949
if random.random() < insert_fraction:
50-
# Insert: use a vector from test_set
51-
vector_id, vector, metadata = test_set[i % len(test_set)]
52-
result = insert_one(vector_id, vector, metadata)
50+
result = insert_one(query)
5351
else:
5452
# Search
5553
result = search_one(query)
@@ -59,35 +57,36 @@ def process_chunk(chunk, search_one, insert_one, insert_fraction=0.1, test_set=N
5957

6058
**File 2: `worker_function`**
6159
```python
62-
def worker_function(self, distance, search_one, insert_one, chunk, result_queue, insert_fraction=0.1, test_set=None):
60+
def worker_function(self, distance, search_one, insert_one, chunk, result_queue, insert_fraction=0.1):
6361
self.init_client(self.host, distance, self.connection_params, self.search_params)
6462
self.setup_search()
6563
start_time = time.perf_counter()
66-
results = process_chunk(chunk, search_one, insert_one, insert_fraction, test_set)
64+
results = process_chunk(chunk, search_one, insert_one, insert_fraction)
6765
result_queue.put((start_time, results))
6866
```
6967

7068
**File 3: `BaseSearcher.search_all()`**
71-
- When creating worker processes, pass `search_one`, `insert_one`, `insert_fraction`, and `test_set` as arguments to each worker.
69+
- When creating worker processes, pass `search_one`, `insert_one`, and `insert_fraction` as arguments to each worker.
7270

7371
**File 4: Engine-specific `insert_one` implementations** (~5 lines each)
7472
```python
7573
# Example: engine/clients/redis/search.py
7674
@classmethod
77-
def insert_one(cls, vector_id: int, vector: List[float], metadata: Optional[dict] = None):
78-
"""Redis-specific single vector insert"""
75+
def insert_one(cls, query):
76+
"""Redis-specific single vector insert from a Query object"""
77+
# Extract vector_id, vector, metadata from query as needed
7978
cls.client.hset(
80-
str(vector_id),
81-
mapping={"vector": np.array(vector).astype(np.float32).tobytes(), **(metadata or {})}
79+
str(query.id),
80+
mapping={"vector": query.vector, **(getattr(query, 'metadata', {}) or {})}
8281
)
8382

8483
# Example: engine/clients/qdrant/search.py
8584
@classmethod
86-
def insert_one(cls, vector_id: int, vector: List[float], metadata: Optional[dict] = None):
87-
"""Qdrant-specific single vector insert"""
85+
def insert_one(cls, query):
86+
"""Qdrant-specific single vector insert from a Query object"""
8887
cls.client.upsert(
8988
collection_name=QDRANT_COLLECTION_NAME,
90-
points=[{"id": vector_id, "vector": vector, "payload": metadata or {}}],
89+
points=[{"id": query.id, "vector": query.vector, "payload": getattr(query, 'metadata', {}) or {}}],
9190
wait=False,
9291
)
9392
```

0 commit comments

Comments
 (0)