Forum Webscript.Ru
Программирование => PHP => Тема начата: Foshvad от 30 Июля 2001, 10:07:13
-
Люди, кто знает – ответьте пожалуйста.
Есть форум, работает без БД. Каждое сообщение храниться в файле, в имени которого есть возвращаемая microtime время в микросекундах. Вопрос: можно ли рассчитывать, что это имя уникально и не возникнет «накладки» ?
-
Foshvad (30-07-2001 10:07):
Люди, кто знает – ответьте пожалуйста.
Есть форум, работает без БД. Каждое сообщение храниться в файле, в имени которого есть возвращаемая microtime время в микросекундах. Вопрос: можно ли рассчитывать, что это имя уникально и не возникнет «накладки» ?
нет.
можно снизить вероятность накладки проверяя конструкцией while наличие такого файла - если есть, соответственно снова вычислять имя файла
-
Гораздо проще иметь один файлик, где будут храниться имена файлов (тех, которыедолжны быть уникальными). Например:
1
2
3
4
...
n
А когда нужно создать новый файл, просто делается n+1 и таким числом, например, обзывается файлик. Не нужно по диску елозить и со временем возиться. :-)
-
А как сюда "всунуть" новое сообщение? Кроме того в этом случае прийдется с проблемным flock\'ом возиться :(
-
Foshvad (30-07-2001 12:24):
А как сюда "всунуть" новое сообщение? Кроме того в этом случае прийдется с проблемным flock\'ом возиться :(
Куда "сюда"?
Почему проблемный?
Если форум не шипко загруженный, то все будет путем, а если загруженный, то он быстро загнется, если каждый раз будет диск чесать...
-
lodevar (30-07-2001 12:37):
Почему проблемный?
дык на виндах то не пашет
Если форум не шипко загруженный, то все будет путем, а если загруженный, то он быстро загнется, если каждый раз будет диск чесать...
а что ему еще то чесать??? есть какието другие варианты постоянного хранения информации на РС, кроме как на HDD? ;)
кстати, вот интересно. почему считается, что при получении информации об именах файлов тратится ну оочень много системных ресурсов. у кого есть ссылки на тесты - киньте плиз
-
AliMamed (30-07-2001 12:45):
дык на виндах то не пашет
Пардон, не знал, что у него форум на виндах стоит...
а что ему еще то чесать??? есть какието другие варианты постоянного хранения информации на РС, кроме как на HDD? ;)
Да в общем нет... Пускай чешет, но если можно избежать ненужных действий - лучше избежать.
кстати, вот интересно. почему считается, что при получении информации об именах файлов тратится ну оочень много системных ресурсов. у кого есть ссылки на тесты - киньте плиз
Ну почему "оочень много"? Не оочень, но и тех жалко, если можно обойтись без чесания...
-
lodevar (30-07-2001 13:04):
Пардон, не знал, что у него форум на виндах стоит...
я тоже не знаю =)
Да в общем нет... Пускай чешет, но если можно избежать ненужных действий - лучше избежать.
не ну все равно же чесать ХДД придется - либо один файл читать, получать из него информацию о названиях других. либо чесать ХДД через мускуль.
Ну почему "оочень много"? Не оочень, но и тех жалко, если можно обойтись без чесания...
да вот я как раз к тому, что без чесания никак не получается =)
все равно хорошему форуму нужен мускуль сзади.
-
AliMamed (30-07-2001 13:14):
все равно хорошему форуму нужен мускуль сзади.
Вот на этом, наверное, и закончим... Если никто не против... ;-)
-
Foshvad (30-07-2001 10:07):
Люди, кто знает – ответьте пожалуйста.
Есть форум, работает без БД. Каждое сообщение храниться в файле, в имени которого есть возвращаемая microtime время в микросекундах. Вопрос: можно ли рассчитывать, что это имя уникально и не возникнет «накладки» ?
А если использовать время + большое рандомное число?