Key Features
- High Performance: Optimized for speed with novel LSM Tree enhancements.
- Transactional and ACID-Compliant: Ensures data integrity with full transaction support.
- In-Memory and On-Disk Operation: Flexibly operate entirely in memory or persist data to storage backends.
- Cloud Storage Support: Compatible with cloud-based storage solutions for scalable deployments.
- Efficient Concurrency Control: Supports concurrent operations with minimal locking overhead.
- Customizable: Offers configurable options like memory usage, data compression, and more.
- Open Source: Available under the MIT License for free use and distribution.
Why ZoneTree?
ZoneTree is designed to meet the demanding needs of modern applications that require high-performance data storage with transactional integrity. Whether you’re building a real-time analytics platform, a financial application, or any system where speed and reliability are paramount, ZoneTree provides the foundation you need.
Performance Highlights
- Read/Write Speed: Achieves millions of operations per second in in-memory mode.
- Optimized Storage: Efficient disk space utilization with data compression support.
- Concurrent Access: Allows multiple threads to perform operations without significant contention.
Getting Started
Installation
Install ZoneTree via NuGet package manager:
dotnet add package ZoneTree
Basic Usage Example
Here’s a simple example to get you started:
using Tenray.ZoneTree;
using Tenray.ZoneTree.Options;
// Configure ZoneTree options
var options = new ZoneTreeOptions<int, string>
{
// Configuration options
};
// Create a ZoneTree instance
using var zoneTree = new ZoneTree<int, string>(options);
// Insert data
zoneTree.Upsert(1, "Value 1");
zoneTree.Upsert(2, "Value 2");
// Retrieve data
var value = zoneTree.Get(1);
// Delete data
zoneTree.Delete(2);
// Dispose when done
zoneTree.Dispose();
For more detailed examples and advanced configurations, visit the documentation.
Features in Depth
Transaction Support
ZoneTree supports full transaction capabilities, allowing you to perform multiple operations atomically:
using var transaction = zoneTree.BeginTransaction();
transaction.Upsert(3, "Value 3");
transaction.Delete(1);
transaction.Commit();
Concurrency Control
Optimistic concurrency allows for high throughput in multi-threaded environments:
- Optimistic Transactions: Minimal locking, maximizing performance.
- Atomic Read-Modify-Update: Ensures data consistency during updates.
Customization Options
- Data Compression: Enable compression for write-ahead logs (WAL) and disk segments.
- Memory Usage: Configure how much data is retained in memory.
- WAL Modes: Choose from different modes to balance performance and durability.
- Custom Serializers: Implement custom logic for data serialization and comparison.
Benchmarks
ZoneTree has been rigorously tested to ensure top performance:
- In-Memory Operations: Over 1 million read/write operations per second.
- Disk-Based Operations: Optimized for SSDs with efficient read/write patterns.
- Concurrency: High throughput with minimal contention in multi-threaded scenarios.
For detailed benchmark results, visit the performance section.
Community and Support
Join our growing community of developers:
- GitHub: github.com/koculu/ZoneTree
- Report Issues: Use the GitHub issues page to report bugs or request features.
- Contribute: Check out our contribution guidelines to get started.
- Discussions: Engage with other users and contributors on our discussion board.
License
ZoneTree is open-source software licensed under the MIT License. You are free to use, modify, and distribute it in your projects.
Related Projects
- ZoneTree FullTextSearch: Extend ZoneTree with full-text search capabilities. Learn more »
- Topaz: Multithreaded JavaScript engine for .NET. Learn more »
Note: For more detailed information, tutorials, and API references, please visit the ZoneTree documentation.