So, if Gyxi DB is fast, powerful, easy to learn, scalable, then “what is the catch”?
Firstly, I want to underline that it truly is all those things. And it is due to one major trade-off and that trade-off is “the catch”.
The views are powerful and flexible, but, and here it comes:
The views are not updated instantly!
After you change any of your base data and you want to query some of that data from a view, it takes a little while before they show up.
As a general rule of thumb, it takes a few seconds, very likely less than 10 seconds.
However, it does depend primarily on one thing and secondarily on a few other things.
Firstly, the main factor that determines how long time it takes before your view is updated is how many views you have for that type of data.
For example, if you have 30 views on a single type of data, that’s a lot and it will take longer before all the views are updated. However, the views are updated in parallel so even with 30 views it is very likely that all your data is in most cases updated in less than 10 seconds.
The views are updated AFTER you change your data. That means it is out of your hands.
So this is the big trade-off.
It doesn’t mean your end users need to wait a few seconds before they can work with data they just added. You determine the id of your data and the data is instantly available in your base database.
One common strategy is that you have data from a view in your user interface and now you add another piece of data. When you add the data, you simply keep it in your client side array when you save it in the database and allow the user to continue working with it.
If your code requires you to get data from the database to work with it, simply get it from the base data where it will always be available instantly.
So that’s the big catch. Your application developers have to be aware that there are a few seconds delay before data becomes available in views and in some cases they will have to take that into account while coding.