Re: Re: Размерыпочтовогоящика

От: Vladimir A. Butenko <CGatePro_at_mx_ru>
Дата: Fri 19 Sep 2003 - 15:11:50 MSD


On Fri, 19 Sep 2003 14:47:47 +0400
  <CGatePro@mx.ru> (Dmitry S. Rzhavin) wrote:

> Хорошо, решение 'в лоб'.

> каждый mbox получает свой counter, записываемый в начало файла. При каждой
> операции с файлом ++counter (в смысле, сначала увеличиваем, потом 
> работаем).
> Операция с mbox защищена всеми имеющимися на данный момент механизмами (Вы
> указывали, что у Вас есть механизмы защиты mbox от различных повреждений).
> Далее.

> каждый mbox получает файл mbox.index, в котором лежит некоторый индекс по
> заголовкам (+- другие поля, наиболее часто запрашиваемые). Каждый index
> имеет counter, который нормально совпадает с counter mbox.
> При любых изменениях mbox соответственно изменяется index, причем 
> counter++
> (в смысле, что counter изменяется только после успешной записи в index).
> Все запросы по выборке почты обслуживаются из индекса, если это возможно
> (собсна, что должно принести выгоду).

Такие counter's уже и так есть - называются "dateTimeModified", атрибут такой у файла. Вот только когда он на диск попадает - вопрос сложный, особенно при NFS. И в каком порядке. А с счетчиками тоже не так просто. Вот, стали Вы писать индекс. Одним куском. Вначале - счетчик пошел, потом данные, потом система благополучно упала. В результате имеете свой счетчик плюс старые данные (частично). Можно, конечно, в два обращения писать - сначала все данные, потом счетчик обновлять. Это долго. Можно "по умному" - писать в конце данных тот же счетчик. При чтении не совпало - значит, файл побитый. Ну и так далее. Это я просто навскидку Вам показываю, что у предложенного вами решения есть:

а) проблемы.
б) альтернативы 
в) проблемы у альтренатив.

То есть - думать надо.

Sincerely,
Vladimir Получено Fri Sep 19 11:13:09 2003

Этот архив был сгенерирован hypermail 2.1.8 : Fri 24 Apr 2015 - 16:12:42 MSK