title: Is there a way to mark the end of each protobuf-net record
body: <p>I am saving a series of protobuf-net objects in a database cell as a Byte[] of length-prefixed protobuf-net objects:</p>
  
  <pre><code>//retrieve existing protobufs from database and convert to Byte[]
  object q = sql_agent_cmd.ExecuteScalar();
  older-pbfs = (Byte[])q;
  
  // serialize the new pbf to add into MemoryStream m
  //now write p and the new pbf-net Byte[] into a memory stream and retrieve the sum
  
  var s = new System.IO.MemoryStream();
  s.Write(older-pbfs, 0, older-pbfs.Length);
  s.Write(m.GetBuffer(), 0, m.ToArray().Length); // append new bytes at the end of old
  Byte[] sum-pbfs = s.ToArray();
  
  //sum-pbfs = old pbfs + new pbf. Insert sum-pbfs into database
  </code></pre>
  
  <p>This works fine. My concern is what happens if there is slight db corruption. It will no longer be possible to know which byte is the length prefix and the entire cell contents would have to be discarded. Wouldn't it be advisable to also use some kind of a end-of-pbf-object indicator (kind of like the \n or EOF indicators used in text files). This way even if a record gets corrupted, the other records would be recoverable.</p>
  
  <p>If so, what is the recommended way to add end-of-record indicators at the end of each pbf.</p>
  
  <p>Using protobuf-netv2 and C# on Visual Studio 2010.</p>
  
  <p>Thanks
  Manish</p>