public void BiserJsonEncode(Biser.JsonEncoder encoder) { encoder.Add("P1", this.P1); encoder.Add("P2", this.P2); encoder.Add("P3", this.P3, (r) => { encoder.Add(r); }); encoder.Add("P4", this.P4); encoder.Add("P5", this.P5); }
public void BiserJsonEncode(Biser.JsonEncoder encoder) { encoder.Add("Term", this.Term); encoder.Add("Index", this.Index); encoder.Add("Data", this.Data); encoder.Add("IsCommitted", this.IsCommitted); encoder.Add("PreviousStateLogId", this.PreviousStateLogId); encoder.Add("PreviousStateLogTerm", this.PreviousStateLogTerm); encoder.Add("RedirectId", this.RedirectId); }
public void BiserJsonEncode(Biser.JsonEncoder encoder) { encoder.Add("EntityName", this.EntityName); //encoder.Add("LeaderHeartbeatMs", this.LeaderHeartbeatMs); encoder.Add("DelayedPersistenceMs", this.DelayedPersistenceMs); //encoder.Add("NoLeaderAddCommandResendIntervalMs", this.NoLeaderAddCommandResendIntervalMs); encoder.Add("DelayedPersistenceIsActive", this.DelayedPersistenceIsActive); encoder.Add("InMemoryEntity", this.InMemoryEntity); encoder.Add("InMemoryEntityStartSyncFromLatestEntity", this.InMemoryEntityStartSyncFromLatestEntity); //encoder.Add("ElectionTimeoutMinMs", this.ElectionTimeoutMinMs); //encoder.Add("ElectionTimeoutMaxMs", this.ElectionTimeoutMaxMs); //encoder.Add("LeaderLogResendIntervalMs", this.LeaderLogResendIntervalMs); //encoder.Add("RaftNodeIdExternalForEmulator", this.RaftNodeIdExternalForEmulator); //encoder.Add("InitialQuantityOfRaftNodesInTheCluster", this.InitialQuantityOfRaftNodesInTheCluster); encoder.Add("VerboseRaft", this.VerboseRaft); encoder.Add("VerboseTransport", this.VerboseTransport); }
public void BiserJsonEncode(Biser.JsonEncoder encoder) { encoder.Add("Host", this.Host); encoder.Add("Port", this.Port); }
public void BiserJsonEncode(Biser.JsonEncoder encoder) { encoder.Add("LeaderTerm", this.LeaderTerm); encoder.Add("StateLogEntry", StateLogEntry); encoder.Add("IsCommitted", this.IsCommitted); }
public void BiserJsonEncode(Biser.JsonEncoder encoder) { encoder.Add("RaftEntitiesSettings", RaftEntitiesSettings, (r) => { encoder.Add(r); }); encoder.Add("TcpClusterEndPoints", TcpClusterEndPoints, (r) => { encoder.Add(r); }); }
}//eof public void BiserJsonEncode(Biser.JsonEncoder encoder) { encoder.Add("P1", this.P1); encoder.Add("P3", this.P3); encoder.Add("P2", this.P2); }
public void BiserJsonEncode(Biser.JsonEncoder encoder) { encoder.Add("VoteType", (System.Int16)VoteType); encoder.Add("Barabaka", Barabaka); }
public void BiserJsonEncode(Biser.JsonEncoder encoder) { encoder.Add("P1", this.P1); encoder.Add("P2", this.P2); encoder.Add("P3", this.P3); encoder.Add("P4", this.P4, (r) => { encoder.Add(r); }); encoder.Add("P5", this.P5, (r) => { encoder.Add(r); }); encoder.Add("P6", this.P6, (r) => { encoder.Add(r, (r1) => { encoder.Add(r1); }); }); encoder.Add("P7", this.P7); ////Storing as List //if (this.P8 != null) // encoder.Add("P8", this.P8, (r) => // { // encoder.Add(new List<Action>() { // { ()=>encoder.Add(r.Item1)}, // { ()=>encoder.Add(r.Item2)}, // { ()=>encoder.Add(r.Item3)}, // }); // }); ////Storing as Dictionary /// if (this.P8 != null) encoder.Add("P8", this.P8, (r) => { encoder.Add(new Dictionary <string, Action>() { { "Item1", () => encoder.Add(r.Item1) }, { "Item2", () => encoder.Add(r.Item2) }, { "Item3", () => encoder.Add(r.Item3) }, }); }); ////Storing as List //if (this.P9 != null) // encoder.Add("P9", new List<Action>() { //Array of heterogenous types // { ()=>encoder.Add(this.P9.Item1)}, // { ()=>encoder.Add(this.P9.Item2)}, // { ()=>encoder.Add(this.P9.Item3)}, // { ()=>encoder.Add(this.P9.Item4)}, // }); ////Storing as Dictionary if (this.P9 != null) { encoder.Add("P9", new Dictionary <string, Action>() //Array of heterogenous types { { "Item1", () => encoder.Add(this.P9.Item1) }, { "Item2", () => encoder.Add(this.P9.Item2) }, { "Item3", () => encoder.Add(this.P9.Item3) }, { "Item4", () => encoder.Add(this.P9.Item4) }, }); } if (this.P11 != null) { encoder.Add("P11", P11, (r) => { encoder.Add(r); }); } encoder.Add("P12", this.P12); encoder.Add("P13", this.P13, (r) => { encoder.Add(r); }); encoder.Add("P15", this.P15, (r) => { encoder.Add(r, (r1) => { encoder.Add(r1); }); }); encoder.Add("P16", this.P16, (r) => { encoder.Add(r, (r1) => { encoder.Add(r1); }); }); encoder.Add("P17", this.P17); encoder.Add("P18", this.P18, (r) => { encoder.Add(r); }); ////Storing as List //if (this.P19 != null) // encoder.Add("P19", new List<Action>() { //Array of heterogenous types // { ()=>encoder.Add(this.P19.Item1)}, // { ()=>encoder.Add(this.P19.Item2)}, // }); ////Storing as Dictionary with Item1, item2 etc if (this.P19 != null) { encoder.Add("P19", new Dictionary <string, Action>() //Array of heterogenous types { { "Item1", () => encoder.Add(this.P19.Item1) }, { "Item2", () => encoder.Add(this.P19.Item2) }, }); } }
static void t1() { /* * Start * Protobuf obj length: 22 * Biser Binary obj length: 17 * NetJson obj length: 129 * Biser Json obj length: 129 * * Protobuf encode: 1184 ms * Protobuf decode: 1569 ms * Biser Binary encode: 396 ms * Biser Binary decode: 209 ms * NetJson encode: 1350 ms * NetJson decode: 1902 ms * Biser Json encode: 2266 ms * Biser Json decode: 3659 ms * Press any key */ System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch(); // It's an operational class from https://github.com/hhblaze/Raft.Net/blob/master/Raft/StateMachine/StateLogEntry.cs StateLogEntry obj = new StateLogEntry() { Data = new byte[] { 1, 2, 3, 4, 5 }, Index = 458, IsCommitted = true, PreviousStateLogId = 4789, PreviousStateLogTerm = 447, RedirectId = 12, Term = 99 }; Console.WriteLine("t1----------------------------------"); //Protobuf. Warming up, getting length var pBt = obj.SerializeProtobuf(); Console.WriteLine($"Protobuf obj length: {pBt.Length}"); var pObj = pBt.DeserializeProtobuf <StateLogEntry>(); //Biser. Getting length var bBt = new Biser.Encoder().Add(obj).Encode(); Console.WriteLine($"Biser Binary obj length: {bBt.Length}"); var bObj = StateLogEntry.BiserDecode(bBt); //NetJson. Getting length var njss = NetJSON.NetJSON.Serialize(obj); Console.WriteLine($"NetJson obj length: {System.Text.Encoding.UTF8.GetBytes(njss).Length}"); var bnjss = NetJSON.NetJSON.Deserialize <StateLogEntry>(njss); //Biser Json. Getting length var bjss = new Biser.JsonEncoder(obj).GetJSON(); Console.WriteLine($"Biser Json obj length: {System.Text.Encoding.UTF8.GetBytes(bjss).Length}"); var bbjss = StateLogEntry.BiserJsonDecode(bjss); //Message Pack var mBt = MessagePackSerializer.Serialize(obj); Console.WriteLine($"Message Pack obj length: {mBt.Length}"); var mc2 = MessagePackSerializer.Deserialize <StateLogEntry>(mBt); Console.WriteLine(""); byte[] tbt = null; StateLogEntry tobj = null; sw.Start(); for (int i = 0; i < 1000000; i++) { tbt = obj.SerializeProtobuf(); } sw.Stop(); Console.WriteLine($"Protobuf encode: {sw.ElapsedMilliseconds} ms"); sw.Reset(); sw.Start(); for (int i = 0; i < 1000000; i++) { tobj = pBt.DeserializeProtobuf <StateLogEntry>(); } sw.Stop(); Console.WriteLine($"Protobuf decode: {sw.ElapsedMilliseconds} ms"); sw.Reset(); sw.Start(); for (int i = 0; i < 1000000; i++) { tbt = new Biser.Encoder().Add(obj).Encode(); } sw.Stop(); Console.WriteLine($"Biser Binary encode: {sw.ElapsedMilliseconds} ms"); sw.Reset(); sw.Start(); for (int i = 0; i < 1000000; i++) { tobj = StateLogEntry.BiserDecode(bBt); } sw.Stop(); Console.WriteLine($"Biser Binary decode: {sw.ElapsedMilliseconds} ms"); sw.Reset(); sw.Start(); for (int i = 0; i < 1000000; i++) { njss = NetJSON.NetJSON.Serialize(obj); } sw.Stop(); Console.WriteLine($"NetJson encode: {sw.ElapsedMilliseconds} ms"); sw.Reset(); sw.Start(); for (int i = 0; i < 1000000; i++) { bnjss = NetJSON.NetJSON.Deserialize <StateLogEntry>(njss); } sw.Stop(); Console.WriteLine($"NetJson decode: {sw.ElapsedMilliseconds} ms"); sw.Reset(); sw.Start(); for (int i = 0; i < 1000000; i++) { bjss = new Biser.JsonEncoder(obj).GetJSON(); } sw.Stop(); Console.WriteLine($"Biser Json encode: {sw.ElapsedMilliseconds} ms"); sw.Reset(); sw.Start(); for (int i = 0; i < 1000000; i++) { bbjss = StateLogEntry.BiserJsonDecode(bjss); } sw.Stop(); Console.WriteLine($"Biser Json decode: {sw.ElapsedMilliseconds} ms"); sw.Reset(); sw.Start(); for (int i = 0; i < 1000000; i++) { mBt = MessagePackSerializer.Serialize(obj); } sw.Stop(); Console.WriteLine($"MessagePack encode: {sw.ElapsedMilliseconds} ms"); sw.Reset(); sw.Start(); for (int i = 0; i < 1000000; i++) { mc2 = MessagePackSerializer.Deserialize <StateLogEntry>(mBt); } sw.Stop(); Console.WriteLine($"MessagePack decode: {sw.ElapsedMilliseconds} ms"); sw.Reset(); }