рд╕реАрд░рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдкреНрд░рд╛рд░реВрдкреЛрдВ рдХреА рддреБрд▓рдирд╛

рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рдХреНрд░рдорд╛рдВрдХрди рдХреЗ рдкреНрд░рд╛рд░реВрдк рдХреЛ рдЪреБрдирддреЗ рд╕рдордп, рдЬрд┐рдиреНрд╣реЗрдВ рдХрддрд╛рд░, рд▓реЙрдЧ рдпрд╛ рдЕрдиреНрдп рдЬрдЧрд╣реЛрдВ рдкрд░ рд▓рд┐рдЦрд╛ рдЬрд╛рдПрдЧрд╛, рдХрдИ рд╕рд╡рд╛рд▓ рдЕрдХреНрд╕рд░ рдЙрдарддреЗ рд╣реИрдВ рдЬреЛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдЕрдВрддрд┐рдо рд╡рд┐рдХрд▓реНрдк рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЗрди рдкреНрд░рдореБрдЦ рдореБрджреНрджреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреНрд░рдордмрджреНрдзрддрд╛ рдХреА рдЧрддрд┐ рдФрд░ рдкреНрд░рд╛рдкреНрдд рд╕рдВрджреЗрд╢ рдХрд╛ рдЖрдХрд╛рд░ рд╣реИред рдЪреВрдВрдХрд┐ рдРрд╕реЗ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХрдИ рдкреНрд░рд╛рд░реВрдк рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдФрд░ рдкрд░рд┐рдгрд╛рдо рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред

рдЯреЗрд╕реНрдЯ рдХреА рддреИрдпрд╛рд░реА


рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реНрд╡рд░реВрдкреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:

  1. рдЬрд╛рд╡рд╛ рдХреНрд░рдорд╛рдВрдХрди
  2. Json
  3. рдПрд╡рд░реЛ
  4. Protobuf
  5. рдереНрд░рд┐рдлрд╝реНрдЯ (рдмрд╛рдЗрдирд░реА, рдХреЙрдореНрдкреИрдХреНрдЯ)
  6. Msgpack


рд╕реНрдХрд╛рд▓рд╛ рдХреЛ рдкреАрдПрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдЪреБрдирд╛ рдЧрдпрд╛ рдерд╛ред
рдореБрдЦреНрдп рдкрд░реАрдХреНрд╖рдг рдЙрдкрдХрд░рдг рд╕реНрдХреЗрд▓рдореАрдЯрд░ рд╣реЛрдЧрд╛ред

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдорд╛рдкрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рддреБрд▓рдирд╛ рдХреА рдЬрд╛рдПрдЧреА: рдХреНрд░рдордмрджреНрдз рдФрд░ deserialize рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╕рдордп, рдФрд░ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЖрдХрд╛рд░ред

рдЙрдкрдпреЛрдЧ рдореЗрдВ рдЖрд╕рд╛рдиреА, рдЗрд╕ рддреБрд▓рдирд╛ рдореЗрдВ рд╕рд░реНрдХрд┐рдЯ рдФрд░ рдЕрдиреНрдп рдорд╣рддреНрд╡рдкреВрд░реНрдг рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рднрд╛рдЧ рдирд╣реАрдВ рд▓реЗрдЧреАред

рдЗрдирдкреБрдЯ рдЬрдирд░реЗрд╢рди


рдкреНрд░рдпреЛрдЧреЛрдВ рдХреА рд╢реБрджреНрдзрддрд╛ рдХреЗ рд▓рд┐рдП, рдкрд╣рд▓реЗ рдПрдХ рдбреЗрдЯрд╛ рд╕реЗрдЯ рдЙрддреНрдкрдиреНрди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрдирдкреБрдЯ рдкреНрд░рд╛рд░реВрдк рдПрдХ CSV рдлрд╝рд╛рдЗрд▓ рд╣реИред рд╕рд╛рдВрдЦреНрдпрд┐рдХ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдзрд╛рд░рдг `рд░реИрдВрдбрдо.рдиреЗрдХреНрд╕реНрдЯ [...]` рдФрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдорд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП `UUID.randomUUID ()` рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреЗрдЯрд╛ рдЙрддреНрдкрдиреНрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬрдирд░реЗрдЯ рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рдХреЛ рдХреИрдиреНрдЯрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╕реАрдПрд╕рд╡реА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░, 100k рд░рд┐рдХреЙрд░реНрдб рдХреЗ 3 рдбреЗрдЯрд╛ рд╕реЗрдЯ рдЙрддреНрдкрдиреНрди рд╣реБрдП рдереЗ:

  1. рдорд┐рд╢реНрд░рд┐рдд рдбреЗрдЯрд╛ - 28 рдПрдордмреА

    рдорд┐рд╢реНрд░рд┐рдд рдбреЗрдЯрд╛
    final case class MixedData( f1: Option[String], f2: Option[Double], f3: Option[Long], f4: Option[Int], f5: Option[String], f6: Option[Double], f7: Option[Long], f8: Option[Int], f9: Option[Int], f10: Option[Long], f11: Option[Float], f12: Option[Double], f13: Option[String], f14: Option[String], f15: Option[Long], f16: Option[Int], f17: Option[Int], f18: Option[String], f19: Option[String], f20: Option[String], ) extends Data 

  2. рдХреЗрд╡рд▓ рд▓рд╛рдЗрдиреЗрдВ - 71 рдПрдордмреА

    OnlyStrings
     final case class OnlyStrings( f1: Option[String], f2: Option[String], f3: Option[String], f4: Option[String], f5: Option[String], f6: Option[String], f7: Option[String], f8: Option[String], f9: Option[String], f10: Option[String], f11: Option[String], f12: Option[String], f13: Option[String], f14: Option[String], f15: Option[String], f16: Option[String], f17: Option[String], f18: Option[String], f19: Option[String], f20: Option[String], ) extends Data 

  3. рдХреЗрд╡рд▓ рд╕рдВрдЦреНрдпрд╛ (рд▓рдВрдмреА) - 20 рдПрдордмреА

    OnlyLongs
     final case class OnlyLongs( f1: Option[Long], f2: Option[Long], f3: Option[Long], f4: Option[Long], f5: Option[Long], f6: Option[Long], f7: Option[Long], f8: Option[Long], f9: Option[Long], f10: Option[Long], f11: Option[Long], f12: Option[Long], f13: Option[Long], f14: Option[Long], f15: Option[Long], f16: Option[Long], f17: Option[Long], f18: Option[Long], f19: Option[Long], f20: Option[Long], ) extends Data 


рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдореЗрдВ 20 рдлрд╝реАрд▓реНрдб рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рдлрд╝реАрд▓реНрдб рдХрд╛ рдорд╛рди рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИред

рдкрд░реАрдХреНрд╖рдг


рдкреАрд╕реА рдХреЗ рд▓рдХреНрд╖рдг рдЬрд┐рд╕ рдкрд░ рдкрд░реАрдХреНрд╖рдг рд╣реБрдЖ, рд╕реНрдХреИрд▓рд╛ рдФрд░ рдЬрд╛рд╡рд╛ рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг:
рдкреАрд╕реА: 1.8 рдЧреАрдЧрд╛рд╣рд░реНрдЯреНрдЬрд╝ рдЗрдВрдЯреЗрд▓ рдХреЛрд░ i5-5350U (2 рднреМрддрд┐рдХ рдХреЛрд░), 8 рдЬреАрдмреА 1600 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ рдбреАрдбреАрдЖрд░ 3, рдПрд╕рдПрд╕рдбреА 010128 рдЬреА
рдЬрд╛рд╡рд╛ рд╕рдВрд╕реНрдХрд░рдг: 1.8.0_144-b01; рд╣реЙрдЯрд╕реНрдкреЙрдЯ: 25.144-b01 рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВ
рд╕реНрдХреЗрд▓ рд╕рдВрд╕реНрдХрд░рдг: 2.12.8

рдЬрд╛рд╡рд╛ рдХреНрд░рдорд╛рдВрдХрди


рдорд┐рд╢реНрд░рд┐рдд рдбреЗрдЯрд╛рдХреЗрд╡рд▓ рд▓рдВрдмреЗ рд╕рдордп рддрдХрдХреЗрд╡рд▓ рддрд╛рд░
рд╕реАрд░рд┐рдпрд▓рд╛рдЗрдЬреЗрд╢рди, рдПрдордПрд╕3444.532586.235548.63
рджреЗрд╢реАрдХрд░рдг, рдПрдордПрд╕852.62617.652006.41
рдЖрдХрд╛рд░, рдПрдо.рдмреА.362486

Json


рдорд┐рд╢реНрд░рд┐рдд рдбреЗрдЯрд╛рдХреЗрд╡рд▓ рд▓рдВрдмреЗ рд╕рдордп рддрдХрдХреЗрд╡рд▓ рддрд╛рд░
рд╕реАрд░рд┐рдпрд▓рд╛рдЗрдЬреЗрд╢рди, рдПрдордПрд╕5280.674358.135958.92
рджреЗрд╢реАрдХрд░рдг, рдПрдордПрд╕3347.202730.194039.24
рдЖрдХрд╛рд░, рдПрдо.рдмреА.5236124

рдПрд╡рд░реЛ


рд╕реАрдзреЗ рдкрд░реАрдХреНрд╖рдг рд╕реЗ рдкрд╣рд▓реЗ рдПрд╡рд░реЛ рд╕рд░реНрдХрд┐рдЯ рдЙрддреНрдкрдиреНрди рд╣реБрдЖ рдерд╛ред рдЗрд╕рдХреЗ рд▓рд┐рдП, avro4s рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдорд┐рд╢реНрд░рд┐рдд рдбреЗрдЯрд╛рдХреЗрд╡рд▓ рд▓рдВрдмреЗ рд╕рдордп рддрдХрдХреЗрд╡рд▓ рддрд╛рд░
рд╕реАрд░рд┐рдпрд▓рд╛рдЗрдЬреЗрд╢рди, рдПрдордПрд╕2146.721546.952829.31
рджреЗрд╢реАрдХрд░рдг, рдПрдордПрд╕692.56535.96944.27
рдЖрдХрд╛рд░, рдПрдо.рдмреА.221173

Protobuf


рдкреНрд░реЛрдЯреЛрдмреЙрдлрд╝ рд╕реНрдХреАрдорд╛
 syntax = "proto3"; package protoBenchmark; option java_package = "protobufBenchmark"; option java_outer_classname = "data"; message MixedData { string f1 = 1; double f2 = 2; sint64 f3 = 3; sint32 f4 = 4; string f5 = 5; double f6 = 6; sint64 f7 = 7; sint32 f8 = 8; sint32 f9 = 9; sint64 f10 = 10; double f11 = 11; double f12 = 12; string f13 = 13; string f14 = 14; sint64 f15 = 15; sint32 f16 = 16; sint32 f17 = 17; string f18 = 18; string f19 = 19; string f20 = 20; } message OnlyStrings { string f1 = 1; string f2 = 2; string f3 = 3; string f4 = 4; string f5 = 5; string f6 = 6; string f7 = 7; string f8 = 8; string f9 = 9; string f10 = 10; string f11 = 11; string f12 = 12; string f13 = 13; string f14 = 14; string f15 = 15; string f16 = 16; string f17 = 17; string f18 = 18; string f19 = 19; string f20 = 20; } message OnlyLongs { sint64 f1 = 1; sint64 f2 = 2; sint64 f3 = 3; sint64 f4 = 4; sint64 f5 = 5; sint64 f6 = 6; sint64 f7 = 7; sint64 f8 = 8; sint64 f9 = 9; sint64 f10 = 10; sint64 f11 = 11; sint64 f12 = 12; sint64 f13 = 13; sint64 f14 = 14; sint64 f15 = 15; sint64 f16 = 16; sint64 f17 = 17; sint64 f18 = 18; sint64 f19 = 19; sint64 f20 = 20; } 

рдкреНрд░реЛрдЯреЛрдмреБрдлрд╝ 3 рдХрдХреНрд╖рд╛рдПрдВ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕реНрдХрд╛рд▓рд╛рдкреАрдмреА рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдорд┐рд╢реНрд░рд┐рдд рдбреЗрдЯрд╛рдХреЗрд╡рд▓ рд▓рдВрдмреЗ рд╕рдордп рддрдХрдХреЗрд╡рд▓ рддрд╛рд░
рд╕реАрд░рд┐рдпрд▓рд╛рдЗрдЬреЗрд╢рди, рдПрдордПрд╕1169.40865.061856.20
рджреЗрд╢реАрдХрд░рдг, рдПрдордПрд╕113.5677,38256.02
рдЖрдХрд╛рд░, рдПрдо.рдмреА.221173

рдХрд┐рдлрд╝рд╛рдпрдд


рдереНрд░рд┐рдлреНрдЯ рд╕реНрдХреАрдорд╛
 namespace java thriftBenchmark.java #@namespace scala thriftBenchmark.scala typedef i32 int typedef i64 long struct MixedData { 1:optional string f1, 2:optional double f2, 3:optional long f3, 4:optional int f4, 5:optional string f5, 6:optional double f6, 7:optional long f7, 8:optional int f8, 9:optional int f9, 10:optional long f10, 11:optional double f11, 12:optional double f12, 13:optional string f13, 14:optional string f14, 15:optional long f15, 16:optional int f16, 17:optional int f17, 18:optional string f18, 19:optional string f19, 20:optional string f20, } struct OnlyStrings { 1:optional string f1, 2:optional string f2, 3:optional string f3, 4:optional string f4, 5:optional string f5, 6:optional string f6, 7:optional string f7, 8:optional string f8, 9:optional string f9, 10:optional string f10, 11:optional string f11, 12:optional string f12, 13:optional string f13, 14:optional string f14, 15:optional string f15, 16:optional string f16, 17:optional string f17, 18:optional string f18, 19:optional string f19, 20:optional string f20, } struct OnlyLongs { 1:optional long f1, 2:optional long f2, 3:optional long f3, 4:optional long f4, 5:optional long f5, 6:optional long f6, 7:optional long f7, 8:optional long f8, 9:optional long f9, 10:optional long f10, 11:optional long f11, 12:optional long f12, 13:optional long f13, 14:optional long f14, 15:optional long f15, 16:optional long f16, 17:optional long f17, 18:optional long f18, 19:optional long f19, 20:optional long f20, } 

рд╕реНрдХреИрд▓рд╛ рдЬреИрд╕реА рдереНрд░рд┐рдлреНрдЯ рдХрдХреНрд╖рд╛рдПрдВ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕реНрдХреНрд░реВрдЬ рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдмрд╛рдЗрдирд░реАрдорд┐рд╢реНрд░рд┐рдд рдбреЗрдЯрд╛рдХреЗрд╡рд▓ рд▓рдВрдмреЗ рд╕рдордп рддрдХрдХреЗрд╡рд▓ рддрд╛рд░
рд╕реАрд░рд┐рдпрд▓рд╛рдЗрдЬреЗрд╢рди, рдПрдордПрд╕1274.69877.982168.27
рджреЗрд╢реАрдХрд░рдг, рдПрдордПрд╕220.58133.64514.96
рдЖрдХрд╛рд░, рдПрдо.рдмреА.371698

рд╕рдШрдирдорд┐рд╢реНрд░рд┐рдд рдбреЗрдЯрд╛рдХреЗрд╡рд▓ рд▓рдВрдмреЗ рд╕рдордп рддрдХрдХреЗрд╡рд▓ рддрд╛рд░
рд╕реАрд░рд┐рдпрд▓рд╛рдЗрдЬреЗрд╢рди, рдПрдордПрд╕1294.87900.022199.94
рджреЗрд╢реАрдХрд░рдг, рдПрдордПрд╕240.23232.53505.03
рдЖрдХрд╛рд░, рдПрдо.рдмреА.311498

Msgpack


рдорд┐рд╢реНрд░рд┐рдд рдбреЗрдЯрд╛рдХреЗрд╡рд▓ рд▓рдВрдмреЗ рд╕рдордп рддрдХрдХреЗрд╡рд▓ рддрд╛рд░
рд╕реАрд░рд┐рдпрд▓рд╛рдЗрдЬреЗрд╢рди, рдПрдордПрд╕1142.56791.551974.73
рджреЗрд╢реАрдХрд░рдг, рдПрдордПрд╕289.6080.36428.36
рдЖрдХрд╛рд░, рдПрдо.рдмреА.219.673

рдЕрдВрддрд┐рдо рддреБрд▓рдирд╛


рдХреНрд░рдордмрджреНрдзрддрд╛

рдЕрдХреНрд░рдорд╛рдВрдХрди

рдЖрдХрд╛рд░

рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рд╕рдЯреАрдХрддрд╛
рдорд╣рддреНрд╡рдкреВрд░реНрдг: рд╕реАрд░рд┐рдпрд▓рд╛рдЗрдЬреЗрд╢рди рдФрд░ рдбрд┐рд╕рд┐рдПрд░рд▓рд╛рдЗрдЬреЗрд╢рди рдЧрддрд┐ рдХреЗ рдкрд░рд┐рдгрд╛рдо 100% рд╕рдЯреАрдХ рдирд╣реАрдВ рд╣реИрдВред рдмрдбрд╝реА рддреНрд░реБрдЯрд┐ рд╣реИред рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬреЗрд╡реАрдПрдо рд╡рд╛рд░реНрдорд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдХрдИ рдмрд╛рд░ рдЪрд▓рд╛рдП рдЧрдП рдереЗ, рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рд╕реНрдерд┐рд░ рдФрд░ рд╕рдЯреАрдХ рдХрд╣рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдореИрдВ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдХреНрд░рдорд╛рдВрдХрди рдкреНрд░рд╛рд░реВрдк рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдВрддрд┐рдо рдирд┐рд╖реНрдХрд░реНрд╖ рдмрдирд╛рдиреЗ рдХреЗ рдЦрд┐рд▓рд╛рдл рдЕрддреНрдпрдзрд┐рдХ рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВ, рд╕рдордпрд╕реАрдорд╛ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реВрдВред


рдЗрд╕ рддрдереНрдп рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдкрд░рд┐рдгрд╛рдо рдмрд┐рд▓реНрдХреБрд▓ рд╕рдЯреАрдХ рдирд╣реАрдВ рд╣реИрдВ, рдХреБрдЫ рдЕрд╡рд▓реЛрдХрди рдЕрднреА рднреА рдЙрдирдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ:

  1. рдПрдХ рдмрд╛рд░ рдлрд┐рд░, рд╣рдордиреЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд┐рдпрд╛ рдХрд┐ рдЬрд╛рд╡рд╛ рдХреНрд░рдорд╛рдВрдХрди рдзреАрдорд╛ рд╣реИ рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕рдмрд╕реЗ рдХрд┐рдлрд╛рдпрддреА рдирд╣реАрдВ рд╣реИред рдзреАрдореЗ рдХрд╛рдо рдХреЗ рдореБрдЦреНрдп рдХрд╛рд░рдгреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдкреНрд░рддрд┐рдмрд┐рдВрдм рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдХреНрд╖реЗрддреНрд░реЛрдВ рддрдХ рдкрд╣реБрдВрдЪрдирд╛ рд╣реИред рд╡реИрд╕реЗ, рдЦреЗрддреЛрдВ рдХреЛ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЖрдЧреЗ рдЙрд╕ рдХреНрд░рдо рдореЗрдВ рджрд░реНрдЬ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЖрдкрдиреЗ рдЙрдиреНрд╣реЗрдВ рдХрдХреНрд╖рд╛ рдореЗрдВ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рд▓реЗрдХреНрд╕рд┐рдХреЛрдЧреНрд░рд╛рдлрд╝рд┐рдХ рдХреНрд░рдо рдореЗрдВ рдХреНрд░рдордмрджреНрдз рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рддрдереНрдп рд╣реИ;
  2. Json рдЗрд╕ рддреБрд▓рдирд╛ рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдПрдХрдорд╛рддреНрд░ рдкрд╛рда рдкреНрд░рд╛рд░реВрдк рд╣реИред рдХреНрдпреЛрдВ json рдореЗрдВ рдХреНрд░рдордмрджреНрдз рдбреЗрдЯрд╛ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕реНрдерд╛рди рд╣реЛрддрд╛ рд╣реИ, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ - рдкреНрд░рддреНрдпреЗрдХ рд░рд┐рдХреЙрд░реНрдб рд╕рд░реНрдХрд┐рдЯ рдХреЗ рд╕рд╛рде рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓рд┐рдЦрдиреЗ рдХреА рдЧрддрд┐ рдХреЛ рднреА рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ: рдЬрд┐рддрдирд╛ рдЕрдзрд┐рдХ рдмрд╛рдЗрдЯ рдЖрдкрдХреЛ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛, рдЙрддрдирд╛ рд╣реА рдЕрдзрд┐рдХ рд╕рдордп рд▓рдЧреЗрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдордд рднреВрд▓реЛ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд▓рд┐рдП рдПрдХ json рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рд╕рдордп рдХреЛ рднреА рдХрдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ;
  3. рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХреЛ рдХреНрд░рдордмрджреНрдз рдХрд░рддреЗ рд╕рдордп, рдПрд╡рд░реЛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдХреНрд╖реЗрддреНрд░ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЛ рдФрд░ рддрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░реНрдХрд┐рдЯ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддрд╛ рд╣реИред рдпреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рд▓рд╛рдЧрддреЗрдВ рд╣реИрдВ рдЬреЛ рдХреБрд▓ рдХреНрд░рдорд╛рдВрдХрди рд╕рдордп рдореЗрдВ рд╡реГрджреНрдзрд┐ рдХреА рдУрд░ рд▓реЗ рдЬрд╛рддреА рд╣реИрдВ;
  4. рдереНрд░рд┐рдлрд╝реНрдЯ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреНрд░реЛрдЯреЛрдмреБрдлрд╝ рдФрд░ рдореЗрд╕рдкреИрдХ, рдХреЛ рдПрдХ рдлрд╝реАрд▓реНрдб рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдореЗрдореЛрд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреА рдореЗрдЯрд╛ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдлрд╝реАрд▓реНрдб рдорд╛рди рдХреЗ рд╕рд╛рде рд╕рд╣реЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрджрд┐ рдЖрдк рдереНрд░рд┐рдлреНрдЯ рдХреА рдЖрдЙрдЯрдкреБрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд░рд┐рдХреЙрд░реНрдб рдХреА рд╢реБрд░реБрдЖрдд рдФрд░ рдЕрдВрдд рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдФрд░ рдПрдХ рд╡рд┐рднрд╛рдЬрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкреВрд░реЗ рд░рд┐рдХреЙрд░реНрдб рдХреЗ рдЖрдХрд╛рд░ рджреНрд╡рд╛рд░рд╛ рдХреБрд▓ рдорд╛рддреНрд░рд╛ рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рд╣рд┐рд╕реНрд╕рд╛ рдХрдмреНрдЬрд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рд╕рдм рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХреЗрд╡рд▓ рдкреИрдХреЗрдЬрд┐рдВрдЧ рдкрд░ рдЦрд░реНрдЪ рдХрд┐рдП рдЧрдП рд╕рдордп рдХреЛ рдмрдврд╝рд╛рддрд╛ рд╣реИ;
  5. рдкреНрд░реЛрдЯреЙрдл, рдереНрд░рд┐рдлреНрдЯ рдХреА рддрд░рд╣, рдореЗрдЯрд╛ рдЬрд╛рдирдХрд╛рд░реА рдкреИрдХ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдереЛрдбрд╝рд╛ рдФрд░ рдЕрдзрд┐рдХ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреИрдХрд┐рдВрдЧ рдФрд░ рдЕрдирдкреИрдХрд┐рдВрдЧ рдХреЗ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдореЗрдВ рдЕрдВрддрд░ рдЗрд╕ рдкреНрд░рд╛рд░реВрдк рдХреЛ рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рджреВрд╕рд░реЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рддреЗрдЬреА рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ;
  6. Msgpack рдмрд╣реБрдд рддреЗрдЬреА рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЧрддрд┐ рдХрд╛ рдПрдХ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рдХреЛрдИ рдЕрддрд┐рд░рд┐рдХреНрдд рдореЗрдЯрд╛ рдЬрд╛рдирдХрд╛рд░реА рдХреНрд░рдордмрджреНрдз рдирд╣реАрдВ рд╣реИред рдпрд╣ рдЕрдЪреНрдЫрд╛ рдФрд░ рдмреБрд░рд╛ рджреЛрдиреЛрдВ рд╣реИ: рдЕрдЪреНрдЫрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдереЛрдбрд╝рд╛ рдбрд┐рд╕реНрдХ рд╕реНрдерд╛рди рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рд╕рдордп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рдЦрд░рд╛рдм рдХреНрдпреЛрдВрдХрд┐ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдкрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рдкреИрдХ рдФрд░ рдЕрдирдкреИрдХ рдХрд┐рдпрд╛ рдЬрд╛рдПред рдПрдХ рдЕрд▓рдЧ рдореВрд▓реНрдп рдкреНрд░рддреНрдпреЗрдХ рд░рд┐рдХреЙрд░реНрдб рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдХреНрд╖реЗрддреНрд░ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЖрдЙрдЯрдкреБрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЕрд╡рд▓реЛрдХрди рдХрд╛рдлреА рд╕реНрдкрд╖реНрдЯ рд╣реИрдВ:

  1. рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдбрд╛рдпрд▓рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЫреЛрдЯреА рдлрд╝рд╛рдЗрд▓ msgpack рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХреА рдЧрдИ рдереА;
  2. рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЫреЛрдЯреА рдлрд╝рд╛рдЗрд▓ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдмрджрд▓ рдЧрдИ рд╣реИ :) рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЫреЛрдбрд╝рдХрд░, avro msgpack рдФрд░ protobuf рд╕реЗ рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдЕрдВрддрд░ рд╕реЗ рдЬреАрддрд╛;
  3. рдорд┐рд╢реНрд░рд┐рдд рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЫреЛрдЯреА рдлрд╝рд╛рдЗрд▓ рдлрд┐рд░ рд╕реЗ msgpack рд╕реЗ рдЖрдИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдВрддрд░ рдЗрддрдирд╛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реИ рдФрд░ рдПрд╡рд░реЛ рдФрд░ рдкреНрд░реЛрдЯреЛрдмреБрдлрд╝ рдмрд╣реБрдд рдХрд░реАрдм рд╣реИрдВ;
  4. рд╕рдмрд╕реЗ рдмрдбрд╝реА рдлрд╛рдЗрд▓реЗрдВ json рд╕реЗ рдЖрдИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЯрд┐рдкреНрдкрдгреА рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП - рдЬреЛрдВрд╕ рдЯреЗрдХреНрд╕реНрдЯ рдкреНрд░рд╛рд░реВрдк рдФрд░ рдЗрд╕рдХреА рддреБрд▓рдирд╛ рдмрд╛рдЗрдирд░реА рдЗрди рд╡реЙрд▓реНрдпреВрдо (рдФрд░ рдХреНрд░рдорд╛рдВрдХрди рдЧрддрд┐ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ) рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╣реА рдирд╣реАрдВ рд╣реИ;
  5. рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдбрд╛рдпрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдмрдбрд╝реА рдлрд╝рд╛рдЗрд▓ рдорд╛рдирдХ рдЬрд╛рд╡рд╛ рдХреНрд░рдорд╛рдВрдХрди рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХреА рдЧрдИ рдереА;
  6. рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдмрдбрд╝реА рдлрд╝рд╛рдЗрд▓ рдереНрд░рд┐рдлреНрдЯ рдмрд╛рдЗрдирд░реА рдереА;
  7. рдорд┐рд╢реНрд░рд┐рдд рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдмрдбрд╝реА рдлрд╝рд╛рдЗрд▓ рдереНрд░рд┐рдлреНрдЯ рдмрд╛рдЗрдирд░реА рдереАред рдЗрд╕рдХреЗ рдмрд╛рдж рдорд╛рдирдХ рдЬрд╛рд╡рд╛ рдХреНрд░рдорд╛рдВрдХрди рдЖрддрд╛ рд╣реИред

рдкреНрд░рд╛рд░реВрдк рд╡рд┐рд╢реНрд▓реЗрд╖рдг


рдЕрдм рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рд░рд┐рдХреЙрд░реНрдб рдХреЗ рдмреАрдЪ рд╡рд┐рднрд╛рдЬрдХ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП 36-рд╡рд░реНрдг рд╕реНрдЯреНрд░рд┐рдВрдЧ (UUID) рдХреЗ рдХреНрд░рдорд╛рдВрдХрди рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рд╕реЗ рд╕рдордЭрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ, рдПрдХ рд░рд┐рдХреЙрд░реНрдб рдХреА рд╢реБрд░реБрдЖрдд рдФрд░ рдЕрдВрдд рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ - рдХреЗрд╡рд▓ 1 рд╕реНрдЯреНрд░рд┐рдВрдЧ рдлрд╝реАрд▓реНрдб рд░рд┐рдХреЙрд░реНрдб рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдлрд╝реАрд▓реНрдб рдкреНрд░рдХрд╛рд░ рдФрд░ рд╕рдВрдЦреНрдпрд╛ ред рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреНрд░рдорд┐рдХрддрд╛ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдПрдХ рд╕рд╛рде рдХрдИ рдкрд╣рд▓реБрдУрдВ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╢рд╛рдорд┐рд▓ рдХрд░рддрд╛ рд╣реИ:

  1. рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХрд╛ рдХреНрд░рдорд╛рдВрдХрди (рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рд▓рдВрдмрд╛рдИ)
  2. рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреНрд░рдордмрджреНрдзрддрд╛

рд╢реБрд░реБрдЖрдд рдХрд░рддреЗ рд╣реИрдВ рдПрд╡рд░реЛ рд╕реЗред рдЪреВрдБрдХрд┐ рд╕рднреА рдХреНрд╖реЗрддреНрд░ рдкреНрд░рдХрд╛рд░ 'рд╡рд┐рдХрд▓реНрдк' рдХреЗ рд╣реИрдВ, рдРрд╕реЗ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдпреЛрдЬрдирд╛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реЛрдЧреА: `рд╕рдВрдШ: [" рдЕрд╢рдХреНрдд "," рд╕реНрдЯреНрд░рд┐рдВрдЧ "]`ред рдпрд╣ рдЬрд╛рдирдХрд░, рдЖрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
1 рдмрд╛рдЗрдЯ рд░рд┐рдХреЙрд░реНрдб (рд╢реВрдиреНрдп рдпрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ) рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, 1 рдмрд╛рдЗрдЯ рдкреНрд░рддрд┐ рдкрдВрдХреНрддрд┐ рд▓рдВрдмрд╛рдИ (1 рдмрд╛рдЗрдЯ рдХреНрдпреЛрдВрдХрд┐ рдПрд╡рд░реЛ рдкреВрд░реНрдгрд╛рдВрдХ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд░-рд▓рдВрдмрд╛рдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ) рдФрд░ 36 рдмрд╛рдЗрдЯ рдкреНрд░рддрд┐ рдкрдВрдХреНрддрд┐ред рдХреБрд▓: 38 рдмрд╛рдЗрдЯреНрд╕ред

рдЕрдм msgpack рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред Msgpack рдкреВрд░реНрдгрд╛рдВрдХ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд░-рд▓рдВрдмрд╛рдИ рдХреЗ рд╕рдорд╛рди рдПрдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ: рдХрд▓реНрдкрдирд╛ ред рдЖрдЗрдП рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдлрд╝реАрд▓реНрдб рдХреЛ рд▓рд┐рдЦрдиреЗ рдореЗрдВ рдХрд┐рддрдирд╛ рд▓рдЧрддрд╛ рд╣реИ: 2 рдмрд╛рдЗрдЯреНрд╕ рдкреНрд░рддрд┐ рдкрдВрдХреНрддрд┐ рд▓рдВрдмрд╛рдИ (рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ> 31 рдмрд╛рдЗрдЯреНрд╕ рдХреЗ рдмрд╛рдж, рдлрд┐рд░ 2 рдмрд╛рдЗрдЯреНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА), 36 рдмрд╛рдЗрдЯреНрд╕ рдкреНрд░рддрд┐ рдбреЗрдЯрд╛ред рдХреБрд▓: 38 рдмрд╛рдЗрдЯреНрд╕ред

рдкреНрд░реЛрдЯреЛрдмреЙрдлрд╝ рднреА рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рдПрдирдХреЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд░-рд▓рдВрдмрд╛рдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рд▓рдВрдмрд╛рдИ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреНрд░реЛрдЯреЛрдмреЙрдл рдХреНрд╖реЗрддреНрд░ рдХреА рд╕рдВрдЦреНрдпрд╛ рдФрд░ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рде рдПрдХ рдФрд░ рдмрд╛рдЗрдЯ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдХреБрд▓: 38 рдмрд╛рдЗрдЯреНрд╕ред

рдереНрд░рд┐рдлреНрдЯ рдмрд╛рдЗрдирд░реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рд▓рдВрдмрд╛рдИ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рдЕрдиреБрдХреВрд▓рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкреНрд░рддрд┐ рдлрд╝реАрд▓реНрдб рдирдВрдмрд░ рдФрд░ рдкреНрд░рдХрд╛рд░ 1 рдмрд╛рдЗрдЯ рдХреЗ рдмрдЬрд╛рдп, рдереНрд░рд┐рдлрд╝реНрдЯ 3. рд▓реЗрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП, рдирд┐рдореНрди рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ: 1 рдмрд╛рдЗрдЯ рдкреНрд░рддрд┐ рдлрд╝реАрд▓реНрдб рд╕рдВрдЦреНрдпрд╛, 2 рдмрд╛рдЗрдЯреНрд╕ рдкреНрд░рддрд┐ рдкреНрд░рдХрд╛рд░, рдкреНрд░рддрд┐ рдкрдВрдХреНрддрд┐ рд▓рдВрдмрд╛рдИ 4 рдмрд╛рдЗрдЯреНрд╕, 36 рдмрд╛рдЗрдЯреНрд╕ред рд▓рд╛рдЗрдиред рдХреБрд▓: 43 рдмрд╛рдЗрдЯреНрд╕ред

рдмрд╛рдЗрдирд░реА рдХреЗ рд╡рд┐рдкрд░реАрдд, рдереНрд░рд┐рдлреНрдЯ рдХреЙрдореНрдкреИрдХреНрдЯ , рдкреВрд░реНрдгрд╛рдВрдХ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд░-рд▓рдВрдмрд╛рдИ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ рддреЛ, рдЕрддрд┐рд░рд┐рдХреНрдд рд░реВрдк рд╕реЗ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдлрд╝реАрд▓реНрдб рд╣реЗрдбрд░ рд░рд┐рдХреЙрд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд╣рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ: рдлрд╝реАрд▓реНрдб рдХреЗ рдкреНрд░рдХрд╛рд░ рдФрд░ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд▓рд┐рдП 1 рдмрд╛рдЗрдЯ, рд▓рдВрдмрд╛рдИ рдХреЗ рд▓рд┐рдП 1 рдмрд╛рдЗрдЯ, рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП 36 рдмрд╛рдЗрдЯреНрд╕ред рдХреБрд▓: 38 рдмрд╛рдЗрдЯреНрд╕ред

рдЬрд╛рд╡рд╛ рдХреНрд░рдорд╛рдВрдХрди рдиреЗ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП 45 рдмрд╛рдЗрдЯреНрд╕ рд▓рд┐рдП, рдЬрд┐рдирдореЗрдВ рд╕реЗ 36 рдмрд╛рдЗрдЯреНрд╕ - рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ, 9 рдмрд╛рдЗрдЯреНрд╕ - рд▓рдВрдмрд╛рдИ рдореЗрдВ 2 рдмрд╛рдЗрдЯреНрд╕ рдФрд░ рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП 7 рдмрд╛рдЗрдЯреНрд╕ рдереЗ, рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВ рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдерд╛ред

рдХреЗрд╡рд▓ рдПрд╡рд░реЛ, рдореЗрд╕рдкреИрдХ, рдкреНрд░реЛрдЯреЛрдмреБрдлрд╝ рдФрд░ рдереНрд░рд┐рдлреНрдЯ рдХреЙрдореНрдкреИрдХреНрдЯ рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрди рдкреНрд░рд╛рд░реВрдкреЛрдВ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЛ utf-8 рд▓рд╛рдЗрдиреЛрдВ 36 рд╡рд░реНрдгреЛрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП 38 рдмрд╛рдЗрдЯреНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдлрд┐рд░, рдЬрдм 100k рд╕реНрдЯреНрд░рд┐рдВрдЧ рд░рд┐рдХреЙрд░реНрдб рдХреА рдкреИрдХрд┐рдВрдЧ рдХрд░рддреЗ рд╕рдордп рдПрд╡рд░реЛ рдХреЛ рдПрдХ рдЫреЛрдЯреА рд░рд╛рд╢рд┐ рдорд┐рд▓реА, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдЕрд╕рдореНрдкреАрдбрд┐рдд рдпреЛрдЬрдирд╛ рд▓рд┐рдЦреА рдЧрдИ рдереА? рдПрд╡рд░реЛ рдХреЗ рдкрд╛рд╕ рдЕрдиреНрдп рдкреНрд░рд╛рд░реВрдкреЛрдВ рд╕реЗ рдПрдХ рдЫреЛрдЯрд╛ рдорд╛рд░реНрдЬрд┐рди рд╣реИ рдФрд░ рдЗрд╕ рдЕрдВрддрд░ рдХрд╛ рдХрд╛рд░рдг рдкреВрд░реЗ рд░рд┐рдХреЙрд░реНрдб рдХреА рдкреНрд░рддрд┐ рдкреИрдХрд┐рдВрдЧ рд▓рдВрдмрд╛рдИ рдореЗрдВ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд 4 рдмрд╛рдЗрдЯреНрд╕ рдХреА рдХрдореА рд╣реИред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рди рддреЛ рдореЗрд╕рдХрдк, рди рд╣реА рдкреНрд░реЛрдЯреЛрдмреБрдлрд╝, рди рд╣реА рдереНрд░рд┐рдлреНрдЯ рдореЗрдВ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд░рд┐рдХреЙрд░реНрдб рд╡рд┐рднрд╛рдЬрдХ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдореЗрд░реЗ рд▓рд┐рдП рд░рд┐рдХреЙрд░реНрдб рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдЕрдирдкреИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдкреНрд░рддреНрдпреЗрдХ рд░рд┐рдХреЙрд░реНрдб рдХрд╛ рд╕рд╣реА рдЖрдХрд╛рд░ рдЬрд╛рдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рдпрджрд┐ рдЗрд╕ рддрдереНрдп рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ, рддреЛ, рдЙрдЪреНрдЪ рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рд╕рд╛рде, msgpack рдХреЗ рдкрд╛рд╕ рдПрдХ рдЫреЛрдЯреА рдлрд╝рд╛рдЗрд▓ рд╣реЛрдЧреАред

рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдбреЗрдЯрд╛ рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП, рдореБрдЦреНрдп рдХрд╛рд░рдг msgpack рдЬреАрддрд╛ рдкреИрдХ рдбреЗрдЯрд╛ рдореЗрдВ рд╕реНрдХреАрдорд╛ рдЬрд╛рдирдХрд╛рд░реА рдХреА рдХрдореА рдереА рдФрд░ рдпрд╣ рдХрд┐ рдбреЗрдЯрд╛ рдлреИрд▓ рдЧрдпрд╛ рдерд╛ред рдХреНрд╖реЗрддреНрд░ рдХреЗ рдкреНрд░рдХрд╛рд░ рдФрд░ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреИрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдХрд╛рд░рдг рдереНрд░рд┐рдлреНрдЯ рдФрд░ рдкреНрд░реЛрдЯреЛрдмреЙрдлрд╝ рдХреЛ рдЦрд╛рд▓реА рдореВрд▓реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП 1 рдмрд╛рдЗрдЯ рд╕реЗ рдЕрдзрд┐рдХ рдХрд╛ рд╕рдордп рд▓рдЧреЗрдЧрд╛ред рдПрд╡рд░реЛ рдФрд░ рдореЗрд╕рдкреИрдХ рдХреЛ рдЦрд╛рд▓реА рдорд╛рди рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдареАрдХ 1 рдмрд╛рдЗрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдПрд╡рд░реЛ, рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рд╣реА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рд╕рд░реНрдХрд┐рдЯ рдХреЛ рдмрдЪрд╛рддрд╛ рд╣реИред

Msgpack рднреА рдПрдХ рдЫреЛрдЯреА рдлрд╝рд╛рдЗрд▓ рдФрд░ рдПрдХ рдорд┐рд╢реНрд░рд┐рдд рд╕реЗрдЯ рдореЗрдВ рдкреИрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬреЛ рд╡рд┐рд░рд▓ рднреА рдерд╛ред рдЗрд╕рдХреЗ рдХрд╛рд░рдг рд╕рднреА рд╕рдорд╛рди рдХрд╛рд░рдХ рд╣реИрдВред

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ msgpack рдореЗрдВ рдкреИрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдбреЗрдЯрд╛ рдХрдо рд╕реЗ рдХрдо рд╕реНрдерд╛рди рд▓реЗрддрд╛ рд╣реИред рдпрд╣ рдПрдХ рдЙрдЪрд┐рдд рдХрдерди рд╣реИ - рдпрд╣ рдХреБрдЫ рднреА рдирд╣реАрдВ рдерд╛ рдХрд┐ рдЯрд╛рд░рд╕рдкреВрд▓ рдФрд░ рдПрдпрд░реЛрд╕реНрдкрд╛рдЗрдХ рдХреЗ рд▓рд┐рдП рдореЗрд╕рдХрдк рдХреЛ рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░реЗрдЬ рдкреНрд░рд╛рд░реВрдк рдХреЗ рд░реВрдк рдореЗрдВ рдЪреБрдирд╛ рдЧрдпрд╛ рдерд╛ред

рдирд┐рд╖реНрдХрд░реНрд╖


рдкрд░реАрдХреНрд╖рдг рдХреЗ рдмрд╛рдж, рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓ рд╕рдХрддрд╛ рд╣реВрдВ:

  1. рд╕реНрдерд┐рд░ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ;
  2. рдПрдХ рдкреНрд░рд╛рд░реВрдк рдЪреБрдирдирд╛ рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ рдЧрддрд┐ рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдЖрдХрд╛рд░ рдХреЗ рдмреАрдЪ рдПрдХ рд╡реНрдпрд╛рдкрд╛рд░-рдмрдВрдж рд╣реИред рдЗрд╕реА рд╕рдордп, рдЗрд╕ рддрд░рд╣ рдХреЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдордд рднреВрд▓реЛ рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдФрд░ рдпреЛрдЬрдирд╛ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ (рдЕрдХреНрд╕рд░ рдпреЗ рдкреИрд░рд╛рдореАрдЯрд░ рдПрдХ рдкреНрд░рдореБрдЦ рднреВрдорд┐рдХрд╛ рдирд┐рднрд╛рддреЗ рд╣реИрдВ)ред

рд╕реНрд░реЛрдд рдХреЛрдб рдпрд╣рд╛рдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: github

Source: https://habr.com/ru/post/hi458026/


All Articles