Это небольшое изменение другого ответа выше. Использование собственных обещаний:
function inSequence(tasks) {
return tasks.reduce((p, task) => p.then(task), Promise.resolve())
}
Объяснение
Если у вас есть эти задачи [t1, t2, t3]
, то приведенное выше эквивалентно Promise.resolve().then(t1).then(t2).then(t3)
. Это поведение сокращения.
Как использовать
Сначала Вам нужно составить список задач! Задача - это функция, которая не принимает аргументов. Если вам нужно передать аргументы своей функции, используйте bind
или другие методы для создания задачи. Например:
var tasks = files.map(file => processFile.bind(null, file))
inSequence(tasks).then(...)
Базы данных реплицируется на несколько серверов для обеспечения высокой доступности. Каждая конкретная служба использует свою собственную базу данных для конкретного домена.
Статистика LinkedIn:
Источники:
Flickr использует MySQL .
YouTube использует MySQL , но они перемещаются в Google BigTable .
Myspace использует SQL Server .
Википедия использует MySQL .
Статистика Yahoo.com:
Источник:
Microsoft.com stats:
Sources:
В мае 2008 года у Twitter был 1 экземпляр MySQL для записи с несколькими подчиненными экземплярами MySQL для чтения.
Статистика Twitter:
Источники:
Digg
Оба хранилища данных являются распределены по нескольким серверам.
Статистика Digg:
Источники :
Google использует BigTable : http://research.google.com/archive/bigtable.html
PlentyOfFish.com с использованием Microsoft SQL Server:
https://blog.codinghorror.com/scaling-up-vs-scaling-out-hidden-costs/
В настоящее время работает 610 (скоро будет 1000) узлов Hadoop в одном кластере с хранилищем данных Hive. И Hive, и Cassandra были открыты в Facebook.
Статистика Facebook:
Источники:
Переполнение стека - SQL Server.
Джефф Этвуд написал прекрасное сообщение в блоге об этом
https://blog.stackoverflow.com/2008/09/what-was-stack-overflow-built-with/