MCPcopy Create free account
hub / github.com/OpenTSDB/asynchbase / predictSerializedSize

Method predictSerializedSize

src/BatchGet.java:81–113  ·  view source on GitHub ↗
(final byte server_version)

Source from the content-addressed store, hash-verified

79 }
80
81 private int predictSerializedSize(final byte server_version) {
82 int size = 0;
83
84 size += 4; // int: Number of parameters.
85 size += 1; // byte: Type of the 1st parameter.
86 size += 1; // byte: Type again (see HBASE-2877).
87 size += 4; // int: How many regions do we want to affect?
88
89 byte[] prev_region = EMPTY_BYTES;
90 for (ActionEntry entry : batch) {
91 GetRequest req = entry.rpc;
92 byte[] region_name = req.getRegion().name();
93 boolean new_region = !Bytes.equals(prev_region, region_name);
94 if (new_region) {
95 size += 3; // vint: region name length (3 bytes => max length = 32768).
96 size += region_name.length; // The region name.
97 size += 4; // int: How many RPCs for this region.
98 prev_region = req.getRegion().name();
99 }
100
101 // action
102 size += 1; // byte: Type code for 'Action'.
103 size += 1; // byte: Type code again.
104 size += 1; // byte: Type code for 'Row'
105 size += 1; // byte: Type code for 'Get'
106
107 size += req.predictSerializedSize(server_version);
108
109 size += 4; // int: Index of the action.
110 size += 3; // 3bytes: action result 'null'
111 }
112 return size;
113 }
114
115 /**
116 * Sorts {@link BatchableRpc}s appropriately for HBase 0.95+ multi-action.

Callers 1

serializeOldMethod · 0.95

Calls 4

equalsMethod · 0.95
predictSerializedSizeMethod · 0.95
nameMethod · 0.45
getRegionMethod · 0.45

Tested by

no test coverage detected