Comments (3)
Have you looked at connection keep-alive config? After some profiling i figured out some of the latency issues on our end were trying to get a fresh connection each time.
Here's the config we use. See client_session_keep_alive
, CONN_MAX_AGE
.
SNOWFLAKE_DB_CONFIG = {
"ENGINE": "django_snowflake",
"NAME": "foobar",
"SCHEMA": "foobar",
"USER": os.environ["SNOWFLAKE_USERNAME"],
"PASSWORD": os.environ["SNOWFLAKE_PASSWORD"],
"ACCOUNT": os.environ["SNOWFLAKE_ACCOUNT"],
"OPTIONS": {
"client_session_keep_alive": True,
},
"WAREHOUSE": os.environ["SNOWFLAKE_WAREHOUSE"],
"CONN_MAX_AGE": os.environ["SNOWFLAKE_CONN_MAX_AGE],
}
It looked like the library doesn't support pooling yet.
You should run a python profiler to confirm where it's spending its time on(end to end eg. an API endpoint). This is assuming the query itself on snowflake directly is fast. In our case, we had a couple of seconds of added latency due to a new connection. We're still looking deeper into implementing pooling and submitting a PR upstream
from django-snowflake.
Hi @sidmitra, thank you very much for your answer.
Implementing the client_session_keep_alive
and CONN_MAX_AGE
parameters, the waiting time was reduced to around 3 or 4 seconds after the second click in the Admin-site. I mean, the first click is still around 10s and an update, for example, is around 10 seconds as well.
I will run the python profiler and I'll be back with more precise info ;)
Thank you very much because overall it was an improvement.
from django-snowflake.
Hi Daniel, please let me know if you have any further profiling data or suggestions. Thanks.
from django-snowflake.
Related Issues (20)
- Add support for resetting autoincrement sequences
- UUIDs being stripped of hyphens HOT 1
- Add support for introspecting lower case identifiers
- ERROR in RawQueryset [Raw SQL ]
- Error: The session does not have a current database HOT 7
- Unable to use the connector with external browser authentication HOT 1
- Switch to REGEXP_INSTR to avoid implicit anchoring
- Use last_query_id when retrieving last_insert_id HOT 2
- JSONField queries with complex JSON parameters don't work
- Consider changing NAME to DB_NAME HOT 2
- Option private_key does not work when launching SnowSQL HOT 3
- ROLE should be a top level config HOT 3
- instead of last_insert_id, can we set "can_return_columns_from_insert" as False? HOT 2
- Document how to authenticate with a private key HOT 1
- Datetime should be Timestamp_ntz HOT 6
- Persistent DB connection (a la `CONN_MAX_AGE`) HOT 5
- Receiving 'Error detecting the version of libcrypto' when connecting to Django HOT 1
- authenticator:externalbrowser issue HOT 3
- "The error was: too many values to unpack (expected 11)" while running inspectdb HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from django-snowflake.