entity icon indicating copy to clipboard operation
entity copied to clipboard

Транзакции не потокобезопасны

Open nixel2007 opened this issue 7 months ago • 0 comments

В текущей структуре библиотеки коннектор создаётся в одном экземпляре на менеджер сущностей и по одному коннектору на каждое хранилище сущностей. При работе с менеджером или хранилищем из нескольких потоков/фоновых заданий может возникнуть ситуация, что первый поток зафиксирует или отменит транзакцию второго потока.

Нужно сделать работу с транзакциями потокобезопасной.

Как вариант - добавить в менеджер и хранилища сущностей новый метод, возвращающий объект нового типа Соединение, который и будет в себе содержать ссылку на конкретный Коннектор.

Соединения должны получаться из общего пула соединений на базе приоритетной очереди из https://github.com/sfaqer/collectionos. Пул соединений хранится в менеджере сущностей. Все текущие операции в менеджере и хранилищах сущностей, напрямую работающие с коннектором, должны быть заменены на работу с соединением, полученным из этого пула.

В менеджер сущностей нужно добавить параметр для управления размером пула соединений.

nixel2007 avatar Aug 08 '25 17:08 nixel2007