Can a db slowdown with write-behind cause a slowdown in cache operations?

If we have a coherence cluster, and one cache configured with write-behind is having trouble writing to the db (ie, it's slow), and we keep adding objects to the cache that exceed the ability of the db to consume them; will flow-control kick in and cause the writes to the cache to block/slow-down? Ie, the classic producer-consumer problem, where we are adding objects to the cache, faster than the cachestore can consume them.
What happens in this case? Will flow-control kick in and block writes to the cache? Will an internal buffer just keep growing? Are there any knobs to tweak this behavior (eg, in the case of spikes, where temporarily the producer is producing faster than the consumer can consume for a brief period of time, but then things go back to normal)?

user9222505 wrote:
I believe we discovered that the same thread pool is used for all requests to the cache, including gets, puts and calls into the cachestore. So if the writes are slow within the cachestore, then it uses up all of the threads and slows everything down.Hi,
This is not really correct.
If a cache in a service is configured to use write-behind then a separate thread for that service is started, which deals with write-behind store and storeAll operations.
The remove operations need to be handled synchronously to avoid corruption of the data-set in the scenario of reading a entry from the cache immediately after removing it (if it were not synchronously deleted from the backing storage, then reading it back could give an incorrect non-null value). Therefore remove operations are handled synchronously on the service / worker thread, and not delayed on the write-behind thread.
Gets are also synchronously handled, so they again are served on the service / worker thread.
So if the puts are slow and wait too much, that may delay other puts but should not contend with other threads. If the puts are computation intensive, then obviously they hinder other threads because of consumption of the same CPU resource, and not simply because they execute.
Best regards,
Robert

Similar Messages

  • Local Cache with write-behind backing map

    Hi there,
    I am a Coherence newb, so I hope my question isn't too naive. I have been experimenting with Coherence using a write-behind JPA backing map, but I have only been able to make it work with a distributed cache. Because of my specific database RAC architecture, I need to ensure that entries written to the database from a given WLS node are restricted to a specific RAC node. In my view, using a local cache rather than a distributed cache should solve my problem, although if there is a way of configuring my cache so this works I'd appreciate the info.
    So, the short form of the question: can I back a local cache with a write-behind JPA map?
    Cheers,
    Ron

    Hi Ron,
    The configuration for <local-scheme> allows you to add a cache store but you cannot use write-behind, only write-through.
    Presumably you do not want the data to be shared by the different WLS nodes, i.e. if one node puts data in the cache and that is eventually written to a RAC node, that data cannot be seen in the cache by other WLS nodes. Or do you want all the WLS nodes to share the data but just write it to different RAC nodes?
    If you use a local-scheme then the data will only be local to that WLS node and not shared.
    I can think of a possible way to do what you want but it depends on the answer to the above question.
    JK

  • Error removing object from cache with write behind

    We have a cache with a DB for a backing store. The cache has a write-behind delay of about 10 seconds.
    We see an error when we:
    - Write new object to the cache
    - Remove object from cache before it gets written to cachestore (because we're still within the 10 secs and the object has not made it to the db yet).
    At first i was thinking "coherence should know if the object is in the db or not, and do the right thing", but i guess that's not the case?

    Hi Ron,
    The configuration for <local-scheme> allows you to add a cache store but you cannot use write-behind, only write-through.
    Presumably you do not want the data to be shared by the different WLS nodes, i.e. if one node puts data in the cache and that is eventually written to a RAC node, that data cannot be seen in the cache by other WLS nodes. Or do you want all the WLS nodes to share the data but just write it to different RAC nodes?
    If you use a local-scheme then the data will only be local to that WLS node and not shared.
    I can think of a possible way to do what you want but it depends on the answer to the above question.
    JK

  • Preventing write-coalescing with write-behind

    Dear all,
    I am very interested in the write-behind feature but I would like to disable the write-coalescing optimization to see each.
    Is there any way to do this ?
    I feel the fact that CacheStore.storeAll(Map entries) works on cache-key/cache-value makes this impossible to have several cache-value for the same key :-( Not coalescing the consecutive changes on a given entry would require to have a method like CacheStore.storeAll(List<Change>) with Change holding the modification (insert/update/delete), the key and the value.
    Thanks,
    Cyrille
    Cyrille Le Clerc
    [email protected]
    http://blog.xebia.fr

    Thanks for the feedback Robert,
    I implemented this "batch processing without coalescing" thanks a "command queue" colocated with my data.
    Sample : perform async processing on each modification without coalescence of MyEntity identified by MyEntityKey store in "my-entity-cache".
    In my agent/entry-processor, I simultaneously modify my data "MyEntity" and put an entry MyEntityCommand (stored in "my-entity-command-cache"), MyEntityCommand holds enough information to do my async processing. This processing is done asynchronously by MyEntityCommandcacheStore.
    MyEntityCommand is associated with a key MyEntityCommandKey which is composed of MyIdentityKey+sequence-number, MyEntityCommandKey has a KeyAssociation with MyEntityKey to ensure colocation.
    Benefits :
    * There is no coalescence because MyEntityCommandKey contains a unique sequence number.
    * The overweight of this "command queue" is limited because the command object only contains that limited piece of data I need for my async processing (foreign key on the entity + few things) and the queue is self purging thanks to a <expiry-delay> on "my-entity-command-cache".
    Here is a configuration extract
    <distributed-scheme>
      <scheme-name>entity-partitionned</scheme-name>
      <service-name>EntityDistributedCache</service-name>
      <serializer>
      </serializer>
      <backing-map-scheme>
        <local-scheme>
          <scheme-ref>unlimited-backing-map</scheme-ref>
        </local-scheme>
      </backing-map-scheme>
      <thread-count>10</thread-count>
      <autostart>true</autostart>
    </distributed-scheme>
    <distributed-scheme>
      <scheme-name>entity-command-partitionned</scheme-name>
      <service-name>EntityDistributedCache</service-name>
      <serializer>
      </serializer>
      <backing-map-scheme>
        <read-write-backing-map-scheme>
          <cachestore-scheme>
            <class-scheme>
              <class-name>... EntityCommandStore</class-name>
            </class-scheme>
          </cachestore-scheme>
          <internal-cache-scheme>
            <local-scheme>
              <expiry-delay>30s</expiry-delay>
            </local-scheme>
          </internal-cache-scheme>
          <write-delay>10s</write-delay>
          <write-batch-factor>0.5</write-batch-factor>
        </read-write-backing-map-scheme>
      </backing-map-scheme>
      <thread-count>10</thread-count>
      <autostart>true</autostart>
    </distributed-scheme>
    {code}
    Please note that I had to play with <write-batch-factor> to increase the batching factor (ie the number of entries in each CacheStore.store()/storeAll() invocation). Under very high write load, <write-batch-factor> default value of 0 gave me an average of 1.2 entry per CacheStore.store()/storeAll() invocation. My first try of a 0.5 <write-batch-factor> largely increased this average to probably hundreds (my stats are done on an underlying layer, I don't have the exact average).
    Cyrille
    Cyrille Le Clerc
    [email protected]
    http://blog.xebia.fr                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

  • I can't do anything with my computer 'cause the error messages. what can i do?

    I've already got my printer to a technician, but he couldn't find anything wrong. However every time I try to use my printer an ERROR messages show up - cartridge, paper, open etc. The messages come on and on. It useless to shut it. I can't work then I need to turn off the computer and the printer.

    Hard Reset – While printer is powered ON, pull
    the power cord from the printer then from the
    wall. After 30 seconds reconnect power to
    wall and printer. This will trigger a ‘dirty power
    up’ and restore the printer to a known good
    condition (if it is possible). No user settings
    are lost with a ‘hard reset’.
    This ‘Hard Reset’ is one of the most powerful
    tools to use when the printer hardware is not
    functioning properly!
    if not resolved, uninstall hp software &
    reinstall using latest  hp software from hp
    website.
    Although I am working on behalf of HP, I am speaking for myself and not for HP.
    Love Kudos! If you feel my post has helped you please click the White Kudos! Star just below my name : )
    If you feel my answer has fixed your problem please click 'Mark As Solution' and make it easier for others to find help quickly : )
    Happy Troubleshooting : )

  • Write-Behind, Expiration, and SQL Exceptions.

    Hi Chaps,
    If a cache with write-behind enabled has problems writing to the DB I understand that Coherence will re-queue the objects and write them when the DB is available.
    The problem I have is that (after a DB failure) I don't see them being written - I can see these items in the cache but not in the DB, even several hours after the outage. (Items that were added to the cache after the outage are being written).
    Is there anything the cachestore methods (specifically store() ) need to do with regards to exceptions to ensure that these items are re-qeueued?
    Next question is: I was also wondering how is this managed with regards to expiry?
    We have our own expiry routine which removes items from the cache that are older than 24 hours (this was from before we could expire objects by specifying the timeout in the put() method call, which I am intending to switch to).
    If an item has not been written to the DB due to an outage and is then expired (by our own routine or by Coherence) is it then lost forever, or will it remain in the queue? (seeing as the queue holds references I am guessing not but though I'd check).
    Thanks,
    Randal.

    Jon,
    I have a question related to this...If you remember a few weeks back, I stumbled upon the problem of the "version-persistent" map for the versioned-backing-map-scheme does not accept putAll operations. The workaround until you guys implement it, was to override the putAll method of the cacheStore and throw and unsupported operation exception (to force individual puts).
    Well, although this workaround works, I am getting tons and tons of:
    2006-04-06 17:18:27.347 Tangosol Coherence 3.1/339 <Warning> (thread=WriteBehindThread:MyCacheStore, member=1): The CacheStore "MyCacheStore@46b9979b" does not support storeAll().
    2006-04-06 17:18:27.348 Tangosol Coherence 3.1/339 <Error> (thread=WriteBehindThread:MyCacheStore, member=1): Failed to store keys="[16, 18, 21, 26, 5, 13, 14, 25, 17, 15, 23, 19, 2, 6, 9, 7]":
    java.lang.UnsupportedOperationException
    at ...MyCacheStore.storeAll(MyCacheStore.java:126)
    at com.tangosol.net.cache.ReadWriteBackingMap$CacheStoreWrapper.storeAll(ReadWriteBackingMap.java:3820)
    at com.tangosol.net.cache.ReadWriteBackingMap$WriteThread.run(ReadWriteBackingMap.java:3538)
    at com.tangosol.util.Daemon$1.run(Daemon.java:63)
    2006-04-06 17:18:27.349 Tangosol Coherence 3.1/339 <Warning> (thread=WriteBehindThread:MyCacheStore, member=1): Requeued store for key="16"
    2006-04-06 17:18:27.349 Tangosol Coherence 3.1/339 <Warning> (thread=WriteBehindThread:MyCacheStore, member=1): Requeued store for key="18"
    2006-04-06 17:18:27.350 Tangosol Coherence 3.1/339 <Warning> (thread=WriteBehindThread:MyCacheStore, member=1): Requeued store for key="21"
    2006-04-06 17:18:27.351 Tangosol Coherence 3.1/339 <Warning> (thread=WriteBehindThread:MyCacheStore, member=1): Requeued store for key="26"
    the first OperationNotSupported is expected, but I'm not sure what the requeued warnings are all about. These are not failures to the DB...it is something else. (mind you that this happens when trying to load a lot of data into the map.)
    1- Is this requeuing related or the same as in failed DB stores?
    2- Is it possible to "lose" stores if I don't configure the write-requeue-threshold with very, very high values? I must ensure I don't lose anything.
    In a related note, in some circumstances, I need to ensure that the "write queue" is flushed or cleared. For example, I may want to force a flush of all pending stores (and wait/block until that's done).
    I have looked into it and I don't seem to know how to do it. I can read the write-queue length, but I believe that this is not very accurate...since my tests seem to indicate that the write-behind thread may take the entries to store off the write-queue and then deal with them in parallel (which means that there are still entries althought the write-queue size is 0). Also, there are some calls from the cache store that, at first, seem to give some access to the write thread (potentially allowing me to contact the thread to tell him to flush or discard any pending stores)...but I believe that all of the functions are protected...but there may be other ways..
    I guess my second batch of questions are:
    1- How can I effectively force a flush (or clear) of the pending stores. Such that there is no single store pending in any queue (visible or invisible to the programmer).
    2- What is the role of re-queuing in these situations? where is the queue sitting, the thread? the cache store? who's responsible of retrying that, and when?...I would like to flush those entries too.
    A quick explanation of the operation of the write thread would also be very appreciated.
    Thanks!
    Josep M.

  • Write behind with Coherence, What happens if database failover?

    When write-behind with coherence tries to delete, update or insert into database but the Oracle database is shutdown, when I start again the database, So when i try insert again in the database show me this error in the cache server:
    2009-11-23 23:55:07.926/255.935 Oracle Coherence GE 3.5.2/463 <Error> (thread=WriteBehindThread:CacheStoreWrapper(com.oracle.coherence.handson.DBCacheStore), member=1): (Wrapped: Load failed: key=catalog50) java.sql.SQLException: Closed Connection
         at com.tangosol.util.Base.ensureRuntimeException(Base.java:293)
         at com.oracle.coherence.handson.DBCacheStore.load(DBCacheStore.java:64)
         at com.oracle.coherence.handson.DBCacheStore.store(DBCacheStore.java:77)
         at com.tangosol.net.cache.ReadWriteBackingMap$CacheStoreWrapper.store(ReadWriteBackingMap.java:4338)
         at com.tangosol.net.cache.ReadWriteBackingMap$CacheStoreWrapper.storeInternal(ReadWriteBackingMap.java:4064)
         at com.tangosol.net.cache.ReadWriteBackingMap$WriteThread.run(ReadWriteBackingMap.java:3731)
         at com.tangosol.util.Daemon$DaemonWorker.run(Daemon.java:714)
         at java.lang.Thread.run(Thread.java:619)
    Caused by: java.sql.SQLException: Closed Connection
         at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:70)
         at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:133)
         at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:199)
         at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:263)
         at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:271)
         at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:445)
         at oracle.jdbc.driver.PhysicalConnection.prepareStatement(PhysicalConnection.java:3127)
         at oracle.jdbc.driver.PhysicalConnection.prepareStatement(PhysicalConnection.java:3042)
         at com.oracle.coherence.handson.DBCacheStore.load(DBCacheStore.java:50)
         ... 6 more
    How i can reestablish the database connection without restart my cache server?
    Please Help me!!!
    Sorry for my english.

    Hi,
    It looks like you are using com.oracle.coherence.handson.DBCacheStore.
    http://download.oracle.com/docs/cd/E13924_01/coh.340/e14135/cohjdev.htm
    If so, then I think that you could simply change the following method in the DBCacheStore ...
    public Connection getConnection()
            if (m_con == null || m_con.isClosed())
                configureConnection(); 
            return m_con;
            }Thanks,
    Tom

  • Can you limit write-behind batch sizes to a set number in Coherence 3.5?

    I'm currently running Coherence 3.5.3p9 on Windows.
    The cache store is set up to use the write-behind scheme via the read-write-backing-map-scheme tag.
    Batching is enabled with a write-delay of 5s.
    My understanding is that essentially anything that was newly inserted into the cache more than 5 seconds ago becomes eligable for storage.
    Our application goes through a bit of a peak-trough cycle. Sometimes very little data is inserted all at once and sometimes a lot is. This results in quite varying batch sizes and big batch sizes do cause issues on our db from time to time.
    I can decrease the write-delay to 1s in the hope that this will in turn decrease the batch sizes, but is there a way to set a specific number e.g. I only ever want to write 20 in a batch?

    Hi,
    you can just break down that big batch into smaller batches (DB transactions) yourself, and you can also decide that you don't want to write more at the moment.
    If you throw an exception Coherence will retry whatever is in the parameter map passed to storeAll and parameter collection to eraseAll. But it does not have to be the full list, it is expected that you remove those entries/elements which you have successfully persisted.
    This way you can control the rate of writing yourself. Also, since the write-behind thread does not block event processing, therefore you are sort of safe to do longer waits in those methods if you want to somewhat space out resource transactions without returning from storeAll.
    To answer your question:
    You can either
    - do a physical transaction of 20 elements, remove those 20 elements from the map, then optionally wait and then continue with more elements from the map as long as there are any (this gives you the chance of controlling the rate of transactions).
    - send a physical transaction of at most 20 elements to the database, remove those 20 elements from the map and then throw a dummy exception (in which case Coherence requeues the rest... take care, after this they are considered freshly changed entries).
    Best regards,
    Robert

  • I just updated my iPad 3 to ios 7.02 and can no longer sync with iTunes on my computer running OS 10.5.8. I'm wary about updating to Lion, which may cause any number of apps on my computer to no longer work. Although I may consider purchasing a new laptop

    I just updated my iPad to IOS 7.02 and unfortunately can no longer sync with my MacBook running OS 10.5.8. I'm wary about updating to Lion as this may cause any number of apps on my Macbook not to work at all or malfunction. Also my MacBook is 5 years old, and I was thinking about purchasing a new computer. I would like to decide when rather than be forced though. Does anyone have any suggestions for a work around? At the moment I do not subscribe to the cloud, and it looks like that is the only way I can back up my iPad now.

    Upgrade to Snow Leopard - it's compatible with the latest version of iTunes, and still supports PowerPC applications.
    $19.99 - http://store.apple.com/us/product/MC573Z/A/mac-os-x-106-snow-leopard
    Snow Leopard is required if you wanted to upgrade to Lion, anyway, which you may want to in the future if the latest version of iTunes no longer supports Snow Leopard.

  • The background behind my pages has turned black, how do i get it to go back to grey? i have switched between preview, normal, bleed, slug and presentation and closed and opened in design and it is still black. I can't imagine layouts with the black backgr

    the background behind my pages has turned black, how do i get it to go back to grey? i have switched between preview, normal, bleed, slug and presentation and closed and opened in design and it is still black. I can't imagine layouts with the black background please help!

    or maybe the interface has been set to Dark?
    Go to Preferences > Interface tab, choose Light from Color Theme dropdown on Apearance section (upper part of the window)

  • I have duplicate pictures in "my catalog" that I believe come from two Adobe folders found under "my pictures/adobe/ one is Revel and the other is Photoshop express which preceded revel. Can I delete those two folder without causing a problem with my cata

    I have duplicate pictures in "my catalog" that I believe come from two Adobe folders found under "my pictures/adobe/ one is Revel and the other is Photoshop express which preceded revel. Can I delete those two folder without causing a problem with my catalog?

    Thanks for the links, Limnos.
    If you are willing to continue helping, here's what I found.
    Just to clarify the two iTunes folders I am refering to are:
    username-->Music-->iTunes
    HD-->iTunes
    I am presuming each location has a full set of files as outlined in the above links?
    Not all the files are in both locations. Most are.
    - The Itunes folder in my home folder does not have itunes library.xml.
    - The Itunes folder in my home folder has a subfolder called Mobile Applications (username-->Music-->iTunes--> Mobile application). The Itunes folder at the HD level also has a Mobile Application folder but it is a subfolder of Itunes Media folder (HD-->iTunes--> iTunes Media-->Mobile applications) and has no files in it.
    - I do not have an iTunes Media in the iTunes folder in my home folder.
    - also the Itunes media folder (HD-->iTunes--> iTunes Media) has subfolders by type (books, movies, itunes u, music etc...) but the iTunes Media-->Music also has some of the same subfolders ( iTunes Media-->Music-->books, iTunes Media-->Music-->Movies, iTunes Media-->Music-->iTunes U). Is this normal repetition?
    You say:
    /itunes/itunes media/ music
    but it is important to note what comes before all that.
    There is nothing as far as I can tell before that first forward slash. Since the only iTunes Media folder I have is in the iTunes folder that resides at the HD level (HD-->iTunes--> iTunes Media folder) not the iTunes folder in my home folder (username-->Music-->iTunes) , I assume that's the one that holds the music.
    Keep iTunes media folder organized and Copy files to iTunes Media folder when adding to library are both checked on
    Does that give more clarity into my problem?

  • G4 just replaced power supply , it powers up , but the screen is not on and the mouse and keyboard aren't on either. A few times the computer came on with screen working but then it froze up, can't do any type of reset cause of keyboard not working. Help!

    G4 just replaced power supply , it powers up , but the screen is not on and the mouse and keyboard aren't on either. A few times the computer came on with screen working but then it froze up, can't do any type of reset cause of keyboard not working. Help! Pressed pmu button already,  nothing ,..  Ppc g4 Mac

    Should I check the memory cards themselves? Reseat them?
    Yes.
    Memtest X or Rember to test the RAM.
    Reseat is also good.
    The iPhone 4 doesn't like USB 1.1 much.
    after the update the computer was working well, except for this freeze when ever I connect iPhone.
    I'd try USB 2.0 PCI. That's how I connect my iPhone 4s, and have connected all iPhones and iPods, to my G4.
    Never an issue.
    Can't say the same for USB 1.1.......
    The above (previous post) linked PCI card is cheap enough.
    Want cheaper, try this:
    http://www.amazon.com/Protronix®-5-Port-Controller-Card-Chipset/dp/B005JE2U82/re f=sr_1_2?ie=UTF8&qid=1337472141&sr=8-2
    The NEC chipset is the desired chipset, regardless of what OS the maker says is compatible.
    OS X has native NEC chipset USB support.

  • Hi. I have an ipod 7th Gen. Whenever i rate a song from ipod, when i connect my ipod to my pc i see that  another different song is rated on itunes. Can you help me with it? or what causes this problem?

    Hi. I have an ipod 7th Gen. Whenever i rate a song from ipod, when i connect my ipod to my pc i see that  another different song is rated on itunes. Can you help me with it? or what causes this problem?

    Hi Becki ..
    You need to "authorize" the Mac.
    Launch iTunes on the Mac then from the iTunes menu bar top of your screen click Store > Authorize This Computer.
    Now, using the same Apple ID as you used to purchased iTunes media originally, you should be able to sync all your content.
    More details here >  iOS: Syncing with iTunes

  • In Imovie 2011-Trying to image capture my project but it comes up after 10 hours- The project could not be prepared for publishing because an error occurred. File already open with write permission. Hopefully someone can help me.

    In Imovie 2011- Trying to image capture my project but it come up after 10 hours of rendering- The project could no be prepared for publishing because an error occured. File already open with write permission. Please Help!

    oh and ive tried publishing to almost everything. straight to idvd, to media browser, i tried both hd qualities and also the large quality. no luck with any of those

  • Write behind cache, DB down, when should the system stop taking new data in

    Hello:
    We are trying to use Coherence for our custom ESB, which is brokering payloads of various size between consumer and provider applications.
    Before Coherence, stopping our DB meant organization-wide outage for critically important business services.
    Since we have at least 40G of RAM in production environment, we believe that our app
    can use Coherence write-behind option for tolerating at least several hours worth of DB outage.
    We are currently using a near cache backed by distributed cache in write-behind mode.
    9 business service JVMs (storage enabled=false) use 30 storage enabled JVMs.
    IMPORTANT: We need to create an automated alerting facility determining when
    amount of unsaved data reaches critical level since DB goes down. This alert should help us decide when our application stops accepting inbound traffic.
    It is hard to use QueueSize parameter for that because our payload memory footprint can vary from 1KB to 3MB.
    We do not expire any entries in order to enable support queries against the cache during DB outage.
    Our experiments with trying various flavors of overflow-scheme resulted in OutOfMemoryError, therefore
    we decided to implement RAM-only cache as a first step.
    <near-scheme>
    <scheme-name>message_payload_scheme</scheme-name>
    <front-scheme>
    <local-scheme>
    <scheme-ref>limited_entities_front_scheme</scheme-ref>
    <high-units>100</high-units>
    </local-scheme>
    </front-scheme>
    <back-scheme>
    <distributed-scheme>
    <backing-map-scheme>
    <read-write-backing-map-scheme>
    <internal-cache-scheme>
    <local-scheme>
    <scheme-ref>limited_bytes_scheme</scheme-ref>
    <high-units>199229440</high-units>
    </local-scheme>
    </internal-cache-scheme>
    <cachestore-scheme>
    <class-scheme>
    <class-name>com.comp.MessagePayloadStore</class-name>
    </class-scheme>
    </cachestore-scheme>
    <read-only>false</read-only>
    <write-delay-seconds>3</write-delay-seconds>
    <write-requeue-threshold>2147483646</write-requeue-threshold>
    </read-write-backing-map-scheme>
    </backing-map-scheme>
    <autostart>true</autostart>
    </distributed-scheme>
    </back-scheme>
    </near-scheme>
    <local-scheme>
    <scheme-name>limited_entities_front_scheme</scheme-name>
    <eviction-policy>LRU</eviction-policy>
    <unit-calculator>FIXED</unit-calculator>
    </local-scheme>
    <local-scheme>
    <scheme-name>limited_bytes_scheme</scheme-name>
    <eviction-policy>HYBRID</eviction-policy>
    <unit-calculator>BINARY</unit-calculator>
    </local-scheme>

    Good info ... I feel like I need to restate my original question along with a couple of new questions caused by the discussion above.
    Q1. Does Coherence evict 'dirty', or 'queued', or 'unsaved' objects for cache configuration provided above?
    The answer should be 'NO', otherwise Coherence is unsafe to use as a system of record,
    it should not just drop unsaved information on the floor.
    Q2. What happens to the front tier of the near+partitioned write behind cache described above when amount of unsaved data exceeds max cache capacity defined via high-units?
    I would expect that map.put starts throwing exceptions: cache storage is full, so it should not accept more data
    Q3. How can I determine a moment when amount of dirty data in bytes(!), not in objects, hits 85% of
    max allowed cache capasity configured in bytes (using high-units param and BINARY calculator).
    'DirtyUnits' counter can probably be built with some lower-level Coherence API. Can we use
    this API?
    Please, understand, that we purchased Coherence for reliability, for making our
    system independent from short DB outages, for keeping our business services up
    and running when DBA need some time for admin operations like rebuilding an index.
    Performance benefits are secondary and are not as obvious for our system which
    uses primary keys only and has a well-tuned co-located Oracle back-end.
    We simply cannot put Coherence to production unless we prove that Coherence
    can reliably hold the data and give us information about approaching crisis
    (the cache full of unsaved data).
    If possible, forward this message to Cameron Purdy,
    who was presenting Coherence to our team several moths ago.
    Thanks,
    Vasili Smaliak
    Applications Architect, Enterprise App Integration
    GMAC ResCap
    [email protected]

Maybe you are looking for

  • Apple ID for itunes purchases to change

    I have one apple ID that I have been using for years and doing all the purchases on my mac, on my itunes store and everywhere.  I used the same as my icloud service ID. (Previousely mobileme, before idisk) Now for my icloud services I created a new a

  • Imac force display resolution

    Hi, I'm trying to send video to a CRT TV. I currently do it through an HDMI to S-Video adaptor but, no matter what video setting I use on the iMac, it is always out of proportion i.e. too narrow in width versus height. Is there a way to force the iMa

  • AS3 drag and drop masked bitmaps - not working

    I have a drag and drop project using bitmaps that were masked using fireworks. All bitmaps are PNG (fireworks files) and one object is GIF. All objects were converted into movie clips. PROBLEM All movie clips from PNG's can be dragged, but they can't

  • Drag and drop issues.  I'm not alone.

    So clearly I'm not the only one dealing with this, I've seen other topics with people running into this problem. All of a sudden last night I was unable to drag and drop stuff around, copy and past, run a new program and I have no Spotlight. I've res

  • Should I always let my iPad 3rd generation die and charge ? Takes almost close to 12 hours for a 100%  charge. Any suggestions ? iPad is over a year old

    Should I always let my iPad 3rd generation die and charge ? Takes almost close to 12 hours for a 100%  charge. Any suggestions ? iPad is over a year old and don't want to buy a new one if this problem will continue to happen. Help