Reuse existing database, or use a new one? (for application performance) [closed] - performance

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 9 years ago.
Improve this question
I have an existing Oracle 11g DB, with a high transaction volume application running on it. I have another application (a CMS), and am not sure if, performance wise, it makes sense to reuse the existing Oracle DB, or go with a separate database on another physical machine. The two apps share no common data.
My question is: does Oracle 11g (Enterprise) have features which would allow two entirely separate data sets to be accessed simultaneously, with the only performance limitation being the physical/virtual server resources available?
This question doesn't apply because my data sets are completely unrelated (and they're on MySQL). I checked out Oracle's suggestions for application performance, but this paper doesn't address optimizing performance for separate applications with separate data sets running on the same database.

The direct answer to your question is: no, Oracle doesn't have features to do that kind of separation if don't consider ANY kind of change in you infra-structure.
As far as I can see, your options, with Oracle, would be:
1) Single instance.
1.1) Just one node (your the case now, right!?). Oracle Enterprise scales adding nodes so, this option won't scale and the two schemas/data sets in same database will get in each other way.
1.2) Add more nodes. You can add more nodes to share load (using RAC). Administration would be more complex and licensing costs would go up. But in this case, scalability is only limited by your budget.
2) Two separate instances in separate machines. Equivalent to using a new database in MySql (not minding about the differences in capabilities and pricing).
MySql is inferior to Oracle in many ways but clearly superior in setup costs. Not so sure about maintenence/development costs.

Related

How to build reporting in Microservices Architecture? [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 2 years ago.
Improve this question
While doing a POC around Microservices architecture; one of the challenges that I need to explain it that how to obtain reporting data from different services in an effecient way?
I would appreciate guiding me in the right direction.
If the data spans over multiple microservices then it depends on the business use case. In my opinion there are couple of ways to do it
Approach 1 query microservices dbs (not a preferred approach)
If your microservices are not very load intensive then you may query the data from all the services databases at off peak time and insert records into your warehouse database. This is not preferred approach since you are still putting additional load to services but it's easier . Also the reporting data may not be in realtime.
Approach 2 Event sourcing/CQRS
This approach is very preferred since your write and read models are completely separate. In brief the way if works is events generated by your different microservices will also be updating your read models called materialized view. If you have requirement where your reporting data requires near real time data then this is the way to go forward. You can shape your reporting model as you like and you can create multiple reporting models using events. But this is complex approach and require application design accordingly. However the benefits are countless. You may want to reach more about Event Sourcing and CQRS if you are interested.
Approach 3 have read only replicas
If you are using cloud services you can create readonly replicas of your databases and can use them for reporting. this is widely accepted approach since you are not impacting transactional databases. but this may be expensive since you are paying for additional databases.

Website Performance Issue [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 10 months ago.
Improve this question
If a website is experiencing performance issues all of a sudden, what can be the reasons behind it?
According to me database can one reason or space on server can be one of few reasons, I would like to know more about it.
There can be n number of reasons and n depends on your specification
According to what you have specified you can have a look at,
System counters of webserver/appserver like cpu, memory, paging, io, disk
What changes you did to application if any, were those changes performance costly i.e. have a round of analysis on those changes to check whether any improvement is required.
If system counters are choking then check which one is bottleneck and try to resolve it.
Check all layers/tiers of application i.e. app server, database, directory etc.
if database is bottleneck then identify costly queries and apply indexes & other DB tuning
If app server is choking then, you need to identify & improve the method which is resource heavy.
Performance tuning is not a fast track process, it takes time, identify bottlenecks and try to solve it and repeat the process until you get desired performance.

Would Hadoop help my situation? [closed]

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 9 years ago.
Improve this question
I am in the process of creating a survey engine that will store millions of responses to various large surveys.
There are various agencies that will have 10-100 users each. Each will be able to administer a 3000+ question survey. There will be multiple agencies as well.
If each agency was to have hundreds of thousands of sessions each with 3000+ responses, I'm thinking that hadoop would be a good candidate to get the sessions and their response data to run various analyses on (aggregations etc).
The sessions, survey questions, and responses are all currently held in a sql database. I was thinking that I would keep that and put the data in parallel. So when a new session is taken under an agency, it is then added to the hadoop 'file', such that when the entire dataset is called up it would be included.
Would this implementation work well with hadoop or am I still well within the limits of a relational database?
I don't think anyone is going to be able to tell you definitively, yes or no here. I also don't think I fully grasp what your program will be doing from the wording of the question, however, in general, Hadoop Map/Reduce excels at batch processing huge volumes of data. It is not meant to be an interactive (aka real-time) tool. So if your system:
1) Will be running scheduled jobs to analyze survey results, generate trends, summarize data, etc.....then yes, M/R would be a good fit for this.
2) Will allow users to search through surveys by specifying what they are interested in and get reports in real-time based on their input....then no, M/R would probably not be the best tool for this. You might want to take a look at HBase. I haven't used it yet, but Hive is a query based tool but I am not sure how "real-time" that can get. Also, Drill is an up and coming project that looks promising for interactively querying big data.

Suggestions for an Oracle data modeler that can reverse engineer and handle very large databases [closed]

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 9 years ago.
Improve this question
By very large, I mean on the realm of thousands of tables. I've been able to use Toad Data Modeler to do the reverse engineering, but once it loads up the txp file it creates, it just croaks. Even attempting to split up the model isn't possible as TDM just sits, frozen.
So, I was wondering what other options are out there, and perhaps if there are any 32 bit applications that can handle such a database model (considering the memory used by this is ~750MB, I would think it not too large for a 32 bit computer with max RAM).
Also to note, I am not trying to create a diagram with this (such a huge diagram would be effectively useless unless you already knew the system), but am instead needing to export the design of the database. So the data model tool doesn't need to support any sort of fanciful graphics, which may not be possible with the given size anyways.
Edit:
I've found a potential solution which leads to TDM working. You have to close the project, close TDM, open TDM, and then open the project. If you just kill the process while it is frozen, this will not work. What this does is zoom the screen showing the graphical representation to the normal view level, while normally after reverse engineering, the entire database is put into the view (if you just kill the process, when you open up the file again, you will see the entire database). While I am not certain the details, it appears being zoomed it makes it so that TDM runs much smoother and does not freeze or crash, and as such I am able to keep working in it to do what I need.
How about Oracle's own SQL Developer Data Modeler?

What environment do I need for Testing Big Data Frameworks? [closed]

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 10 years ago.
Improve this question
As part of my thesis i have to evaluate and test some Big Data Frameworks like Hadoop or Storm. What minimal setup would you recommend to get some relevant Information about Performance and scalability? What Cloud Plattforms would be best suitable for this? Since im evaluating more than one Framework a out of the box PaaS - Solution wouldnt be the best choice. right? Whats the minimal number of nodes/servers to get some relevant Information? The cheaper the better, since the company im doing it for wont probably grant me a 20 Machine Cluster ;)
thanks a lot,
kroax
Well, you're definitely going to want at least two physical machines. Anything like putting multiple VMs on one physical machine is out of the question, as then you don't get the network overhead that's typical of distributed systems.
Three is probably the absolute minimum you could get away with as being a realistic scenario. And even then, a lot of the time, the overhead of Hadoop is just barely outweighed by the gains.
I would say five is the most realistic minimum, and a pretty typical small cluster size. 5 - 8 is a good, small range.
As far as platforms go, I would say Amazon EC2/EMR should always be a good first option to consider. It's a well-established, great service, and many real-world clusters are running on it. The upsides are that it's easy to use, relatively inexpensive, and representative of real-world scenarios. The only downside is that the virtualization could cause it to scale slightly differently than individual physical machines, but that may or may not be an issue for you. If you use larger instance types, I believe they are less virtualized.
Hope this helps.

Resources