Итак, после моего первоначального беспокойства по поводу влияния этого , я наконец понял — что пытается нам сказать Google — у нас есть огромный кластер прямо в нашем распоряжении!
Так что провели ночь, взламывая PHP MapReduce — главный узел, который вы запускаете на своем сервере, использует этот поиск, чтобы найти жертв … ошибочных … работников для участия в кластере. Затем вы пишете некоторый код, как;
<?php
require_once 'mapreduce.php';
$veryLargeFile = '/tmp/bigfile';
$map = 'http://masternode.com/mapreduce/wordcounter.phps';
$reduce = 'http://masternode.com/mapreduce/adder.phps';
# Massively distributed computing, here we come...
$result = MapReduce($veryLargeFile, $map, $reduce);
На данный момент это ограниченное выполнение только PHP на рабочих, так что это довольно ограниченный размер кластера. Но мы работаем над его расширением, чтобы ваши функции преобразования и сокращения автоматически переводились в хранимые процедуры MySQL, что позволяет этому поиску значительно расширить кластер (спасибо Илье ). И с помощью adodb я думаю, что можно сделать эту БД независимой.
Но где это действительно интересно, рассматривает этот поиск . Сейчас это намного сложнее реализовать, но должна быть возможность пригласить браузеры также присоединиться к кластеру, что значительно увеличит ваши вычислительные мощности. Рабочий процесс будет выглядеть примерно так: master => рабочий сервер => рабочий браузер => (через AJAX обратно) => рабочий сервер => master.
Мы вступили в настоящий век людей, занимающихся распределенными вычислениями. Подумайте о замечательных вещах, которые мы могли бы с этим сделать, например о самом большом фильтре спама в блоге!
Это шутка, кстати!
… и, вероятно, плохой. Это не апрель, но все равно. И я не работаю над этим. И я никогда не буду.
Подумайте, что для Google было бы хорошей идеей разрешить людям ограничивать поиск одним доменом, чтобы люди могли хотя бы посмотреть, что у них на своем сайте, и убирать по мере необходимости.