Commit Graph

322 Commits

Author SHA1 Message Date
Ahmed Yasin Koculu 80dff54867 Add delete value confgiuration validation to prevent unexpected not working delete calls. 2023-06-17 00:21:15 +02:00
Ahmed Yasin Koculu f2d6006e6f Remove unused pragma directive. 2023-06-08 15:09:55 +02:00
Ahmed Yasin Koculu 606c0a73a0 Fix BTree deadlock on split. (#36) 2023-05-29 06:35:44 +02:00
Ahmed Yasin Koculu 5e67bdf803 Reduce code duplication (#35)
* Remove duplicated binary search code.

* Remove lambdas when possible.
2023-05-28 07:16:36 +02:00
Ahmed Yasin Koculu 46ef5d74f9 Remove redundant unsafe flags. (#34) 2023-05-28 02:36:31 +02:00
Ahmed Yasin Koculu fe9b4be44f Refactor disk segments (#33)
* Organize segments subfolders.

* Create subclass disk segments.

* Mark base DiskSegment abstract and activate derived disk segments.

* Perform disposing correctly.

* Refactor namespaces to match containing folders.

* Relocate DataHeaderDevice to the corresponding disk segments.
2023-05-28 02:17:14 +02:00
ksemenenko 9ba1393e34 Add descending comparers for primitive types (#32) 2023-05-27 21:39:27 +02:00
Ahmed Yasin Koculu dc9a2b9f54 Mark new disk segment null after the event is invoked. (#31) 2023-05-27 18:54:13 +02:00
Ahmed Yasin Koculu 64f3fb8a33 Code analysis cleanup (#30)
* Enable code analysis and start cleanup warnings.

* Cleanup default value assignment warnings and more.

* Ignore and fix some warnings.

* Clear naming and reliability warnings.

* Fix disposal related warnings.

* Create auto generated equality operators.

* Seal classes.
2023-05-27 07:48:14 +02:00
Ahmed Yasin Koculu bae3be27c0 Minor code and CI improvements (#29)
* Improve QueueItemsChunk construction.

* Add publish nuget package workflow.
2023-05-27 00:44:47 +02:00
Ahmed Yasin Koculu 3e960cef03 Improve (%41) read speed by replacing concurrent queue (#28)
* Add single producer and single consumer queue using LIFO enumeration capability..

* Use the new queue. Performance improvementr for reads: %41

* Usae inline functions instead of lambda delegates.
2023-05-27 00:04:49 +02:00
Kirill Osenkov 8ad146aaac Remove duplicated code (#27) 2023-05-23 01:44:51 +02:00
Ahmed Yasin Koculu a75d66887a Fix typo bug on Int64Serializer helper class. (#26) 2023-04-05 02:54:12 +02:00
Ahmed Yasin Koculu be17ec7713 Fix bug on seeking tp multi part disk segment part borders. (#23) 2023-01-14 22:15:46 +01:00
Ahmed Yasin Koculu 55981d0f52 Fix sparse array fast return bug. (#21)
* Fix sparse array fast return bug.
2023-01-14 09:58:43 +01:00
Ahmed Yasin Koculu 57bdfe1971 Add prefix search tests using iterators. (#20) 2023-01-08 16:42:39 +01:00
Ahmed Yasin Koculu a5fbde6251 Reduce CPU instructions on byte array Crc32 computation. (#18)
* Reduce CPU instructions on byte array Crc32 computation.

* Create Crc32 classs per hardware to reduce CPU instructions.

* Reduce code duplication.

* Reuse LogEntry read and append functions.
2022-11-20 22:58:40 +01:00
Ahmed Yasin Koculu 379da693ad Added Agressive inline compiler hint. 2022-11-14 21:27:33 +01:00
Dmitriy Korolev 1ee8900f64 Arm support (#16)
* Add ARM support

* Add ARM disclamer + format
2022-11-14 08:53:32 +01:00
Ahmed Yasin Koculu 65e67e933b Upgrade Framework to .Net 7.0. 2022-11-13 20:56:39 +01:00
Ahmed Yasin Koculu 6568c7bdd9 Fix typo in exception message. 2022-11-13 20:19:08 +01:00
Ahmed Yasin Koculu 4194d34f9b Add wal corruption exception class tests. 2022-10-20 18:18:47 +02:00
Ahmed Yasin Koculu 8ad8311770 Fixed issue caused by AggregateException does not accept null values. 2022-10-20 18:06:08 +02:00
Ahmed Yasin Koculu e044a83296 Fix null reference exception. 2022-10-20 17:42:39 +02:00
Ahmed Yasin Koculu e76aa3e720 Bug/11 single character string serializer (#13)
* Fix string serializer index out of range issue.

* Improve exception message.
2022-10-20 17:11:58 +02:00
Ahmed Yasin Koculu 7e1fba3a15 Unseal benchmark dot net classes. 2022-09-14 18:22:54 +02:00
Ahmed Yasin Koculu c8921cb158 Seal all classes. https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-6/#peanut-butter 2022-09-14 13:11:42 +02:00
Ahmed Yasin Koculu b88e95bb28 Set mutable segment volatile. 2022-09-14 13:05:27 +02:00
Ahmed Yasin Koculu 77d9bf87fd Mark disk segment volatile. 2022-09-03 02:59:07 +02:00
Ahmed Yasin Koculu 59b81f87a7 Simplify benchmarks. 2022-09-03 02:19:05 +02:00
Ahmed Yasin Koculu 24157706ad Adds Steve's challenge test. 2022-09-03 00:41:44 +02:00
Ahmed Yasin Koculu b16e693c2a Makes random access device manager thread-safe. 2022-09-03 00:35:17 +02:00
Ahmed Yasin Koculu f1ad57988b Fixes memory leak caused by GC. GC does not collect Thread local variables for a long time. 2022-09-03 00:34:21 +02:00
Ahmed Yasin Koculu b50d075db5 Adds default byte array serializer and comparers selection. 2022-09-03 00:32:34 +02:00
Ahmed Yasin Koculu e0d2a9d120 Update docs. 2022-08-31 23:08:17 +02:00
Ahmed Yasin Koculu 774b084a52 Updates docs. 2022-08-31 23:05:18 +02:00
Ahmed Yasin Koculu eaea453a03 Update docs. 2022-08-31 20:38:34 +02:00
Ahmed Yasin Koculu e36676cfab Replaces LZ4 and Zstd compression libraries with faster alternatives. 2022-08-31 20:08:46 +02:00
Ahmed Yasin Koculu c2200a5dc5 Sets default random access device manager. 2022-08-31 00:10:52 +02:00
Ahmed Yasin Koculu 8416d2d0cb Fixes deadlock in BTree split.. 2022-08-30 02:47:46 +02:00
Ahmed Yasin Koculu a6fb79f8a8 Adds 100M compression method comparison. 2022-08-30 01:54:12 +02:00
Ahmed Yasin Koculu 3a3f10e732 Improves benchmarks to include disk and memory usage. 2022-08-30 01:06:17 +02:00
Ahmed Yasin Koculu 1270566871 Drop bottom segments properly. Set Brotli Optimum = Fastest. 2022-08-30 00:55:57 +02:00
Ahmed Yasin Koculu a546aa3a2e Adds bottom segment merge operation events. 2022-08-29 02:00:23 +02:00
Ahmed Yasin Koculu 4e97c37e89 Unify mutable segment name across the codebase to avoid confusion. 2022-08-29 01:28:28 +02:00
Ahmed Yasin Koculu bd095b37b1 Fixes Sparse Array GetFirstGreaterOrEqualPosition bug. 2022-08-29 01:15:05 +02:00
Ahmed Yasin Koculu 2399e35b03 Init sparse arrays in parallel. 2022-08-29 00:58:50 +02:00
Ahmed Yasin Koculu f395039d6c Adds bottom segment merger. 2022-08-28 22:52:14 +02:00
Ahmed Yasin Koculu 93927cd8b2 Adds log object. 2022-08-28 17:33:41 +02:00
Ahmed Yasin Koculu 05bc11db82 Synchronize reads and iterators with disk segment drops. 2022-08-28 15:41:46 +02:00