Viktor Lofgren
f6d5d7f196
(chore) Update to Java 25
...
As usual most of the change is dealing with gradle churn.
2025-09-30 15:59:35 +02:00
Viktor Lofgren
93fc14dc94
(index) Add sanity assertions to SkipListReader
2025-09-24 13:26:31 +02:00
Viktor Lofgren
9a789bf62d
(array) Fix broken test
2025-08-18 09:10:58 +02:00
Viktor Lofgren
68f52ca350
(test) Fix tests that works on my machine (TM)
2025-08-14 00:59:58 +02:00
Viktor Lofgren
6fe6de766d
(pool) Fix SegmentMemoryPage storage
2025-08-13 13:17:14 +02:00
Viktor Lofgren
db315e2813
(index) Use O_DIRECT position reads
2025-08-11 18:04:25 +02:00
Viktor Lofgren
ca283f9684
(native) Clean up native helpers and break them into their own library
2025-08-10 20:55:34 +02:00
Viktor Lofgren
9a65946e22
(uring) Reduce queue size to 2048 to avoid ENOMEM on systems with default ulimits
2025-08-09 20:41:24 +02:00
Viktor Lofgren
1d2ab21e27
(index) Aggregate termdata reads into a single io_uring operation instead of one for each term
2025-08-09 17:43:18 +02:00
Viktor Lofgren
4773c5a52b
(index) Backport some changes made during performance evaluations
2025-08-09 15:19:41 +02:00
Viktor Lofgren
f668f33d5b
(index) Tweaks and optimizations
2025-08-08 15:32:23 +02:00
Viktor Lofgren
6789975cd2
(index) Tweaks and optimizations
2025-08-08 15:30:48 +02:00
Viktor Lofgren
f6daac8ed0
(index) MADVISE_RANDOM the index btrees
2025-08-07 21:14:28 +02:00
Viktor Lofgren
3b0c701df4
(uring) Update uring timeout threshold
2025-08-07 20:13:25 +02:00
Viktor Lofgren
b07709cc72
(native) Disable expensive debug checks from uring code
2025-08-06 21:05:28 +02:00
Viktor Lofgren
749c8ed954
(pool) Correct buffer pool alignment
2025-08-06 20:56:34 +02:00
Viktor Lofgren
9f4b6939ca
(skiplist) Fix condition for truncated block writing
2025-08-06 16:25:53 +02:00
Viktor Lofgren
1d08e44e8d
(uring) Fadvise random access for uring buffered reads
2025-08-06 15:54:24 +02:00
Viktor Lofgren
5e68a89e9f
(index) Improve error handling
2025-08-06 15:05:16 +02:00
Viktor Lofgren
d380661307
(index) Improve error handling
2025-08-06 14:31:06 +02:00
Viktor Lofgren
cccdf5c329
(pool) Check interrupt status in PoolLru's reclamation thread
2025-08-06 13:26:00 +02:00
Viktor Lofgren
b577085cb2
(pool) Use one contiguous memory allocation to encourage a HugePage allocation and reduce TLB thrashing
2025-08-06 12:49:46 +02:00
Viktor Lofgren
b9240476f6
(pool) Use one contiguous memory allocation to encourage a HugePage allocation and reduce TLB thrashing
2025-08-06 12:48:14 +02:00
Viktor Lofgren
8f50f86d0b
(index) Fix error handling
2025-08-05 22:19:23 +02:00
Viktor Lofgren
b9381f1603
(skiplist) EXPERIMENTAL - Store data in a separate file from document ids
2025-08-05 17:35:13 +02:00
Viktor Lofgren
6a60127267
(skiplist) EXPERIMENTAL - Store data in a separate file from document ids
2025-08-05 16:54:39 +02:00
Viktor Lofgren
e8ffcfbb19
(skiplist) Correct binary search implementation, fix intersection logic
2025-08-04 14:49:09 +02:00
Viktor Lofgren
caf0850f81
(index) Clean up code
2025-08-04 00:12:35 +02:00
Viktor Lofgren
92b09883ec
(index) Switch from AIO to io_uring
...
Turns AIO is just bad especially with buffered I/O, io_uring performs strictly better in this scenario.
2025-08-03 21:19:54 +02:00
Viktor Lofgren
87082b4ef8
(index) Use AIO for reading spans and positions
...
This performs slightly worse in benchmarks, but that's likely caused by hitting the page cache.
AIO will tend to perform better when we see cache misses, which is the expected case in production on real-world data.
2025-08-03 21:19:54 +02:00
Viktor Lofgren
84d3f6087f
(skiplist) Parametrize skip list block size, increase to 4K pages
2025-08-03 21:19:54 +02:00
Viktor Lofgren
f93ba371a5
(pool) Fix the LRU to not deadlock and be shit
2025-08-03 21:19:54 +02:00
Viktor Lofgren
5eec27c68d
(pool) Fix for 32 bit rollover in clockHand for LRU
2025-08-03 21:19:54 +02:00
Viktor Lofgren
ab01576f91
(pool) Use one global buffer pool instead of many small ones, improved LRU with gclock reclamation, skip list optimization
2025-08-03 21:19:54 +02:00
Viktor Lofgren
054e5ccf44
(pool) Testing synchronized to see if I can find the deadlock
2025-08-03 21:19:54 +02:00
Viktor Lofgren
4351ea5128
(pool) Fix buffer leak
2025-08-03 21:19:54 +02:00
Viktor Lofgren
683854b23f
(pool) Fix logging
2025-08-03 21:19:54 +02:00
Viktor Lofgren
e880fa8945
(pool) Simplify locking in PoolLru
2025-08-03 21:19:54 +02:00
Viktor Lofgren
2482dc572e
(pool) Grow free queue size
2025-08-03 21:19:54 +02:00
Viktor Lofgren
4589f11898
(pool) More stats
2025-08-03 21:19:54 +02:00
Viktor Lofgren
e43b6e610b
(pool) Adjust pool reclamation strategy
2025-08-03 21:19:53 +02:00
Viktor Lofgren
4772117a1f
(skiplist) First stab at a skiplist replacement for btrees in the documents lists
2025-08-03 21:19:53 +02:00
Viktor Lofgren
3fc7ea521c
(pool) Remove readahead and simplify the code
2025-08-03 21:19:53 +02:00
Viktor Lofgren
4372f5af03
(pool) More performant LRU pool + better instructions queue
2025-08-03 21:19:53 +02:00
Viktor Lofgren
4ad89b6c75
(pool) More performant LRU pool
2025-08-03 21:19:53 +02:00
Viktor Lofgren
ad0519e031
(index) Optimizations
2025-08-03 21:19:53 +02:00
Viktor Lofgren
cb5e2778eb
(pool) Align the buffers with 512b
2025-08-03 21:19:53 +02:00
Viktor Lofgren
eaa22c2f5a
(*) Logging
2025-08-03 21:19:53 +02:00
Viktor Lofgren
7be173aeca
(pool) Only dump statistics if they say anything
2025-08-03 21:19:53 +02:00
Viktor Lofgren
c6e3c8aa3b
(index) Focus pools to try to increase reuse
2025-08-03 21:19:53 +02:00