Forum Webscript.Ru

Программирование => PHP => Тема начата: Foshvad от 30 Июля 2001, 10:07:13

Название: уникальное имя файла
Отправлено: Foshvad от 30 Июля 2001, 10:07:13
Люди, кто знает – ответьте пожалуйста.
Есть форум, работает без БД. Каждое сообщение храниться в файле, в имени которого есть возвращаемая microtime время в микросекундах. Вопрос: можно ли рассчитывать, что это имя уникально и не возникнет «накладки» ?
Название: уникальное имя файла
Отправлено: AliMamed от 30 Июля 2001, 10:33:37
Цитировать
Foshvad (30-07-2001 10:07):
Люди, кто знает – ответьте пожалуйста.
Есть форум, работает без БД. Каждое сообщение храниться в файле, в имени которого есть возвращаемая microtime время в микросекундах. Вопрос: можно ли рассчитывать, что это имя уникально и не возникнет «накладки» ?

нет.
можно снизить вероятность накладки проверяя конструкцией while наличие такого файла - если есть, соответственно снова вычислять имя файла
Название: уникальное имя файла
Отправлено: lodevar от 30 Июля 2001, 12:19:46
Гораздо проще иметь один файлик, где будут храниться имена файлов (тех, которыедолжны быть уникальными). Например:
1
2
3
4
...
n

А когда нужно создать новый файл, просто делается n+1 и таким числом, например, обзывается файлик. Не нужно по диску елозить и со временем возиться. :-)
Название: уникальное имя файла
Отправлено: Foshvad от 30 Июля 2001, 12:24:48
А как сюда "всунуть" новое сообщение? Кроме того в этом случае прийдется с проблемным flock\'ом возиться :(
Название: уникальное имя файла
Отправлено: lodevar от 30 Июля 2001, 12:37:25
Цитировать
Foshvad (30-07-2001 12:24):
А как сюда "всунуть" новое сообщение? Кроме того в этом случае прийдется с проблемным flock\'ом возиться :(
Куда "сюда"?
Почему проблемный?
Если форум не шипко загруженный, то все будет путем, а если загруженный, то он быстро загнется, если каждый раз будет диск чесать...
Название: уникальное имя файла
Отправлено: AliMamed от 30 Июля 2001, 12:45:45
Цитировать
lodevar (30-07-2001 12:37):
Почему проблемный?
дык на виндах то не пашет

Цитировать
Если форум не шипко загруженный, то все будет путем, а если загруженный, то он быстро загнется, если каждый раз будет диск чесать...
а что ему еще то чесать??? есть какието другие варианты постоянного хранения информации на РС, кроме как на HDD? ;)

кстати, вот интересно. почему считается, что при получении информации об именах файлов тратится ну оочень много системных ресурсов. у кого есть ссылки на тесты - киньте плиз
Название: уникальное имя файла
Отправлено: lodevar от 30 Июля 2001, 13:04:30
Цитировать
AliMamed (30-07-2001 12:45):
Цитировать
дык на виндах то не пашет
Пардон, не знал, что у него форум на виндах стоит...
Цитировать
а что ему еще то чесать??? есть какието другие варианты постоянного хранения информации на РС, кроме как на HDD? ;)
Да в общем нет... Пускай чешет, но если можно избежать ненужных действий - лучше избежать.
Цитировать
кстати, вот интересно. почему считается, что при получении информации об именах файлов тратится ну оочень много системных ресурсов. у кого есть ссылки на тесты - киньте плиз
Ну почему "оочень много"? Не оочень, но и тех жалко, если можно обойтись без чесания...
Название: уникальное имя файла
Отправлено: AliMamed от 30 Июля 2001, 13:14:18
Цитировать
lodevar (30-07-2001 13:04):
Пардон, не знал, что у него форум на виндах стоит...
я тоже не знаю =)
Цитировать
Да в общем нет... Пускай чешет, но если можно избежать ненужных действий - лучше избежать.
не ну все равно же чесать ХДД придется - либо один файл читать, получать из него информацию о названиях других. либо чесать ХДД через мускуль.

Цитировать
Ну почему "оочень много"? Не оочень, но и тех жалко, если можно обойтись без чесания...
да вот я как раз к тому, что без чесания никак не получается =)

все равно хорошему форуму нужен мускуль сзади.
Название: уникальное имя файла
Отправлено: lodevar от 30 Июля 2001, 13:56:50
Цитировать
AliMamed (30-07-2001 13:14):
все равно хорошему форуму нужен мускуль сзади.
Вот на этом, наверное, и закончим... Если никто не против... ;-)
Название: уникальное имя файла
Отправлено: от 30 Июля 2001, 15:13:07
Цитировать
Foshvad (30-07-2001 10:07):
Люди, кто знает – ответьте пожалуйста.
Есть форум, работает без БД. Каждое сообщение храниться в файле, в имени которого есть возвращаемая microtime время в микросекундах. Вопрос: можно ли рассчитывать, что это имя уникально и не возникнет «накладки» ?

А если использовать время + большое рандомное число?