Db_stat and in-memory database
Hi
How can I see the status of an in-memory database using the db_stat utility? The in-memory file is created within an environment.
Regards
Nisam
Hello,
If you are specifying DB_PRIVATE in the call to DB_ENV->open,
then db_stat can not be used.
http://www.oracle.com/technology/documentation/berkeley-db/db/api_c/env_open.html
Would DB_ENV->memp_stat which returns memory pool subsystem statistics
be of any use?
http://www.oracle.com/technology/documentation/berkeley-db/db/api_c/memp_stat.html
Or using DB_SYSTEM_MEM?
http://www.oracle.com/technology/documentation/berkeley-db/db/ref/program/ram.html
Thanks,
Sandra
Similar Messages
-
"In-Memory Database Cache" option for Oracle 10g Enterprise Edition
Hi,
In one of our applications, we are using TimesTen 5.1.24 and Oracle 9i
databases (platform - Solaris 9i).
TimesTen holds application information which needs to be accessed quickly
and Oracle 9i is a master application database.
Now we are looking at an option of migrating from Oracle 9i to Oracle 10g
database. While exploring about Oracle 10g features, came to know about
"In-Memory Database Cache" option for Oracle Enterprise Edition. This made
me to think about using Oracle 10g Enterprise Edition with "In-Memory
Database Cache" option for our application.
Following are the advantages that I could visualize by adopting the
above-mentioned approach:
1. Data reconciliation between Oracle and TimesTen is not required (i.e.
data can be maintained only in Oracle tables and for caching "In-Memory
Database Cache" can be used)
2. Data maintenance is easy and gives one view access to data
I have following queries regarding the above-mentioned solution:
1. What is the difference between "TimesTen In-Memory Database" and
"In-Memory Database Cache" in terms of features and licensing model?
2. Is "In-Memory Database Cache" option integrated with Oracle 10g
installable or a separate installable (i.e. TimesTen installable with only
cache feature)?
3. Is "In-Memory Database Cache" option same as that of "TimesTen Cache
Connect to Oracle" option in TimesTen In-Memory Database?
4. After integrating "In-Memory Database Cache" option with Oracle 10g, data
access will happen only through Oracle sqlplus or OCI calls. Am I right here
in making this statement?
5. Is it possible to cache the result set of a join query in "In-Memory
Database Cache"?
In "Options and Packs" chapter in Oracle documentation
(http://download.oracle.com/docs/cd/B19306_01/license.102/b14199/options.htm
#CIHJJBGA), I encountered the following statement:
"For the purposes of licensing Oracle In-Memory Database Cache, only the
processors on which the TimesTen In-Memory Database component of the
In-Memory Database Cache software is installed and/or running are counted
for the purpose of determining the number of licenses required."
We have servers with the following configuration. Is there a way to get the
count of processors on which the Cache software could be installed and/or
running? Please assist.
Production box with 12 core 2 duo processors (24 cores)
Pre-production box with 8 core 2 duo processors (16 cores)
Development and test box with 2 single chip processors
Development and test box with 4 single chip processors
Development and test box with 6 single chip processors
Thanks & Regards,
VijayHi Vijay,
regarding your questions:
1. What is the difference between "TimesTen In-Memory Database" and
"In-Memory Database Cache" in terms of features and licensing model?
==> Product has just been renamed and integrated better with the Oracle database - Times-Ten == In-Memory-Cache-Database
2. Is "In-Memory Database Cache" option integrated with Oracle 10g
installable or a separate installable (i.e. TimesTen installable with only
cache feature)?
==> Seperate Installation
3. Is "In-Memory Database Cache" option same as that of "TimesTen Cache
Connect to Oracle" option in TimesTen In-Memory Database?
==> Please have a look here: http://www.oracle.com/technology/products/timesten/quickstart/cc_qs_index.html
This explains the differences.
4. After integrating "In-Memory Database Cache" option with Oracle 10g, data
access will happen only through Oracle sqlplus or OCI calls. Am I right here
in making this statement?
==> Please see above mentioned papers
5. Is it possible to cache the result set of a join query in "In-Memory
Database Cache"?
==> Again ... ;-)
Kind regards
Mike -
High performance in memory database supporting C++ and JAVA
Hi,
I am considering to build a Java compatible In memory database to speed up the application of JAVA. We have now the C++ version of the database, named MTDB, which is hundreds of times faster than phisical database. The in memory database runs on solaris, linux and windows system. MTDB supports load sharing, data distribution, and realtime data synchronizing. MTDB shows large capacity, great performance, stability, and scalability in telecom applications. Add JAVA access interface to MTDB is very valuable. Please send me email if you have interest in this.
Thanks.Are you selling it? In which case advertisements are not appropriate here.
There are a bunch of existing in-memory databases for Java which offer significant performance enhancements - unless yours outdoes them considerably I think you'll find a very limited market.
Check out hsqldb.org for one example. -
Queue access method for In-memory databases
Hi,
I am trying to use the Queue access method for an in-memory database
with no backing file. Here is the how I've created the environment and
the database.
int env_flags_create = DB_CREATE | DB_INIT_LOG | DB_INIT_LOCK |
DB_INIT_MPOOL |DB_INIT_TXN |
DB_SYSTEM_MEM | DB_RECOVER | DB_THREAD ;
ret = env->set_shm_key(env, 17);
ret = env->open(env, R_"in-mem-env", env_flags, 0644);
int db_flags = DB_CREATE | DB_THREAD | DB_AUTO_COMMIT;
DB_MPOOLFILE *mpf = subs_db->get_mpf(subs_db);
mpf->set_flags(mpf, DB_MPOOL_NOFILE, 1);
ret = queue_db->set_re_len(queue_db, 512);
ret = queue_db->open(queue_db, NULL, NULL, "queue", DB_QUEUE,
db_flags, 0644);
My application has one reader threads and one writer thread. The
writer write to the queue with the "DB_APPEND" flag and the reader
consumes the queue using the "DB_CONSUME_WAIT" flag.
After inserting a few thousand messages the database fails to insert
any new records and starts returning the following error.
"unable to allocate space from the buffer cache"
From the db_stat -e output (attached below) I can see that none of
the buffer cache pages are ever being freed up.
149907 Requested pages found in the cache (99%)
3 Requested pages not found in the cache
2004 Pages created in the cache
0 Pages read into the cache
0 Pages written from the cache to the backing file
0 Clean pages forced from the cache
0 Dirty pages forced from the cache
0 Dirty pages written by trickle-sync thread
2004 Current total page count
0 Current clean page count
2004 Current dirty page count
4099 Number of hash buckets used for page location
153851 Total number of times hash chains searched for a page
BDB reference manual (http://www.oracle.com/technology/documentation/
berkeley-db/db/api_c/frame.html) says that the pages associated with a
queue can only be reclaimed by setting a queue extent by using the
"set_q_extentsize" method. When I try to use this method on my in-
memory database I get the following error.
" Extent size may not be specified for in-memory queue database"
Does this mean that I can never use the queue access method for in-
memory database? Because no matter how big of a shared memory pool I
allocate to the in-memory database it will eventually get used up by
the queue (if I'm inserting and consuming records) and there is no way
to free up the pages associated with the deleted records.
thx
ninaAs far as I know you can choose any method as long as print setting are set to "send to spool"
Regards
Juan -
Possible deadlocks with in-memory database using Java
I've written a completely in-memory database using the Java API on BDB 4.6 and 4.7 for Windows and Linux (x86). The completely in-memory database means the database content and logs are entirely in-memory and the overflow pages will not be written to a disk file.
The database environment and the database are configured to be transactional. All database access methods are specified to be auto-commit by setting the transaction argument to null. The environment is configured to be multi-threaded (which is the default when using the Java API).
When run with a single-threaded client, the application works correctly on both Windows and Linux for BDB 4.6 and 4.7.
When run with a multi-thread client that uses two thread for the database access, I run into a deadlock inside the call to the Database.delete method about half the time.
I am assuming that in the "auto-commit" mode, a deadlock should not be possible.
Any reported problems with using Java with in-memory database?
Thanks.
HisurHi Hisur,
If you are using transactions and multiple threads, you will have to deal with deadlock. In this particular case, it's likely that a delete is causing two btree pages to be merged (called a "reverse split"). Auto-commit makes no difference in this case -- the application must retry the operation.
Regards,
Michael Cahill, Oracle. -
Oracle ADF with HSQL In-Memory Database
Hi
I have been using J2EE applications and have several Junit test cases using Hibernate and HSQL in-memory database.
I am looking to migrate some of the modules in the project to ADF.
Can the unit test cases be implemented with ADF, running without Oracle Database?
In simple words will ADF work with HSQL in-memory database?
Thanks,
RamVinod
In the link http://vtkrishn.wordpress.com/2010/03/29/configure-hibernate-for-jdeveloper/
Hibernate is configured with Oracle database..Not with HSQL
So I am not very sure if ADF works with HSQL -
SQL Result Cache vs In-Memory Database Cache
Hi,
can anyone help me to understand the relations and differences between the 11 g new features of SQL Result Cache vs In-Memory Database Cache ?
ThanksI highly recommend you read the 11g New Features Guide. Here is a sample from it:
h4. 1.11.2.9 Query Result Cache
A separate shared memory pool is now used for storing and retrieving
cached results. Query retrieval from the query result cache is faster
than rerunning the query. Frequently executed queries will see
performance improvements when using the query result cache.
The new query result cache enables explicit caching of results in
database memory. Subsequent queries using the cached results will
experience significant performance improvements.
See Also:
[Oracle Database Performance Tuning Guide|http://download.oracle.com/docs/cd/B28359_01/server.111/b28274/memory.htm#PFGRF10121] for details
[Results Cache Concepts|http://download.oracle.com/docs/cd/B28359_01/server.111/b28274/memory.htm#PFGRF10121|Results Cache Concepts]
HTH! -
Application connection to TimesTen In-Memory Database
Hi All,
We're in the planing of creating TimesTen In-Memory Database for our production databases.Now we're in testing phase,we made one TimesTen In-Memory Database for one test database.
Now we don't want to put all database in memory, we've some selected tables for some users,we only want these tables will by in memory, so we create cache group & add theese tables in that.
Now some of my database is in memory & some database is not in memory,so I want to know that how the application users will connect to database ??
Is they connect to TimesTen In-Memory Database or our main database ???
If they connect to TimesTen In-Memory Database how they will access the procedures of functions etc from main database ???
Or If they connect to main database how these TimesTen In-Memory Database tables will access by users ???
Is TimesTen In-Memory Database will help only when we put whole database in memory ???
Thinks & Regards,
Atul Mandale.Hi Atul,
If you want to cache all your database then just create cache groups to encapsulate all your tables. That is the only way. However, I am far from sure this would be a good idea...
TimesTen is not a transparent, 'just plug it in' performance accelerator (such a thing does not exist and probably never will). It is intended to solve specific problems i.e. when some or all parts of an application need 'real time' access to some database data and the performance requirements (usually response time but sometimes throughput) are such that they either cannot be met at all, or cannot be met cost effectively, using Oracle DB or RAC alone. If one has that kind of situation then TimesTen may be able to help. It is unlikely to help a general application scenario just by plugging it in. Note that to successfully implement TimesTen it is almost always necessary to make both application and architectural changes. Why is this?
1. You are moving from a single DB to a multi-DB solution. Each item of data can be mastered (i.e. be updateable) in only one DB - Oracle or TimesTen. All parts of the system must understand this and enforce this or dat inconsistency may result.
2. All the data held in TimesTen must fit into physical memory. Data storage requirements often increase when moving a table from Oracle to TT. If you have a table that takes up 5 GB in Oracle it may well need 8 GB or more of memory in TimesTen. Unless your Oracle database is quite small you will need a machine with a very large amount of memory to cache the whole DB in TimesTen.
3. Queries and transactoons cannot span data in TT and Oracle. Any given query or transaction must execute entirely in TimesTen or Oracle.
4. Depending on which tables are cached and which are not, some application componenst may need to be aware of the location (TT or Oracle) of specific tables/data and go to the right place to get it. The TimesTen PassThrough feature can certainly help a lot with this but it does not necessarily address every possible issue.
5. Today, TimesTen only supports ODBC and JDBC APIs. If you have an application that uses OCI it must be recoded to use ODBC. The next major release of TimesTen does support OCI.
6. TimesTen does not support triggers or PL/SQL. The next major release supports PL/SQL and we have our own proprietary event notification API called XLA.
7. Although the SQL supported by TimesTen is a large subset of Oracle SQL there are still incompatibilities and some datatypes (e.g. CLOBS/BLOBS is on example) that TimesTen does not support.
While it may be possible to cache all your database it may not be a very practical, or beneficial, way to go. Can you share a bit of detal about the problem you are trying to solve with TimesTen so that maybe we can advise you of the best approach?
Chris -
Oracle TimesTen In-Memory Database Risk Matrix
Hi,
From the following web-site I can see two vulnerabilities listed against TimesTen --- CVE-2010-0873 and CVE-2010-0910
http://www.oracle.com/technetwork/topics/security/cpujul2010-155308.html
================================================================
Oracle TimesTen In-Memory Database Risk Matrix
CVE# Component Protocol Package and/or Privilege Required Remote Exploit without Auth.? CVSS VERSION 2.0 RISK (see Risk Matrix Definitions) Last Affected Patch set (per Supported Release) Notes
Base Score Access Vector Access Complexity Authentication Confidentiality Integrity Availability
CVE-2010-0873 Data Server TCP None Yes 10.0 Network Low None Complete Complete Complete 7.0.6.0 See Note 1
CVE-2010-0910 Data Server TCP None Yes 5.0 Network Low None None None Partial+ 7.0.6.0, 11.2.1.4.1 See Note 1
===========================================================================
Please let me know if I need to take any action on my current TimesTen deployment.
Im using TimesTen Release 11.2.1.8.4 and 7.0.5.16.0 in our customer sites.
Request you to respond with your valuable comments.
Regards
PratheejHi Pratheej,
These vulnerabilities were fixed in 11.2.1.6.1 and 7.0.6.2.0. As you are on 11.2.1.8.4 you are okay for 11.2.1 but the 7.0.5.16.0 release does contain the vulnerability. If you are concerned then you should upgrade those to 7.0.6.2.0 or later (check for the latest applicable 7.0 release in My Oracle Support).
Chris -
Oracle TimesTen In-Memory Database VS Oracle In-Memory Database Cache
Hi,
What is difference in Oracle TimesTen In-Memory Database VS Oracle In-Memory Database Cache.
For 32 bit on windows OS i am not able to insert data's more than 500k rows with 150 columns (with combinations of CHAR,BINARY_DOUBLE,BINARY_FLOAT, TT_BIGINT,REAL,DECIMAL,NUMERIC etc).
[TimesTen][TimesTen 11.2.2.2.0 ODBC Driver][TimesTen]TT0802: Database permanent space exhausted -- file "blk.c", lineno 3450, procedure "sbBlkAlloc"
I have set Perm size as 700 mb,Temp size as 100mb
What is the max size we can given for PermSize,TempSize,LogBufMB for 32 bit on windows OS.
What is the max size we can given for PermSize,TempSize,LogBufMB for 64 bit on windows OS.
What is the Max configuration of TT for 32 bit what i can set for Perm size Temp size.
Thanks!They are the same product but they are licensed differently and the license limits what functionality you can use.
TimesTen In-Memory Database is a product in its own right allows you to use TimesTen as a standalone database and also allows replication.
IMDB Cache is an Oracle DB Enterprise Edition option (i.e. it can only be licensed as an option to an Oracle DB EE license). This includes all the functionality of TImesTen In-Memory Database but adds in cache functionality (cache groups, cache grid etc.).
32-bit O/S are in general a poor platform to try and create an in-memory database of any significant size (32-bit O/S are very limited in memory addressing capability) and 32-bit Windows is the worst example. The hard coded limit for total datastore size on 32-bit O/S is 2 GB but in reality you probably can;'t achieve that. On Windows the largest you can get is 1.1 GB and most often less than that. If you need something more than about 0.5 Gb on Windows then you really need to use 64-bit Windows and 64-bit TimesTen. There are no hard coded upper limit to database size on 64-bit TimesTen; the limit is the amount of free physical memory (not virtual memory) in the machine. I have easily created a 12 GB database on a Win64 machine with 16 GB RAM. On 64-bit Unix machines we have live database of over 1 TB...
Chris -
Using In-Memory Database Cache option need help
Hi,
I need some help:
I am using Oracle 10g Server Release 2
For Clientele activilty I am using Oracle Client where the Application resides.
For Better performance I want to use the In-Memory Database Cache option Times-Ten Database.
Is it possible to do so where there is Oracle Database Server Relaease 2 and in the Client there is Times-Ten In-Memory Database Cache?
Any help will be needful for meIn-Memory Cache is a server-side cache. I can not see where there would be any value putting it on the client side though given the license cost per CPU core I am sure the entire Oracle sales force would gladly disagree with me.
-
Oracle In-Memory Database Cache
Hi,
I was reading about Oracle in Memory database cache and i am wondering is this option available on 10g, from what i read it is only on 11g and it is extra option and have to pay for it.
Any more info, will be great.
thanksFrom here
The In-Memory Database Cache option of Oracle Database Enterprise Edition is based on Oracle TimesTen In-Memory Database.TimesTen is also available for 10g. -
Oracle In-Memory Database Cache Testcases
We are implementing Oracle In-Memory Database Cache on an existing oracle database. We want to do some extensive testing on Oracle In-Memory Database. Can anybody please share some pointers in writing testcases ?
Best place to start is here:
http://www.oracle.com/technetwork/products/timesten/overview/index.html
In particular take a look at the Quickstart which is provided as part of the install of the product and can be accessed online here http://www.oracle.com/technetwork/products/timesten/learnmore/index.html via http://download.oracle.com/otn_hosted_doc/timesten/1122/quickstart/html/main/home.html
Take a look at the sample programs the tptbm program is a good place to start.
Tim -
High Resident and Virtual memory for DBWR
Hello All
on 64 bit RHEL5 with physical memory of 98gb.
I see in OEM db console for 11gR2 database that dbwr processes is consuming 21gb of Resident and Virtual memory.
There are 3 dbwr processes (all using 21g) running and i see swapping happens even there is not much load on database .
Is it normal for dbwr to allocate such high memory ?
other memory config
sga_max_size big integer 60G
sga_target big integer 39808M
pga_aggregate_target big integer 10GThat is an excellent document.
The one thing you have to remember when looking at memory usage of Oracle processes, is they all attach to the same set of shared memory so your values will look high. For example if you assume your sid is XE and run the following command you can get something like this.
ps -eo pid,pmem,pcpu,rss,vsz,args | grep -i XE
29259 0.3 0.0 15004 869972 xe_j000_XE
29305 0.0 0.0 792 6560 grep -i XE
30927 0.2 0.0 10500 870080 xe_pmon_XE
30929 0.2 0.0 8520 869464 xe_psp0_XE
30931 1.4 0.0 58692 869464 xe_mman_XE
30933 5.9 0.0 241388 894124 xe_dbw0_XE
30935 0.3 0.0 14188 885016 xe_lgwr_XE
30937 0.5 0.0 21372 869984 xe_ckpt_XE
30939 2.8 0.0 114928 871024 xe_smon_XE
30941 0.3 0.0 14420 869464 xe_reco_XE
30943 1.3 0.0 55860 871060 xe_cjq0_XE
30945 1.3 0.0 56168 872216 xe_mmon_XE
30947 0.3 0.0 12360 869464 xe_mmnl_XE
30949 0.6 0.0 28260 870348 xe_d000_XE
30951 6.2 0.0 253720 875060 xe_s000_XE
30953 5.6 0.0 227984 875020 xe_s001_XE
30955 5.8 0.0 239556 875068 xe_s002_XE
30957 5.0 0.0 204960 875056 xe_s003_XE
30959 4.2 0.0 174516 875080 xe_s004_XE
30961 5.7 0.0 232812 875028 xe_s005_XE
30963 4.4 0.0 179788 875004 xe_s006_XE
30965 3.2 0.0 132100 874988 xe_s007_XE
30967 2.5 0.0 101676 874980 xe_s008_XE
30969 2.0 0.0 82304 874976 xe_s009_XE
30973 0.4 0.0 19980 885016 xe_arc0_XE
30975 0.4 0.0 19936 885016 xe_arc1_XE
30979 0.2 0.0 9672 869464 xe_qmnc_XE
30985 0.2 0.0 10932 869460 xe_q000_XE
30987 0.2 0.0 9004 869460 xe_q001_XE
Notice how my virtual size is all close to 875Mb for each process more than available with ram and swap space. That is because they all attach to my SGA thus the OS reports the SGA in it's memory listing.
Edited by: user652447 on Apr 11, 2011 9:56 AM -
What's your strategy for in-memory databases?
The recent Lattanze Center research study identified trends that you cannot afford to ignore. Dr. Elliot King will present the latest research during an informative webinar entitled: u201CIn-Memory Database Adoption is Gaining Momentum. Whatu2019s your strategy?u201D
For more information: http://bit.ly/kDpsfH
When: June 2 at 10:30 AM PDT.
Duration: 45 Minutes
Cost: Free
Location: At your computer
Space is limited, so register now @ http://bit.ly/ilgFot
Besides learning about the latest trends within In-Memory Database technologies, youu2019ll also receive a free copy of a new White Paper, u201CMaking the Business Case for In-Memory Databasesu201D and the Executive Summary of the recent research from the Lattanze Center for Business Excellence.
Thursday, June 2, 10:30 AM PDT. Register now @ http://bit.ly/ilgFot Space is limited!Well, it seems like most of you simply read the
various texts and try the vendors' examples. I'm
surprised that no one mentioned ever having bought a
prototype application from the onset. "bought"? What's that mean? You don't buy prototypes. You download evaluation versions, maybe.
I try to find sample code and tweak it to see the effects. Otherwise, I start writing small sample code an build on that.
I consider myself a reasonably competent core Java
programmer, but I had serious difficulty configuring
and merging its related technologies. There were so
many disjointed pieces of instructional information
that the additional research time really hurt our
budget severely. Not an uncommon thing, I'm sure. There's a lot of stuff. But don't bother learning all of it. Not in detail, at least. It's a good idea to familiarize yourself with the names of packages/libraries and what they do. But only really learn what you need to learn for what you need to do. The next project you will probably need other things, so you learn them then.
bsampieri,
I've setup Tomcat and tried the examples--in fact, I
normally follow tutorials for all products I hope to
use. Problem is, the examples and tutorials never
address my specific needs. So, I usually inch toward
my goal by spending weeks or months in forums to
continue where the tutorials leave off. Anything complex is going to not be there.... the trick is to identify pieces that you can pull out to build more complex apps. And the fact that JSP/servlets have the issue of being compounded by all the HTML/CSS/JS and HTTP protocol ... I don't want to say limitiations, exactly... Well, it just makes things more complex and harder to know what you need.
Perhaps you guys are much faster and smarter than
I...or you have a much bigger budget :)Probably not... on either account.
Maybe you are looking for
-
Backing up and Restoring a large Aperture library
One of our departments is looking to backup their Aperture library (170 Gb and growing). They would like to do an initial backup of everything, and then incrementally from that point. We tried using Retrospect it backed up fine although it took about
-
Apple Studio Display 17" CRT B&W freezes
Hi there. I'm new in this apple forum. I'm one of the help team of the most popular apple forum in Italy and today, visiting an antiques market in a little village, I found the monitor above, at 10 €. I couldn't leave it there... so I picked it and b
-
Where can I see a list of things I have pre-ordered?
I can't seem to remember where to look to find a list of pending items I have pre-ordered. CAn anyone help?
-
Converting an include filename prior to including
Hi, I have several include files that have the .shtml extension in the filename. The .shtml files, however, only contain simple html. I need to use the shtml file extension because of a requirement from my host. Long story. Anyway, I use the followin
-
Cannot smb to Windows 2000 Server share (works in 10.4)
After installing a fresh copy of Leopard on my macbook pro I cannot connect to a previously working share on a Windows 2000 Server using smb. I am using Go > Connect to Server to connect. I am prompted for a username and password but the connection f