Suggestion of a possibly useful feature

Hi Gene and Dimitri,
     in our project we face a problem that we should try to find out a subset of tree nodes in a tree hierarchy filtered by transitive parent-child relationship to a specific node.
     The amount of nodes are possibly in the couple of hundred thousands, so probably they would not economically fit into a single JVM, so probably it would need to be stored in a partitioned cache. Also the tree hierarchy occasionally changes (it is a normal use case).
     I expect it could be useful if the children of each non-leaf node could be maintained in a data structure on each cache client node, effectively a reverse index of all entries in the cache based on the parent id attribute value as extracted value.
     However, for this, it would be necessary that I can quickly and consistently build the reverse index upon startup.
     The 3 parameter constructor of the ContinuousQueryCache gives an opportunity to do this, however it would also mean an enormous overhead because it would also store each entry in the JVM, which as it was already mentioned would be quite disastrous to memory footprint, not to mention it is not required anyway.
     A quick first solution to this problem would be if the ContinousQueryCache backing map could be disabled, but it would still act as an ObservableMap. This way the memory footprint overhead would be much less, after the handling of the initial events, but we would still be able receive exactly one event per entry and per subsequent events.
     Another improvement would be allowed if at the construction of the ContinousQueryCache, the events corresponding to the entries returned by the initial query result could be delivered together, not one-by-one, as it would allow optimizing the index structure lists memory consumption by not having to gradually increase the collections holding the reverse mapped keys to an extracted value, but we could create it with the correct size (and some spare space) at once. However this would require two passes on the events corresponding to the initial query, therefore they would need to be delivered together to allow two passes.
     Practically it is even worth extracting this functionality alone (initial list of events or values corresponding to entries in the cache delivered together to a synchronous-listener with all following events delivered normally) to a helper class which can create a listener initializable as mentioned without any functionality additionally provided by the ContinousQueryCache.
     If such a feature is created, then it would be easy to implement arbitrary custom (userspace) indexes remotely to the cache backing maps, or allow indexing replicated caches.
     Is indexing replicated caches actually scheduled as a feature anytime soon?
     A third possible optimization would be if the initial query would not return entire entries but would run an user specifiable aggregation instead, which can return only the relevant extracted attributes. This would allow reducing the initial traffic and also possibly allow leveraging existing indexes in the cache servers therefore bypassing deserialization of the entries altogether.
     Best regards,
     Robert

Hi Peter,
     > Hi Rob,
     >
     > I have managed to create a wrapper over any
     > NamedCache that maintains it's own local indexes and
     > optimizes Queries when an IndexAwareFilter is used.
     > Using only one listener registered for listening to
     > "light" events I just retrieve the key from MapEvent
     > (I'm not even interested in the type of event) and
     > then look-up for what the underlying cache says about
     > the key (whether it is currently deleted or whether
     > it has some value associated) and update the indexes
     > accordingly.
     You should be aware, that the listener must NOT call back to the same cache service that it received the event from, otherwise you are subjecting yourself to deadlocks under heavy load. Therefore you should not be looking up cached values from a listener.
     Also, the fact that you are doing a lookup means that your index is updated asynchronously to the change event. This means that the cache content is not guaranteed to always be in sync with your indexes.
     E.g. when your processing is slow and you have two change events for the same entry, and your lookup sees only the effect of the second change, then your index will not reflect the intermittent existence of the value after the first change, therefore it was not in sync with the cache when it contained the value received in the first change.
     This can make a problem, when you are doing queries for which not all filters are indexed, and therefore some of the filters are checking the index and some are checking the values. They might be inconsistent and lead to false results.
     For queries like that, you must check the values in a state as they were in when the index was created from them. This means that you must be able to provide a snapshot of entries which is consistent with the snapshot of the indexes the filter will see (and of course the indexes must also be in a consistent state with each other). For two changes to the same entry, going from state A through state B to state C, the filter must see index contents (let's assume two indexes) the indexes and the entry either all in state A or all in state B or all in state C together, but not in a mixed-up state.
     This is quite complex logic, and I don't believe this is possible to do with index updating being asynchronous to the changes.
     Also, there is no point in using lite events and getting from the cache in a replicated cache, as the data has already traveled to your node when you received the event, then why do another lookup instead of getting it at once, except for seeing the latest version, which as I mentioned leads to inconsistencies.
     > The initial loading of the indexes is done after the
     > "light" listener is registered and it is simply a
     > mater of iterating over all keys of the map and
     > producing a stream of key-only events that are
     > processed in parallel with events that are produced
     > by the ObservableMap. The order of these events is
     > not important since they only specify "something has
     > changed under that key". If I get two events for the
     > same change/initial load it doesn't matter since they
     > are idempotent.
     Please see my previous comment about the consistency of the index with the cached values.
     > In each index I maintain a map from extracted value
     > to the set of keys (which is the index content) and
     > also a reverse map from key to the extracted value
     > (which is important to be able to update the index
     > when I only have current value and not the old one).
     >
     Coherence terminology is actually just the other way round.
     Reverse map is mapping from the extracted value to the cache keys from which the extracted value is extracted from (and this is called index content in IndexAwareFilter-s).
     Forward map is mapping from the cache key to the extracted value (you can use this by casting the entry to QueryMap.Entry in an index-aware filter or a parallel-aggregator, and calling QueryMap.Entry.extract(ValueExtractor) which will consult an index forward map if it exists.
     > It works perfectly for replicated cache.
     >
     Have you tried stress testing it under high load, when querying for data when you were actually changing that data, and making changes on multiple attributes in a single put, with some of the changed attributes indexed, and some of them are not, and verifying for not getting false results in the query result set?
     Due to the possibility of the cache not being in sync with the index, I would believe, those race conditions would expose errors (or deadlocks).
     Best regards,
     Robert

Similar Messages

  • I had bought iPhone 4 from OLX. When i had deleted iCloud account and restored my iPhone it is still asking me about Apple I.D to activate my Phone.. Why is it so..?? Suggest me a possible reason for my Question so that i may continue using my iPhone...

    I had bought iPhone 4 from OLX. When i had deleted iCloud account and restored my iPhone it is still asking me about Apple I.D to activate my Phone.. Why is it so..?? Suggest me a possible reason for my Question so that i may continue using my iPhone...
    I dont have any contact detail of that person whom i had bought this phone..

    If you are trying to activate an iPad or iPhone and it is asking for a previous owners Apple ID and password, you have encountered the Activation Lock. This is a security feature that prevents thieves from setting up and using a stolen or lost iPad or iPhone. You have no alternative. You must contact the previous owner to get permission to use the device. If you cannot contact the previous owner return the device to where you bought it and get a refund. You will never be able to activate the device and no one can help you do it.

  • We have a corporate iPad in our auto showroom to show guests how to use features on their vehicles. Someone locked it with their account. It was not an employee. How can I get in? I did a restore of the software already?

    We have a corporate iPad in our auto showroom to show guests how to use features on their vehicles. Someone locked it with their account. It was not an employee. How can I get in? I did a restore of the software already?

    Gather up the proof that the dealership is the original purchaser of the iPad,
    and take the iPad & that proof to a physical Apple store for possible assistance.
    It is highly suggested that you make a genius bar appointment to avoid delay
    at the store:
    Make a Genius Bar Reservation
    http://www.apple.com/retail/geniusbar/
    If no Apple store close by, get the information mentioned above and contact
    Apple Contact Us for assistance.
    Once the problem is resolved, you may wish it use Guided Access to limit
    what customers can do with the iPad.
         iOS: About Guided Access - Apple Support

  • Is RDC integration with Lotus notes apps possible using CR XI and lotus 8

    Hi,
    We have reporting feature implemented in one of lotus notes application using crystal reports 6 (OCX)  and as Crystal report is going to be upgraded to CR XI version in my organisation, we need to implement the same using RDC component.
    Background (on how it has been implemented using CR 6 ) :-
    i) Lotusscript generate few CSV file and pick a .RPT file from profile doc and places it under one folder on local machin (say x).
    ii) RPT file is designed to pick data from CSV file using system DSN (data source).
    iii) Data source (system DSN) has been configured with folder (x) that contains CSV and RPT file .
    iv) Crystal report control object has been embedded in the lotus notes form and lotusscript code gets handle of control object and opens the  report (RPT)file .
    We have set up all neccesary environment and trying to implement above functionality using RDC component but when we are embedding the crstal report report viewer in a lotus notes form , it throws an error "An error has occured while processing a request on an object".
    Please let me know if it possible using RDC or can anyone suggest me some other alternatives .
    TIA

    Hello,
    You should be able to use the RDC in Lotus Notes. There are significant differences between the object model for the old OCX (crystl32.ocx) compared to the Report Designer Component (RDC) and it's components, the craxdrt.dll, crviewer.dll, etc.
    I was able to find an older document that shows how to integrate CR9 into Lotus Notes: "[Using the Report Designer Component (RDC) in Lotus Notes|http://www.sdn.sap.com/irj/boc/index?rid=/library/uuid/50ce64b3-241f-2b10-b792-9685d3815a21]". You can use this as a starting point to compare with your code.
    The RDC object model hasn't changed much since CR9, but some of the runtime component references in the document may need to be correct (e.g. craxdrt.dll for v11.x vs craxdrt9.dll for v9.x).
    It is worth noting that the RDC has been retired with the release of CR2008. CR XIR2 (v11.5) is the last version of Crystal Reports that uses the RDC. The suggested migration path is to move to the Crystal Reports .NET SDK. This means you'll have no upgrade path with a v11.x application.
    Sincerely,
    Dan Kelleher

  • Why does useful features are limited to few adapters?

    Why does useful features are limited to few adapters?
    For eg : File receiver CC has a option to stop Empty messages from being processed.
    This is not available in SOAP receiver.
    Is it possible to have a standard adapter module in SOAP receiver CC that will achieve this?
    Regards,
    Venkat.

    >
    Venkat A wrote:
    > Why does useful features are limited to few adapters?
    > For eg : File receiver CC has a option to stop Empty messages from being processed.
    > This is not available in SOAP receiver.
    Thats for SAP to answer i guess
    Well initially there was no option in the File adapter to handle empty messages but as requirement grew and more and more customers/consultants were in need to handle such a functionality, SAP brought it in through a SP release
    Maybe if this particular requirement of your finds popularity, then SAP might come up with a inbuilt solution
    >
    > Is it possible to have a standard adapter module in SOAP receiver CC that will achieve this?
    >
    > Regards,
    > Venkat.
    in you case why do you need to send the SOAP receiver a empty message??
    If you need to handle it then the best is to do some workaround in the mapping and have a field in your target structure indicate that it is a empty message (something like a flag) and then do the routing logic based on this flag.

  • Missed useful feature in mail.app spotligth

    In Leopard OS was a very useful feature in mail.ap spotligth.
    When you drag'n'drop a letter to the spotlight window of the 10.5 mail.app all the letters from mail recipient were shown as a spotlight-find-result. It was a very useful feature in previous MacOS. Not it's lost.
    Is this feature lost only in my OS?
    English is not my native language, sorry for possible grammar mistakes.

    Have you applied the latest Mail update from the Apple Downloads site: Mail Update for Mavericks. This Apple document describes the fixes: OS X: About Mail Update for Mavericks
    OT

  • HT201365 What do I do if my wifi only iPad mini is offline? Is there any way that I can locate it while being offline or turn it online remotely or possibly use the built in GPS?.

    What do I do if my wifi only iPad mini is offline? Is there any way that I can locate it while being offline or turn it online remotely or possibly use the built in GPS?.

    Answer would be no unless application provided such feature. Numbers does not as far as I know.
    Note that even if you have complete list of formulae used in a table, identifying formulae referencing any given cell is not simple.
    E.g., cell T20 is referenced not only in
    =T20+1
    but also in
    =SUM(T)
    =SUM(20:20)
    =SUM(S19:U22)
    =OFFSET(S1,19,1,1,1)
    =INDIRECT("T"&(10*2))
    In order to identify such formula, we have to actually evaluate it to see if it references the given cell. Especially such formula as OFFSET() and INDIRECT() may not be found by static parser because their parameters can be dynamic.
    Sorry to be the bearer of bad tidings.
    H

  • The drop-down list that appears when typing in the Google search bar doesn't work. Clicking on an item on that list does nothing. This very useful feature is broken.

    I just installed FireFox 4. In previous versions typing in the Google search box automatically created a drop-down list of items. One could click on an item on the list and proceed to a Google results page. In FireFox 4, the list appears but clicking on an item on the drop-down menu does nothing. It's broken and it was a very useful feature in previous versions.

    Start Firefox in [[Safe Mode]] to check if one of the add-ons is causing the problem (switch to the DEFAULT theme: Tools > Add-ons > Themes).
    * Don't make any changes on the Safe mode start window.
    See:
    * [[Troubleshooting extensions and themes]]

  • After upgrading the new operating system, it seems some useful features no longer work such as when typing a message the text anticipates the next word and when trying to delete individual messages from a contact, you can no longer tap and hold to select

    After upgrading the new operating system on my Droid Razr M it seems some useful features no longer work such as when typing a message the text anticipates the next word and when trying to delete individual messages from a contact, you can no longer tap and hold to select multiple message you have to delete them individually or the entire thread. Is there a way to get these back?

    Well, that's kind of embarrassing. And I honestly thought I paid attention to that... It works perfectly now, thank you so much!
    As expected, cdm-git also works fine since DMs only work in the root mode as of now.
    Just for the record, both type commands output "/usr/bin/startx" and pacman -Q gives "systemd 215-4".
    Last edited by looki (2014-08-23 13:04:49)

  • I want to edit Pictures that are on my External Hard Drive Using iPhoto without having to import them every time, it was suggested to me to use Aperture. any advise is appreciated

    I want to edit Pictures that are on my External Hard Drive Using iPhoto without having to import them every time, it was suggested to me to use Aperture. any advise is appreciated

    Aperture is a nice program, I use it myself for it's adjustment and light editing capabiities.
    You can save a vault on another drive.

  • I'm working in Photoshop CS6 on a Mac and am having trouble when I select a Path it automatically feathers the selection border. I can't seem to find any place to adjust a feather setting. Does anyone have a suggestion? I'm using paths to silhouette an im

    How do I change a default from feathered edge to sharp edge when I select a path?
    I'm working in Photoshop CS6 on a Mac and am having trouble when I select a Path it automatically feathers the selection border. I can't seem to find any place to adjust a feather setting. Does anyone have a suggestion? I'm using paths to silhouette an image on a photograph to use in another document and I need a hard edge on it, not a feathered one.

    In the Paths panel, click the flyout menu (in the top right of the panel) and choose Make Selection (this option will only be available if you have a path selected). Reduce the Feather Radius to 0 (zero) and click OK. This setting will be the default even when clicking the Load Path as Selection button.

  • Error : Access not possible using "null" objects reference

    Hello.
    i am working with a zbapi.
    i called a external email program in this bapi,everything is working fine over here.
    In webdynpro java they mapped my bapi and starting working from there.
    every functionality is working fine but regarding this email stuff it is showing an error as access not possible using null objects reference.
    where could be the possible error.
    is it in webdynpro or in abap side.

    Raghu,
    You are right. When it comes from the WD Java, may be you are not passing any value at all. You can trace it by these ways.
    1. Check it using SE37, make sure everyhting is fine.
    2. Print all the values that you are passing to the RFC in the execute RFC method().
    3. using ST05 transaction in R/3, enable RFC and SQL trace, check what is passing in between web dynpro and R/3.
    Moreover paste your error message here.
    Thanks,
    Raj.

  • Is it possible using SQLite to collect data from an older SQL database?

    Is it possible using SQLite to collect data from an older SQL database? Where can I find a possible answer. Thanks in advance.

    There are 3rd-party tools (see comprehensive list at http://www.kenhamady.com/bookmarks.html) that provide extra pdf functionality on top of the pdf export from Crystal. 
    In the case of my Visual CUT software, you can use hidden formulas inside your Crystal report to generate form fields (pre-populated as well as empty) as part of the pdf export process.
    hth,
    ido

  • C++: Is it possible using callback function with ncacn_http and rpcproxy server ?

    I have a remote procedure and I can call it using http over rpc. I pass trough an rpc proxy server for arriving to my rpc server.
    But I cannot call a callback function to my client inside the server function.
    Is it possible using callback function with ncacn_http and rpcproxy server ?
    We are using IIS on windows server 2008 R2 and the server rpc and the client on the same PC with rpc rpoxy.
    If I use ncan_ip_tcp all works fine.
    Thanks
    Gianluca

    Hi,
    About the develop question please post to the MSDN forum.
    MSDN forum Developer Network
    http://social.msdn.microsoft.com/Forums/en-US/home?forum=WAVirtualMachinesVirtualNetwork&filter=alltypes&sort=lastpostdesc
    Thanks for your understanding and support.
    We
    are trying to better understand customer views on social support experience, so your participation in this
    interview project would be greatly appreciated if you have time.
    Thanks for helping make community forums a great place.

  • Is multimapping is possible using abap map

    Hi,
      My scenario is to deal with 1:n message splitting.Is it possible using abap mapping instead Graphical mapping?
    Appreciate for your response.
    Regards,
    Daniel.LA

    Prateek,
    Could you please tell why it's not possible thru ABAP Mapping? I think it's possible thru ABAP mapping, plz correct me if i'm wrong. I agree that Multimapping is possible only for adapter that lies in J2EE Engine! Plz clarify.
    raj.

Maybe you are looking for

  • How can I quickly rename a group of files (not batch)

    I've seen answers to the "batch" renaming.  My situation is a little different. I want to change the names of a bunch of files, but there is no pattern to the changes.  It's somewhat cumbersome right now to click on each item, then wait a second, the

  • PS CS4 save action that prevents file clobbering?

    Hello: Does anyone know of an action step or event script that will alert you to the existence of a file when using non-dialog save commands in actions? Scenario: Suppose I have a "Save" action that points to a specific folder, I then save an image t

  • Sort order in Java application (oc4j container) -- ear file deployment

    I have a Java application deploy in Oracle OC4J container (EAR file). In my Java application (jsp), I have a SQL statement who return data but the sort order is wrong. The letters "é" and all characters with accents appears at the end of the result.

  • Display result output as below

    I want to display my output as the following: Vendor--CostCenter---Price AAAA-----111-- 100 AAAA-----222-- 200 AAAA-----333-- 300 BBBB-----111-- 1000 BBBB-----444-- 2000 <b>instead of</b> Vendor--CostCenter---Price AAAA-----111-- 100 222---- 200 333-

  • Phone with the English to Chinese Translator

    My friend used to owned a Nokia phone which has the English/Chinese Translator, however it has been discontinued; I'm looking for the new model that has the above-mentioned function. I've tried emailing "ask Nokia" twice, but has yet to get a respons