OStorageRemote storage = (OStorageRemote) ODatabaseRecordThreadLocal.INSTANCE.get().getStorage().getUnderlying();
final byte[] keyStream = new byte[keySerializer.getObjectSize(key)];
keySerializer.serialize(key, keyStream, 0);
try {
OChannelBinaryAsynchClient client = storage.beginRequest(OChannelBinaryProtocol.REQUEST_SBTREE_BONSAI_GET);
OCollectionNetworkSerializer.INSTANCE.writeCollectionPointer(client, getCollectionPointer());
client.writeBytes(keyStream);
storage.endRequest(client);
storage.beginResponse(client);
byte[] stream = client.readBytes();
storage.endResponse(client);
final byte serializerId = OByteSerializer.INSTANCE.deserializeLiteral(stream, 0);
final OBinarySerializer<V> serializer = (OBinarySerializer<V>) OBinarySerializerFactory.getInstance().getObjectSerializer(
serializerId);