Commit Graph

  • 9b470a367c Add check_bytes_total counter andrew 2024-07-15 14:40:22 -07:00
  • e7806a36d1 Fix range_read_total counter andrew 2024-07-15 14:09:31 -07:00
  • ffd1dfe74d Rework check metrics andrew 2024-07-15 14:02:39 -07:00
  • c39af9117f Remove nodes allocated/released metrics andrew 2024-07-15 13:34:13 -07:00
  • ed274c24d7 Just output metrics in the order declared andrew 2024-07-12 16:10:28 -07:00
  • cecfcc0da7 Fix build andrew 2024-07-12 14:52:42 -07:00
  • f6edde0e50 Fix data race andrew 2024-07-12 14:49:46 -07:00
  • 04ac41a7e7 Add memory usage and some "check" metrics andrew 2024-07-12 14:22:16 -07:00
  • 354920f86f Add newly-imported symbol for arm64 build andrew 2024-07-12 13:55:41 -07:00
  • bfd02503e7 Remove duplicate clang compiler warning action andrew 2024-07-12 13:44:51 -07:00
  • d0bd293f8d Try to fix Jenkins andrew 2024-07-12 13:38:11 -07:00
  • 41e887c358 Try to fix symbol tests in CI andrew 2024-07-12 13:34:00 -07:00
  • e394e3d96a Adapt comments from prometheus data model better andrew 2024-07-12 13:27:22 -07:00
  • 3288c583e4 Make metrics thread-safe andrew 2024-07-12 13:22:02 -07:00
  • ef14003781 Try to fix symbol tests in CI andrew 2024-07-12 12:24:23 -07:00
  • 3ac16bc966 Propose a metrics interface andrew 2024-07-12 12:00:46 -07:00
  • 1e82f7fe22 Fix compiler warnings andrew 2024-07-11 19:33:57 -07:00
  • 4182d904c5 Fix an issue where gc wasn't outpacing writes andrew 2024-07-11 16:40:18 -07:00
  • bd8ed4e7bd Bump version andrew 2024-07-10 18:57:44 -07:00
  • 60cb274a15 Update corpus v0.0.8 andrew 2024-07-10 18:49:41 -07:00
  • 687bc9c935 Explicitly say that begin must be < end in interface andrew 2024-07-10 17:05:08 -07:00
  • d50bb8bc80 Add missing header andrew 2024-07-10 16:59:31 -07:00
  • f19b403f19 Remove "writes are canonical" precondition from addWrites andrew 2024-07-10 16:42:53 -07:00
  • 34cd210907 Update README benchmarks andrew 2024-07-09 16:06:44 -07:00
  • 1a5da9e899 Bump version andrew 2024-07-08 16:12:23 -07:00
  • 8ba9b04d8c Remove "32-bit versions" jenkins stage andrew 2024-07-08 15:45:10 -07:00
  • d895be36d2 Declare dependency on version.txt in Makefile v0.0.7 andrew 2024-07-08 15:41:51 -07:00
  • 65f8462e88 Remove dead code andrew 2024-07-08 11:14:30 -07:00
  • 46e01af027 Specialize scan16 for Node16 in checkMaxBetweenExclusive andrew 2024-07-08 11:01:17 -07:00
  • c9d0d72684 Remove some branches for Node3 in checkMaxBetweenExclusive andrew 2024-07-07 20:45:20 -07:00
  • 9046dc5a8f Only switch on type once in checkMaxBetweenExclusive andrew 2024-07-07 17:28:45 -07:00
  • e2927bf0fa Simplify condition for TooOld in check andrew 2024-07-03 16:39:22 -07:00
  • 75a2b8d06c Remove bogus assert andrew 2024-07-03 14:47:50 -07:00
  • 76df63a9d7 Allow writeVersion, oldestVersion, and readVersion to span 2e9 andrew 2024-07-03 14:19:50 -07:00
  • 9c5b38b09a Revert setOldestVersion interface change andrew 2024-07-03 11:27:09 -07:00
  • 7142dab7ae Update c api documentation for ConflictSet_setOldestVersion andrew 2024-07-03 10:53:45 -07:00
  • 3db3d975fc Interface change! Allow decreasing setOldestVersion andrew 2024-07-03 10:31:57 -07:00
  • 982b31af34 Explicitly convert uint32x4_t to int32x4_t andrew 2024-07-03 10:01:00 -07:00
  • cc716ef16b Attempt to fix memory leak andrew 2024-07-03 09:48:02 -07:00
  • 88bcc7b75c Update corpus andrew 2024-07-03 09:36:03 -07:00
  • 3e6be6bd83 Allow write version to jump by more than 2e9 andrew 2024-07-03 09:07:09 -07:00
  • e59fee39c7 Start versions at zero in fuzz test for now andrew 2024-07-03 07:55:07 -07:00
  • 3e2c8310bb Fix several bugs related to extant versions too old andrew 2024-07-02 18:58:40 -07:00
  • 8264f1342d Fix some precision issues andrew 2024-07-02 13:55:05 -07:00
  • 5d7e9c6f85 Compare against oldestVersionFullPrecision at full precision andrew 2024-07-02 13:53:56 -07:00
  • cdf42fcb34 Add gcScanStep andrew 2024-07-02 13:06:53 -07:00
  • cbe40b5dba Fix missing debug verbose guard andrew 2024-07-02 12:48:00 -07:00
  • a04e81b3ff Add version window constants andrew 2024-07-02 12:45:35 -07:00
  • 0be97a34b6 Add new version window requirement to reference impl andrew 2024-07-02 12:42:03 -07:00
  • 68ab9a9f08 Commit to 32-bit versions andrew 2024-07-02 10:30:22 -07:00
  • 01488880ef Fix outdated comment andrew 2024-07-01 17:27:04 -07:00
  • bb84792cff Use avx512f across entire checkRangeRead call tree andrew 2024-07-01 13:07:34 -07:00
  • 1f421e95ff Resuppress coverage andrew 2024-06-30 21:48:43 -07:00
  • 66bd799f05 Fix hasty change about end invariants andrew 2024-06-30 21:20:05 -07:00
  • 2646d5eaf1 Get back to 100% coverage andrew 2024-06-30 21:15:42 -07:00
  • 0367ba9856 Fast path for prefix reads andrew 2024-06-30 20:33:54 -07:00
  • 9dec45317e Try to fix code coverage in Jenkins andrew 2024-06-30 15:38:06 -07:00
  • a68ad5dd17 Interface change! Return TooOld after 2e9 versions andrew 2024-06-30 15:25:44 -07:00
  • 8e3eacb54f Apply function multi versioning higher in call stack to save branches andrew 2024-06-30 13:30:44 -07:00
  • 0184e1d7f6 Remove incorrect comma in CMakeLists.txt andrew 2024-06-30 11:34:50 -07:00
  • c52d50f4f9 Remove bounds from forEachInRange andrew 2024-06-29 22:53:51 -07:00
  • 447da11d59 Remove obsolete optimizations andrew 2024-06-29 22:47:42 -07:00
  • daa8e02d4f Fixes from testing on an avx512f-capable machine andrew 2024-06-29 22:41:39 -07:00
  • fd3ea2c2a8 clang-format fixes andrew 2024-06-29 22:21:50 -07:00
  • 0b839b9d7e Fixes for symbol multi-versioning with avx512f andrew 2024-06-29 22:20:50 -07:00
  • 11a022dcf7 Attempt at avx512f 32bit compare andrew 2024-06-29 21:56:21 -07:00
  • 94da4c72a5 Fix clang-format andrew 2024-06-29 15:11:40 -07:00
  • 461e07822a 32-bit x86 simd for the other scan16 too andrew 2024-06-29 15:10:05 -07:00
  • 75499543e7 Fix clang-format andrew 2024-06-29 15:03:44 -07:00
  • 81f44d352f SIMD scan16 for x86 + 32-bit versions andrew 2024-06-29 15:01:18 -07:00
  • 45da8fb996 Use the faster unvectorized implementation for Node3 andrew 2024-06-28 22:52:39 -07:00
  • 4958a4cced Make always_inline function inline andrew 2024-06-28 22:42:01 -07:00
  • 587874841f Fix test that had a decreasing write version andrew 2024-06-28 19:57:25 -07:00
  • 648b0b9238 Add an always_inline, with explanatory comment andrew 2024-06-28 19:55:33 -07:00
  • d3f4afa167 More SIMD for scanning Node256 with 32-bit versions andrew 2024-06-28 19:48:06 -07:00
  • f762add4d6 Write vectorized 32-bit compare by hand for arm in scan16 andrew 2024-06-28 17:28:59 -07:00
  • b311e5f1f0 Add an experimental, disabled 32 bit internal version andrew 2024-06-28 15:53:35 -07:00
  • ff81890921 Rename MaxVersionT to InternalVersionT andrew 2024-06-28 14:34:48 -07:00
  • 0e96177f5c Allow to easily experiment with 32 bit "max version" type andrew 2024-06-28 13:54:12 -07:00
  • efb0e52a0a SIMD implementation of scan16 for x86 andrew 2024-06-27 22:21:41 -07:00
  • 2df7000090 Remove switch on phase from Stepwise left/right step andrew 2024-06-27 20:51:35 -07:00
  • 5378a06c39 Vectorize all bounds checks for Node256 scan andrew 2024-06-27 17:40:23 -07:00
  • 12c6ed2568 Reorganize to prepare for better vectorized first/last page andrew 2024-06-27 17:21:41 -07:00
  • a2bf839b19 Update corpus andrew 2024-06-27 17:11:03 -07:00
  • c065b185ae Vectorize inner page check for Node256 andrew 2024-06-27 17:09:45 -07:00
  • 639518bed4 Share "scan16" between Node16 and Node48 andrew 2024-06-27 13:22:51 -07:00
  • 7de983cc15 Simd bounds checking for scan for Node16 andrew 2024-06-27 13:06:15 -07:00
  • 1b4b61ddc6 Write Node16 scan in a "more vectorized" style andrew 2024-06-27 12:07:38 -07:00
  • bff7b85de2 Remove "Child" struct andrew 2024-06-27 10:03:14 -07:00
  • 9108ee209a SoA instead of AoS for child, maxVersion andrew 2024-06-27 09:57:54 -07:00
  • f8bf1c6eb4 Remove unreachable code andrew 2024-06-26 22:14:27 -07:00
  • 4da2a01614 Use single &, to show branch-free intent andrew 2024-06-26 22:14:05 -07:00
  • bb0e654040 Fix missed update for Node48::maxOfMax andrew 2024-06-26 22:11:33 -07:00
  • cce7d29410 Update our benchmarks in README andrew 2024-06-26 20:59:33 -07:00
  • 13f8d3fa8a Add benchmarks for individual spans, but commented out andrew 2024-06-26 20:57:51 -07:00
  • 02866a8cae Save some bounds checking for scanning Node256 andrew 2024-06-26 20:55:18 -07:00
  • fa86d3e707 "max of max" for Node48 again, but physical instead of logical andrew 2024-06-26 20:41:27 -07:00
  • 7d1d1d7b2a Maintain childMaxVersion == 0 for unused children in Node48 andrew 2024-06-26 20:16:50 -07:00
  • 789ecc29b3 Use unsigned compare trick to check in bounds andrew 2024-06-26 19:41:25 -07:00
  • 08f2998a85 Use 8 byte pages for "max of max" andrew 2024-06-26 19:18:38 -07:00