コード例 #1
0
        public async Task Commit()
        {
            if (_committing || _committed)
            {
                return;
            }

            _committing = true;

            this.Log($"merges: {_merges}");

            foreach (var column in _dirty)
            {
                using (var vectorStream = SessionFactory.CreateAppendStream(
                           Path.Combine(SessionFactory.Dir, $"{CollectionId}.{column.Key}.vec")))
                {
                    using (var writer = new ColumnSerializer(
                               CollectionId, column.Key, SessionFactory, new RemotePostingsWriter(_config, CollectionName)))
                    {
                        await writer.CreateColumnSegment(column.Value, vectorStream);
                    }
                }
            }

            _committed  = true;
            _committing = false;

            this.Log(string.Format("***FLUSHED***"));
        }
コード例 #2
0
 private async Task SerializeColumn(long keyId, VectorNode column)
 {
     using (var columnWriter = new ColumnSerializer(
                CollectionId, keyId, SessionFactory, ixFileExtension: "ixo", pageFileExtension: "ixop"))
     {
         await columnWriter.SerializeColumnSegment(column);
     }
 }