using System.Collections.Generic; using System.Threading.Tasks; namespace ZeroLevel.Services.PartitionStorage { /// /// Provides write operations in catalog partition /// /// Key type /// Type of one input value /// Type of records aggregate public interface IStorePartitionBuilder : IStorePartitionBase { long TotalRecords { get; } IAsyncEnumerable> Iterate(); /// /// Writing a key-value pair /// Task Store(TKey key, TInput value); /// /// Called after all key-value pairs are written to the partition /// void CompleteAdding(); /// /// Performs compression/grouping of recorded data in a partition /// Task Compress(); /// /// Rebuilds indexes for data in a partition /// void RebuildIndex(); } }