Feed aggregator
Big data continues to provide value for HR
While businesses are looking to mine big data for a variety of reasons, human resources (HR) is one function that has been attracting increasing attention for these projects. Companies that have applied big data insight to HR processes have not only been able to optimize hiring strategies, but also keep existing employees more engaged, productive and happy, reducing turnover and boosting enterprise-wide performance. However, in order to achieve success with these initiatives, firms need proper support from the right technologies and database experts.
According to Human Resource Executive, Naomi Bloom, managing partner of Bloom & Wallace, believes that HR must first have a deep understanding of long-term hiring objectives before improving these processes through predictive analytics. She noted that by gaining a firm grasp on expectations for what a particular position will need to accomplish and developing a profile for an individual that could successfully fulfill those obligations, an enterprise can then assess if a potential hire will be able to meet those needs and moreover, excel in the role. Bloom was adamant that these analytics capabilities are still in the early stages but demonstrate immense potential. With an adequate combination of tools and expert skills, firms can benefit from more accurate insight.
"Think about what's happening in the customer-relationship-management space, where they're analyzing the tone and frequency of conversations customers are having about a company and its products to really understand how people feel about it – if you apply that internally, you can really change the game," Yvette Cameron, vice president and principal analyst at Constellation Research in Denver, explained to the source.
Better decision-making
CIO Journal reported that ConAgra Foods, which owns Hunt's, Chef Boyardee and other food brands, has already made use of big data in the battle for talent. Mark Berry, vice president of insights for the company, explained that the company, which has a global staff of 36,000 sought to figure out who is most valuable and successful within the enterprise by automating HR processes with new technologies. Berry stated that these tools will be used to analyze a range of big data in both structured and unstructured forms, and that information will then be pulled into a unified, centralized data warehouse for the firm's clients.
"Data gives you direction, it helps you look at the rightness or wrongness of your decisions," Berry said.
Organizations that are able to apply big data initiatives to HR processes have the opportunity to gain a significant competitive advantage by finding, securing and retaining the best possible staff.
RDX's business intelligence and big data experts assist customers in leveraging data contained in large data stores. For more information, please visit our Business Intelligence and Predictive Analytics pages or contact us.
MDS XML versus MUDE Part 2: What is MUDE?
Mark Rittman once joked during a presentation on OBIEE and SCM that “MUDE” (multiuser development environment) was the closest thing to a dirty word in the OBIEE documentation. I know many people who feel that way… some justified, some perhaps not, as MUDE has certainly gotten better in the later releases of OBIEE. As I mentioned in the introduction, I’d like to introduce MUDE in this post to set the stage for, at the very least, how good a competing multiuser development methodology would need to be. I’m not a genuine fan of MUDE… but I promise not to present a straw man to rip apart in my later posts. If you feel I don’t give it a fair shake, please comment and let me know. If you are interested in some other thorough treatments around MUDE, Venkat wrote about it on his old blog when the feature was first introduced in 10g, as did Mark here on this blog.
Let me start by putting forth what I think are the SDLC (software development life-cycle) imperatives that any solution to metadata development (or any other kind of development) should tackle without question:
- Multiple users should be able to develop concurrently… but we need to be clear exactly what we mean by this. Having all the developers login to a shared online repository is one way to do multiuser development… but this equates to multiuser development using serialized access to objects. Whether explicit or not in the requirements… what most organizations want is non-serialized access to objects… meaning that multiple users can be making changes to the same objects at the same time, and we will be able to merge our changes together, and handle conflicts.
- Our VCS should give us the ability to rollback to previous versions of our code, either for comparative purposes… or because we want to rewind certain streams of development because of “wrong turns”.
- Our VCS and supporting methodology should provide us the ability to tag, secure and package up “releases”… to be migrated to our various environments eventually finding their way to production.
So let’s see if MUDE is up to the challenge. To enable MUDE, I start by defining one or more Projects in my binary RPD. So, I open the RPD in the Admin Tool, choose the Manage option from the toolbar, and select Projects… from the drop-down list:
Next… I choose all the objects I want to include in the project. Our choice for which logical tables to include from the Business Model (BMM) is driven by which logical fact tables we choose, using either individual Presentation Subject Area measure folders, or explicit BMM logical fact tables. We also select any other objects we want to include in the project: explicit Presentation layer folders, init blocks, variables, etc.:
Once we have configured one or more projects in the repository, we then take the binary RPD file and place it on a network share accessible to all developers. From here on out, the RPD file is referred to as the Master Repository. Now, whenever we want to check out a project from the Master Repository, we register the shared network drive location in the Admin Tool. We get to the configuration screen by choosing Tools and then Options… and then choosing the Multiuser tab:
Once a Master Repository exists in the development directory specified in the Admin Tool, we are then able to check out a project from the Master Repository. To check out a project, we choose the File menu, and from the drop-down menu, we select Multiuser and then Checkout… after that. Then we choose the project we want to checkout:
The Admin Tool now prompts us to create a new “subset repository”. This is a fully-functioning binary RPD file containing only the subset of objects that were defined in the project. We can call this RPD anything we like–in my example I called it gcbc_project1.rpd–and it will exist in the “repository” directory buried in the bifoundation directory underneath our instance directory, for instance: [middleware_home]\instances\instance1\bifoundation\OracleBIServerComponent\coreapplication_obis1\repository:
Once we have checked out our project, it’s interesting to see the files that the Admin Tool generates behind the scenes to manage MUDE. If we look in the Master Repository directory (this was the C:\master directory we configured in the screenshot above), we should have the following files:
- gcbc.rpd: The original Master Repository binary RPD file
- gcbc.000: A backup of the Master Repository RPD file. We will constantly see new versions of the backup file as development continues on the Master Repository, and we’ll see the numeric extension increment over time.
- gcbc.mhl: The history file… this tracks all the history of changes, when they were performed, and by whom. This file can be output to an XML file using the mhlconverter utility so that it’s readable without the Admin Tool.
Now, if we look in our local repository directory, we have the following files:
- gcbc_project1.rpd: The subset binary RPD file we created when we checked out our project above.
- originalgcbc_project1.rpd: Initially… this is an exact copy of the subset binary RPD at the time of checkout. It will not be affected by changes to the actual subset RPD, as it’s purpose is to serve as the “original” copy of the RPD during the 3-way merge. Also… it facilitates the Discard Local Changes options in the Multiuser menu option.
In looking at this infrastructure… there’s nothing magic happening here: MUDE simply uses the basic functionality of the Merge… and the Compare… that are built into the Admin Tool. I’m not saying this disparagingly. There’s no reason to maintain the code path for two different versions of a 3-way merge. MUDE is really nothing more than a framework for making the Compare… and Merge… functionality easier and more predictable. So, it’s not shocking when we choose Compare with Original… from the Multiuser menu and see a screen identical to the basic Compare… option without MUDE:
Similarly, when we choose the multiuser option Publish to Network… we see a window identical to the standard Merge… option in the Admin Tool:
So this was a high-level look at MUDE… hopefully I’ve done it justice. Now I’d like to discuss where I think MUDE comes up short as a competent VCS, or SCM… or whatever solution we think it is. On our list of the three imperative boxes that a metadata development solution should tick, I think number (1) is a slam-dunk. Although there have been issues with MUDE… almost every BI or ETL tool I’ve worked with over the years has issues in this area. I think there is also a fair argument to be made that MUDE also ticks the boxes for (2) and (3). But is it complete enough in the areas?
Although MUDE provides us the ability to interact with previous versions of our code, it does this with a “siloed”, metadata-only approach. If I were building an entire BI solution, I would want to associate my metadata repository with my web catalog, and also presumably with my database DDL scripts and ETL routines, regardless of which tool I used for that. MUDE only handles the RPD. If I could somehow figure out how to use a standard VCS such as Git or Subversion to check in all my code into one place, then I could see how everything looked at a particular point in time. The same goes with tagging and packaging releases. MUDE makes it easy to prepare a binary RPD file for release, but it provides no benefit when it comes to packaging a release for the entire BI system. I want a more pervasive solution.
I also think MUDE misses the mark with the conflict resolution workflow, which is depicted in the screenshot directly above. The Define Merge Strategy dialog occurs for individual developers when they try to publish changes back to the Master Repository. I would argue that the handling of conflicts should not be the developer’s job. Suppose I add the logical column % of Discount to a logical fact table as depicted above. If my change conflicts with a change from another developer a continent away, am I really in a position to be able to determine the appropriate conflict resolution at that point in time? I may not even know the other developer… or understand why we are both making changes to the same logical column. So regardless of whether conflicts arise, developers should be able to “publish” their changes to be resolved downstream by the source master. This source master role may be a part-time or full-time role… but this is the person whose job it is to resolve conflicts. So our SDLC solution needs to support the decoupling of multiuser conflict resolution from the development process.
In the next post, I’m going to take a look at the combination of MDS XML and Git. I’ll talk a little bit about Git, and why it’s superior to Subversion for our purposes. I’ll see if this combination can tick all the right boxes I described above.
Bug 10013177 running Aggregation on Expression indexed by an FBI
Here's a demo. (tested in 11.2.0.2)
Start with a table and an FBI
SQL> create table test_10013177 (col_1 number(6,4));Funnily, the results in the last query are truncated !
Table created.
SQL> insert into test_10013177 values (12.3456);
1 row created.
SQL> create index index_10013177 on test_10013177(col_1+1);
Index created.
SQL>
SQL> exec dbms_stats.gather_table_stats('','TEST_10013177');
PL/SQL procedure successfully completed.
SQL> select col_1+1 from test_10013177;
COL_1+1
----------
13.3456
SQL> select max(col_1+1) from test_10013177;
MAX(COL_1+1)
------------
13.3456
SQL> select /*+ full (t) */ max(col_1+1) from test_10013177 t;
MAX(COL_1+1)
------------
13
SQL>
.
.
.
How to translate and use Apex text messages inside javascript code and other considerations about shortcuts
★ When Versioning Support Interferes With Saving Your Relational Model
To reverse engineer an existing database into a relational model, I used SQL Developer Data Modeler, a free data modeling and database design tool from Oracle.
I had a problem with the tool. I could not save the model. It appeared to be saved but when I reopened the .dmd file, the relational model was nowhere to be found.
I tried all kinds of combinations on my Windows 7 64-bit laptop, like using JDK 6 vs. JDK 7, 32 bit vs. 64 bit versions, etc. No luck.
Then I stumbled upon this Oracle Forum thread while searching for a solution online. The poster suggested that enabling support for version control in the tool solved the issue.
I have TortoiseSVN installed on my laptop and use it to interface with a subversion repository.
I had versioning support disabled in SQLdev Data Modeler.
Following the hints in the forum post, I enabled it (Tools > Preferences > Extensions > toggle Versioning Support). Restarted SQLdev Data Modeler, and voila! I can now save my relational models!
There was no way I could have guessed that versioning support was interfering with saving relational models. I am guessing this is a bug.
© Eddie Awad's Blog, 2013. |
Permalink |
Add a comment |
Topic: Oracle, Tips |
Tags: data-modeler, sql-developer
Related articles:
- The SQL MODEL clause
- Oracle in 3 Minutes: Multi-Versioning
- Saving/Downloading files to/from Oracle using ColdFusion
Planes and Trains and Automobiles - WebCenter in Transportation
When Elmo talks about transportation, he’s really only thinking about the planes, trains, and automobiles (and rocket ships of course) kinds of transportation. Here at Oracle, the Travel and Transportation vertical market goes a lot deeper and wider than most furry red creatures would ever imagine. Oracle leads in this vertical with some pretty amazing stats:
Leadership in Travel and Transportation
- 20 of the top 20 airlines get better results with Oracle
- 17 of the 20 top hotels get better results with Oracle
- 20 of the top 20 North American logistics service providers get better results with Oracle
- 10 of the top 10 North American trucking companies get better results with Oracle
- 4 of the 5 top ports get better results with Oracle
When I originally started thinking about focusing this week on “WebCenter for Travel and Transportation,” I have to admit that I was a bit skeptical myself about what I would find for showcasing our solution set’s strengths in this area. Deep down, I knew that Oracle WebCenter has an essential role in many implemented solutions within Travel and Transportation, and I was happy to find a wide variety of customers and partners that are all great examples of where WebCenter adds value within this arena.
WebCenter solutions are complementary and supplemental to all of the solutions you’d find listed within this industry encompassing all means of travel and hospitality, shipping, passenger and freight transportation by air, water, road or rail. Trucking, shipping and other logistics organizations can improve their efficiencies and cut invoicing costs, while Airlines improve the web experience for their customers. Organizations are providing collaborative portals for their truckers and other employees to communicate with each other while on the road or with their offices while managing all important assets in a centralized repository for digital content and documents for their dynamic enterprise portals and back-office business processes. Whether you know it or not, one of the WebCenter pillars: WebCenter Content, WebCenter Portal, WebCenter Sites or WebCenter Imaging and Capture are often there behind the scenes keeping business moving while providing an engagement platform for employees, customers, partners and executive management to do their job with a smile on their face instead of a frown of frustration.
Oracle Solutions for Transportation help Airlines like the Emirates keep costs down, efficiencies high and employees happy.
So – welcome to another week of exploration into areas where WebCenter makes a difference. I hope you’ll join us for a few minutes to explore or more to listen to one of the webcasts we’ll be featuring this week. We’ll be featuring some success stories, partner highlights and industry news. If you’ve never even heard of APTA or AASHTO before this week – you’ll gain a new found respect for our transportation infrastructure or how cool it is to see how it’s managed, maintained, improved and sometimes even destroyed to make room for something new (check out the video below boys!)
SQL Server 2012: CompoundCurve - a new geospatial feature

There are three new geospatial features in Microsoft SQL Server 2012: CircularString, CurvePolygon, and CompoundCurve. For the fun and as an example, I will test CompoundCurve, a set of circular strings that may be combined with line strings, and store a "dbi" character set in a table.
New Oracle Service Bus Integration Whitepaper
As part of Oracle Utilities Application Framework V4.2.0.1.0 a new set of Oracle Service Bus protocol adapters are available to allow Oracle Service Bus to process outbound communications initiated from the product. This complements the inbuilt and Oracle Service Bus integration for inbound communications that already has been released over the last few Oracle Utilities Application Framework releases.
The Oracle Service Bus Integration allows the following:
- Definition of XAI Inbound Services as Business Services within Oracle Service Bus with support for Oracle Web Services Manager functionality for flexible security of inbound calls.
- Optionally, using a Proxy Service on the Business Service to allow you to load balance Web Services calls across clusters or managed services.
- A set of protocol adapters than can be easily installed within Oracle Service Bus to implement outbound communications for Outbound Messages (by Outbound Message Type) and for Oracle Utilities Customer Care And Billing and Oracle Enterprise Taxation And Policy Management, Notification and Workflow (by NDS Type),
A whitepaper has been released outlining the integration with step by step instructions on configuration and includes advice for customers migrating from the Multipurpose Listener (MPL). Customers migrating from the MPL should read this whitepaper and attend appropriate training to fully exploit the Oracle Service Bus integration.
The whitepaper is available from My Oracle Support - Oracle Service Bus Integration Oracle Utilities Application Framework (Doc Id: 1558279.1).
Business Intelligence Enterprise Edition & Applications
SQL-Hadoop architectures compared
The genesis of this post is:
- Dave DeWitt sent me a paper about Microsoft Polybase.
- I argued with Dave about the differences between Polybase and Hadapt.
- I asked Daniel Abadi for his opinion.
- Dan agreed with Dave, in a long email …
- … that he graciously permitted me to lightly-edit and post.
I love my life.
Per Daniel (emphasis mine):
I basically agree with what MSFT says in the paper about how Polybase differs from Hadapt. Obviously at a high level they are similar — both systems can access data stored in Hadoop and split query processing between the DBMS and Hadoop. But once you start to get into the details, the systems diverge dramatically. Polybase is much more similar to Greenplum and Aster’s integration with Hadoop (in the way it uses external tables to connect to Hadoop) than it is to Hadapt. In fact, I would summarize Polybase as a more sophisticated version of SQL-H (but without the HCatalog integration), with more query processing pushdown to Hadoop, and a cost-based optimizer that rigorously decides when and how much query processing to push to Hadoop.
The basic difference between Polybase and Hadapt is the following. With Polybase, the basic interface to the user is the MPP database software (and DBMS storage) that Microsoft is selling. Hadoop is viewed as a secondary source of data — if you have a dataset stored inside Hadoop instead of the database system for whatever reason, then the database system can access that Hadoop data on the fly and include that data in query processing alongside data that is already stored inside the database system. However, the user must be aware that she might want to query the data in Hadoop in advance — she must register this Hadoop data to the MPP database through an external table definition (and ideally statistics should be generated in advance to help the optimizer). Furthermore, the Hadoop data must be structured, since the external table definition requires this (so you can’t really access arbitrary unstructured data in Hadoop). The same is true for SQL-H and Hawq — they all can access data in Hadoop (in particular data stored in HDFS), but there needs to be some sort of structured schema defined in order for the database to understand how to access it via SQL. So, bottom line, Polybase/SQL-H/Hawq let you dynamically get at data in Hadoop/HDFS that could theoretically have been stored in the DBMS all along, but for some reason is being stored in Hadoop instead of the DBMS.
HOWEVER, take a look at page 10 of the paper. There are 6 graphs on this page (the same trend is shown on all graphs of the paper, but it is most obvious for the 6 graphs on page 10). The graphs break down query time as far as where time is spent — the green is time spent in the DBMS, the blue is time spent in Hadoop, and the red is time spent importing the data into the DBMS from Hadoop. It is immediately obvious that the vast majority of time spent in all these graphs is in the (red) import stage. The obvious conclusion is that while Polybase lets you access data in Hadoop, the user would have been far better off if the data had been in the DBMS all along (so that this data importing would not be necessary). The same is true for SQL-H and Hawq — although they do not refer to the process of getting data out of HDFS and into their execution engines as a ‘data import’, there is still a data movement process (with its associated overhead), and it is well known that the performance of the original Aster DBMS and the original Greenplum DBMS are faster than the versions of Aster and Greenplum that access data stored in HDFS.
With Hadapt, the picture is completely different. If the data is structured enough to fit in the DBMS, it is loaded into the DBMS storage on each Hadoop/HDFS node. We pay this load cost in advance (obviously, with invisible loading, the story gets more interesting, but let’s ignore that for now to make the comparison easier). Therefore Hadapt has a one-time load cost, but then every subsequent query does not have to worry about paying the high data import cost that you see in the Microsoft paper.
Hence, you will end up seeing Hadapt and Polybase/SQL-H/Hawq used for very different use cases. Polybase/SQL-H/Hawq are appropriate for accessing data in Hadoop in an exploratory/one-off fashion. If the data is not accessed frequently from DBMS queries, then it is appropriate to leave it in Hadoop and access it via Polybase/SQL-H/Hawq those few times that it is needed. However, if the data is repeatedly accessed from the DBMS, it is clearly far better if you get it out of Hadoop and into their MPP database system.
With Hadapt, the distinction of whether data should be stored in raw HDFS or the DBMS storage on each HDFS node is not based on how often it is accessed, but rather whether the data is structured/semi-structured or “truly unstructured” (I have to use the modifier “truly” for unstructured data now that DeWitt redefined the meaning of “unstructured” in his paper to mean any data in Hadoop
). Structured/semi-structured data goes in the DBMS storage and (truly) unstructured data goes in raw HDFS. Through Hadapt’s SQL extensions for unstructured data (including full text search), queries that span HDFS and the DBMS are not simply about importing data from HDFS into the DBMS like in the Polybase paper, but rather about true structured/unstructured query integration.
Hadapt uses MapReduce, not for the first part of query processing in order to reduce data import cost (like Polybase/SQL-H). Rather, it uses MapReduce to manage long running queries in order to get dynamic query scheduling and runtime fault tolerance. Even if all data that is accessed by the query is already in the DBMS storage, Hadapt might still use the MapReduce engine if the query is predicted to be long-running. (For short queries, as you already know, Hadapt doesn’t use MapReduce, but instead uses the new IQ engine.). This is fundamentally different from Polybase/SQL-H/Hawq — none of which use Hadoop’s MapReduce engine if all the input data is already in the DBMS.
Related links
- Dave DeWitt’s response to this post (June, 2013)
- SQL-H and Hadapt (October, 2012)
- Cloudera Impala (November, 2012)
- Dan Abadi regarding Hawq (February, 2013)
WibiData and its Kiji technology
My clients at WibiData:
- Think they’re an application software company …
- … but actually are talking about what I call analytic application subsystems.
- Haven’t announced or shipped any of those either …
- … but will shortly.
- Have meanwhile shipped some cool enabling technology.
- Name their products after sushi restaurants.
Yeah, I like these guys.
If you’re building an application that “obviously” calls for a NoSQL database, and which has a strong predictive modeling aspect, then WibiData has thought more cleverly about what you need than most vendors I can think of. More precisely, WibiData has thought cleverly about your data management, movement, crunching, serving, and integration. For pure modeling sophistication, you should look elsewhere — but WibiData will gladly integrate with or execute those models for you.
WibiData’s enabling technology, now called Kiji, is a collection of modules, libraries, and so on — think Spring — running over Hadoop/HBase. Except for some newfound modularity, it is much like what I described at the time of WibiData’s launch or what WibiData further disclosed a few months later. Key aspects include:
- A way to define schemas in HBase, including ones that change as rapidly as consumer-interaction applications require.
- An analytic framework called “Produce/Gather”, which can execute at human real-time speeds (via its own execution engine) or with higher throughput in batch mode (by invoking Hadoop MapReduce).
- Enough load capabilities, Hive interaction, and so on to get data into the proper structure in Kiji in the first place.
More specifically, 5 of the 6 Kiji modules are:
- KijiSchema, the oldest of bunch (not that any have been out for long). A “direct wrapper” for HBase, KijiSchema provides HBase with a DDL (Data Description Language), metadata (I haven’t asked details), and serialization (via Avro).
- KijiMR, released in February. KijiMR is the batch part of Kiji data processing — notably MapReduce integration (as you might have guessed from the name) and bulk import.
- KijiScoring,* released very recently. That’s the (human) real-time part of Kiji processing.
- KijiHive, which is — you guessed it! — Kiji’s Hive adapter.
- KijiREST.* I bet you can guess what that does too.
*It’s a roadmap item to “blur” KijiScoring and KijiREST together, and have them run in the same process.
And then there’s the confusing one — KijiExpress, which has something to do with running models. Right now KijiExpress seems to be mainly a Scalding/Cascading interface to the rest of Kiji. However:
- Just about anything else you might imagine that could help with specifying, running or managing analytic models sounds like it’s at least a possibility for eventual inclusion in KijiExpress …
- … but it seems like an exaggeration to say that any particular direction for the project is already on the roadmap.
Finally, on the business side:
- WibiData has very few production customers to date, in each case for a rather custom system.
- WibiData knows what its first application vertical market will be, and will probably tell you under NDA if you’re in that segment and you ask.
- WibiData will gladly support Kiji developer seats in the usual commercial open source way.
- WibiData will not exactly support Kiji runtimes in the usual commercial open source way. Rather, it will support entire applications — or perhaps “applications” — built in/on Kiji. Presumably, WibiData professional services would be involved in building those apps, but that’s not a strict requirement.
- Based on mailing list activity and so on, WibiData believes there are serious Kiji users with whom it has no financial relationship.
- I counted 30 distinct headshot photos on WibiData’s team page, in a 9:1 primate:canine ratio.
Weekend Batch – Online Oracle GoldenGate 11g: Fundamentals Training commencing on 08 June 2013
This is a content summary only. Visit my website http://onlineAppsDBA.com for full links, other content, and more!
e_howdidIdeservethis
A friend has found himself supporting a stack of code written in this style:
DECLARE
e_dupe_flag EXCEPTION;
PRAGMA EXCEPTION_INIT(e_dupe_flag, -1);
BEGIN
...
EXCEPTION
WHEN e_dupe_flag THEN
RAISE e_duplicate_err;
etc...
Because, as he says, coding is not hard enough.
This reminded me of one that was sent in a while ago:
others EXCEPTION;
"I didn't know you could do that" adds our correspondent.
Byzantium…
I’ve just got back from watching Byzantium at the cinema.
I had never heard of this film until about 20 minutes before the film started. In this age of watered down and twinkly vampires it’s good to see them portrayed with a gritty and raw edge. There are fairly obvious similarities between this story and Interview with the Vampire, though Byzantium is not so epic. It was a rather slow paced film, but I don’t mean that in a bad way. It wasn’t trying to be horror or action, but a story about the characters, told at a steady pace.
Saoirse Ronan is intense and beautiful. I knew I recognized her from somewhere, but it was not until I checked on IMDB that I saw she was the kid from Hanna. I think she was perfect casting to play a 16 year old that has been “alive” for 200 years. I think this was a good role for Gemma Arterton too. I like her in the less-Hollywood stuff. Caleb Landry Jones was so odd, in a good way, in this film. He looked so thin and awkward, compared to his role as Banshee in the X-Men: First Class.
Overall I would have to say I liked it. If you are a fan of the vampire genre and are sick of the current “My Little Pony” vampires on film and TV, you might want to give it a try.
Cheers
Tim…
Byzantium… was first posted on June 2, 2013 at 12:18 am.©2012 "The ORACLE-BASE Blog". Use of this feed is for personal non-commercial use only. If you are not reading this article in your feed reader, then the site is guilty of copyright infringement.
UKOUG
The call for papers for UKOUG Tech 13 closed yesterday – though you may still be able to get something in if you visit the website before Monday. I’ve submitted a total of five – two of them aimed at novice DBAs and trouble-shooters – so I’ll probably get a couple of slots; and Tony Hasler has linked my name with a “round table” (CBO – what else ?) and a “weird and whacky” which will be a reprise of the debate we had a couple of years ago about Oracle’s treatment of hints.
More importantly, for the immediate future, though – I’ll be speaking at the OUG Scotland conference which is only a few days away (12th June). It’s a one-day event with 6 concurrent streams of information covering DBA, Developer, APEX, BI, Apps and Cloud – so something for everyone.
The full agenda is here, and (free) registration details here. I’ll be talking about compression, and I’m particularly interested to hear what Julian Dyke will have to say about sorting (and other PGA hogs). I will have a problem in the afternoon, though – torn between heckling Doug Burns as he talks about the 10053 trace, or going to learn more about the (rarely used) model clause from Tony Hasler.
Detective? Crime Writer? DBA? Which are you?
The DBA role can sometimes feel like a mix of detective, crime writer and DBA all thrown together. What do I mean by that? When you hit some problems you have to play detective, trying to find clues to what is going on. Once you’ve started to gather clues, you have to play crime writer and put them together to form a coherent story that explains what is going on. Once you have the outline of your crime story you can start looking at the facts again and see if they fit with your story. If they do, your story may just be correct. If they don’t, you probably need to check the accuracy of the facts and do some rewriting of the story until the two things fit together. Once things seem to fit, you can then get busy trying to arrest the villain, or fix the problem.
This process is often necessary as part of root cause analysis.
I’ll use a recent case to highlight what I mean. I’m going to simplify things a little or the post will be too long.
We recently had some intermittent, but very severe performance problems on a system, resulting in the application effectively hanging for some time. As usual, it’s the DBA job to prove it’s not the fault of the database.
A bit of detective work came up with the following facts:
- Moderate CPU usage on the application and DB servers.
- Gradual reduction in free memory on both servers.
- Over time the systems started to swap.
- Gradual increase in number of application processes connecting to the database.
- Lots of I/O waits on the database server.
So let’s switch to crime writer and think of some stories that could explain this.
Story 1High load on the application causes lots of database connections, eventually swamping the servers.
Does it fit the facts? The reduction in free memory, eventually leading to swap could be caused by an increase in numbers of processes on the servers. Lots of processes all doing I/O on the server will probably increase the amount of I/O waits as they fight with each other for the disks. That sounds promising.
How do we confirm it? Use the AWR reports to compare the load profiles (amongst other things) of the system compared to other times in the day, days of the week, same time and day last week etc.
Conclusion: The load on the system was not substantially different from other times when the system was running fine. The story doesn’t fit together.
Story 2Slow I/O is reducing response time. As new requests come in, the backlog of work is getting bigger…
Does it fit the facts? In checking out the AWR reports looking for confirmation of the previous story we noticed the average times of certain physical I/O operations were about 30ms. Normally the average is <1ms. Checking the event histogram section of the AWR report, we could see a very wide spread of timings for physical I/O operations, including some in excess of 1 second. After a few minutes we started to see Warning “aiowait timed out x times” in alert.log [ID 222989.1] messages in the alert log, suggesting some of those I/O events were taking longer than 10 minutes.
Now we have a new fact to add to the previous list:
- Some of the individual I/O waits are extremely long!
We know the application layer of this application is not too clever. If a request comes and there is an idle application process available, it will be reused. If no idle application process is available, a new one is spawned to process the request. The only limit on this is the max number of processes for that user at the OS level.
If the disk I/O is slow, application requests will take a long time to complete. If application requests are taking a long time, the likelihood of new application requests finding an idle application process to reuse is reduced, so the incidence of new processes being spawned increases. As new processes are spawned, we see a gradual increase in memory usage, leading eventually to swap. At the same time, we see an increase in database connections, which require processes, which use memory… You can see where this is going…
Conclusion: This story does seem to fit the facts. Essentially, memory, swap and the number of processes are the symptom, not the cause of the problem. The root cause could be the I/O performance issue.
Catching the CriminalNow I said this was an intermittent problem. The next time it occurred I was prepared and watched events unfold using Luca Canali’s nifty Latency Heat Map Visualization, which prompted this quick post. The result of this was we had pretty solid evidence to suggest the problems we were experiencing were nothing to do with the application or database, but were as a result of poor I/O performance. The baton was passed to the system administrators, network and storage team to try and bottom out the problem. That process is still ongoing, but smoking gun seems to be the storage network layer.
ConclusionOver time you build up a level of experience that allows you to spot patterns and quickly get to the root of problems. To observers it can seem almost mystical, which is why us grunt DBAs look at those database performance gurus with awe, but it all comes down to root cause analysis. The more you do this stuff, the better you get at it. Stop doing it for a while and you get rusty.
Detective? Crime Writer? DBA? Which are you? You should be all three.
Cheers
Tim…
Detective? Crime Writer? DBA? Which are you? was first posted on June 1, 2013 at 10:12 am.©2012 "The ORACLE-BASE Blog". Use of this feed is for personal non-commercial use only. If you are not reading this article in your feed reader, then the site is guilty of copyright infringement.
jQuery in PeopleTools 8.53
A lot of customers are now working with PeopleTools 8.53. If you open Application Designer and search for HTML definitions named PT_JQUERY, you will see there are 2 (sometimes more) new jQuery JavaScript definitions included with PeopleTools 8.53:
- jQuery 1.6.2
- jQuery UI 1.8.17
- Mobile jQuery (modules with mobile apps)
You no longer need to download, upload, or otherwise install jQuery to use it with PeopleSoft applications. One interesting thing I noted in the PeopleTools jQuery file is that the end of the jQuery file uses jQuery.noConflict() to replace $ with ptjq162. Unfortunately, it doesn't take advantage of the include protection I described in my post jQuery Plugin Include Protection, so be careful using it in pagelets directly.
Create a Couchbase cluster in less than a minute with Ansible
Java 7 EE Launch : June 12th & 13th
The Oracle ACE program recently invited members to a teleconference session about the upcoming launch of Java 7 EE. Arun Gupta took us through a preview of the information that will be available to everyone as part of the launch.
If you are interested in getting the low down on this new release, you can register for the launch events here.
Cheers
Tim…
Java 7 EE Launch : June 12th & 13th was first posted on May 31, 2013 at 8:08 pm.©2012 "The ORACLE-BASE Blog". Use of this feed is for personal non-commercial use only. If you are not reading this article in your feed reader, then the site is guilty of copyright infringement.













