Ejemplo n.º 1
0
        private string writeToLog(IWalEntry entry)
        {
            var bytes = entry.Marshal(out string err);

            byte[] compressed;
            if (err == null)
            {
                compressed = SnappyPI.SnappyCodec.Compress(bytes.EndWrite(), 0, bytes.Length);
                bytes.Release();
            }
            else
            {
                bytes.Release();
                return(err);
            }
            lock (lockthis)
            {
                rollSegment();
                currentSegmentWriter.Write(entry.Type(), compressed);
                currentSegmentWriter.Flush();
                Interlocked.Add(ref stats.CurrentBytes, currentSegmentWriter.Size);
                LastWriteTime = DateTime.Now.Ticks;
                return(err);
            }
        }