Facebook has turned to Google open source project to try and tune its performance on Android devices.
The social networking company has plugged into FlatBuffers.
Cross platform ‘serialization’
FlatBuffers is a cross-platform ‘serialization’ library for C++ with support for Java, C# and Go.
Serialization is important because it is the process through which data is deconstructed, reformatted, unpacked, parsed and/or reconstituted in order for it to be more easily used in other locations.
FlatBuffers itself was created at Google specifically for game development and other performance-critical applications.
The technology in this case sets out to try and bridge and connect mismatches that exist in the space between compute processors and the memory subsystem of the device in use.
What Facebook says
Facebook reminds us that people can keep up with their family and friends through reading status updates and viewing photos — okay, we knew that part.
… and says the firm, in its backend, it stores all the data that makes up the social graph of these connections.
But says Facebook, on mobile clients, “We can’t download the entire graph, so we download a node and some of its connections as a local tree structure.”
“In our exploration of alternate formats [for the challenges in hand here], we came across FlatBuffers, an open source project from Google. FlatBuffers is an evolution of protocol buffers that includes object metadata, allowing direct access to individual subcomponents of the data without having to deserialize the entire object (in this case, a tree) up front.”