Andrew Kane
3ebb9a506e
Added varatt headers for Postgres 16+
2025-10-22 11:56:05 -07:00
Andrew Kane
78ed8f1157
Fixed compilation error with Postgres 18 - fixes #779
2025-02-17 16:38:14 -08:00
Andrew Kane
961cb17d80
Added iterative search for HNSW [skip ci]
2024-10-10 18:14:39 -07:00
Andrew Kane
32ab27d72a
Added HnswSupport struct for support functions
2024-10-09 23:10:26 -07:00
Andrew Kane
a98534e5ab
DRY HNSW procinfo
2024-10-09 21:03:18 -07:00
Andrew Kane
49c1f13095
Improved performance of on-disk HNSW index builds - #570
2024-05-29 12:03:58 -07:00
Andrew Kane
5b43aaad5a
Removed unneeded item ids
2024-01-28 23:14:52 -08:00
Andrew Kane
797ce8034c
Ran pgindent [skip ci]
2024-01-28 23:03:48 -08:00
Andrew Kane
a7d43904f7
Zero memory for each element
2024-01-28 23:00:39 -08:00
Andrew Kane
ded649891b
DRY HNSW tuple alloc size [skip ci]
2024-01-28 22:58:38 -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
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
9b73b3d1a6
Reduced memory and allocations for heap TIDs - closes #385
2024-01-03 13:41:34 -05:00
Andrew Kane
e88a425c9b
Reduced WAL generation for HNSW index builds - thanks @hlinnaka
2023-12-19 20:37:32 -05:00
Andrew Kane
921427ee03
Replace dynahash hash table in HNSW with simplehash for speed - #378
...
Co-authored-by: Heikki Linnakangas <heikki.linnakangas@iki.fi >
2023-12-17 11:24:13 -05:00
Andrew Kane
d078db3d25
Switched HnswElementTuple to generic data and zero full section
2023-11-09 18:28:25 -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
jeff-davis
b247b688a8
No need to MarkBufferDirty(); GenericXLogFinish() does that. ( #265 )
2023-09-15 13:14:10 -07:00
Andrew Kane
30fb4dd602
Updated comments [skip ci]
2023-09-07 15:29:54 -07:00
Andrew Kane
04312f6638
Simplified HNSW vacuum logic
2023-09-03 02:25:19 -07:00
Andrew Kane
b0801b8833
Fixed vacuum from previous commit
2023-09-03 01:58:45 -07:00
Andrew Kane
d05d6ee83d
Get m from metapage
2023-09-03 01:35:21 -07:00
Andrew Kane
4600979504
Updated comments [skip ci]
2023-08-21 22:38:09 -07:00
Andrew Kane
69addf05d0
Updated comments [skip ci]
2023-08-21 22:21:53 -07:00
Andrew Kane
4a5ae8a8df
Updated comment [skip ci]
2023-08-21 21:59:47 -07:00
Andrew Kane
9b3d1a32ff
Updated comment [skip ci]
2023-08-21 16:27:03 -07:00
Andrew Kane
8420734350
Updated comments [skip ci]
2023-08-21 16:26:32 -07:00
Andrew Kane
8b03267267
Improved locking for HNSW vacuum [skip ci]
2023-08-21 16:24:55 -07:00
Andrew Kane
641ddf5413
Improved locking for HNSW vacuum
2023-08-21 16:12:29 -07:00
Andrew Kane
782a1051e3
Improved locking for HNSW vacuum
2023-08-21 16:06:32 -07:00
Andrew Kane
0e1de45463
Improved locking code [skip ci]
2023-08-21 15:42:59 -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
90a042e5aa
Wait for selects to complete
2023-08-21 02:24:53 -07:00
Andrew Kane
bbd57dfebf
Moved wait [skip ci]
2023-08-21 01:02:05 -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
687263ccd4
DRY HNSW vacuum code
2023-08-20 14:52:31 -07:00
Andrew Kane
a62c045c93
Update metapage if needed for HNSW vacuum
2023-08-19 12:19:42 -07:00
Andrew Kane
651e4343c1
Made entryPoint argument for RepairGraphElement
2023-08-19 11:47:13 -07:00
Andrew Kane
ca847d02b0
Fixed highest point in HNSW vacuum [skip ci]
2023-08-18 22:23:19 -07:00
Andrew Kane
a03f6ae4bc
Added prefix to function name [skip ci]
2023-08-18 00:54:09 -07:00
Andrew Kane
b72a22b3c0
Fixed duplicate connections when repairing graph
2023-08-16 17:07:19 -07:00
Andrew Kane
e8f36aee92
Improved HNSW vacuum code [skip ci]
2023-08-15 22:36:47 -07:00
Andrew Kane
508a8a9ac7
Updated comments [skip ci]
2023-08-15 20:32:15 -07:00
Andrew Kane
d0b0298cda
Improved HNSW vacuum code [skip ci]
2023-08-15 20:02:21 -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
e1d6654063
Revert "Improved HNSW vacuum performance"
...
This reverts commit c5b2f3ac8b .
2023-08-13 17:19:22 -07:00
Andrew Kane
c5b2f3ac8b
Improved HNSW vacuum performance
2023-08-13 16:50:36 -07:00
Andrew Kane
0f238b1fa9
Update neighbors when vacuuming
2023-08-13 16:17:30 -07:00