Что есть SeekableIterator?

AnrDaemon

Продвинутый новичок
Что за зверь и где вообще используется SeekableIterator?
Есть смысл его реализовывать, или просто Iterator достаточно?
 

MiksIr

miksir@home:~$
А разве по интерфейсу не видно? Добавляет seek в обычный итератор. А нужен ли он тебе или нет - кто знает.
 

AnrDaemon

Продвинутый новичок
@WMix, спасибо. Правда, я не очень понимаю как это использовать, но смысл примерно ясен.
Другими словами, ЭТО может быть полезно, если у меня протяжённый одномерный набор данных(f.e. строка), и мне надо по нему читать куски с произвольной позиции. Или писать в него.
Хм. возможно, мне ОНО может пригодиться прямощаз. Надо подумать.
 

AnrDaemon

Продвинутый новичок
Загоним лог в БД. Если действительно работать надо.
 

WMix

герр M:)ller
Партнер клуба
накуя он в дб? у нас 100500 таких логов а мне только за минуту 2 часа назад из каждого хочется
 

AnrDaemon

Продвинутый новичок
@Adelf, "надо подумать" не значит "оно мне надо". Это значит, что, таки, надо подумать, и решить, надо ли оно мне вообще.
Пока я вижу сомнительную прибыль ценой умеренно-сложной реализации.
Причём существующая реализация в общем-то обеспечивает идентичную функциональность, пусть и с некоторой оговоркой, но выигрывает в обслуживании, поскольку предельно проста.
 

AnrDaemon

Продвинутый новичок
накуя он в дб? у нас 100500 таких логов а мне только за минуту 2 часа назад из каждого хочется
В БД он не "накуя" а "изначально". Именно для того, чтобы из 100500 логов по 500100 миллионов строк две минуты два часа назад не вылавливать, а просто пойти и взять.
 

WMix

герр M:)ller
Партнер клуба
умеренно-сложной реализации
гонишь? это еще ansi c, простая команда жесткому диску, хочешь это называется "перемотай" если мы о кассетных магнитофонах

простой битрейт, прикинули перемотали, нашли.
 

AnrDaemon

Продвинутый новичок
Ты так говоришь словно реализация самого seek() - это достижение.
Его ещё как-то использовать после этого надо. Что-то с данными делать, писать и читать.
Вот этот вопрос требует обдумывания. А не public function seek($pos){$this->position = $pos;}.
 

WMix

герр M:)ller
Партнер клуба
причем тут достижение? просто api - есть возможность!
 

AmdY

Пью пиво
Команда форума
Загоним лог в БД. Если действительно работать надо.
Так в этом и смысл, ты реализуешь интерфейс и можешь хоть в логах хранить, хоть в бд, хоть в стороннем сервисе, а уже в самом seek для каждого разруливаешь поведение.
 

AnrDaemon

Продвинутый новичок
Да, я понял. Спасибо. Выше я уже писал об этом.
Смысл ответа про логи был в том, что подобный подход к задаче я считаю ущербным. "У нас есть дерьмовая задача(копаться в километровых текстовых логах), надо её решить". Откажись от текстовых логов, и задача решиться сама…
Не придётся делать seek(), достаточно будет пойти и просто взять нужные данные.
 
Сверху