The systems and networking group is composed of approximately 20 researchers and post-docs. The group has existed since the lab opened, and over the last decade and a half we have covered a broad range of topics including systems, operating systems, networking, distributed systems, file and storage systems, cloud and data centre computing, social networking, security, network management, computer architecture, programming languages, and databases. We are a group that designs and builds systems that address significant real-world problems and demonstrate novel underlying principles.
Many projects that researchers from the group have been involved with have had significant impact in the academic community and resulted in papers that have been widely cited. We are also very proud that many of our projects have also had internal Microsoft impact or have been licensed. A recent example of our impact on Microsoft is the Storage QoS feature in the new Windows Server Technical Preview. This feature enables data center hosters to control the bandwidth of traffic from VMs to storage on a per-class basis and is one of the outputs of our research on Predictable Data Centers. You can find more about this work in a recent blog we wrote.
We also transferred our Control Flow Guard compiler security improvements, and today all of Windows builds with this modified compiler, adding safety checks to all indirect function calls. A rebuild of Windows 8.1 was released on Windows Update, and the compiler is available for anyone to use with Visual Studio 2015 (preview). Read the compiler team's blog post to learn more.
We are hiring!
We are always looking for talented people to join our team, please see our careers section for opportunities. If you are interested in projects underway please look at the group members' personal pages.
The group has a long tradition of research in most aspects of computer communications and networks in general. The interests and contributions of the group are quite diverse with projects over the previous years in a number of areas such as peer-to-peer networks, resource allocation, congestion control and transport protocols, performance modelling, epidemics, network coding, routing, mobility models, social networks, enterprise and home network management, etc. Currently, there is a strong focus on data centre networks (private and cloud) where traditional assumptions that have underpinned the design of the Internet are challenged.
The systems and networking team have a history of doing research in file and storage systems. We engage in storage research at all levels of the storage stack, from user-experience driven file system designs to data centre scale scalable, predictable and efficient storage systems. Recently we have been working on a software-defined storage (SDS) architecture that opens up the storage stack and makes it more controllable and programmable. We have also released the Microsoft Research Storage Toolkit to allow others to experiment with the architecture. We also build cold-storage systems such as Pelican, optimised for capacity and low cost. Pelican spins down disks to limit peak power draw thus allowing the disks to be more densely packed, and so reducing costs.
Our system research spans hardware, programming languages, compilers, and applications. Our mission is to advance the state of the art in these areas to build cloud, mobile, and desktop platforms that are secure, high-performance, and cost- and energy-efficient. Our current focus is on providing memory safety, strong security, and high performance all at the same time. This requires us to define security properties at the programming language level and then enforce them using the compiler, runtime, OS and hardware.
We are also investigating the impact of new hardware technologies such as on-chip customization and distributed integrated fabrics. This will enable building "rack-scale computers" with terabytes of memory, 100s of cores and low-latency communication between them. In the rack-scale computing project, we are looking at how to leverage these new technologies and at the implications for the software stack at large (OS, networking, and applications).
Our research group focuses on the vision of how our data center systems will look like years ahead and reason about the fundamental changes, both practical and theoretical, to distributed algorithms, distributed architectures, and networked hardware to realize such a vision. Core to our vision are components and mechanisms like systems for distributed coordination (a la ZooKeeper), replicated storage (such as BookKeeper for logging), and new forms of communicating distributed processes and servers, for example, with RDMA in the FARM project. Innovating the distributed systems that form the foundation of our services and that boost the productivity of our developers is an integral part to this group's mission. We also conduct research in the area of algorithms and systems for processing massive amounts of data. Our work aims at pushing the boundary of computer science in the area of algorithms and systems for large-scale computations. To find out more, please visit our project page.
Our mission is to invent new wireless architectures and technologies that will support ever-growing traffic demands from mobile devices. We are particularly interested in the new spectrum access models (such as white-spaces) that will yield more flexible and efficient use of spectrum. Our research focus is on wireless network protocols, underlying signal processing algorithms and systems that will run them. We are equally engaged in advancing the state-of-the-art algorithmic research and building network prototypes and tools to prove our concepts. To find out more, please visit our project page.
Empirical Software Engineering
We develop empirically driven strategies, techniques and tools to optimize software development. We base our analysis on development process data—changes and tests, bug reports and patches, organizational structure and team management. Using this historical data allows us to characterize and model existing development processes with respect to efficiency and effectiveness and to simulate the impact of optimization strategies on the overall development process and quality, speed and cost goals.
Analysing development process data has in the past already proved useful to software development organizations, as they seek to manage scope, quality, cost and time in software development projects. To find out more, please visit this project page.
- The Cambridge Systems & Networking group is always looking for interns, post-docs, software engineers and researchers. For more information, visit Microsoft Research Careers. Prospective interns may wish to identify people or projects they are interested in, and informally email the relevant staff directly.