3- Since CanelaDB is a NoSQL DB (as opposed to traditional relational database), generally speaking, what would be the difference when accessing records with a typical Header/Detail relationship?
If I understand correctly, you are asking how to work with a data-model where you have a one to many relationships. You could denormalize your data and consider each record to be a document. All data related to the header would then be found in the single record. Or, you could build two tables and have a foreign key to connect the two tables together. This is managed manually on your code side. We currently do this in NurseNotes (one of the apps we make). If I totally missed your question, please let me know.
4- I see there is extensive support for defining keys. When doing a Query (read) from the online CanelaDB, is it possible to request a range of records? Ie: between this-date and that-date?
Yes on date ranges. More query range support could be added. We are interested in feedback that will help developers get their work done faster.
Is there any capability to make queries based on wildcards?
Yes. LiveCode's filter is used internally.
Full text indexing?
Please elaborate on this.
Aside from increased speed, what other special features does the CanelaDB offer?
One of the most important is that your code-base works in either local or cloud with a single argument change. Another is that it fully utilizes arrays. You can even store arrays in keys. The library is very light in terms of memory. We update it often. So, you always have access to the latest version. CanelaDB deals well when the internet goes offline. Key outgoing traffic is automatically cached for you and sent when the internet returns. Encryption and authentication are built-in. So, you can subtract those from your workload. We also have built-in user support. This is automatically tied to the authentication features. We are working on adding roles and privileges. More details can be found here: https://livecloud.io/features/
5- I see "Rain" hosting plan supports a 500 MB cloud database and 20 GB blob storage. Does that 500 MB in-memory area just act as a cache for the 20 GB? Or does each table inherently live in one or the other?
The in-memory allocation is 500 MB. This is the amount of space allotted to the 'Rain' account for queryable data. This space may be spread out over different instances on different servers in a given region. The 20 GB of blob space is stored differently. We use the Digital Ocean Spaces object storage for this feature. This data is not queriable. It is useful for large chunks of data like pictures, video, PDF, etc.
6- What about data throughput? Is there a limit on traffic?
The 'Rain' tier is a shared environment in terms of resources. The more developers that use the service the more resources we will have to share within a given region. The service automatically monitors the health of each region. When resource usage increases, droplets are spun up and added to the region. As we add droplets to support a region, your data will be partitioned across the instances available. This will allow for a certain amount of disproportionate spiking by a range of accounts.
We are not limiting by traffic for the time being. We are making a big effort to simplify the metrics used for billing. Pricing based on RAM usage is a good place for us to start. Should a particular account need a regular and disproportionate quantity of bandwidth, we are happy to notify them and discuss their options. We have a 'Storm' tier available where an account can customize their private region. A team will be assigned to work closely with the LiveCloud developer/s to determine the best architecture to support their needs.
And if by chance someone needed twice as much storage as the current "Rain" plan offers, would the price be approximately twice as much?
Yes, the pricing is linear. Double the memory used should generate a bill very close to 2 x $15.
7- I see the "Rain" plan includes 1 Data Region. What exactly is a Data Region?
A region is defined by the geographic locations where Digital Ocean has placed their datacenters. Their regions are located near the bottom of their homepage https://www.digitalocean.com
. This will allow a developer to pick the best geographic region to support its customers.
Also, I see there is a CreateProject command. Does this mean data can be segregated between different apps, by defining them each as separate projects?
Yes and yes.