Am 09.11.2014 19:51, schrieb Luís Marques:
My time available for
vibe.d
-related projects is limited, and it has been severely frustrated by issues related to the database access, specifically due toddb
limitations.My latest issue: it seems that ddb is not prepared for the current fiber to yield while a query has not been closed. Unfortunately, yielding is pretty much unavoidable :(
https://github.com/pszturmaj/ddb/issues/40
I wonder if it wouldn't be easier for me to just write my own Postgres/vibe.d driver.
How is this issue dealt with in the MongoDB driver?
I don't know anything about the DDB implementation, but does this mean
that it uses global variables to store state? Or is the problem with
accessing the same connection from multiple fibers/tasks?
In the latter case, it seems like there is a PostgresDB
class that
contains a connection pool to deal with the issue. Using db.lockConnection.someOperation(...)
in each task should always use a
connection exclusive for that task, so that no protocol level issues
should arrise from yielding.