Andrew Kane
bb855e6cb4
Updated comment [skip ci]
2024-08-06 10:35:26 -07:00
Andrew Kane
06d1fa1402
Added alignment check to ensure consistency with PageIndexTupleOverwrite
2024-07-19 15:50:24 -07:00
Andrew Kane
8c5a4bfb6c
Fixed failed to add index item error with sparsevec - fixes #625
2024-07-19 13:54:36 -07:00
Andrew Kane
1fdfff7349
Restored collation for consistency [skip ci]
2024-04-25 13:46:45 -07:00
Andrew Kane
38e365ed58
Restored HnswNormValue [skip ci]
2024-04-25 13:35:17 -07:00
Andrew Kane
58ec5296b0
Reduced support functions for HNSW - #527
2024-04-25 13:21:24 -07:00
Andrew Kane
47d5b2896e
Improved support functions for HNSW - #527
2024-04-25 13:00:40 -07:00
Andrew Kane
3eef1ff5c2
Removed type-specific code from HNSW [skip ci]
2024-04-24 14:53:45 -07:00
Andrew Kane
bd409f0c6a
Moved HnswGetType call [skip ci]
2024-04-22 19:22:09 -07:00
Andrew Kane
f14c21748b
Added support function for l2_normalize [skip ci]
2024-04-22 18:36:47 -07:00
Andrew Kane
5215c28923
Moved norm check to separate function
2024-04-15 15:32:08 -07:00
Andrew Kane
abac7a3f77
Added sparsevec type
2024-04-02 14:25:09 -07:00
Andrew Kane
2c48e3edc2
Mark type-specific code
2024-03-29 14:01:48 -07:00
Andrew Kane
8e59455c3c
Removed normvec for simplicity (no difference in performance)
2024-03-27 16:33:11 -07:00
Andrew Kane
5b43aaad5a
Removed unneeded item ids
2024-01-28 23:14:52 -08:00
Heikki Linnakangas
2d092016fc
Remove unnecessary PageIndexTupleOverwrite calls that caused UB ( #438 )
...
These places called PageIndexTupleOverwrite(), with the new tuple
pointing directly to the original page. The PageIndexTupleOverwrite()
call is unnecessary in these cases, as we have already modified the
tuple on the page directly. Moreover, PageIndexTupleOverWrite() will
call memcpy with same src and dst arguments, which is undefined
behavior.
It's OK to modify the pages on disk directly, and we don't need
critical sections, because we either use the generic xlog functions
which create a temporary copy of the page, or we are building a new
index so if we crash the whole index is invisible and will be dropped
anyway.
2024-01-28 22:52:56 -08:00
Heikki Linnakangas
121f53b8ff
Remove unused heapRel arguments ( #443 )
2024-01-26 12:45:10 -08:00
Heikki Linnakangas
c8be3a369b
Include generic_xlog.h directly in the .c files where it's needed
...
There are no references to anything that's in generic_xlog.h in the
header files.
2024-01-23 13:04:03 +02:00
Andrew Kane
2d0f162bd7
Added support for in-memory parallel index builds for HNSW
...
Co-authored-by: Heikki Linnakangas <heikki.linnakangas@iki.fi >
2024-01-22 23:19:10 -08:00
Andrew Kane
597bfdc76b
Added HnswGetNeighbors macro
2024-01-13 20:00:34 -08:00
Andrew Kane
cbf3eb4fa5
Improved HNSW build and insert code
2024-01-13 10:07:42 -08:00
Andrew Kane
cacd389f6d
Improved pattern for duplicates
2024-01-12 14:30:13 -08:00
Andrew Kane
9b73b3d1a6
Reduced memory and allocations for heap TIDs - closes #385
2024-01-03 13:41:34 -05:00
Andrew Kane
9ab10aa674
Fixed CI
2023-12-20 16:29:13 -05:00
Andrew Kane
43e0b3d9d4
Mark buffer contents as dirty when not logging
2023-12-20 16:16:25 -05:00
Andrew Kane
e88a425c9b
Reduced WAL generation for HNSW index builds - thanks @hlinnaka
2023-12-19 20:37:32 -05:00
Andrew Kane
fbb904ae2f
Use pointer for VARSIZE_ANY
2023-11-09 17:50:28 -08:00
Andrew Kane
3cf6f62900
Switched to datum for HnswElement
2023-11-09 17:35:39 -08:00
Andrew Kane
2a69e22ca4
Switched from VECTOR_SIZE to VARSIZE_ANY where possible (less vector-specific)
2023-11-09 17:16:43 -08:00
Andrew Kane
84e073888c
Removed vector-specific code from HNSW_ELEMENT_TUPLE_SIZE [skip ci]
2023-11-09 16:57:01 -08:00
Andrew Kane
81a62d55d1
Switched from HNSW_ELEMENT_TUPLE_SIZE to ItemIdGetLength where possible (less vector-specific)
2023-11-09 16:32:00 -08:00
Andrew Kane
6e1312ddbe
DRY max size
2023-10-04 21:43:34 -07:00
Xiaoran Wang
1ecf6ada76
Include ItemIdData when computing the maxSize for the data in a page ( #274 )
...
As the data is aligned, for hnsw, the combined size won't be in the range
(8156 (maxSize exlucding `ItemIdData`), 8160]. So even if the
ItemIdData is not included in the maxSize, it works well now, but I
think it's better to make it correct.
2023-10-04 21:26:46 -07:00
jeff-davis
b247b688a8
No need to MarkBufferDirty(); GenericXLogFinish() does that. ( #265 )
2023-09-15 13:14:10 -07:00
Andrew Kane
d05d6ee83d
Get m from metapage
2023-09-03 01:35:21 -07:00
Andrew Kane
782a1051e3
Improved locking for HNSW vacuum
2023-08-21 16:06:32 -07:00
Andrew Kane
ca2be5be6e
Updated comment [skip ci]
2023-08-21 16:00:44 -07:00
Andrew Kane
0e1de45463
Improved locking code [skip ci]
2023-08-21 15:42:59 -07:00
Andrew Kane
d4fe67e8ee
Simplified locking for entry point
2023-08-21 03:22:23 -07:00
Andrew Kane
02f4e0ec8b
Revert "Added version to reduce stale reads and writes and prepare for optimistic locking"
...
This reverts commit ef1209eaf4 .
2023-08-21 02:47:27 -07:00
Andrew Kane
40a013a622
Wait for inserts to complete when vacuuming HNSW
2023-08-21 00:36:32 -07:00
Andrew Kane
ef1209eaf4
Added version to reduce stale reads and writes and prepare for optimistic locking
2023-08-20 17:08:20 -07:00
Andrew Kane
a03f6ae4bc
Added prefix to function name [skip ci]
2023-08-18 00:54:09 -07:00
Andrew Kane
ed20d98777
Check if item pointer is valid [skip ci]
2023-08-16 17:29:59 -07:00
Andrew Kane
b72a22b3c0
Fixed duplicate connections when repairing graph
2023-08-16 17:07:19 -07:00
Andrew Kane
8c5c0f791e
Improved HNSW insert code [skip ci]
2023-08-16 16:31:11 -07:00
Andrew Kane
c3bafc76e8
Only update entry point on inserts if level is greater
2023-08-15 12:31:06 -07:00
Andrew Kane
b421e76f29
Updated comment [skip ci]
2023-08-13 17:23:52 -07:00
Andrew Kane
ef480ff0b9
Added comment [skip ci]
2023-08-13 17:22:25 -07:00
Andrew Kane
e1d6654063
Revert "Improved HNSW vacuum performance"
...
This reverts commit c5b2f3ac8b .
2023-08-13 17:19:22 -07:00