Introducing “Wedge” and “FBOSS,” the next steps toward a disaggregated network -
Facebook’s engineering team has been developing their own hardware. Now they have released their custom switches, built on they own hardware (“wedge”), and they haver also developed a operating system based on Linux (“FBOSS”).
The software layer is fully programable, accesible in a SDN manner through an API from a central controller.
[…] using a central controller, we can now find the optimal network path for data at the edges of the network. By doing so, we’ve managed to boost the utilization of edge network resources to more than 90 percent, while serving Facebook traffic without a backlog of packets.
[…] most people are still buying data centre switches that use L2 protocols for reliability and redundancy but there are signs that purchasing is slowing dramatically as customers wait for SDN to mature.
And SDN has grown from simply “Ethernet Switching” to include a wider range of devices including WAN, Security, Wireless, and Optical networking.
Structuring Applications in Go -
I’m going to show you four patterns that I’ve found to be tremendously helpful in architecting Go applications.
A followup of structuring tests in Go.
Hopscotch hashing -
Hopscotch hashing is a scheme for resolving hash collisions of values of hash functions in a table using open addressing. It is also well suited for implementing a concurrent hash table.
This is an implementation in C.
Symas Lightning MDB (aka Lightning Database, LMDB) -
LMDB is an ultra-fast, ultra-compact key-value embedded data store developed by Symas for the OpenLDAP Project. It uses memory-mapped files, so it has the read performance of a pure in-memory database while still offering the persistence of standard disk-based databases, and is only limited to the size of the virtual address space, (it is not limited to the size of physical RAM)
There is also this library for using it from Go.
SockMi Project -
SockMi is a mechanism for the migration of a TCP/IP connection between two Linux systems. Only the migrating peer of the connection needs to reside on a Linux system. The migration is completely transparent for the other peer that can reside on a system running any operating system. SockMi requires neither changes to existing Linux kernel data structures nor new system calls.
"Spanner is Google’s scalable, multi-version, globally-distributed and synchronously-distributed database". It’s essentially doing two phase commit globally and Paxos on the shards.
Why Vector Clocks Are Hard -
An explanation of Vector Clocks, a common tool used in distributed systems for keeping events order.
I’ve discovered this Phabricator thing. It is like a mix of Github (for code hosting), Gerrit (for code reviews), Jira and some other collaborative tools in the same package, and open source…