bug: кэш или возможные проблемы с индексами
gfh31fgh2 opened this issue · 2 comments
Bug Report
YDB PHP SDK version:
latest (1.5.5)
Environment
ubuntu18 and JWT
php8.1
Current behavior:
Используется код, который в related code.
Проблема: На часть запросов с индексом, ответы бд неверные.
Я записываю данные в бд. Проходит 10 минут. Я запрашиваю данные из БД запросом:
SELECT * FROM table VIEW indexname AS s WHERE s.column = '10000000977616867292221904687374';
Запрос идет из ydb-php-sdk. Используются параметры в этом запросе, чтобы не было sql-inj и прч.
На этой таблице есть индекс с этим названием.
БД отвечает, что запись не найдена. Отвечает через ydb-php-sdk.
Окей, проверяю эту запись через YQL облака - запись найдена, и показывает данные.
Снова обращаюсь к ydb-php-sdk - запись сразу находит.
Пробую по другому: теперь YQL не трогаю.
Снова вижу запись (через логи). Запрашиваю через ydb-php-sdk - снова не найдено. Запрашиваю раз 7, на 7й раз показывает запись.
В чем может быть проблема?
Expected behavior:
Возвращаются данные, сохранённые в базе.
Related code:
https://github.com/gfh31fgh2/ydb-php-simple-driver
Аналогичная ситуация, если запись делать через YQL запрос формата:
UPSERT INTO table (columns) VALUES (values);
Видит записи только раза с 8го
PRAGMA TablePathPrefix("/ru-central1/xxxx/xxx/");
DECLARE $value AS Utf8;
SELECT * FROM `table` VIEW index AS s WHERE s.column = $value;"
Подскажите - воспроизводится ли проблема на чистой базе?
Если да - в идеале был бы скрипт, который демонстрирует эту проблему на чистой базе:
- Создаёт таблицу, индексы с вашей структурой
- Делает вставку данных
- Запрашивает данные и выводит результат
Это позволит воспроизвести проблему на нашей стороне без доступа к содержимому базы.
Зыбал написать, при создании индекса - облако как-то поругалось, но индекс вроде как создался
На чистой не тестировал. Записей больше 10млн, слишком долго.