This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Blog

Release release-v1.8.4

Announcing release-v1.8.4

What’s Changed

Full Changelog: https://github.com/koculu/ZoneTree/compare/release-v1.8.3...release-v1.8.4

Release release-v1.8.3

Announcing release-v1.8.3

What’s Changed

Full Changelog: https://github.com/koculu/ZoneTree/compare/release-v1.8.2...release-v1.8.3

Release release-v1.8.2

Announcing release-v1.8.2

What’s Changed

Full Changelog: https://github.com/koculu/ZoneTree/compare/release-v1.8.0...release-v1.8.2

Release release-v1.8.0

Announcing release-v1.8.0

What’s Changed

Full Changelog: https://github.com/koculu/ZoneTree/compare/release-v1.7.9...release-v1.8.0

Release release-v1.7.9

Announcing release-v1.7.9

What’s Changed

Full Changelog: https://github.com/koculu/ZoneTree/compare/release-v1.7.7...release-v1.7.9

Release release-v1.7.7

Announcing release-v1.7.7

What’s Changed

Full Changelog: https://github.com/koculu/ZoneTree/compare/release-v1.7.6...release-v1.7.7

Release release-v1.7.5

Announcing release-v1.7.5

What’s Changed

Full Changelog: https://github.com/koculu/ZoneTree/compare/release-v1.7.4...release-v1.7.5

Release release-v1.7.6

Announcing release-v1.7.6

What’s Changed

Breaking changes:

Updated Default Delete Behavior

In this version, the default delete behavior has been modified. Now, when a value is deleted, it is automatically set to its default value. This change enables deletion support for all types without requiring additional configuration.

Previously, deletion required explicit configuration.

Full Changelog: https://github.com/koculu/ZoneTree/compare/release-v1.7.5...release-v1.7.6

Release release-v1.7.4

Announcing release-v1.7.4

What’s Changed

Full Changelog: https://github.com/koculu/ZoneTree/compare/release-v1.7.3...release-v1.7.4

Release release-v1.7.3

Announcing release-v1.7.3

What’s Changed

Full Changelog: https://github.com/koculu/ZoneTree/compare/release-v1.7.2...release-v1.7.3

Release release-v1.7.2

Announcing release-v1.7.2

What’s Changed

To reduce the memory consumption of ZoneTree, the following optimizations have been implemented:

  • Convert byte arrays (byte[]) into Memory<byte> to eliminate unnecessary buffer copies.
  • Utilize ArrayPool for efficient memory management.
  • Enhance read block caches by replacing the unstable CircularBlockCache.
  • Pin iterators to single block cache to prevent multiple block caches from consuming memory during a table scan.
  • Create and persist default sparse arrays upon disk segment creation.
  • Implement key and value caches for each disk segment to minimize IO operations.
  • Optimize the default configuration options.

Full Changelog: https://github.com/koculu/ZoneTree/compare/release-v1.7.1...release-v1.7.2

Release release-v1.7.1

Announcing release-v1.7.1

What’s Changed

New Contributors

Full Changelog: https://github.com/koculu/ZoneTree/compare/release-v1.7.0...release-v1.7.1

Release release-v1.7.0

Announcing release-v1.7.0

What’s Changed

New Contributors

Full Changelog: https://github.com/koculu/ZoneTree/compare/release-v1.6.9...release-v1.7.0

Release release-v1.6.9

Announcing release-v1.6.9

What’s Changed

Full Changelog: https://github.com/koculu/ZoneTree/compare/release-v1.6.6...release-v1.6.9

Release release-v1.6.6

Announcing release-v1.6.6

What’s Changed

Full Changelog: https://github.com/koculu/ZoneTree/compare/release-v1.6.5...release-v1.6.6

Release release-v1.6.5

Announcing release-v1.6.5

What’s Changed

Full Changelog: https://github.com/koculu/ZoneTree/compare/release-v1.6.4...release-v1.6.5

Release release-v1.6.4

Announcing release-v1.6.4

What’s Changed

Full Changelog: https://github.com/koculu/ZoneTree/compare/release-v1.6.3...release-v1.6.4

Release release-v1.6.3

Announcing release-v1.6.3

What’s Changed

Full Changelog: https://github.com/koculu/ZoneTree/compare/release-v1.6.2...release-v1.6.3

Release release-v1.6.2

Announcing release-v1.6.2

What’s Changed

New Contributors

Full Changelog: https://github.com/koculu/ZoneTree/compare/release-v1.6.1...release-v1.6.2

Release release-v1.6.1

Announcing release-v1.6.1

What’s Changed

  • Fix typo bug on Int64Serializer helper class.

Full Changelog: https://github.com/koculu/ZoneTree/compare/release-v1.6.0...release-v1.6.1

Release release-v1.5.9

Announcing release-v1.5.9

What’s Changed

  • Fixed a bug in iterators that prevents seeking when MultiPartDiskSegment mode is enabled.

Full Changelog: https://github.com/koculu/ZoneTree/compare/release-v1.5.8...release-v1.5.9

Release release-v1.6.0

Announcing release-v1.6.0

What’s Changed

  • Fix bug on seeking to multi part disk segment part borders.

Full Changelog: https://github.com/koculu/ZoneTree/compare/release-v1.5.9...release-v1.6.0

Release release-v1.5.8

Announcing release-v1.5.8

What’s Changed

  • Reduce CPU instructions on Crc32 computation.

Full Changelog: https://github.com/koculu/ZoneTree/compare/release-v1.5.7...release-v1.5.8

Release release-v1.5.7

Announcing release-v1.5.7

What’s Changed

  • Added ARM CPU Architecture support.

Full Changelog: https://github.com/koculu/ZoneTree/compare/release-v1.5.6...release-v1.5.7

Release release-v1.5.6

Announcing release-v1.5.6

What’s Changed

  • Upgraded Framework version to the .NET 7.

Full Changelog: https://github.com/koculu/ZoneTree/compare/release-v1.5.5...release-v1.5.6

Release release-v1.5.5

Announcing release-v1.5.5

What’s Changed

  • Fixed string serializer index out of range bug.
  • Improved WAL corruption exception messages.

Full Changelog: https://github.com/koculu/ZoneTree/compare/release-v1.5.2...release-v1.5.5

Release release-v1.5.2

Announcing release-v1.5.2

What’s changed

Full Changelog: https://github.com/koculu/ZoneTree/compare/release-v1.5.1..release-v1.5.2

Downloads

Release release-v1.5.1

Announcing release-v1.5.1

What’s changed

  • Marked disk segment volatile.

Full Changelog: https://github.com/koculu/ZoneTree/compare/release-v1.5.0...release-v1.5.1

Downloads

Release release-v1.5.0

Announcing release-v1.5.0

What’s changed

  • Added default byte array serializer and comparers selection.
  • Fixed memory leak caused by GC not collecting thread local variables for a long time.
  • Fixed thread-safety issue on RandomAccessDeviceManager.

Full Changelog: https://github.com/koculu/ZoneTree/compare/release-v1.4.9...release-v1.5.0

Downloads

Release release-v1.4.9

Announcing release-v1.4.9

What’s changed

  • Replaced LZ4 and Zstd compression libraries with faster alternatives.
  • Added compression to the multi-part header.

Full Changelog: https://github.com/koculu/ZoneTree/compare/release-v1.4.8...release-v1.4.9

Downloads

Release release-v1.4.8

Announcing release-v1.4.8

What’s changed

  • Sets the default random access device provider in ZoneTreeFactory.

Full Changelog: https://github.com/koculu/ZoneTree/compare/release-v1.4.7...release-v1.4.8

Downloads

Release release-v1.4.7

Announcing release-v1.4.7

What’s changed

  • Fixed bug to drop bottom segments properly.
  • Set the Brotli compression method’s optimum level Fastest, because the default optimum level is extremely slow.
  • Fixed deadlock in B+Tree leaf splitter.

Full Changelog: https://github.com/koculu/ZoneTree/compare/release-v1.4.5...release-v1.4.7

Downloads

Release release-v1.4.5

Announcing release-v1.4.5

What’s changed

  • Synchronized reads and iterators with disk segment drops.
  • Added bottom segments merger.
  • Added events to control bottom segment operations.
  • Added parallel sparse array initialization.
  • Fixed sparse array search bug.
  • Improved API.

Full Changelog: https://github.com/koculu/ZoneTree/compare/release-v1.4.4...release-v1.4.5

Downloads

Release release-v1.4.4

Announcing release-v1.4.4

What’s changed

  • Added Vertical Disk Segment Expansion (Bottom Segments Layer)
  • Improved the write / merge speed for big databases.

Full Changelog: https://github.com/koculu/ZoneTree/compare/release-v1.4.3...release-v1.4.4

Downloads

Release release-v1.4.1

Announcing release-v1.4.1

What’s changed

  • Improved merge performance by 20%.
  • Improved iteration performance by %25.
  • Added faster decompression for known blob sizes.
  • Added new option BlockCacheReplacementDuration.
  • Improved circular block cache.
  • Fixed incorrect buffer lifetime calculation.

Full Changelog: https://github.com/koculu/ZoneTree/compare/release-v1.4.0...release-v1.4.1

Downloads

Release release-v1.4.3

Announcing release-v1.4.3

What’s changed

  • Added Brotli and Zstd compression methods.
  • Prevent duplicate disk segment reads in multi-threaded scenario.
  • Added 3rd party licenses to the Nuget package.

Full Changelog: https://github.com/koculu/ZoneTree/compare/release-v1.4.1...release-v1.4.3

Downloads

Release release-v1.3.9

Announcing release-v1.3.9

What’s changed

  • Added LZ4 compression support.
  • Set LZ4 as default compression method.
  • WAL write performance with compression is increased slightly.
  • Iteration performance increased significantly.
  • Merge performance increased dramatically.
  • Improved performance by using CPU TickCount64 to avoid time retrieval in block cache.
  • Added support to start/stop maintainer periodic timer.

Full Changelog: https://github.com/koculu/ZoneTree/compare/release-v1.3.8...release-v1.3.9

Downloads

Release release-v1.4.0

Announcing release-v1.4.0

What’s changed

  • Improved API to support up to 2^63 key-value pairs.

Full Changelog: https://github.com/koculu/ZoneTree/compare/release-v1.3.9...release-v1.4.0

Downloads

Release release-v1.3.8

Announcing release-v1.3.8

What’s changed

  • Added dynamically changing DiskSegment and WAL options capability.
  • Added new Maintainer API with ease of use.
  • Added automatic maintainer disposal.
  • Options are simplified.
  • Added infrastructure support to add new compression methods.

Full Changelog: https://github.com/koculu/ZoneTree/compare/release-v1.3.7...release-v1.3.8

Downloads

Release release-v1.3.7

Announcing release-v1.3.7

What’s changed

  • Improved add or update and sliding expiration performance by avoiding writes with unchanged updates.
  • Renamed WAL and Disk Segment Modes to better self-expression.

Full Changelog: https://github.com/koculu/ZoneTree/compare/release-v1.3.6...release-v1.3.7

Downloads

Release release-v1.3.6

Announcing release-v1.3.6

What’s changed

  • Added sliding expiration support.
  • Added auto comparer and key-value serializer detection for known types.
  • Updated API documentation.

Full Changelog: https://github.com/koculu/ZoneTree/compare/release-v1.3.4...release-v1.3.5

Release release-v1.3.4

Announcing release-v1.3.4

What’s changed

  • Improved API documentation
  • Dropped unused classes.

Full Changelog: https://github.com/koculu/ZoneTree/compare/release-v1.3.3...release-v1.3.4

Release release-v1.3.3

Announcing release-v1.3.3

What’s changed

  • Write Ahead Log files are closed for reads and writes from other processes.
  • Improved thread-safety by changing the order of frozen flag check.
  • Added logs for possible silent exceptions.

Full Changelog: https://github.com/koculu/ZoneTree/compare/release-v1.3.2...release-v1.3.3

Release release-v1.3.0

Announcing release-v1.3.0

What’s changed

  • Fixed missing logger issue.
  • Fixed wrong replacement path issue.

Full Changelog: https://github.com/koculu/ZoneTree/compare/release-v1.2.9...release-v1.3.0

Release release-v1.3.2

Announcing release-v1.3.2

What’s changed

  • Added auto performance tuning capability. Cache capacity increased on demand.
  • Improved read performance by clearing lock-mode when mutable segment moves to read-only zone.
  • Fixed file stream abstraction issue in DurableFileWriter.

Full Changelog: https://github.com/koculu/ZoneTree/compare/release-v1.3.0...release-v1.3.2

Release release-v1.2.9

Announcing release-v1.2.9

What’s changed

  • Improved Lazy WAL performance
  • Improved transaction log compaction crash resilience.
  • Improved log replacement performance.
  • Improved load performance.
  • Added support for null keys.
  • Added database logger.
  • Added new option to make database read-only.

Full Changelog: https://github.com/koculu/ZoneTree/compare/release-v1.2.8...release-v1.2.9

Release release-v1.2.7

Announcing release-v1.2.7
  • Improves database meta file durability.
  • Fixes leaf node links update race condition in node splitter.
  • Adds version information to the database meta file.
  • Fixes BTree key duplication.

Full Changelog: https://github.com/koculu/ZoneTree/compare/release-v1.2.6...release-v1.2.7

Release release-v1.2.8

Announcing release-v1.2.8

What’s changed

  • Added snapshot iterator.
  • Added read-only region iterator.
  • Added read-only segment count threshold.
  • Added deletable comparer.

Full Changelog: https://github.com/koculu/ZoneTree/compare/release-v1.2.7...release-v1.2.8

Release release-v1.2.4

Announcing release-v1.2.4

What’s Changed

  • Performance is multiplied by a factor of 10 depending on the data and tuning options.
  • Memory usage decreased roughly by 75%
  • SkipList is replaced by B+Tree in https://github.com/koculu/ZoneTree/pull/6
  • Added New WAL Mode = None in order to maximize insert speed for bulk operations.
  • Starting with this version, it is possible with ZoneTree to insert 100 Million integer key-value pairs in 20 seconds using WAL mode None.
  • Fixed several bugs.
  • Added B+Tree lock mode option.

Full Changelog: https://github.com/koculu/ZoneTree/compare/release-v1.2.1...release-v1.2.4

Release release-v1.2.6

Announcing release-v1.2.6
  • Fixed Compressed File Stream tail writer synchronization issue.
  • Added default serializers and comparers for .NET primitives.
  • Fixed reverse iterator unexpected jumps under parallel inserts.
  • Improved iteration speed.

Full Changelog: https://github.com/koculu/ZoneTree/compare/release-v1.2.4...release-v1.2.6

Release release-v1.2.1

Announcing release-v1.2.1
  • Fixed maintainer that waits stopped threads.
  • Increased compressed file stream length support up to 2^64 bytes.

Full Changelog: https://github.com/koculu/ZoneTree/compare/release-v1.2.0...release-v1.2.1

Release release-v1.1.7

Announcing release-v1.1.7
  • Fix multi segment incorrect key meta data issue.
  • Reduced write amplification for sorted inserts by %97.
  • Reduced write amplification for random inserts by %21.

Full Changelog: https://github.com/koculu/ZoneTree/compare/release-v1.1.6...release-v1.1.7

Release release-v1.1.9

Announcing release-v1.1.9
  • Fixed segment id collision issue.
  • Reduced write amplification for random inserts by 100%.
  • Improved performance.

Full Changelog: https://github.com/koculu/ZoneTree/compare/release-v1.1.7...release-v1.1.9

Release release-v1.2.0

Announcing release-v1.2.0
  • Added support up to 2^64 unique segment files.

Full Changelog: https://github.com/koculu/ZoneTree/compare/release-v1.1.9...release-v1.2.0

Release release-v1.1.6

Announcing release-v1.1.6
  • Added multiple disk segment support. (Disk Segment Mode)
  • Improved merge speed.
  • Stabilize the performance to be linear even after 100M+ record count.
  • Improved durability by separating data files.
  • Added parameters to adjust data separation by minimum - maximum size.
  • Single Disk segment is still supported via configuration option.

Full Changelog: https://github.com/koculu/ZoneTree/compare/release-v1.1.5...release-v1.1.6

Release release-v1.1.5

Announcing release-v1.1.5
  • Fixed compressed file stream concurrency issue.
  • Fixed a bug that make concurrent FileStream disposal possible.
  • Fixed thread starvation issue by creating a thread per merge operation.
  • Fixed an issue that appears on 50M insert.
  • Optimize memory usage by adding block cache limit controller.
  • Default WAL mode is changed to the fastest one, Lazy.

Full Changelog: https://github.com/koculu/ZoneTree/compare/release-v1.1.3...release-v1.1.5

Release release-v1.1.2

Announcing release-v1.1.2
  • Fixed an important typo bug that prevents trees from loading. Many thanks to 👍 @ksemenenko 👍
  • Added history record save on auto-commit.
  • Improved benchmark tool.
  • WAL Intermediate buffers are flushed to the disk. (improved crash recovery)
  • Code cleanup.

Full Changelog: https://github.com/koculu/ZoneTree/compare/release-v1.1.1...release-v1.1.2

Release release-v1.1.3

Announcing release-v1.1.3
  • Added an abstraction layer over File Stream and File operations.
  • Added capability of integration with cloud-blob providers and in-memory streaming services.

Full Changelog: https://github.com/koculu/ZoneTree/compare/release-v1.1.2...release-v1.1.3

Release release-v1.1.0

Announcing release-v1.1.0
  • Improved crash resilience.
  • Truncate incomplete WAL records due to a process crash or power cut.
  • Save tail records in compressed WAL files periodically to improve durability on non-immediate WAL modes.
  • Adds configuration validation to match existing WAL and compression options.
  • Include WAL tail records on incremental backup.
  • Fixed WAL race conditions.

Full Changelog: https://github.com/koculu/ZoneTree/compare/release-v1.0.9...release-v1.1.0

Release release-v1.1.1

Announcing release-v1.1.1
  • Fixed a typo bug that prevents incremental transaction log backup.

Full Changelog: https://github.com/koculu/ZoneTree/compare/release-v1.1.0...release-v1.1.1

Release release-v1.0.9

Announcing release-v1.0.9
  • Added WAL Compression support.
  • Added Disk Segment Compression support.
  • Reduced IO.
  • Improved performance.

Full Changelog: https://github.com/koculu/ZoneTree/compare/release-v1.0.8...release-v1.0.9

Release release-v1.0.8

Announcing release-v1.0.8
  • Improved WAL and Transaction Log Configuration
  • Added Immediate and Lazy Write Ahead Log Modes
  • Added disposal of immutable segment file streams
  • Improved durability with 3-length-stamps
  • Added incremental transaction log backup option
  • Added Fluent Transaction API
  • Added exceptionless transaction API
  • Improved performance

Full Changelog: https://github.com/koculu/ZoneTree/compare/release-v1.0.7...release-v1.0.8

Release release-v1.0.7

Announcing release-v1.0.7
  • Fixed skip write rule issue.
  • Added batch rollback method to clear uncommitted transactions on database restart.
  • Added methods to clear stale transactions.
  • Improved performance.

Full Changelog: https://github.com/koculu/ZoneTree/compare/release-v1.0.6...release-v1.0.7

Release release-v1.0.6

Announcing release-v1.0.6
  • Added Read Committed Isolation support.
  • Fixed transaction log compaction strategy.
  • Improved Transactional ZoneTree interface.
  • Added maintenance capabilities.

Full Changelog: https://github.com/koculu/ZoneTree/compare/release-v1.0.5...release-v1.0.6

Release release-v1.0.5

Announcing release-v1.0.5
  • Added Optimistic Transaction support with ACID properties.
  • Transaction Log auto compaction support.
  • Several fixes and improvements.
  • Added Low-level transaction API to enable multiple ZoneTrees to operate in a single transaction.

Full Changelog: https://github.com/koculu/ZoneTree/compare/release-v1.0.4...release-v1.0.5

Release release-v1.0.3

Announcing release-v1.0.3
  • Reorganize atomicity of update operations across all segments.
  • Make iterators auto refreshable.
  • Lazy initialize iterators’ internal segment iterators.
  • Add manual refresh capability to the iterators.
  • Added ZoneTree is disposing event.
  • Added new disk segment is activated event.
  • Implemented shorter lock region for merge operation.
  • Automatically dispose iterators when the tree is disposing.

Full Changelog: https://github.com/koculu/ZoneTree/compare/release-v1.0.1...release-v1.0.3

Release release-v1.0.4

Announcing release-v1.0.4
  • Iterator performance improvement.
  • Deleted record iteration.
  • Auto refresh property becomes read-only.
  • Previous Node pointer marked volatile.
  • Code quality improvement.

Full Changelog: https://github.com/koculu/ZoneTree/compare/release-v1.0.3...release-v1.0.4

Release release-v1.0.0

Announcing release-v1.0.0

What’s Changed

  • This is the first version!
  • Please read the documentation for more information.

Release release-v1.0.1

Announcing release-v1.0.1

Adds value read/update atomicity if required. This allows concurrent access for struct value types bigger than processor word size.

Full Changelog: https://github.com/koculu/ZoneTree/compare/release-v1.0.0...release-v1.0.1