- Maintainability: The databases had a huge, complex, tightly coupled code base, with long stored procedures that were hard to modify and debug. As the database was owned by a team and included data for more than just Skype, its biggest user there were many interdependencies. With user data split across three these systems in three distinct locations, Skype needed to maintain its routing logic according to which rsquo & user;s info update or it had to retrieve.
- Excessive latency: With all PCS data being served from the United States, Skype customers in different geographies and the local infrastructure that supported them (like call controllers), experienced improper latency when querying or updating PCS data. For instance, Skype includes an internal service level agreement (SLA) of less than one moment when establishing a telephone. However, the round-trip instances for the permission test conducted by a regional call controller in Europe, which reads information from PCS to make sure that user A has permission to call user , made it impossible to set up a call between 2 users in Europe within the required one-second period. Data quality was also incorrect data for contacts, with customers complaining about contacts that are lost, an issue, etc.
Continue on to part two , which assesses how Skype employed Azure Cosmos DB to modernize its own backend infrastructure.
Scaling to four billion customers isn’t easy
Additionally, the team faced a deadline related to General Data Protection Legislation (GDPR); the system didn’t fulfill GDPR requirements, so there was a deadline for shutting down the servers.
Individuals Core Service (PCS), one of the core internal Skype solutions, is where contacts, groups, and connections are stored for each Skype user. The service is called when the Skype client starts, is assessed for permissions when initiating a dialog, and is updated as the consumer ’classes s connections, and relationships are added or otherwise changed. PCS is also used by external programs, such as other providers, Cortana, bot provisioning, along with Microsoft Graph.
Skype has grown to become one of the world’s communication solutions. Since its acquisition by Microsoft in 2010, Skype has grown to over four billion users, over 300 million active users, and more than 40 million users.
All of these problems became worse as usage grew, to the point that, by 2017, the pain had become unacceptable. Deadlocks were becoming more and more common as database traffic increased, which led to service outages, and copies left some information unavailable. “We did the best with what we had, coming up with lots of workarounds to deal with all the deadlocks, such as extra code to throttle rdquo, & database asks; remembers Frantisek Kaduk, Principal .NET Developer about the Skype team. “we realized we needed to do anything different As the issues continued for worse. ”
Before 2017, PCS ran in the United States in three datacenters, with data for one-third of their ceremony & rsquo; s 4 billion users represented in each datacenter. Each location had a monolithic SQL Server relational database. Having been in place for years, those databases were starting to show their age. Specific Issues and pains comprised:
The group decided that, to deliver an uncompromised user experience, it had its own data store. Prerequisites included low latency, high throughput, and higher availability.
Note: Opinions in italics/parenthesis are the writer 's.
An structure was a natural fit, however, it would have to be more than just a simple implementation that saved current data. “We had a better audit trail, which intended storing all the events leading up change,&rdquo. “For instance, to manage misbehaving customers, we need in order to replay that series of events. Likewise, we need event history to take care of cross-service/cross-shard transactions and other tasks. The events capture the intention of that change, the originator of a country change, and its end result. ”
That is a three-part blog post show about how organizations are utilizing Azure Cosmos DB to meet real world needs, and the gap it’s making to them. In part two , we’ll analyze how Skype employed Azure Cosmos DB to update its own backend infrastructure. In part 3, we’ll pay the outcomes resulting from these efforts.