Skip to content

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

@nixel2007

Description

@nixel2007

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

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

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

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

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

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions