{"type":"excalidraw","version":2,"source":"https://AwesomeSystemDesign.dev","elements":[{"angle":0,"strokeColor":"#6577aa","backgroundColor":"#eef1fc","fillStyle":"solid","strokeWidth":1.5,"strokeStyle":"solid","roughness":0.7,"opacity":100,"version":1,"versionNonce":1,"isDeleted":false,"groupIds":["step-1"],"frameId":null,"roundness":null,"boundElements":[{"type":"text","id":"shape-1"}],"updated":0,"link":null,"locked":false,"id":"shape-0","type":"rectangle","seed":41,"x":16,"y":16,"width":288,"height":93.2,"customData":{"revealStep":1}},{"angle":0,"strokeColor":"#394557","backgroundColor":"transparent","fillStyle":"solid","strokeWidth":1.5,"strokeStyle":"solid","roughness":0.7,"opacity":100,"version":1,"versionNonce":1,"isDeleted":false,"groupIds":["step-1"],"frameId":null,"roundness":null,"boundElements":null,"updated":0,"link":null,"locked":false,"id":"shape-1","type":"text","seed":114,"x":36,"y":34,"width":248,"height":57.2,"fontSize":22,"fontFamily":1,"text":"Parameter | Value |\nEffect | Tradeoff","originalText":"Parameter | Value |\nEffect | Tradeoff","textAlign":"left","verticalAlign":"middle","containerId":"shape-0","lineHeight":1.3,"autoResize":false,"customData":{"revealStep":1}},{"angle":0,"strokeColor":"#6577aa","backgroundColor":"#eef1fc","fillStyle":"solid","strokeWidth":1.5,"strokeStyle":"solid","roughness":0.7,"opacity":100,"version":1,"versionNonce":1,"isDeleted":false,"groupIds":["step-2"],"frameId":null,"roundness":null,"boundElements":[{"type":"text","id":"shape-3"}],"updated":0,"link":null,"locked":false,"id":"shape-2","type":"rectangle","seed":187,"x":16,"y":153.2,"width":288,"height":264.8,"customData":{"revealStep":2}},{"angle":0,"strokeColor":"#394557","backgroundColor":"transparent","fillStyle":"solid","strokeWidth":1.5,"strokeStyle":"solid","roughness":0.7,"opacity":100,"version":1,"versionNonce":1,"isDeleted":false,"groupIds":["step-2"],"frameId":null,"roundness":null,"boundElements":null,"updated":0,"link":null,"locked":false,"id":"shape-3","type":"text","seed":260,"x":36,"y":171.2,"width":248,"height":228.8,"fontSize":22,"fontFamily":1,"text":"M (connections) |\n16-64 | Higher: better\nrecall\nef_construction |\n128-512| Higher:\nbetter index\nef_search | 64-256 |\nHigher: better recall","originalText":"M (connections) |\n16-64 | Higher: better\nrecall\nef_construction |\n128-512| Higher:\nbetter index\nef_search | 64-256 |\nHigher: better recall","textAlign":"left","verticalAlign":"middle","containerId":"shape-2","lineHeight":1.3,"autoResize":false,"customData":{"revealStep":2}},{"angle":0,"strokeColor":"#6577aa","backgroundColor":"#eef1fc","fillStyle":"solid","strokeWidth":1.5,"strokeStyle":"solid","roughness":0.7,"opacity":100,"version":1,"versionNonce":1,"isDeleted":false,"groupIds":["step-3"],"frameId":null,"roundness":null,"boundElements":[{"type":"text","id":"shape-5"}],"updated":0,"link":null,"locked":false,"id":"shape-4","type":"rectangle","seed":333,"x":16,"y":462,"width":288,"height":465,"customData":{"revealStep":3}},{"angle":0,"strokeColor":"#394557","backgroundColor":"transparent","fillStyle":"solid","strokeWidth":1.5,"strokeStyle":"solid","roughness":0.7,"opacity":100,"version":1,"versionNonce":1,"isDeleted":false,"groupIds":["step-3"],"frameId":null,"roundness":null,"boundElements":null,"updated":0,"link":null,"locked":false,"id":"shape-5","type":"text","seed":406,"x":36,"y":480,"width":248,"height":429,"fontSize":22,"fontFamily":1,"text":"Pinecone | Managed,\nserverless, easy;\nexpensive\nWeaviate |\nOpen-source, hybrid\nsearch built-in\nQdrant | Open-source,\nfast, Rust-based\nMilvus | Open-source,\ndistributed,\nGPU-accelerated\npgvector |\nPostgreSQL\nextension, familiar\nops","originalText":"Pinecone | Managed,\nserverless, easy;\nexpensive\nWeaviate |\nOpen-source, hybrid\nsearch built-in\nQdrant | Open-source,\nfast, Rust-based\nMilvus | Open-source,\ndistributed,\nGPU-accelerated\npgvector |\nPostgreSQL\nextension, familiar\nops","textAlign":"left","verticalAlign":"middle","containerId":"shape-4","lineHeight":1.3,"autoResize":false,"customData":{"revealStep":3}},{"angle":0,"strokeColor":"#9180ac","backgroundColor":"#f4effb","fillStyle":"solid","strokeWidth":1.5,"strokeStyle":"solid","roughness":0.7,"opacity":100,"version":1,"versionNonce":1,"isDeleted":false,"groupIds":["step-4"],"frameId":null,"roundness":null,"boundElements":[{"type":"text","id":"shape-7"}],"updated":0,"link":null,"locked":false,"id":"shape-6","type":"rectangle","seed":479,"x":16,"y":971,"width":288,"height":1437.4,"customData":{"revealStep":4}},{"angle":0,"strokeColor":"#394557","backgroundColor":"transparent","fillStyle":"solid","strokeWidth":1.5,"strokeStyle":"solid","roughness":0.7,"opacity":100,"version":1,"versionNonce":1,"isDeleted":false,"groupIds":["step-4"],"frameId":null,"roundness":null,"boundElements":null,"updated":0,"link":null,"locked":false,"id":"shape-7","type":"text","seed":552,"x":36,"y":989,"width":248,"height":1401.4,"fontSize":22,"fontFamily":1,"text":"How HNSW Works (the\nindex behind vector\nsearch)\n\nLayer 2 (sparse): A\n-------- D\n\nLayer 1 (medium): A\n--- B -- D --- F\n\nLayer 0 (dense): A -\nB - C - D - E - F -\nG - H\n\nSearch for query Q\n(nearest to Q):\n1. Start at entry\npoint (random node in\ntop layer)\n2. Greedily navigate\nto nearest node in\nlayer 2\n3. Drop to layer 1,\ncontinue greedy\nsearch\n4. Drop to layer 0,\nrefine with more\nneighbors\n5. Return top-K\nnearest nodes\n\nComplexity: O(log N)\nsearch (vs O(N)\nbrute force)\nFor 5B vectors:\n~30-40 distance\ncomputations (not 5\nbillion!)\n\nTradeoffs:\n\nVector DB options:\n\nRecommendation:\nQdrant or Milvus for\nproduction scale\npgvector for < 10M\nvectors (simpler ops,\none DB)","originalText":"How HNSW Works (the\nindex behind vector\nsearch)\n\nLayer 2 (sparse): A\n-------- D\n\nLayer 1 (medium): A\n--- B -- D --- F\n\nLayer 0 (dense): A -\nB - C - D - E - F -\nG - H\n\nSearch for query Q\n(nearest to Q):\n1. Start at entry\npoint (random node in\ntop layer)\n2. Greedily navigate\nto nearest node in\nlayer 2\n3. Drop to layer 1,\ncontinue greedy\nsearch\n4. Drop to layer 0,\nrefine with more\nneighbors\n5. Return top-K\nnearest nodes\n\nComplexity: O(log N)\nsearch (vs O(N)\nbrute force)\nFor 5B vectors:\n~30-40 distance\ncomputations (not 5\nbillion!)\n\nTradeoffs:\n\nVector DB options:\n\nRecommendation:\nQdrant or Milvus for\nproduction scale\npgvector for < 10M\nvectors (simpler ops,\none DB)","textAlign":"left","verticalAlign":"middle","containerId":"shape-6","lineHeight":1.3,"autoResize":false,"customData":{"revealStep":4}}],"appState":{"viewBackgroundColor":"#fbfbf8","gridSize":null},"files":{}}