You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Apr 3, 2024. It is now read-only.
Great project! Really makes temporal much more accessible and opens up some cool edge use cases (eg. raspberry pi, etc). While playing around for a low resource use case I noticed performance was lower than expected.
Is your feature request related to a problem? Please describe.
Using the Maru benchmarking tool I was getting ~1 workflows/s (3 activities) with persistence turned on. When using sqlite in memory, this increased to ~20 workflows/s. Sqlite has additional pragma settings that could improve the persisted perf.
Describe the solution you'd like
Add ability to CLI to adjusting sqlite connection attributes.
Tinkering around and hardcoding the following significantly improved performance to ~10 workflows/s including disk persistence:
It would be beneficial to have the ability to adjust the sqlite connection attributes. This could be done using a flag (eq --wal) to enable WAL support, or just allow arbitrary sqlite connect attributes (eg. --sqlite-attrib _journal=WAL --sqlite-attrib _sync=NORMAL) to be set.
The text was updated successfully, but these errors were encountered:
Right now Temporalite uses the github.com/mattn/go-sqlite3 driver but this could change in the future so I'd like to keep the actual connection attributes which can be driver specific abstracted from the CLI and Go library interfaces. How about something like --sqlite-pragma journal=WAL? We could add an additional flag to support DSN query parameters like mode or cache later if we need to.
I'd also like to ship with a more performant default config as long as it doesn't compromise correctness or cross-platform support. We can do that in a separate changeset though.
@plaisted is this something you're interested in contributing? A PR would be welcome. 😄
Great project! Really makes temporal much more accessible and opens up some cool edge use cases (eg. raspberry pi, etc). While playing around for a low resource use case I noticed performance was lower than expected.
Is your feature request related to a problem? Please describe.
Using the Maru benchmarking tool I was getting ~1 workflows/s (3 activities) with persistence turned on. When using sqlite in memory, this increased to ~20 workflows/s. Sqlite has additional pragma settings that could improve the persisted perf.
Describe the solution you'd like
Add ability to CLI to adjusting sqlite connection attributes.
Tinkering around and hardcoding the following significantly improved performance to ~10 workflows/s including disk persistence:
It would be beneficial to have the ability to adjust the sqlite connection attributes. This could be done using a flag (eq
--wal
) to enable WAL support, or just allow arbitrary sqlite connect attributes (eg.--sqlite-attrib _journal=WAL --sqlite-attrib _sync=NORMAL
) to be set.The text was updated successfully, but these errors were encountered: