MCPcopy Create free account
hub / github.com/KentBeck/BPlusTree3 / demo_real_world_migration

Function demo_real_world_migration

python/examples/migration_guide.py:223–267  ·  view source on GitHub ↗

Show a realistic migration example.

()

Source from the content-addressed store, hash-verified

221
222
223def demo_real_world_migration():
224 """Show a realistic migration example."""
225 print("\n=== Real-World Migration Example ===\n")
226
227 print("Scenario: User session management system")
228 print("\nBEFORE (dict-based):")
229 print("```python")
230 print("# Original implementation")
231 print("user_sessions = {}")
232 print("user_sessions[timestamp] = session_data")
233 print("# To get recent sessions, need to sort keys")
234 print("recent = sorted(user_sessions.items())[-10:]")
235 print("```")
236
237 print("\nAFTER (BPlusTree-based):")
238 print("```python")
239 print("# Migrated implementation")
240 print("user_sessions = BPlusTreeMap(capacity=64)")
241 print("user_sessions[timestamp] = session_data")
242 print("# Get recent sessions efficiently")
243 print("cutoff = time.time() - 3600 # Last hour")
244 print("recent = list(user_sessions.range(cutoff, None))")
245 print("```")
246
247 # Demonstrate the improvement
248 import time
249
250 user_sessions = BPlusTreeMap(capacity=64)
251 current_time = time.time()
252
253 # Add session data
254 for i in range(100):
255 timestamp = current_time - (100 - i) * 60 # Sessions over last 100 minutes
256 user_sessions[timestamp] = {
257 "user_id": f"user_{i % 20}",
258 "action": f"action_{i}",
259 "ip": f"192.168.1.{i % 255}",
260 }
261
262 # Get sessions from last 30 minutes
263 cutoff = current_time - 30 * 60
264 recent_sessions = list(user_sessions.range(cutoff, None))
265
266 print(f"\nResult: Found {len(recent_sessions)} recent sessions efficiently!")
267 print("This would require sorting the entire dict with the original approach.")
268
269
270def main():

Callers 1

mainFunction · 0.85

Calls 2

rangeMethod · 0.95
BPlusTreeMapClass · 0.90

Tested by

no test coverage detected