PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (792): « 1 2 [3] 4 5 6 7 8 9 ... » В конец

> Найдено сообщений: 11869
Мелкий Отправлено: 20 Ноября, 2020 - 16:22:22 • Тема: Как объеденить подмассивы • Форум: Вопросы новичков

Ответов: 3
Просмотров: 283
array_column
Мелкий Отправлено: 30 Октября, 2020 - 15:33:12 • Тема: fopen режимы для использования цикла и filesize • Форум: Вопросы новичков

Ответов: 17
Просмотров: 1092
Двойная буферизация данных: данные есть в памяти СУБД и - порой те же самые - страницы тех же самых файлов в page cache системном. Плюс таскать данные из page cache в память СУБД тоже не совсем бесплатно. Исключение целиком точки отказа - кода файловой системы, ведь зачем журналируемая ФС, когда база и так журналируемая сама по себе? Ну и конечно порядком маркетинга. Может ещё чего, я не ораклист всё-таки.
Мелкий Отправлено: 30 Октября, 2020 - 14:51:53 • Тема: fopen режимы для использования цикла и filesize • Форум: Вопросы новичков

Ответов: 17
Просмотров: 1092
То есть сначала идут write и их имеют право кэшировать и откладывать во времени все кому не лень.
А когда приложение требует fsync то файловая система проверяет и делает write всех грязных страниц ассоциированных с этим дескриптором из своего page cache, затем спускает инструкцию "а теперь отчитайтесь, что данные сохранены". Что в частностях протоколов ATA/SATA превращается в команду FLUSH CACHE (E7h) или FLUSH CACHE EXT (EAh):
ACS-2 draft пишет:
The FLUSH CACHE command requests the device to flush the volatile write cache. If there is data in the volatile write cache, that data shall be written to the non-volatile media. This command shall not indicate completion until the data is flushed to the non-volatile media or an error occurs.

Только после этого всего нормально работающий fsync возвращает ОК приложению.
Мелкий Отправлено: 30 Октября, 2020 - 13:53:50 • Тема: fopen режимы для использования цикла и filesize • Форум: Вопросы новичков

Ответов: 17
Просмотров: 1092
LIME пишет:
я о том что диск отвечает на fsync в момент принятия в буфер

Нет. Потому и есть write, а есть fsync.
Мелкий Отправлено: 30 Октября, 2020 - 13:07:00 • Тема: fopen режимы для использования цикла и filesize • Форум: Вопросы новичков

Ответов: 17
Просмотров: 1092
LIME пишет:
кроме самого последнего уровня - кэша диска, в котором есть свой durability в виде того о чем выше сказал, но это уже после fsync

"на всех" - это включая сам диск. Если диск некорректно реагирует на fsync - отвечает ОК когда не может этого гарантировать - это тоже к приключениям.
Мелкий Отправлено: 30 Октября, 2020 - 12:34:24 • Тема: fopen режимы для использования цикла и filesize • Форум: Вопросы новичков

Ответов: 17
Просмотров: 1092
LIME пишет:
или есть конкретные примеры?

Есть конечно. Регулярно у всяких 1с выключен fsync, а потом плачутся на форумах "бекапов нет, электричество моргнуло, база не стартует, спасите бизнес (нет, платить за это мы конечно не будем)"

WAL-то как писать, если fsync свою задачу не выполняет? А чекпойнты как делать? И выходит что ни чекпойнтов ни WAL нет и соответственно при любом внеплановом reset'е (электричество? kernel panic? thermal sensor?) вся база с некоторым шансом становится большой кучей бесполезного бинарного мусора. До консистентного состояния невосстановимой в принципе. Потому что когда надо было гарантировать что данные записаны - кто-то ответил ОК, но не сделал этого.

Цитата:
между ответом об успешной транзакции(читай сдвига версии) и физической записью wal

При полном ACID порядок обратный: сначала ждём fsync wal до нужной позиции, только потом отвечаем "commit". Для весьма многих проектов потеря хвоста обычно не так страшна как существенное уменьшение io и резонно ставить асинхронный коммит, когда не ждём fsync wal. Но сам fsync всё равно обязан быть и обязан отрабатывать корректно на всех уровнях кэширования io.
Мелкий Отправлено: 30 Октября, 2020 - 11:28:28 • Тема: fopen режимы для использования цикла и filesize • Форум: Вопросы новичков

Ответов: 17
Просмотров: 1092
LIME пишет:
например всякие топ хранилища типа мускула итд не используют команды ос

Именно стандартные syscall системные все и дёргают.
На raw device емнип вовсе только оракл умеет. Потому что там хватает денег и народу пилить _очень_ много сопутствующей обвязки. А всем остальным это слишком геморойно как по разработке, так и по дальнейшему сопровождению.
Но что как раз критично для всех СУБД и как раз позволяет обеспечивать durability - вызов fsync. И бывает очень больно, если на каком-то из уровней кэширования io fsync не выполняет свою задачу. Но это про СУБД

А история clearstatcache машинерии легко прослеживается до 1999 года PHP3, дальше немного теряется и мне не очень интересно продолжать археологию.
Мелкий Отправлено: 30 Октября, 2020 - 10:25:23 • Тема: fopen режимы для использования цикла и filesize • Форум: Вопросы новичков

Ответов: 17
Просмотров: 1092
Цитата:
Note: The results of this function are cached. See clearstatcache() for more details.

https://www.php.net/manual/en/fu...ion.filesize.php
Всё как по рецепту
Мелкий Отправлено: 03 Октября, 2020 - 23:26:05 • Тема: Привет старичкам форума • Форум: Прочее

Ответов: 30
Просмотров: 2270
Ну теперь ещё кто-нибудь напишет что видел меня на sql.ru и всё, спалили все нычки Ниндзя
Мелкий Отправлено: 10 Сентября, 2020 - 10:31:10 • Тема: Поиск в двумерном массиве и вставка значений • Форум: Напишите за меня, пожалуйста

Ответов: 4
Просмотров: 83
hash join тут уместнее и проще, думается.
PHP:
скопировать код в буфер обмена
  1. $hashtable = [];
  2. foreach ($table as $r) {
  3. $hashtable[ $r['ARTICULE'] ] = $r['WIDTH'] * $r['HEIGHT'] * $r['DEEP'];
  4. }

далее проходите по $products и при isset($hashtable[ $product['ARTICULE'] ]) либо с NAME присваиваете значение.
Мелкий Отправлено: 26 Августа, 2020 - 11:03:14 • Тема: Рекурсивная функция не хочет работать :) • Форум: Вопросы новичков

Ответов: 11
Просмотров: 754
А каким образом ваш рекурсивный вызов мог бы влиять на логику выполнения? Никаких побочных эффектов, а возвращаемое значение вы игнорируете. Что есть вызов функции, что нет его - воздух только греть.
Мелкий Отправлено: 17 Июля, 2020 - 10:16:42 • Тема: Как дать разрешение на удаление файла? • Форум: Вопросы новичков

Ответов: 16
Просмотров: 1132
CODE (bash):
скопировать код в буфер обмена
  1. melkij@melkij:~/tmp$ whoami
  2. melkij
  3. melkij@melkij:~/tmp$ sudo touch file
  4. melkij@melkij:~/tmp$ sudo chmod 0600 file
  5. melkij@melkij:~/tmp$ ls -l file
  6. -rw------- 1 root root 0 июл 17 10:13 file
  7. melkij@melkij:~/tmp$ rm -f file
  8. melkij@melkij:~/tmp$ ls -la file
  9. ls: невозможно получить доступ к 'file': Нет такого файла или каталога


Для удаления файла вообще не нужны никакие права на этот файл. Для удаления нужны права записи на директорию в которой этот файл лежит.
Мелкий Отправлено: 14 Июля, 2020 - 12:44:37 • Тема: Парсинг json • Форум: Напишите за меня, пожалуйста

Ответов: 3
Просмотров: 81
yaroslav.chernicov77 пишет:
А в предоставленном фале идет формат

А теперь откройте файл и покажите там такое.
Там нормальный JSON "NAME":"Ardell","~NAME":"Ardell"

yaroslav.chernicov77 пишет:
Я заметил что json_decode декодирует только определенный формат

Разумеется. json_decode предназначен декодировать корректный JSON.

yaroslav.chernicov77 пишет:
print $obj->{"NAME"}; // Пытаюсь вывести все названия товаров

Результата 0 причина не очень понятна

Рассматриваете структуру вашего JSON, потом достаёте данные по нужному пути. Почему вы решили, что у вас на верхнем уровне объект? Это верно, но почему вы так решили? Почему вы решили, что у объекта верхнего уровня есть свойство NAME? Почему вы решили, что в нём будут "все названия товаров"?
Мелкий Отправлено: 30 Мая, 2020 - 11:59:38 • Тема: Индексы • Форум: Вопросы новичков

Ответов: 3
Просмотров: 343
https://dev[dot]mysql[dot]com/doc/refman[dot][dot][dot]lain-output[dot]html
Цитата:
The key_len column indicates the length of the key that MySQL decided to use. The value of key_len enables you to determine how many parts of a multiple-part key MySQL actually uses.


key_len показывает какую часть индекса планировщик желает использовать. Только вместо внятного вывода, какая же именно эта часть - показывает длину префикса в байтах. И на реальные индексируемые данные будьте любезны пересчитать сами.

datetime 8 байт, mediumint 3 байта. Поэтому раз видим 11 байт key_len - значит index condition идёт по обоим полям.
Мелкий Отправлено: 23 Мая, 2020 - 18:09:35 • Тема: print_r выводит какую-то единицу • Форум: Вопросы новичков

Ответов: 7
Просмотров: 1005
LIME пишет:
не лезь в код - там уже есть кому че творить

А в чём проблема? Если есть желание поковырять - то в путь. Поиском человек по крайней мере пользоваться умеет, раз нашёл тему ответы из которой ему помогли.

Страниц (792): « 1 2 [3] 4 5 6 7 8 9 ... » В конец
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB