Статьи

PHP MapReduce

Итак, после моего первоначального беспокойства по поводу влияния этого , я наконец понял — что пытается нам сказать 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 было бы хорошей идеей разрешить людям ограничивать поиск одним доменом, чтобы люди могли хотя бы посмотреть, что у них на своем сайте, и убирать по мере необходимости.