Commit Graph

351 Commits

Author SHA1 Message Date
Ahmed Yasin Koculu 91cc5d69ff Pin iterators to the compression block cache to reduce memory consumption. 2024-07-20 00:40:32 +02:00
Ahmed Yasin Koculu 1fd3881494 Replace the circular block cache with hashtable for faster and stable reads.
(cherry picked from commit 47287b25591313b0c1fba0e6e801c66f74dbf56a)
2024-07-20 00:36:31 +02:00
Ahmed Yasin Koculu 04646e6644 Use ArrayPool for compressedBlocks.
(cherry picked from commit c8150aed1782b4b6110b5254f5da02d5af11df2d)
2024-07-20 00:36:26 +02:00
Ahmed Yasin Koculu 5f9f45cd3d Add circular value cache per disk segment.
(cherry picked from commit a0f1862744ba092ad3e1b0d8fb52ac60d5e175d4)
2024-07-20 00:36:22 +02:00
Ahmed Yasin Koculu 40d627a404 Create and persist default sparse array on disk segment creation.
(cherry picked from commit f75bc0a231dcf67751d2d88fed9d55f46c5a40e6)
2024-07-20 00:36:17 +02:00
Ahmed Yasin Koculu da6adad2c6 Upgrade byte[] arrays into Memory<byte>
(cherry picked from commit f8b42a712f9e6e90309966391fde911351b2a55f)
2024-07-20 00:36:12 +02:00
Ahmed Yasin Koculu 33242a68d8 Add circular cache for keys on disk segments.
(cherry picked from commit 03a7c060996ca4485d948f95a7b42c47e6afa991)
2024-07-20 00:36:07 +02:00
Ahmed Yasin Koculu 33450c4c1c Fix naming of maintainer cleanup job.
(cherry picked from commit 28f19a172ad0ef6c7587bae6cc80024868951ae4)
2024-07-20 00:36:03 +02:00
Ahmed Yasin Koculu 9a4d6308ab Add get parts count method.
(cherry picked from commit 26888da38b6094df6b5a7e5bc86b088b4b11547b)
2024-07-20 00:35:57 +02:00
Ahmed Yasin Koculu 766c6b9555 Upgrade dependencies.
(cherry picked from commit d05b21dfcf591c405e621410b9069b802f3fce99)
2024-07-20 00:35:53 +02:00
Ahmed Yasin Koculu 39d512fc22 Use deserialization with code generation for dotnet 6.0 and above.
(cherry picked from commit f69dc36697003a9c5ced4d41fb3d7695ae0ac77d)
2024-07-20 00:35:37 +02:00
Ahmed Yasin Koculu a1ce94bc4f Expose comparer, key and value serializers on IZoneTree. 2024-06-14 22:22:41 +02:00
Ahmed Yasin Koculu 96d0a267d3 Fix LocalFileStream flush parameters. 2024-06-14 22:14:47 +02:00
Jozef Gajdos e4406dca5e Migration to .NET 8 and enable AOT compilation. 2024-06-14 14:57:13 +02:00
Ahmed Yasin Koculu b61f0bad98 Bump version. 2023-12-12 21:00:37 +01:00
Anton Taranov 390a5df8cc Fixed DeletableRefSerializer issue: cut of last byte. 2023-12-12 12:05:34 +02:00
Ahmed Yasin Koculu 93a4cfdba8 Update remaining X64 usage in Crc32 X86. 2023-09-13 21:50:55 +02:00
Ahmed Yasin Koculu dbf6fa5294 Use previous crc result. 2023-09-13 20:42:30 +02:00
Ahmed Yasin Koculu fbdea76913 Add Crc32 x86 support. 2023-09-13 20:31:49 +02:00
Ahmed Yasin Koculu 58a5dcf221 Merge pull request #43 from koculu/feature/extend--filestreamprovider-methods
Add GetDirectories and CombinePaths to the file stream provider interface.
2023-08-19 00:36:31 +02:00
Ahmed Yasin Koculu 2cef4ce61f Fix wrong value serializer type in thrown Exception. 2023-08-19 00:34:48 +02:00
Ahmed Yasin Koculu 0153d53819 Add GetDirectories and CombinePaths methods to the file stream provider interface. 2023-08-19 00:28:16 +02:00
Ahmed Yasin Koculu 51dad23444 Fixed invalid key deletion bug on tree load. 2023-06-17 17:03:45 +02:00
Ahmed Yasin Koculu 6be1888e40 Update docs. 2023-06-17 05:19:22 +02:00
Ahmed Yasin Koculu ea5e49e2cb Colleect garbage from write ahead log of mutable segment. 2023-06-17 03:28:29 +02:00
Ahmed Yasin Koculu d10e0ccbe8 Add optional startup garbage collection if applicable. 2023-06-17 02:57:21 +02:00
Ahmed Yasin Koculu da0a36e4a2 Load initial sparse array in Open and OperOrCreate methods. 2023-06-17 02:14:36 +02:00
Ahmed Yasin Koculu 765f8b8f32 Add B+Tree Node and Leaf size fine tuning options. 2023-06-17 01:33:49 +02:00
Ahmed Yasin Koculu ecee237135 Add default value deletion support for reference and nullable types. 2023-06-17 01:15:50 +02:00
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