Local Database in Browser with Remote Synchronization for AZURE - reactjs

Currently I'm working on a project where we use React, PWA, PouchDB and CouchDB to build an offline first application with a large amount of data from the remote database, stored in the client web browser.
In other words a local database of around 2GB is stored in the client through IndexDB storage.
There is a significant problem on the replication of the remote database when starting the application and building the local database. PouchDB takes too long to do this process, there is a thread speaking about this topic.
pouchdb replicate from couchdb : very slow
Apparently there is no way to speed up PouchDB in the level that we need for the project. Therefore we have considered other options for a local database in the web browser with synchronization to a remote database. Some of the options we have considered are AWS Amplify Datastore, Firebase Cloud Firestore and Minimongo.
The company I work for is strongly linked with Azure services, but I have not found any like service in Azure that stores large amounts of data in the client web browser and synchronizes with the remote database.
Does anyone know of an Azure service that can help with this project?
If not, is there any other option or architecture even if not Azure, that would be recommended. We already have a functional web application with React, PWA, CouchDB and PouchDB, this is NoSQL, so NoSQL options would be preferred, but I'm open to consider SQL Database options even though a bigger modification would need to be done in the program.
Thank you in advance !!

Related

OCN client in-memory database

I am using the OCN-client locally. I run it in memory, without a database. How does it work? Will it be a problem for me when developing my backoffice service?
The in-memory database is good for development (the OCN client will forget connected parties on restart), but when moving to testing and production phases you would want to switch to a persistent database.

Where does a Web service's Database typically sit?

I am learning back-end development by developing a C# Web Service that interacts with a database. I am not sure, however, where the database is supposed to be kept. Is it supposed to be in the same location as where the web service will be hosted?
[1]Yes,Usually Hosting provider will provide you database with any of your chosen plan like Shared Hosting/VPS Hosting/Dedicated Server.So you should keep your database in hosted environment.
[2]Take backup and keep a copy of it with your local system by FTP transfer.

Storage options for win 8/10 universal app?

Assuming I want to develop a Win 8/10 universal app eg calendar, the user has a two devices tablet/phone.
How can my calendar share a local SQL database?
I don't want to maintain or administer an azure service or any other remote DB service ie AWS, VPS running SQL Express etc.. which is overkill for such a basic scenario.
I have considered SQLite and dumping the DB file in the users MS OneDrive folder but as we know this could result in sync/lock issues.
So using a purely self contained & free model, how can my two devices share this basic SQL data?
If the database is small you can save it in the RoamingFolder and let Windows take care of copying it to the other system.
See Quickstart: Roaming app data
Other than that storing the data in a cloud service such as an Azure Mobile App Service is the easiest and cleanest solution. Azure Mobile Services support offline sync to SQLite if you need to support both online and offline scenarios.
Saving app data on the user's OneDrive or dropbox and then explicitly downloading it to use is possible but more difficult and a bit dirtier since the data will be visible to the user and could be accidentally deleted, moved, etc. For a personal app it's not bad but I wouldn't do this in production.
If you're copying the database between systems (either via roaming or via a data storage site) you'll need to devise a way to handle conflicts. This is simpler if everything is kept in a single cloud database.

Database dot com database syncing

I am working on a phonegap project to build a cross platform mobile app, and came to know from a website that the app's database can be deployed/built with "database.com".
The procedure is well explained but I have one question -
how to sync the database available on database.com with a database on a local server?
i.e. for e.g., if a client has his database (of his desktop application) on his local server and he requires a mobile app of the same now, what is the procedure to be followed in "database.com" to sync his server's database with the database on "database.com"?
PS: I need to use "database.com" for my database because I want to maintain it on cloud, and I do not have capability to maintain a local server.
You might need a service for data syncing if it is to be more than once. I work on a project that does exactly this.
www.overcast-suite.com
Otherwise, model your tables to Salesforce Custom Objects, export the data on the local server to CVS and use the Data Loader to import.

Hosting an Access DB

So I'm inexperienced in hosting DB's and I've always had the luxury of someone else getting the db setup.
I was going to help a friend out with getting a webpage setup, I've got experience in Asp.Net MVC so I'm going with that. They want to setup a search page to query a db and display the results. My question I have is in getting the DB setup and hosted. They currently just have the Access DB on a local computer. There is basically only one table that would need to be queried for the search.
What is the best approach to getting this table/db accessible? They would like to keep the main copy of the db on the local machine, so copying the entire db over to the hosted site would be time consuming, could the lone table needed be solely copied to the host? Should I try to convince them to make changes on the hosted db and just make copies of that for their local machines? Any suggestions are welcome, Again I'm a total noob when it comes to hosting databases.
Thanks
Added: They are using a MS Access 2000, and the page will have access restrictions. Thanks for the responses.
How about SQL Server Express? I think you can do a remote connect from Access and just push the data over from Access.
I wouldn't use Access on a web server in any case.
I would strongly recommend against access from web work, its just not designed for it and given that SQL server express is free there is no reason not to give it a go.
You can migrate the data over by using the SQL server upsizing wizard, here is a link for help on using that feature
http://support.microsoft.com/kb/237980
It depends on what you mean by web work? Access 2010 can build scalable browser neutral web applications. They can scale to 1000's to users. In fact, you can even park the web sites on Microsoft's new cloud hosting options, and scale out to as many users as you need.
Here is a video of an application I wrote in access 2010. Note how at the half way I run the same application including the Access forms in a standard web browser. This application was built 100% inside of the Access client. The end result needs no ActiveX or Silverlight to run.
http://www.youtube.com/watch?v=AU4mH0jPntI
So, the above shows that access can now be used to build scale web sites (you can ignore the confusing answers by the other two posters here they are not quite up to speed on how access works or functions).
However, for your case, I would continue to have the access database on the desktop. You can simply link to tables that are hosted on the web server. Those tables can exist in MySql, or sql server. As long as the web site supports external ODBC connections (many do), then you can thus have the desktop application use the live data from the web server. If connections to the live data at all times is a issue, then you could certainly setup something to send up new records (or the whole table) on some kind of interval or perhaps the reverse, and pull down new records on a interval from the web site (depends which way you need to go). So, connecting to MySql or sql server is quite easy as long as the web hosting and site permits external ODBC connections. I do this all the time, and it works quite well.
As mentioned, new for access 2010 is web site building ability but that does requite Access Web services running on SharePoint.
You don't need to upgrade to Access 2010. One option is to use the EQL Data plugin to sync the database up to the server. Then you can write an asp.net, php, or whatever application that queries the table using the EQL API and prints the results however you want. This kb article describes how to use the EQL API from a web app.
The nice thing is that the database is still totally usable (and at full speed) even when you're not online, and then you can sync the new data up to the web occasionally. It only uploads the changes, not the entire database every time, so it's fast.
Disclaimer: I work at EQL Data so I'm a bit biased. But this kind of use case is the whole reason the company exists.

Resources