Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
There's a database engine that looks amazing for a free tool and that is Scimore.
Have you had much experience with it? If so, how does it rate..particularly against Firebird? How resilient/self reliant is it? (Meaning how much downtime/maintenance is expected?) The scale out capabilities also look very interesting.
I just downloaded it and have been playing around and so far it looks good. I had been looking for an easy to deploy single-user type embedded database (which Scimore has an option) and was toying with MS SQL Compact Edition and SQLite and remembered this database from a trial a few years ago. (Windows platform)
I was about ready to settle in on SQLite but started thinking about other projects which are multi-user and wanted to stick with a single solution...which is why I started looking at Firebird as well.
You should not expect downtime with Scimore. It has all the bells and whistles that you will find in expensive database products, MVCC, ACID transactions, tolerance to your application crashing etc.
From what we hear, the primary reason to switch to Scimore Embedded, is robustness when having high concurrency, large datasets and large load.
An intersting thing that differentiates Scimore from other databases is that it grows from:
embedded inside your application processes. We know of applications based on ScimoreDB Embedded with more than 1.5 mio installations.
embedded with your application, but running in a seperate processes outside your application. It allows for multiple applications to share & modify data.
runs as a "standard" windows service, similar to a mysql/sql server/oracle
it runs distributed over many machines. You install the distributed instance (service) on many machines, join them into a cluster. You can now connect to any instance
and it will orchestrate your SQL queries over the machines in the cluster. Longest running cluster of 5 machines has been running for more than 10 years.
FAQ is a quite nice start
Can I get access to the source code?
[ScimoreDB]Yes, sign a support contract.
Firebird is Open source
Do you support integration with developer studio?
[ScimoreDB]No. We are working on both Linq and DDEX functionality. There is yet no release date
Firebird have.
Linux – do you have a linux version?
[ScimoreDB]Almost. Using Wine, we almost got there, but unfortunately the library seems to have some bugs for async socket and disc access.
Firebird have
Related
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 6 years ago.
Improve this question
Using MongoDB/CouchDB or any document based DB have a great and extensive documentation with Node.js. However, SQL usage (both raw and with ORMs) with Node have significantly less documentation and community backing. Why do very few people (at least on tutorials, public projects) use Node.js with SQL or ORMs in comparison to those who uses NoSQL?
All I see for Node.js is the MEAN stack and various NoSQL set ups (bundled in things like meteor). It's very strange for me to see so little content and a very small community working on Node and SQL. Although ORMs have performance drawbacks, I also hear a lot of drawbacks of using non-relational databases (like startups failing, etc) as opposed to SQL's reliability and age, plus ORMs solve the Object-Impedence mismatch issue.
I had to use SQL on a Node project and to cope with this, I used the most popular Node ORM Sequelize to map my JavaScript code to SQL queries so that I could focus on using one language, but the documentation and community is lacking and as a result it took a lot of time for me to discover how to use it in simple ways that would take me minutes on MongoDB.
Are Node and SQL not meant to work together?
For comparison, release dates:
Oracle: 1979
Java: 1995
Node: 2009
MongoDB: 2009
Node is a new technology that is often used with other new concepts and trending architectures. There is nothing wrong in using ORM/RDMS with Node, but usually, when a big company migrates to develop new systems with Node or a startup decides to build things with Node, they are also willing to try new architectures and solutions like NoSQL, memory databases, cloud services, etc.
RDBMSs are stable, powerful, you can build things with less risks and have more experienced developers in the market, but is an old technology. As a traditional technology, its more common to be accompanied with other traditional programming languages.
Also, Node uses JavaScript that have the best JSON support, which is great for NoSQL databases and JavaScript is untyped/weakly typed language, which creates some small issues to use ORM tools.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
I'm not going to make a big long rattle on this question about what I've tested and number crunching. I'm more interested in actual up-to-date practice performances.
I've read tons of articles already and some of them are pretty skeptical or either very pro to one library. I'm currently testing a bit with gorp, yet I have no clue how to compare the performances of such a library towards others.
I know gorp is an extra layer that tries to add ORM to the basic SQL driver/implementation, but seeing Go's extremely clear code and being it very close to the bone on everything it does. It's not like with PHP/Python/JAVA what I'm used too, where you have to navigate through endless layers of complexity to actually see what a package does in its essence.
So my question is if anyone can share (benchmarks are always welcome :) ) their experience and knowledge on this subject.
I don't think a NoSQL-type solution is an option for my projects. All my projects always strongly depend on business logic and intertwined relationships. I also wonder if Postgres will be a win over MySQL. With Django (Python) I noticed significant performance gain using Postgres, but I never found prove on that matter if it was due to the Postgres core implementation or just Django's way of using the wrapper.
Small update
After rereading the question I noticed I kind of missed the actual goal of it. I'm actually looking for the most suitable SQL solution that will least slow down Golang itself. I know the SQL runs concurrent, but also concerning heavy traffic when running it as a web service. I won't be really bothered to drop the ORM part again if that will get me major gain on performance.
If you need to use an ORM sqlx or gorp are good Go options. Personally, I am a bit old school and I would rather for a given type Foo, I would rather write a FooDB struct that implements a FooDS interface. Everything in your app just uses FooDS. (DB = database, DS = datastore)
Your FooDB implementation could be using any number of underlying technologies MongoDB, LevelDB, SQL, etc and it can change as your app changes and this change is transparent to the rest of your app (since the rest of your app uses FooDS).
I would default to using database/sql (Prepared statements, etc) and the most mature Go SQL driver is Julien Schmidt's MySQL driver: https://github.com/go-sql-driver/mysql
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
I have a project which is to make a "Platform as a Service" environment like Heroku, GAE or dotCloud to name a few.
One of the recurring questions I ask is "What feature is missing in the current platforms ?"
Currently most platforms allow developers to deploy their applications (PHP / Python / RoR / JAVA / ...) and manage them by a SDK, a console or an IDE plugin.
A few allow some features like :
- online IDE,
- custom domains,
- management of addons,
- logs system,
- cron tasks,
- collaborative aspect,
- ...
According to you what is your favorite feature in the current PaaS or, if it does't exist, what would you see in this type of service ?
Thank you for your explanations and your help.
Nico (French developper - hence my spelling mistakes ^^)
One of the main problems still not solved in cloud is the security. Every application should have data associated with that. With cloud where to store data? is it secure? can the owners of the system prepare it when some problem happens? ..
Another part is auto scaling. Can the users deploy their application and platform takes care of auto scaling load balancing etc ..
Versioning can the platform support different versions at once.
I think the main feature that is missing in all PaaS platforms is that they are scaling by duplication rather than parallelization. In order to scale, common platforms duplicate a worker, a service or an application and then re-aggregate this by deploying a (virtual) load balancer in front of it. Thus, the units of scale are relatively inelastic blocks (a block could also be a VM).
The ideal way of scaling should be smaller units though e.g.. threads, processes. This way scaling would leave this legacy approach towards a real elastic paradigm.
By the way: this way also the multicore-challenge could be addressed. When you have a system with 100s of cores, then probably the sole way for an application to scale is by thread or process that can be distributed over the available cores. Not by duplicating and deploying legacy load balancers.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 7 years ago.
Improve this question
I would started a database project (Accounting Application) for now Mac version which will be available in AppStore.
For future might be on iOS, Windows and web base.
I need database app that don't need the database ported to other platforms just by changing the UI and other sources I able to port it, no need to touch the database.
I'm a bit confuse to choose a suitable database SDK or etc!
Ror example I can choose:
• SQL Server
• MySQL
• SQLlite
• FileMaker
• Cocoa SQL
Remember I need:
1- Something not to complicate and easy to use it on XCode.
2- Have a bit security on the file.
3- the most XCode user using it.
4- Price is no problem.
5- Unicode fully compatible.
For my situation, which one do you recommend.
I think you're approaching the problem backwards - first you should be deciding on what development and deployment platform you want to use, and then select the best database server compatible with that platform.
What I mean by this is that whether you're using SQL Server, MySQL, SQLite, or any other faceless database engine, that doesn't answer the question of how you're going to develop or deploy the application.
You also need to decide whether to write one application for deployment on all platforms, or if you're OK with rewriting the application for deployment on certain platforms. The only technology choices I'm aware of that will work across all the platforms you've mentioned is an HTML 5 web app (using Ruby, Java, .NET, PHP, or some other web development system) or FileMaker (using FileMaker Pro for Mac / Windows / Web deployment and FileMaker Go for iOS deployment). If you're OK with writing a desktop/iOS version separately from a web version, then you need to ask yourself how many versions you want to write. If you pick something like C / C++ / Obj-C, then you're going to need to pretty much re-write it for each platform you've mentioned (although you can port from iOS to OS X with less effort than the other platforms). If you pick Java, then you're set for web deployment, Mac deployment (although you can't distribute Java apps via the Mac App Store) and Windows deployment, but you'll need to use Obj-C or HTML 5 for iOS.
So in summary, the right approach is:
Pick your deployment target(s)
Based on that choice, pick your development system(s)
Based on that choice, pick your database engine.
If its for a single user application SQLite is probably the best option - its purpose built for embedded apptications. Its also portable between os types.
I'd second the recommendation of SQLite as a lightweight database portable to multiple platforms. But what do you mean by "fully compatible" with Unicode? See: http://www.sqlite.org/version3.html
It's hard to say what you need from your description, but from what I can glean, SQLite would be the logical choice. However, if you insist on actually having a database server, you should investigate PostgreSQL. It has a far more permissive license than MySQL.
I would advise you to pick a Database Management System based on your data management requirements rather than on your choice for other components of your system. In the end almost all of them support SQL. SQLite is a good choice for a portable client-only solution. SQL-Server, MySQL, Postgres, DB2 and Oracle are optimized for server-side transaction processing (lots of inserts and updates). Vectorwise, Vertica and MonetDB focus on analytical queries (e.g., statistical analytics on your data like group by). If you make a bad choice here you might face scalability/performance issues later which may be very expensive.
So pick your DBMS based on the anticipated usage pattern.
BTW: A License for an Oracle DBMS instance can easily go up to a couple of ten thousand dollars. So be careful when saying "Price is not a problem".
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 3 years ago.
Improve this question
I am interested in developing a new SQL-based RDS which can generate prototype CRUD-oriented 4GL code which can then be easily customized. So I am looking for opinions, suggestions, etc. in what features should a new RDS have?
I have looked at several products. FileMaker is more or less the type of product I'm looking for, but it's not SQL-based. Informix 4GL and 4Js are what comes closest, but the lead time for customizing/debugging seems to take a long time.
Depends on the market you are aiming for. In your place, my first decision would be whether to link it to a specific RDBMS implementation (which would be Oracle, SQL Server or mySQL) or to try to make it flexible to use amongst any of the major databases. The latter would obviously add massively to the complexity (development, testing, support).
The second would be the OS platform. Something that is specific to Windows (or perhaps Windows Vista/7 upwards) or can be used on Linux, OSX etc. 32bit/64bit would also be a consideration here. I'd need to know that it can run on 64-bit Windows 7 at least.
Thirdly, what do you develop your Rapid Development Tool in. Dot Net would pretty much be Windows only. Java or Python offer more choice.
Fourthly, are you making this as a commercial product, or as open source (or both). Bluntly, if I was looking at buying such a tool to develop my XYZ product in, I'd be looking at long-term support. If the tool doesn't have a five-year pedigree of ongoing support, I'd be very hesitant and would only consider it if it came from a company of the likes of Microsoft/IBM/Oracle/Apple with some serious history in the field. And even then I would be skeptical (search on Microsoft's Oslo/Quadrant/SQL Server Modeling).
I'd also be looking for professional tech writers for the documentation.
See the feature list of Oracle Application Express for some good ideas.
I've used a few of these tools and things that come to my mind are:
1/ automatic joining on foreign keys
2/ keeping columns in the same order as the table in the code
3/ dynamic code generation, no separate code generation stage
4/ undo on table changes
5/ prototyping features to enable actual data to be modelled during development
6/ hide column feature
7/ SQL import for those tricky bits
8/ code locking on tricky bits
9/ version control
10/ segmentation into namespaces
11/ Language templates for easy addition of extra code languages
I think going to an intermediate 4gl first would be good and then a second stage to render code in the language of choice would be good.
I hope this is of some use to you, good luck!