Adapting .js Bloom Filter

I'm interested in playing around with Bloom filters. I found this javascript implementation https://github.com/jasondavies/bloomfilter.js/blob/master/bloomfilter.js, but my understanding of javascript is a bit minimal.
So I'm not quite sure what all the part about the different kinds of typed arrays supported by javascript and what would be the best thing to use in Flash. Would it be array, vector, object? Or perhaps it could be something that I wouldn't normally think of like a bitmapdata or byte array?
Also I'm often not sure which number types I should use to get the best results. I'm guessing generally uint to take advantage of the 32 bits.
Also I'm wondering a little about the FNV hashing function. Given that I'll be hashing strings I'm wondering how often I would need to use the masking like:
    while (++i < n) {
      c = v.charCodeAt(i);
      if (d = c & 0xff000000) {
        a ^= d >> 24;
        a += (a << 1) + (a << 4) + (a << 7) + (a << 8) + (a << 24);
      if (d = c & 0xff0000) {
        a ^= d >> 16;
        a += (a << 1) + (a << 4) + (a << 7) + (a << 8) + (a << 24);
      if (d = c & 0xff00) {
        a ^= d >> 8;
        a += (a << 1) + (a << 4) + (a << 7) + (a << 8) + (a << 24);
      a ^= c & 0xff;
      a += (a << 1) + (a << 4) + (a << 7) + (a << 8) + (a << 24);
charCodeAt returns a number, but I'm thinking unicode only goes up to 2^16, right? So it seems like I wouldn't need to mask anything larger than 0xff00—saving two if/assignment blocks. (Of course the whole hashing part runs so quickly! So maybe that part won't matter.)
Well anyways, if somebody knows anything about implementing Bloom filter in actionscript that would be great.

Thanks for that. But no it isn't about graphics. It is a data structure that is used to test if a candidate element is a member of a set or not.
http://en.wikipedia.org/wiki/Bloom_filter
It is supposed to be very space effecient and fast (Running in O(k) time, relative to the number of hashing functions used). If done correctly it doesn't have false negatives, but may give false positives (with a rate that can be controlled, but not completely eliminated). It can be used to prevent more costly activities like a database lookup or such when you know that the result will be "No."
An example I've seen is for safe URL browsing. The blacklist of "forbidden/dangerous" sites could be very large (I've heard average 80 charcters per URL, many thousands of sites/pages.) An array of those values could take a lot of storage room. But a Bloom filter would be much smaller. The request would come "Is suchandsuch.com/possibley_dangerous/ on the list?" And the filter could say either "For sure not. Proceed." or "It looks like it is on the list. Do some further testing by querying a remote database." Or something like that.
I also found a reference to someone who wrote a Bloom filter that allowed for spell checking at a rate of around 13,000 words per second.
The FNV thing is a non-cryptographic-strength but quick and appropriate hashing function. That part I have been able to adapt from the original and it seems to be working. I'm just not sure I understand why the first two "masking/assignment" conditional blocks are in there.
If I understand correct, then this part (where c is the value returned by getCharAt()
      if (d = c & 0xff000000) {
        a ^= d >> 24;
        a += (a << 1) + (a << 4) + (a << 7) + (a << 8) + (a << 24);
is checking to see if c has any turned on bits in the left-most 8 bits and if so assinging the last 8 bits to d and then doing some processing on them. Right? But how is getCharAt() ever going to get bits all the way "over there." True it returns a number which can use that many bits, but if all unicode fits into 0xffff when will they ever be used? Could this be an endian thing?
Overall it might not really be a usefull or effecient thing to do in actionscript, but I just want to play around with it and see what might come up.
Thanks for the suggestions on javascript debuggers.

Similar Messages

  • Bloom filter and performance

    I have the following query:
    SELECT 
                    obst.obst_id obstructionId
                   ,oost.comment_clob CommentClob
                   ,chp1.ptcar_no StartPtcar
                   ,chp2.ptcar_no EndPtcar
                   ,oost.track_code Track
                   ,oost.start_date StartPeriod
                   ,oost.end_date EndPeriod
                   ,oost.doc_no RelaasId
                   ,obst.status_code Status
            FROM   T1 obst
                 , T2 oost
                 , T3 chp1
                 , T3 chp2
              where obst.oost_id      = oost.oost_id
              and oost.chp_id_start = chp1.chp_id
              and oost.chp_id_end   = chp2.chp_id
              and obst.obs_stat     = 2
       and add_months(obst.mod_date,13) >= :ld_curr_date
       and oost.start_date between :ld_from_date and :ld_to_date         
              and exists (select 1
                            from T4  obsv
                               , T5  veh
                            where  obsv.veh_id = veh.veh_id
                            and (:ln_opr_id is null
                                   OR veh.opr_id = :ln_opr_id)
                            and  obsv.obst_id = obst.obst_id
                            and  veh.ac_number between :ln_min_number and :ln_max_number
                            and  obsv.start_date > obst.start_date
             order by obst.obst_id;
    Giving the following execution plan where a bloom filter has been used.
    | Id  | Operation                           | Name                    | Starts | E-Rows | A-Rows |   A-Time   | Buffers | Reads  |
    |   0 | SELECT STATEMENT                    |                         |      1 |        |     10 |00:02:13.09 |     128K|  94376 |
    |   1 |  SORT ORDER BY                      |                         |      1 |      8 |     10 |00:02:13.09 |     128K|  94376 |
    |   2 |   NESTED LOOPS                      |                         |      1 |        |     10 |00:02:13.06 |     128K|  94376 |
    |   3 |    NESTED LOOPS                     |                         |      1 |      8 |     10 |00:02:13.06 |     128K|  94376 |
    |   4 |     NESTED LOOPS                    |                         |      1 |      8 |     10 |00:02:13.06 |     128K|  94376 |
    |*  5 |      HASH JOIN SEMI                 |                         |      1 |      8 |     10 |00:02:13.06 |     128K|  94376 |
    |   6 |       JOIN FILTER CREATE            | :BF0000                 |      1 |        |   1469 |00:00:02.06 |   12430 |     76 |
    |   7 |        NESTED LOOPS                 |                         |      1 |        |   1469 |00:00:00.17 |   12430 |     76 |
    |   8 |         NESTED LOOPS                |                         |      1 |    307 |   5522 |00:00:00.11 |   10545 |     52 |
    |*  9 |          TABLE ACCESS BY INDEX ROWID| T2                      |      1 |    316 |   5522 |00:00:00.07 |    3383 |     46 |
    |* 10 |           INDEX RANGE SCAN          | T2_OOST_START_DATE_I    |      1 |   1033 |   8543 |00:00:00.03 |      33 |      3 |
    |* 11 |          INDEX RANGE SCAN           | T1_OBST_OOST_DK_I       |   5522 |      1 |   5522 |00:00:00.08 |    7162 |      6 |
    |* 12 |         TABLE ACCESS BY INDEX ROWID | T1                      |   5522 |      1 |   1469 |00:00:00.13 |    1885 |     24 |
    |  13 |       VIEW                          | VW_SQ_1                 |      1 |  64027 |   1405 |00:00:07.82 |     115K|  94300 |
    |* 14 |        FILTER                       |                         |      1 |        |   1405 |00:00:07.82 |     115K|  94300 |
    |  15 |         JOIN FILTER USE             | :BF0000                 |      1 |  64027 |   1405 |00:00:07.82 |     115K|  94300 |
    |  16 |          PARTITION REFERENCE ALL    |                         |      1 |  64027 |  64027 |00:01:48.22 |     115K|  94300 |
    |* 17 |           HASH JOIN                 |                         |     52 |  64027 |  64027 |00:02:03.37 |     115K|  94300 |
    |  18 |            TABLE ACCESS FULL        | T4                      |     52 |  64027 |  64027 |00:00:00.34 |    1408 |    280 |
    |* 19 |            TABLE ACCESS FULL        | T5                      |     41 |    569K|   5555K|00:02:08.32 |     114K|  94020 |
    |  20 |      TABLE ACCESS BY INDEX ROWID    | T3                      |     10 |      1 |     10 |00:00:00.01 |      22 |      0 |
    |* 21 |       INDEX UNIQUE SCAN             | T3_CHP_PK               |     10 |      1 |     10 |00:00:00.01 |      12 |      0 |
    |* 22 |     INDEX UNIQUE SCAN               | T3_CHP_PK               |     10 |      1 |     10 |00:00:00.01 |      12 |      0 |
    |  23 |    TABLE ACCESS BY INDEX ROWID      | T3                      |     10 |      1 |     10 |00:00:00.01 |      10 |      0 |
    Predicate Information (identified by operation id):
       5 - access("ITEM_1"="OBST"."OBST_ID")
           filter("ITEM_2">"OBST"."START_DATE")
       9 - filter(("OOST"."CHP_ID_START" IS NOT NULL AND "OOST"."CHP_ID_END" IS NOT NULL))
      10 - access("OOST"."START_DATE">=:LD_FROM_DATE AND "OOST"."START_DATE"<=:LD_TO_DATE)
      11 - access("OBST"."OOST_ID"="OOST"."OOST_ID")
      12 - filter(("OBST"."OBS_STAT"=2 AND ADD_MONTHS(INTERNAL_FUNCTION("OBST"."MOD_DATE"),13)>=:LD_CURR_DATE))
      14 - filter((:LN_MIN_ac_number<=:ln_max_number AND TO_DATE(:LD_FROM_DATE)<=TO_DATE(:LD_TO_DATE)))
      17 - access("OBSV"."VEH_ID"="VEH"."VEH_ID")
      19 - filter(((:LN_OPR_ID IS NULL OR "VEH"."OPR_ID"=:LN_OPR_ID) AND "VEH"."ac_number">=:LN_MIN_ac_number AND
                  "VEH"."ac_number"<=:ln_max_number))
      21 - access("OOST"."CHP_ID_START"="CHP1"."CHP_ID")
      22 - access("OOST"."CHP_ID_END"="CHP2"."CHP_ID")
    This query completes in a not acceptable response time of more than 2 minutes and this is why it has been handled to me for possible improvement.
    As you might have already pointed it out from the above execution plan, the operation number 19 is the most time consuming operation (TABLE ACCESS FULL of T5). The query without the EXISTS part represents our data. This part of the query is very fast. It gives about 1500 rows. However, when we want to limit those 1500 records to only records satisfying the exists clause (10 records), the query starts not performing very well because of this full table scan on T5 (5,5 millions).
    The ideal situation would have been to :
    (a) first join table T5(alias veh) with the table T4(alias obs) using the join condition (predicate 17) limiting the number of record from T5 table
    (b) and then filter from T5 table (predicate 19)
    But in this case the CBO is starting by a costly full scan of the entire T5 table (5,5 millions of rows operation 19) before sending this enormous amount of data to the HASH JOIN operation 17 which finally throw away the majority of T5 rows not satisfying the join condition : access("OBSV"."VEH_ID"="VEH"."VEH_ID")
    I have already verified that the table statistics and their join column statistics are up-to-date and are reflecting the reality. But failed to know how to let the CBO automatically doing what I want it to do i.e. Join first and then filter.
    When I discussed with the client we agreed to re-factor a little bit this query so that it is now completing in few seconds.
    The new plan is not using bloom filter and the veh table is accessed via its unique index on VEH_ID (18 - access("OBSV"."VEH_ID"="VEH"."VEH_ID")) before applying the filter operation. Exactly as I wanted it to be in the original query
    Have you any idea on how to change this join method/order so that the full table scan is post poned? of course without refactoring the query
    Do you think that bloom filter is the culprit here?
    Thanks in advance
    Mohamed Houri
    PS : and  veh.ac_number between :ln_min_number and :ln_max_number
    These two imput parameters are beyound the known low and high value. But even when I used min and max value taken from the table (min = low_value from stats and max = high value from stat), the plan didn't changed

    Jonathan,
    I got the plan I was looking for.
    It is not exactly the same as the execution plan that corresponds to the re-factored query but it is what I wanted to have.
    SELECT  /*+ gather_plan_statistics */
                   obst.obst_id obstructionId
                   ,oost.comment_clob CommentClob
                   ,chp1.ptcar_no StartPtcar
                   ,chp2.ptcar_no EndPtcar
                   ,oost.track_code Track
                   ,oost.start_date StartPeriod
                   ,oost.end_date EndPeriod
                   ,oost.doc_no RelaasId
                   ,obst.status_code Status
            FROM   T1 obst
                 , T2 oost
                 , T3 chp1
                 , T3 chp2
            where obst.oost_id = oost.oost_id
              and oost.chp_id_start = chp1.chp_id
              and oost.chp_id_end = chp2.chp_id
              and obst.obs_stat = 2 -- only reeel       
                    and exists (select /*+ no_unnest push_subq */ 1
                            from T4 obsv
                               , T5 veh
                            where obsv.veh_id = veh.veh_id
                              and (null is null
                                   OR veh.opr_id = null
                              and  obsv.obst_id = obst.obst_id
                              and veh.ac_number between 1 and 99999
                              and obsv.start_date > obst.start_date
              and oost.start_date between to_date ('20/11/2013','DD/MM/YYYY') and to_date ('27/11/2013','DD/MM/YYYY')
              and add_months(obst.mod_date,13) >= sysdate
             order by obst.obst_id
    | Id  | Operation                                 | Name                    | Starts | E-Rows | A-Rows |   A-Time   |
    |   0 | SELECT STATEMENT                          |                         |      1 |        |      6 |00:00:00.56 |
    |   1 |  SORT ORDER BY                            |                         |      1 |    254 |      6 |00:00:00.56 |
    |*  2 |   HASH JOIN                               |                         |      1 |    254 |      6 |00:00:00.11 |
    |   3 |    TABLE ACCESS FULL                      | T3                      |      1 |   2849 |   2849 |00:00:00.01 |
    |*  4 |    HASH JOIN                              |                         |      1 |    254 |      6 |00:00:00.11 |
    |   5 |     TABLE ACCESS FULL                     | T3                      |      1 |   2849 |   2849 |00:00:00.01 |
    |   6 |     NESTED LOOPS                          |                         |      1 |        |      6 |00:00:00.10 |
    |   7 |      NESTED LOOPS                         |                         |      1 |    254 |   5012 |00:00:00.09 |
    |*  8 |       TABLE ACCESS BY INDEX ROWID         | T2                      |      1 |    262 |   5012 |00:00:00.06 |
    |*  9 |        INDEX RANGE SCAN                   | T2_OOST_START_DATE_I    |      1 |    857 |   7722 |00:00:00.01 |
    |* 10 |       INDEX RANGE SCAN                    | T1_OBST_OOST_DK_I       |   5012 |      1 |   5012 |00:00:00.03 |
    |* 11 |      TABLE ACCESS BY INDEX ROWID          | T1                      |   5012 |      1 |      6 |00:00:00.48 |
    |  12 |       NESTED LOOPS                        |                         |   1277 |        |      6 |00:00:00.46 |
    |  13 |        NESTED LOOPS                       |                         |   1277 |      2 |      6 |00:00:00.46 |
    |  14 |         PARTITION REFERENCE ALL           |                         |   1277 |      4 |      6 |00:00:00.46 |
    |* 15 |          TABLE ACCESS BY LOCAL INDEX ROWID| T4                      |  66380 |      4 |      6 |00:00:00.43 |
    |* 16 |           INDEX RANGE SCAN                | T4_OBSV_OBST_FK_I       |  66380 |     86 |      6 |00:00:00.28 |
    |* 17 |         INDEX UNIQUE SCAN                 | T5_VEH_PK               |      6 |      1 |      6 |00:00:00.01 |
    |* 18 |        TABLE ACCESS BY GLOBAL INDEX ROWID | T5                      |      6 |      1 |      6 |00:00:00.01 |
    Predicate Information (identified by operation id):
       2 - access("OOST"."CHP_ID_END"="CHP2"."CHP_ID")
       4 - access("OOST"."CHP_ID_START"="CHP1"."CHP_ID")
       8 - filter(("OOST"."CHP_ID_START" IS NOT NULL AND "OOST"."CHP_ID_END" IS NOT NULL))
       9 - access("OOST"."START_DATE">=TO_DATE(' 2013-11-20 00:00:00', 'syyyy-mm-dd hh24:mi:ss') AND "OOST"."START_DATE"<=TO_DATE(' 2013-11-27
                  00:00:00', 'syyyy-mm-dd hh24:mi:ss'))
      10 - access("OBST"."OOST_ID"="OOST"."OOST_ID")
      11 - filter(("OBST"."OBS_STAT"=2 AND ADD_MONTHS(INTERNAL_FUNCTION("OBST"."MOD_DATE"),13)>=SYSDATE@! AND  IS NOT NULL))
      15 - filter("OBSV"."START_DATE">:B1)
      16 - access("OBSV"."OBST_ID"=:B1)
      17 - access("OBSV"."VEH_ID"="VEH"."VEH_ID")
      18 - filter(("VEH"."ac_number">=1 AND "VEH"."ac_number"<=99999))
    Spot how the predicate 17 and 18 are now in the position I wanted them to be i.e probe first the T5 unique index using the join condition and then filter the table T5
    But, there is always a but, why am I obliged to hint?
    Where did I got something wrong (statistics, optimizer parameter, etc...) so that the CBO did not opted for this execution plan without a hint?
    Thanks
    Mohamed Houri

  • Adaptive wide angle filter error for iPhone 4s in PS CC

    Hello,
    I have just watched a tutorial on Adobe TV regarding the new adaptive wide angle filter used on pre-stitched panoramas. I open an iPhone pano image. go to filter–>adaptive wide angle filter and in the lower left corner I find – as indicated as being requested to function properly the tut – the name of the camera, the lens and the f-stop with wich the image was taken. The filter does still not draw the automatic line on the corved part of the building I try to improve. Going to correction –> automatic in the upper right corner I get an error message that no matching profile for the iPhone's camera's lens could be found.
    Why that when it is clerly indicated as being 4.28 mm etc already? The iPhone 4S has been here for quite a while and is widely used, so why the error?
    Thanks for any hint!

    Thanks, Trevor.Dennis,
    it did seem to work out for a moment the wayyou suggested: the drag line appered allright this time, but after adjusting the curved line the filter made a fisheye image out of my panorama, cutting off about 20% on each side and leaving a ragged edge remining of a circle.
    I'll keep trying!

  • Editin in cs6 from lightroom 5.5 does not allow adaptive wide angle filter

    when opening a file for edit in cs6 from lightroom 5.5 the adaptive wide angle filter does not work. Opening the file directly into cs6 from bridge or from windows works normally

    Did you merge the layers before going into Adaptive Wide Angle?
    Shift+Ctrl+Alt+E (windows)
    Shift+Cmd+Option+E (mac)

  • Bloom filter from FCS 2 in FCS 1

    Hi,
    The show I'm working on is using FCP 5.1.4 and we need to use the Bloom filter provided in Final Cut Studio 2 (which we had used in the previous season of the show). I'm just wondering if anyone knows a way to get the Bloom filter into FCP 5.1.4.
    Thanks,
    -Chris

    YOu can't. It's part of the FCP 6 package. It doesn't reside in the PLUGINS folder.
    It is a reward for upgrading i suppose...
    Shane

  • Bloom Filter

    I'd like to implement a distributed bloom filter using Coherence.
    Bloom filter: it is an array of bits (true/false). The size of the array m is determined using the number of keys n we would like to encode. For example, for a given n=16 keys, the size of the bit array is 16*(some-optimality-factor) = 128.
    The filter uses k hash functions. We hash each given key using our k hash functions h1,h2,..,hk into the bit array locations i1,i2,...,ik where each i is between 0 and m-1.
    The reason I am using the bloom filter is to save space. Say keys are Long, then instead of using n*64 bits, I'd like to use m bits.(less than n*64 bits)
    How can I implement this structure efficiently using Coherence?
    Message was edited by:
    bulut

    Let me take a shot a rephrasing/simplifying the question:
    There's two important functions that need to be taken care of when implementing a distributed bloom filter:
    1- There is the need to distribute a (potentially) very large bit vector.
    2- There is the need to apply several accesses (i.e., check several bits) in order to get a single response. The response is a yes/no (i.e., the logical bitand of the bits accesses).
    Now suggestions:
    a) To solve 1 one, the first thing that comes to mind is to break the bit vector into smaller bit vectors that are keyed by a "bit block" index. For example, if my bitvector contains 800 bits, I may break it up in blocks of 80bits. In that case I could have a distributed map with 10 entries each of them containing an bit vector of 80bits (ie., each entry can contain a byte array of size 10) and the key of each entry can correspond to the offset of its first bit. Now, the question that bulut asked is: Is there a better way to represent a bit vector within a distributed map?
    b) in connection to the previous question comes the fact of how to index the bits...if adopting the block partitioning strategy that I just describe, what's the most efficient way to index the bits (and not just the keys that refer to bitblocks)?
    c) Finally there's the multiple access question. Since additions and lookups to the filter (i.e., bitarray) are done in groups, it would be highly beneficial to perform them in parallel.
    An addition to the filter corresponds to setting k bits in the array in one shot. This would map into probably very distant bits in the array (therefore it does not map to change a single bitblock). That probably calls for using either the invocable map or aggregator functionality...although I'm not much familiar with it so I'm not sure.
    In terms of a lookup, there's also an interesting difference from normal access. And that is that given a set of bit offsets, we want to get a yes/no answer (corresponding to the logical and of the values existing in the array). I guess this also has a strong aggregator smell...
    Well I hope I clarified more than anything else.
    Cheers,
    Josep M.

  • PS CS6 Adaptive Wide Angle Filter - not working.

    I am working on a panorama in PS CS6.  I have merged all the images and am trying to correct the perspective using the adaptive wide angle filter.  But when I open the filter and set correction mode to perspective - all I see is a background transparency.  If I try to use one of the other modes the full image isn't visible, just seeming randomly cropped.  I am using a macbook Pro running Lion 10.7.5.
    Also, the lens information IS embedded in the image and is visible when I open the filter.
    Any advice would be helpful!

    Did you merge the layers before going into Adaptive Wide Angle?
    Shift+Ctrl+Alt+E (windows)
    Shift+Cmd+Option+E (mac)

  • Adaptive noise reduction filter only applying to parts of a clip

    MAC 10.9.4
    3.5 Ghz 6-core
    16GB ram
    AUDITION CC
    PREMIERE CC 2014
    This is happening over and over to me, along multiple projects and multiple clips.
    I apply Adaptive Noise Reduction, and tweak the properties. It sounds great but then when I 'apply', the filter is only applied to about 50% of the clip.....meaning it sounds great when tweaking the filter, but after when it is actually applied, only parts of it will apply.
    IE, If I have a 15 second and apply noise reduction.......It sill sounds while tweaking parameters. Then after I hit apply, seconds 1 - 4 will sounds great (filter applied) seconds 5-9 will sound awful like no filter has been applied, and seconds 9-11 will sounds great again, and 12-15 will sounds awful again.
    There is def something wrong here., This never used to happen in CS6, ever. Only when switching to CC.

    Hi,
    I have little use for/of the adaptive version of the noise reduction filters only because I want it ALL cleaner, so here is what I suggest: I left a very-detailed posting about "batch processing" in which I outlined using the the process version in the Waveform Editor. Give that post a read Re: How Do You Apply Process Effects To Multiple Clips In A Multi-Track?
    Let me know if you need more help.
    -CS

  • How to skip sequentially processing of FTP-Adapter

    Hello,
    well we have the problem that on ftp are many files from many sources.
    Sometimes one source send wrong structure in file that the processing is stopped.
    It's stopped even though there are files in directory which are in right structure. But because the wrong files are "before" the right files the adapter is not processing the right structured files!
    So how to get the adapter to process the "good" files?!
    Quality of Service is not helping here!
    Can someone help?
    br

    Dear Fritz,
    You can Validate XML Paylod in PI 7.1, But this option is not available in lower versions.
    Check here for the same
    [Validating Source XMLPayload|https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/5002ac06-aff3-2a10-6798-cbe11ca35535]
    I think we can write an adapter module to filter unwanted XML payloads to be processed.
    Best Regards
    Praveen

  • Audition CS6 crashes while running Adaptive Noise Reduction

    Hi everyone!
    So that is the problem, I edit an audio file, run Adaptive Noise Reduction filter, and somewhere during the processing the computer just crashes. Sometimes it happens and sometimes not. I saw that computer showes up an alert message just before the crash but I wasn't fast enough to read what was written there. Recently I did a clean system install and have just some programs installed. Before system reinstall the problem was not there, although the program (audition) is exactly the same. What to do?

    Srivas 108 wrote:
    The system is Win 7 64 Home Edition. It was working ok before. Maybe I should install all the updated? I hate to do that, my experience is that it slows down the system in the long run, but looks like I should do that.
    I run the pro version, but it's basically the same. I've got all the updates installed, but I haven't noticed it slow down at all. Mind you, this is a fast system anyway. But if it's crashing, then installing updates won't fix that; you need a fresh reinstall on an absolutely clean disc first. Okay, that's a pain - but look on the bright side; you aren't running Windows 8. Recently I wasted nearly a day of my life on that, and I'll never get it back. The basic rule about M$ OS's hasn't changed - it's only the odd-numbered ones that are worth bothering with, as a rule. And none of them are worth installing until the first service pack is issued.

  • Oracle OVD: adapter configuration - restrict bind by memberOf

    Hi, thanks for reading!
    I'm getting started with an Identity Management project whose first phase will involve OVD. One of the project's identity sources is ActiveDirectory. I've experimented with creating an adapter in OVD which connects to an AD source and uses the changeUserRDN plugin to convert an input of a sAMAccountName to the CN. I can authenticate to MSAD through this adapter with an ldap client - great stuff.
    I'd like to refine this a bit so a bind is only possible if an authenticating user is a memberof a certain group. Here's a little more detail - when I search the MSAD using an ldapsearch like:
    [me@localhost ~]# ldapsearch -x -h adhost -p -389 -b "OU=Domain Users,DC=TEST_DC" -D "CN=privuser\,,OU=Domain Users,DC=TEST_DC" -w [password] "memberOf=CN=Rec Center,CN=Users,DC=TEST_DC"ldapsearch will return entries from members of the Rec Center group (memberOf: CN=Rec Center,CN=Users,DC=TEST_DC). What I'd like is to send a bind request to OVD at a Base DN that this adapter recognizes and have binds succeed only for users who are a member of the Rec Center group.
    Is there an adapter mapping, plugin, filter, or other configuration that I should use to make that bind operation happen only for members of a specific group?
    Thanks!

    Hey friend,
    You are absolutely right. The issue is with DNS.
    Without specifying DNS in the entry, it is able to validate the Active Directory.
    Now, how can i resolve DNS issue in my system. Can you help me to sort out in solving this issue.
    Thanks in Advance,
    Sandy D

  • 11g new feature "Partition pruning based on bloom filtering" is what?

    While idly reading the Oracle 11g Database New Features I stumbled upon the following - BEGIN QUOTE:
    1.11.1.2 Enhanced Partition Pruning Capabilities
    Partition pruning now uses bloom filtering instead of subquery pruning. While subquery pruning was activated on a cost-based decision and consumed internal (recursive) resources, pruning based on bloom filtering is activated all the time without consuming additional resources.
    END QUOTE
    I haven't found any other references to bloom filtering in the manuals, and very few via google and MetaLink. So I am left wondering what the above paragraph actually means?
    Best regards,
    Hans Henrik Krohn

    Hi Hans
    The problem of subquery pruning is that part of the SQL statement is executed twice. Therefore, a cost-based decision is necessary to decide if it makes to do it or not...
    To avoid this double execution they introduced join-filter pruning (which takes advantage of a bloom filter). Since this new method has a very small overhead, it makes always sense to use it if pruning can be used. With it you will see execution plans like the following one.
    | Operation                           | Name    | Pstart| Pstop |
    | HASH JOIN                           |         |       |       |
    |  PART JOIN FILTER CREATE            | :BF0000 |       |       |
    |   TABLE ACCESS BY GLOBAL INDEX ROWID| T       | ROWID | ROWID |
    |    INDEX UNIQUE SCAN                | T_PK    |       |       |
    |  PARTITION RANGE JOIN-FILTER        |         |:BF0000|:BF0000|
    |   TABLE ACCESS FULL                 | T       |:BF0000|:BF0000|
    -----------------------------------------------------------------HTH
    Chris

  • Adaptive Wide Angle (PS CS6) - Auto doesn't work

    When I try to use "Auto" correction in the new Adaptive Wide Angle filter, it pops up with "No matching lens profile found". I searched for information and was directed to go to the Lens Correction filter. I pressed the "Search Online" button. The first time it comes back with "Connection timeout", but the second time it says "No online profiles found". Come on, really?!
    ACR has my lens profile (Canon 24-105 f/4 IS), why can't PS CS6 find it? Is there a workaround? I'd really like to use the Adaptive Wide Angle filter.

    I've discovered a bit more information.
    My current camera is a Canon 5D Mark III, but I had a Mark II with this same lens before that.
    I was editing a photo from the Mk II, and found that Adaptive Wide Angle defaulted to "auto" for it, having found a lens profile.
    Since it's the very same lens, it apparently is not related to the lens at all, but rather the camera body.
    I just installed an update to PS this morning, but it did not improve the situation at all.
    How can it be that Adobe doesn't seem to support the 5D Mark III in PS CS6, one of the more popular full-sensor camera bodies out there?

  • FAQ: What features use the GPU and how do I troubleshoot GPU issues?

    Photoshop CS6 GPU FAQ
    Introduction
    This document provides a quick reference guide to video card usage in Photoshop.  Some features require a compatible video card to work; if the video card or its driver is defective or unsupported, those features will not work at all.  Other features use the video card for acceleration and if the card or driver is defective those features will run more slowly.
    Mercury Graphics Engine
    The Mercury Graphics Engine (MGE) represents features that use video card, or GPU, acceleration. In Photoshop CS6, this new engine delivers near-instant results when editing with key tools such as Liquify, Warp, Lighting Effects and the Oil Paint filter. The new MGE delivers unprecedented responsiveness for a fluid feel as you work.
    MGE is new to Photoshop CS6, and uses both the OpenGL and OpenCL frameworks. It does not use the proprietary CUDA framework from nVidia.
    In order to use MGE, you must have a supported video card and updated driver. If you do not have a supported card, performance will be degraded. In most cases the acceleration is lost and the feature runs in the normal CPU mode. However, there are some features that will not work without a supported video card.
    GPU features added in Photoshop CS6
    Adaptive Wide Angle Filter (compatible video card required)
    Liquify (accelerated by compatible video card with 512MB VRAM, GPU mode unavailable on Windows XP)
    Oil Paint (compatible video card required)
    Warp and Puppet Warp (accelerated by compatible video card, GPU mode unavailable on Windows XP)
    Field Blur, Iris Blur, and Tilt/Shift (accelerated by compatible video
    card supporting OpenCL, GPU mode unavailable on Windows XP)
    Lighting Effects Gallery (compatible video card required with 512MB
    VRAM, unavailable on Windows XP)
    New 3D enhancements (3D features in Photoshop require a compatible video card with 512MB VRAM, unavailable on Windows XP):
    Draggable Shadows
    Ground plane reflections
    Roughness
    On-canvas UI controls
    Ground plane
    Liqht widgets on edge of canvas
    IBL (image based light) controller
    * Note that all 3D features are unavailable on Windows XP in Photoshop CS6
    GPU features added in previous versions of Photoshop
    Scrubby Zoom. See Zoom continuously
    Heads Up Display (HUD) color picker. See Choose a color while painting
    Color sampling ring. Choose colors with the Eyedropper tool
    Brush dynamic resize and hardness control. See Resize or change hardness of cursors by dragging
    Bristle Brush tip previews. Bristle tip shape options
    Rule of thirds crop grid overlay. Crop images
    Zoom enhancements. Smooth display at all zoom levels and temporary zoom. See Zoom continuouslyTemporarily zoom an image
    Animated transitions for one-stop zoom.
    Flick-panning.
    Rotate the canvas. Use the Rotate View tool
    View nonsquare pixel images. Adjust pixel aspect ratio
    Pixel grid. Hide the pixel grid
    Adobe Color Engine (ACE).
    Draw Brush tip cursors. Resize or change hardness of cursors by dragging
    Adobe Bridge GPU features
    Preview panel
    Full-screen preview
    Review mode
    See Preview and compare images in Adobe Bridge CS6 Help for information on all of these features.
    GPU/OpenGL preferences in Photoshop CS6
    The advantages of using a compatible video card (GPU) with Photoshop are that you can experience better performance and more features.   Problems can occur if you have an older video card with limited VRAM or if you use other programs at the same time as Photoshop that use the GPU.
    Choose Edit > Preferences (Windows) or Photoshop > Preferences (Mac OS).
    In the Performance panel, make sure Use Graphics Processor is selected in GPU Settings.
    Click Advanced Settings and specify the following options:
    Mode > Basic
    Mode > Normal
    Mode > Advanced Provides the benefits of Normal mode as well as newer OpenGL advances that can result in improved performance.
    Use Graphics Processor to Accelerate Computation
    Use OpenCL Uses the GPU to accelerate the new blur filters (Field Blur, Iris Blur, and Tilt-Shift) – OpenCL will only be available on newer GPUs that support OpenCL v1.1 or higher
    Anti-Alias Guides And Paths Allows the GPU hardware to smooth the edges of drawn guides and paths.
    30 Bit Display (Windows only) Allows Photoshop to display 30 bit data directly to screen on video cards that support it
    Quick GPU Troubleshooting Steps
    You can experience problems such as artifacts, errors, and crashes if there are incompatibilities between Photoshop and the display components that access the GPU.
    If you experience crashes, incorrectly rendered windows or objects, redraw issues, or performance issues while running Photoshop, first determine whether OpenGL is causing the problem.
    Turn off OpenGL.
    Choose Edit > Preferences (Windows) or Photoshop > Preferences (Mac OS).
    In the Performance panel, uncheck Use Graphics Processor. Click OK.
    Restart Photoshop, and perform the same function.
    If the problem recurs while OpenGL Drawing is disabled, OpenGL is not the cause. For additional troubleshooting, see Troubleshoot system errors and freezes | Adobe software on Windows (cpsid_82252) or Troubleshoot system errors and freezes | Adobe software on Mac OS 10.x (cpsid_82414).
    If the problem resolves, proceed with the rest of the troubleshooting steps to fix OpenGL.
    Make sure that you're using the latest update of Photoshop.Updates fix bugs and issues.
    Update the display driver.Updated display drivers can fix many issues, such as crashing, incorrectly rendered objects, and performance problems. Determine what video card you have and go directly to the manufacturer's website (nVidia or ATI/AMD) and download the latest driver. (Note: Simply doing a Windows Update is does not guarantee you are using the latest driver. You must go directly to the nVideo or ATI/AMD websites to get the absolute latest driver.) After you update your driver, turn on Use Graphics Processor in Photoshop preferences.
    Reset preferences.
    Resetting preferences returns OpenGL settings to their default status. Reset Photoshop preferences by pressing and holding Shift+Ctrl+Alt (Windows) or Shift+Option+Command (Mac OS) immediately after you start Photoshop.
    Click Yes when asked if you want to delete the Adobe Photoshop Settings File.
    Retry the function that caused the problem.
    Change the OpenGL mode to Basic.
    Setting the OpenGL mode to Basic uses the least amount of GPU memory and the most basic GPU feature set.
    Close all documents.
    Choose Edit > Preferences (Windows) or Photoshop > Preferences (Mac OS)
    In the Performance panel, click the GPU Settings Advanced Settings button.
    Choose Mode > Basic
    Restart Photoshop.
    If this solution resolves the problem, switch to Normal mode. See if the issue recurs. If the issue recurs, return to Basic mode.
    Note:  If you’re changing GPU preferences to troubleshoot a problem, re-launch Photoshop after each change.
    If you are using more than one video adapter, remove the additional cards.
    Multiple video adapters can cause problems with GPU accelerated or enabled features in Photoshop. It's best to connect two (or more) monitors into one video adapter. If you have to use more than one video adapter, make sure that they are the same make and model. Otherwise, crashes and other problems can occur in Photoshop.
    Note: Using two video adapters does not enhance Photoshop's performance.
    Check your Cache Levels setting.
    If you've set your Cache Levels to 1 in Photoshop preferences, you can experience performance issues with GPU features. Reset Cache Levels to the default setting, which is 4.
    Choose Edit > Preferences > Performance (Windows) or Photoshop > Preferences (Mac OS)
    In the Performance panel, choose Cache Levels > 4.
    The GPU Sniffer
    To help guard against Photoshop crashes related to bad GPU hardware or drivers, Photoshop employs a small program called the GPU Sniffer. Every time Photoshop is launched, Photoshop launches the sniffer. The sniffer runs rudimentary tests of the GPU and reports the results to Photoshop. If the sniffer crashes or reports a failure status to Photoshop, Photoshop will not use the GPU. The Use Graphics Hardware checkbox in the Performance panel of the Preferences will be unchecked and disabled.
    The first time the sniffer fails, Photoshop will display a dialog indicating that it has detected a problem with the GPU. On subsequent launches the dialog will not appear unless the Photoshop preferences are reset.
    If the user corrects the problem, either by replacing the video card or by updating the driver, then the sniffer will pass on the next launch and the Use Graphics Hardware checkbox will be enabled and returned to its previous state (enabled or disabled).
    Tested video cards for Photoshop CS6
    Adobe tested the following video cards before the release of Photoshop CS6. This document lists the video card by series. While the minimum amount of VRAM supported on video cards for Photoshop CS6 is 256MB, some features require 512MB of VRAM to be enabled.
    Note: Adobe tested laptop and desktop versions of the following cards. Be sure to download the latest driver for your specific model. (Laptop and desktop versions have slightly different names.)
    nVidia GeForce 8000, 9000, 100, 200, 300, 400, 500 series 
    nVidia Quadro 400, 600, 2000, 4000 (Mac & Win), CX, 5000, 6000
    AMD/ATI Radeon 2000, 3000, 4000, 5000, 6000, 7000 series
    AMD/ATI FirePro 3800, 4800, 5800, 7800, 8800, 9800, 3900, 4900, 5900, 7900
    Intel Intel HD Graphics, Intel HD Graphics P3000, Intel HD Graphics P4000
    Note: ATI X1000 series and nVidia 7000 series cards are no longer being tested and are not officially supported in CS6 – some basic GL functionality may be available for both these cards.
    Note: 3Dand some Open GL features are disabled on Windows XP, as stated on : http://labs.adobe.com/technologies/photoshopcs6/

    I've had several timeout since the pings were started. Got a some response times > 1ms (nothing greater than 7 or 8ms), but no timeouts.

  • Getting deadlock detected while waiting for resource error for select Query.....

    Hi all,
    i am getting a below error whenever executing the below select query....
    some times it will show dead lock detected while waiting for resource and terminated...
    some times it executes and gives result..
    but all the time it writes an alert to alert log
    Plesae suggest how to resolve the issue..........
    Thanks in advance
    Env: Linux / Oracle 11.2.0.3.3
    Error from alert log:
    Errors in file /u01/oracle/oracle/diag/rdbms/bdrdb/bdrdb/trace/bdrdb_p017_6076.trc:
    ORA-00060: deadlock detected while waiting for resource
    ORA-10387: parallel query server interrupt (normal)
    Trace file info... bdrdb_p017_6076.trc:
    Trace file /u01/oracle/oracle/diag/rdbms/bdrdb/bdrdb/trace/bdrdb_p017_6076.trc
    Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options
    ORACLE_HOME = /u01/oracle/oracle/product/11.2.0/dbhome_1
    System name:    Linux
    Node name:      bdrdb.cteplindia.com
    Release:        2.6.18-308.el5PAE
    Version:        #1 SMP Fri Jan 27 17:40:09 EST 2012
    Machine:        i686
    Instance name: bdrdb
    Redo thread mounted by this instance: 1
    Oracle process number: 92
    Unix process pid: 6076, image: [email protected] (P017)
    *** 2013-11-04 23:18:57.915
    *** SESSION ID:(423.59970) 2013-11-04 23:18:57.915
    *** CLIENT ID:() 2013-11-04 23:18:57.915
    *** SERVICE NAME:(bdrdb) 2013-11-04 23:18:57.915
    *** MODULE NAME:() 2013-11-04 23:18:57.915
    *** ACTION NAME:() 2013-11-04 23:18:57.915
    *** 2013-11-04 23:18:57.915
    DEADLOCK DETECTED ( ORA-00060 )
    [Transaction Deadlock]
    Deadlock graph:
                           ---------Blocker(s)--------  ---------Waiter(s)---------
    Resource Name          process session holds waits  process session holds waits
    PS-00000001-00000011        92     423     S             33     128     S     X
    BF-2ed08c01-00000000        33     128     S             92     423     S     X
    session 423: DID 0001-005C-00081126     session 128: DID 0001-0021-00067D23
    session 128: DID 0001-0021-00067D23     session 423: DID 0001-005C-00081126
    DEADLOCK DETECTED ( ORA-00060 )
    [Transaction Deadlock]
    Deadlock graph:
                           ---------Blocker(s)--------  ---------Waiter(s)---------
    Resource Name          process session holds waits  process session holds waits
    PS-00000001-00000011        92     423     S             33     128     S     X
    BF-2ed08c01-00000000        33     128     S             92     423     S     X
    session 423: DID 0001-005C-00081126     session 128: DID 0001-0021-00067D23
    session 128: DID 0001-0021-00067D23     session 423: DID 0001-005C-00081126
    Rows waited on:
      Session 423: no row
      Session 128: obj - rowid = 00021DC1 - AAAh3BAAVAAAQL/AAA
      (dictionary objn - 138689, file - 21, block - 66303, slot - 0)
    ----- Information for the OTHER waiting sessions -----
    Session 128:
      sid: 128 ser: 46176 audsid: 1836857 user: 102/DBLOCAL
        flags: (0x8000041) USR/- flags_idl: (0x1) BSY/-/-/-/-/-
        flags2: (0x40009) -/-/INC
      pid: 33 O/S info: user: oracle, term: UNKNOWN, ospid: 31611
        image: [email protected]
      client details:
        O/S info: user: masked, term: masked, ospid: 5924:568
        machine: masked program: Toad.exe
        application name: TOAD background query session, hash value=526966934
      current SQL:
        application name: TOAD background query session, hash value=526966934
      current SQL:
      SELECT  DISTINCT B_FP_TEST.TEST_ID
      FROM B_FP_TEST,
           B_USER_INFO,
           J_FP_INVESTIGATOR,
           L_TEST_STATUS,
           L_ATMS_TEST_TYPE,
           j_op_test_anml
    WHERE     B_FP_TEST.TEST_ID = J_FP_INVESTIGATOR.TEST_ID
           AND B_FP_TEST.TEST_TYPE_ID = L_ATMS_TEST_TYPE.ATMS_TEST_TYPE_ID
           AND B_USER_INFO.B_USER_INFO_ID = J_FP_INVESTIGATOR.INVESTIGATOR_ID
           AND B_FP_TEST.STATUS_ID = L_TEST_STATUS.STATUS_ID
           AND B_FP_TEST.IS_DELETED = :"SYS_B_00"
           AND B_FP_TEST.TEST_NUM NOT IN (:"SYS_B_01", :"SYS_B_02", :"SYS_B_03")
           AND L_ATMS_TEST_TYPE.IS_DELETED = :"SYS_B_04"
           AND J_FP_INVESTIGATOR.is_pi = :"SYS_B_05"
           AND L_TEST_STATUS.STATUS IN (:"SYS_B_06", :"SYS_B_07", :"SYS_B_08")
           AND j_op_test_anml.test_id = B_FP_TEST.TEST_ID
    ----- End of information for the OTHER waiting sessions -----
    *** 2013-11-04 23:18:57.916
    dbkedDefDump(): Starting a non-incident diagnostic dump (flags=0x0, level=3, mask=0x0)
    ----- Error Stack Dump -----
    ORA-00060: deadlock detected while waiting for resource
    ORA-10387: parallel query server interrupt (normal)
    ----- SQL Statement (None) -----
    Current SQL information unavailable - no cursor.
    ----- Call Stack Trace -----
    calling              call     entry                argument values in hex
    location             type     point                (? means dubious value)
    More......
    Query:
    SELECT DISTINCT B_FP_TEST.TEST_ID
      FROM B_FP_TEST,
           B_USER_INFO,
           J_FP_INVESTIGATOR,
           L_TEST_STATUS,
           L_ATMS_TEST_TYPE,
           j_op_test_anml
    WHERE     B_FP_TEST.TEST_ID = J_FP_INVESTIGATOR.TEST_ID
           AND B_FP_TEST.TEST_TYPE_ID = L_ATMS_TEST_TYPE.ATMS_TEST_TYPE_ID
           AND B_USER_INFO.B_USER_INFO_ID = J_FP_INVESTIGATOR.INVESTIGATOR_ID
           AND B_FP_TEST.STATUS_ID = L_TEST_STATUS.STATUS_ID
           AND B_FP_TEST.IS_DELETED = 0
           AND B_FP_TEST.TEST_NUM NOT IN (1, 2, 99)
           AND L_ATMS_TEST_TYPE.IS_DELETED = 0
           AND J_FP_INVESTIGATOR.is_pi = 1
           AND L_TEST_STATUS.STATUS IN ('Scheduled', 'In-Progress', 'Completed')
           AND j_op_test_anml.test_id = B_FP_TEST.TEST_ID
           AND (   (j_op_test_anml.end_date BETWEEN TO_DATE ('28-Oct-2013') - 1
                                                AND TO_DATE ('04-Nov-2013') + 1)
                OR (j_op_test_anml.start_date BETWEEN TO_DATE ('28-Oct-2013') - 1
                                                  AND TO_DATE ('04-Nov-2013') + 1)
                OR (TO_DATE ('28-Oct-2013') BETWEEN j_op_test_anml.start_date
                                                AND j_op_test_anml.end_date)
                OR (TO_DATE ('04-Nov-2013') BETWEEN j_op_test_anml.start_date
                                                AND j_op_test_anml.end_date))
           AND L_ATMS_TEST_TYPE.IS_DELETED = 0
           AND B_FP_TEST.DATASOURCE_ID = 9
    Query Exp plan:
    Plan hash value: 3398228788
    | Id  | Operation                                          | Name                | Rows  | Bytes | Cost (%CPU)| Time     | Pstart| Pstop |    TQ  |IN-OUT| PQ Distrib |
    |   0 | SELECT STATEMENT                                   |                     |  1501 |   102K|  1929   (1)| 00:00:24 |       |       |        |      |            |
    |   1 |  HASH UNIQUE                                       |                     |  1501 |   102K|  1929   (1)| 00:00:24 |       |       |        |      |            |
    |   2 |   CONCATENATION                                    |                     |       |       |            |          |       |       |        |      |            |
    |   3 |    PX COORDINATOR                                  |                     |       |       |            |          |       |       |        |      |            |
    |   4 |     PX SEND QC (RANDOM)                            | :TQ30005            |   241 | 16870 |   800   (1)| 00:00:10 |       |       |  Q3,05 | P->S | QC (RAND)  |
    |*  5 |      HASH JOIN                                     |                     |   241 | 16870 |   800   (1)| 00:00:10 |       |       |  Q3,05 | PCWP |            |
    |   6 |       PX RECEIVE                                   |                     |   246 | 15990 |   797   (1)| 00:00:10 |       |       |  Q3,05 | PCWP |            |
    |   7 |        PX SEND HASH                                | :TQ30004            |   246 | 15990 |   797   (1)| 00:00:10 |       |       |  Q3,04 | P->P | HASH       |
    |*  8 |         HASH JOIN                                  |                     |   246 | 15990 |   797   (1)| 00:00:10 |       |       |  Q3,04 | PCWP |            |
    |   9 |          PX RECEIVE                                |                     |   573 | 29223 |   793   (1)| 00:00:10 |       |       |  Q3,04 | PCWP |            |
    |  10 |           PX SEND HASH                             | :TQ30003            |   573 | 29223 |   793   (1)| 00:00:10 |       |       |  Q3,03 | P->P | HASH       |
    |* 11 |            HASH JOIN                               |                     |   573 | 29223 |   793   (1)| 00:00:10 |       |       |  Q3,03 | PCWP |            |
    |  12 |             BUFFER SORT                            |                     |       |       |            |          |       |       |  Q3,03 | PCWC |            |
    |  13 |              PX RECEIVE                            |                     |       |       |            |          |       |       |  Q3,03 | PCWP |            |
    |  14 |               PX SEND BROADCAST                    | :TQ30000            |       |       |            |          |       |       |        | S->P | BROADCAST  |
    |  15 |                NESTED LOOPS                        |                     |       |       |            |          |       |       |        |      |            |
    |  16 |                 NESTED LOOPS                       |                     |   485 | 20855 |   781   (0)| 00:00:10 |       |       |        |      |            |
    |  17 |                  TABLE ACCESS BY GLOBAL INDEX ROWID| J_OP_TEST_ANML      |   485 | 10185 |   296   (0)| 00:00:04 | ROWID | ROWID |        |      |            |
    |* 18 |                   INDEX RANGE SCAN                 | IDX$$_2D190001      |   485 |       |     4   (0)| 00:00:01 |       |       |        |      |            |
    |* 19 |                  INDEX UNIQUE SCAN                 | FT_TEST_ID_PK       |     1 |       |     0   (0)| 00:00:01 |       |       |        |      |            |
    |* 20 |                 TABLE ACCESS BY GLOBAL INDEX ROWID | B_FP_TEST           |     1 |    22 |     1   (0)| 00:00:01 | ROWID | ROWID |        |      |            |
    |  21 |             PX BLOCK ITERATOR                      |                     | 70382 |   549K|    11   (0)| 00:00:01 |       |       |  Q3,03 | PCWC |            |
    |* 22 |              TABLE ACCESS FULL                     | J_FP_INVESTIGATOR   | 70382 |   549K|    11   (0)| 00:00:01 |       |       |  Q3,03 | PCWP |            |
    |  23 |          BUFFER SORT                               |                     |       |       |            |          |       |       |  Q3,04 | PCWC |            |
    |  24 |           PX RECEIVE                               |                     |     3 |    42 |     3   (0)| 00:00:01 |       |       |  Q3,04 | PCWP |            |
    |  25 |            PX SEND HASH                            | :TQ30001            |     3 |    42 |     3   (0)| 00:00:01 |       |       |        | S->P | HASH       |
    |* 26 |             TABLE ACCESS FULL                      | L_TEST_STATUS       |     3 |    42 |     3   (0)| 00:00:01 |       |       |        |      |            |
    |  27 |       BUFFER SORT                                  |                     |       |       |            |          |       |       |  Q3,05 | PCWC |            |
    |  28 |        PX RECEIVE                                  |                     |    30 |   150 |     3   (0)| 00:00:01 |       |       |  Q3,05 | PCWP |            |
    |  29 |         PX SEND HASH                               | :TQ30002            |    30 |   150 |     3   (0)| 00:00:01 |       |       |        | S->P | HASH       |
    |* 30 |          TABLE ACCESS FULL                         | L_ATMS_TEST_TYPE    |    30 |   150 |     3   (0)| 00:00:01 |       |       |        |      |            |
    |  31 |    NESTED LOOPS                                    |                     |       |       |            |          |       |       |        |      |            |
    |  32 |     NESTED LOOPS                                   |                     |     3 |   210 |   329   (1)| 00:00:04 |       |       |        |      |            |
    |  33 |      NESTED LOOPS                                  |                     |     3 |   195 |   329   (1)| 00:00:04 |       |       |        |      |            |
    |* 34 |       HASH JOIN                                    |                     |     2 |   114 |   325   (1)| 00:00:04 |       |       |        |      |            |
    |  35 |        NESTED LOOPS                                |                     |       |       |            |          |       |       |        |      |            |
    |  36 |         NESTED LOOPS                               |                     |     6 |   258 |   322   (1)| 00:00:04 |       |       |        |      |            |
    |  37 |          PARTITION RANGE SINGLE                    |                     |     6 |   126 |   316   (1)| 00:00:04 |     7 |     7 |        |      |            |
    |* 38 |           TABLE ACCESS FULL                        | J_OP_TEST_ANML      |     6 |   126 |   316   (1)| 00:00:04 |     7 |     7 |        |      |            |
    |* 39 |          INDEX UNIQUE SCAN                         | FT_TEST_ID_PK       |     1 |       |     0   (0)| 00:00:01 |       |       |        |      |            |
    |* 40 |         TABLE ACCESS BY GLOBAL INDEX ROWID         | B_FP_TEST           |     1 |    22 |     1   (0)| 00:00:01 | ROWID | ROWID |        |      |            |
    |* 41 |        TABLE ACCESS FULL                           | L_TEST_STATUS       |     3 |    42 |     3   (0)| 00:00:01 |       |       |        |      |            |
    |* 42 |       TABLE ACCESS BY INDEX ROWID                  | J_FP_INVESTIGATOR   |     1 |     8 |     2   (0)| 00:00:01 |       |       |        |      |            |
    |* 43 |        INDEX RANGE SCAN                            | FI_TEST_ID_PK       |     1 |       |     1   (0)| 00:00:01 |       |       |        |      |            |
    |* 44 |      INDEX UNIQUE SCAN                             | L_ATMS_TEST_TYPE_PK |     1 |       |     0   (0)| 00:00:01 |       |       |        |      |            |
    |* 45 |     TABLE ACCESS BY INDEX ROWID                    | L_ATMS_TEST_TYPE    |     1 |     5 |     1   (0)| 00:00:01 |       |       |        |      |            |
    |  46 |    PX COORDINATOR                                  |                     |       |       |            |          |       |       |        |      |            |
    |  47 |     PX SEND QC (RANDOM)                            | :TQ20003            |       |       |            |          |       |       |  Q2,03 | P->S | QC (RAND)  |
    |  48 |      NESTED LOOPS                                  |                     |       |       |            |          |       |       |  Q2,03 | PCWP |            |
    |  49 |       NESTED LOOPS                                 |                     |    33 |  2310 |   399   (2)| 00:00:05 |       |       |  Q2,03 | PCWP |            |
    |* 50 |        HASH JOIN                                   |                     |    33 |  2145 |   397   (2)| 00:00:05 |       |       |  Q2,03 | PCWP |            |
    |  51 |         PX RECEIVE                                 |                     |    78 |  3978 |   393   (1)| 00:00:05 |       |       |  Q2,03 | PCWP |            |
    |  52 |          PX SEND HASH                              | :TQ20002            |    78 |  3978 |   393   (1)| 00:00:05 |       |       |  Q2,02 | P->P | HASH       |
    |* 53 |           HASH JOIN                                |                     |    78 |  3978 |   393   (1)| 00:00:05 |       |       |  Q2,02 | PCWP |            |
    |  54 |            BUFFER SORT                             |                     |       |       |            |          |       |       |  Q2,02 | PCWC |            |
    |  55 |             PX RECEIVE                             |                     |       |       |            |          |       |       |  Q2,02 | PCWP |            |
    |  56 |              PX SEND BROADCAST                     | :TQ20000            |       |       |            |          |       |       |        | S->P | BROADCAST  |
    |  57 |               NESTED LOOPS                         |                     |       |       |            |          |       |       |        |      |            |
    |  58 |                NESTED LOOPS                        |                     |    66 |  2838 |   382   (1)| 00:00:05 |       |       |        |      |            |
    |  59 |                 PARTITION RANGE SINGLE             |                     |    66 |  1386 |   316   (1)| 00:00:04 |     7 |     7 |        |      |            |
    |* 60 |                  TABLE ACCESS FULL                 | J_OP_TEST_ANML      |    66 |  1386 |   316   (1)| 00:00:04 |     7 |     7 |        |      |            |
    |* 61 |                 INDEX UNIQUE SCAN                  | FT_TEST_ID_PK       |     1 |       |     0   (0)| 00:00:01 |       |       |        |      |            |
    |* 62 |                TABLE ACCESS BY GLOBAL INDEX ROWID  | B_FP_TEST           |     1 |    22 |     1   (0)| 00:00:01 | ROWID | ROWID |        |      |            |
    |  63 |            PX BLOCK ITERATOR                       |                     | 70382 |   549K|    11   (0)| 00:00:01 |       |       |  Q2,02 | PCWC |            |
    |* 64 |             TABLE ACCESS FULL                      | J_FP_INVESTIGATOR   | 70382 |   549K|    11   (0)| 00:00:01 |       |       |  Q2,02 | PCWP |            |
    |  65 |         BUFFER SORT                                |                     |       |       |            |          |       |       |  Q2,03 | PCWC |            |
    |  66 |          PX RECEIVE                                |                     |     3 |    42 |     3   (0)| 00:00:01 |       |       |  Q2,03 | PCWP |            |
    |  67 |           PX SEND HASH                             | :TQ20001            |     3 |    42 |     3   (0)| 00:00:01 |       |       |        | S->P | HASH       |
    |* 68 |            TABLE ACCESS FULL                       | L_TEST_STATUS       |     3 |    42 |     3   (0)| 00:00:01 |       |       |        |      |            |
    |* 69 |        INDEX UNIQUE SCAN                           | L_ATMS_TEST_TYPE_PK |     1 |       |     0   (0)| 00:00:01 |       |       |  Q2,03 | PCWP |            |
    |* 70 |       TABLE ACCESS BY INDEX ROWID                  | L_ATMS_TEST_TYPE    |     1 |     5 |     1   (0)| 00:00:01 |       |       |  Q2,03 | PCWP |            |
    |  71 |    PX COORDINATOR                                  |                     |       |       |            |          |       |       |        |      |            |
    |  72 |     PX SEND QC (RANDOM)                            | :TQ10003            |       |       |            |          |       |       |  Q1,03 | P->S | QC (RAND)  |
    |  73 |      NESTED LOOPS                                  |                     |       |       |            |          |       |       |  Q1,03 | PCWP |            |
    |  74 |       NESTED LOOPS                                 |                     |    33 |  2310 |   399   (2)| 00:00:05 |       |       |  Q1,03 | PCWP |            |
    |* 75 |        HASH JOIN                                   |                     |    34 |  2210 |   397   (2)| 00:00:05 |       |       |  Q1,03 | PCWP |            |
    |  76 |         PX RECEIVE                                 |                     |    78 |  3978 |   393   (1)| 00:00:05 |       |       |  Q1,03 | PCWP |            |
    |  77 |          PX SEND HASH                              | :TQ10002            |    78 |  3978 |   393   (1)| 00:00:05 |       |       |  Q1,02 | P->P | HASH       |
    |* 78 |           HASH JOIN                                |                     |    78 |  3978 |   393   (1)| 00:00:05 |       |       |  Q1,02 | PCWP |            |
    |  79 |            BUFFER SORT                             |                     |       |       |            |          |       |       |  Q1,02 | PCWC |            |
    |  80 |             PX RECEIVE                             |                     |       |       |            |          |       |       |  Q1,02 | PCWP |            |
    |  81 |              PX SEND BROADCAST                     | :TQ10000            |       |       |            |          |       |       |        | S->P | BROADCAST  |
    |  82 |               NESTED LOOPS                         |                     |       |       |            |          |       |       |        |      |            |
    |  83 |                NESTED LOOPS                        |                     |    66 |  2838 |   382   (1)| 00:00:05 |       |       |        |      |            |
    |  84 |                 PARTITION RANGE SINGLE             |                     |    66 |  1386 |   316   (1)| 00:00:04 |     7 |     7 |        |      |            |
    |* 85 |                  TABLE ACCESS FULL                 | J_OP_TEST_ANML      |    66 |  1386 |   316   (1)| 00:00:04 |     7 |     7 |        |      |            |
    |* 86 |                 INDEX UNIQUE SCAN                  | FT_TEST_ID_PK       |     1 |       |     0   (0)| 00:00:01 |       |       |        |      |            |
    |* 87 |                TABLE ACCESS BY GLOBAL INDEX ROWID  | B_FP_TEST           |     1 |    22 |     1   (0)| 00:00:01 | ROWID | ROWID |        |      |            |
    |  88 |            PX BLOCK ITERATOR                       |                     | 70382 |   549K|    11   (0)| 00:00:01 |       |       |  Q1,02 | PCWC |            |
    |* 89 |             TABLE ACCESS FULL                      | J_FP_INVESTIGATOR   | 70382 |   549K|    11   (0)| 00:00:01 |       |       |  Q1,02 | PCWP |            |
    |  90 |         BUFFER SORT                                |                     |       |       |            |          |       |       |  Q1,03 | PCWC |            |
    |  91 |          PX RECEIVE                                |                     |     3 |    42 |     3   (0)| 00:00:01 |       |       |  Q1,03 | PCWP |            |
    |  92 |           PX SEND HASH                             | :TQ10001            |     3 |    42 |     3   (0)| 00:00:01 |       |       |        | S->P | HASH       |
    |* 93 |            TABLE ACCESS FULL                       | L_TEST_STATUS       |     3 |    42 |     3   (0)| 00:00:01 |       |       |        |      |            |
    |* 94 |        INDEX UNIQUE SCAN                           | L_ATMS_TEST_TYPE_PK |     1 |       |     0   (0)| 00:00:01 |       |       |  Q1,03 | PCWP |            |
    |* 95 |       TABLE ACCESS BY INDEX ROWID                  | L_ATMS_TEST_TYPE    |     1 |     5 |     1   (0)| 00:00:01 |       |       |  Q1,03 | PCWP |            |
    Predicate Information (identified by operation id):
       5 - access("B_FP_TEST"."TEST_TYPE_ID"="L_ATMS_TEST_TYPE"."ATMS_TEST_TYPE_ID")
       8 - access("B_FP_TEST"."STATUS_ID"="L_TEST_STATUS"."STATUS_ID")
      11 - access("B_FP_TEST"."TEST_ID"="J_FP_INVESTIGATOR"."TEST_ID")
      18 - access("J_OP_TEST_ANML"."START_DATE">=TO_DATE(' 2013-10-27 00:00:00', 'syyyy-mm-dd hh24:mi:ss') AND "J_OP_TEST_ANML"."START_DATE"<=TO_DATE(' 2013-11-05
                  00:00:00', 'syyyy-mm-dd hh24:mi:ss'))
      19 - access("J_OP_TEST_ANML"."TEST_ID"="B_FP_TEST"."TEST_ID")
      20 - filter("B_FP_TEST"."DATASOURCE_ID"=9 AND "B_FP_TEST"."IS_DELETED"=0 AND "B_FP_TEST"."TEST_NUM"<>1 AND "B_FP_TEST"."TEST_NUM"<>2 AND
                  "B_FP_TEST"."TEST_NUM"<>99)
      22 - filter("J_FP_INVESTIGATOR"."IS_PI"=1)
      26 - filter("L_TEST_STATUS"."STATUS"='Completed' OR "L_TEST_STATUS"."STATUS"='In-Progress' OR "L_TEST_STATUS"."STATUS"='Scheduled')
      30 - filter("L_ATMS_TEST_TYPE"."IS_DELETED"=0)
      34 - access("B_FP_TEST"."STATUS_ID"="L_TEST_STATUS"."STATUS_ID")
      38 - filter("J_OP_TEST_ANML"."END_DATE">=TO_DATE(' 2013-10-27 00:00:00', 'syyyy-mm-dd hh24:mi:ss') AND "J_OP_TEST_ANML"."END_DATE"<=TO_DATE(' 2013-11-05
                  00:00:00', 'syyyy-mm-dd hh24:mi:ss') AND (LNNVL("J_OP_TEST_ANML"."START_DATE">=TO_DATE(' 2013-10-27 00:00:00', 'syyyy-mm-dd hh24:mi:ss')) OR
                  LNNVL("J_OP_TEST_ANML"."START_DATE"<=TO_DATE(' 2013-11-05 00:00:00', 'syyyy-mm-dd hh24:mi:ss'))))
      39 - access("J_OP_TEST_ANML"."TEST_ID"="B_FP_TEST"."TEST_ID")
      40 - filter("B_FP_TEST"."DATASOURCE_ID"=9 AND "B_FP_TEST"."IS_DELETED"=0 AND "B_FP_TEST"."TEST_NUM"<>1 AND "B_FP_TEST"."TEST_NUM"<>2 AND
                  "B_FP_TEST"."TEST_NUM"<>99)
      41 - filter("L_TEST_STATUS"."STATUS"='Completed' OR "L_TEST_STATUS"."STATUS"='In-Progress' OR "L_TEST_STATUS"."STATUS"='Scheduled')
      42 - filter("J_FP_INVESTIGATOR"."IS_PI"=1)
      43 - access("B_FP_TEST"."TEST_ID"="J_FP_INVESTIGATOR"."TEST_ID")
      44 - access("B_FP_TEST"."TEST_TYPE_ID"="L_ATMS_TEST_TYPE"."ATMS_TEST_TYPE_ID")
      45 - filter("L_ATMS_TEST_TYPE"."IS_DELETED"=0)
      50 - access("B_FP_TEST"."STATUS_ID"="L_TEST_STATUS"."STATUS_ID")
      53 - access("B_FP_TEST"."TEST_ID"="J_FP_INVESTIGATOR"."TEST_ID")
      60 - filter("J_OP_TEST_ANML"."END_DATE">=TO_DATE(' 2013-11-04 00:00:00', 'syyyy-mm-dd hh24:mi:ss') AND "J_OP_TEST_ANML"."START_DATE"<=TO_DATE(' 2013-11-04
                  00:00:00', 'syyyy-mm-dd hh24:mi:ss') AND (LNNVL("J_OP_TEST_ANML"."END_DATE">=TO_DATE(' 2013-10-27 00:00:00', 'syyyy-mm-dd hh24:mi:ss')) OR
                  LNNVL("J_OP_TEST_ANML"."END_DATE"<=TO_DATE(' 2013-11-05 00:00:00', 'syyyy-mm-dd hh24:mi:ss'))) AND (LNNVL("J_OP_TEST_ANML"."START_DATE">=TO_DATE(' 2013-10-27
                  00:00:00', 'syyyy-mm-dd hh24:mi:ss')) OR LNNVL("J_OP_TEST_ANML"."START_DATE"<=TO_DATE(' 2013-11-05 00:00:00', 'syyyy-mm-dd hh24:mi:ss'))))
      61 - access("J_OP_TEST_ANML"."TEST_ID"="B_FP_TEST"."TEST_ID")
      62 - filter("B_FP_TEST"."DATASOURCE_ID"=9 AND "B_FP_TEST"."IS_DELETED"=0 AND "B_FP_TEST"."TEST_NUM"<>1 AND "B_FP_TEST"."TEST_NUM"<>2 AND
                  "B_FP_TEST"."TEST_NUM"<>99)
      64 - filter("J_FP_INVESTIGATOR"."IS_PI"=1)
      68 - filter("L_TEST_STATUS"."STATUS"='Completed' OR "L_TEST_STATUS"."STATUS"='In-Progress' OR "L_TEST_STATUS"."STATUS"='Scheduled')
      69 - access("B_FP_TEST"."TEST_TYPE_ID"="L_ATMS_TEST_TYPE"."ATMS_TEST_TYPE_ID")
      70 - filter("L_ATMS_TEST_TYPE"."IS_DELETED"=0)
      75 - access("B_FP_TEST"."STATUS_ID"="L_TEST_STATUS"."STATUS_ID")
      78 - access("B_FP_TEST"."TEST_ID"="J_FP_INVESTIGATOR"."TEST_ID")
      85 - filter("J_OP_TEST_ANML"."END_DATE">=TO_DATE(' 2013-10-28 00:00:00', 'syyyy-mm-dd hh24:mi:ss') AND "J_OP_TEST_ANML"."START_DATE"<=TO_DATE(' 2013-10-28
                  00:00:00', 'syyyy-mm-dd hh24:mi:ss') AND (LNNVL("J_OP_TEST_ANML"."END_DATE">=TO_DATE(' 2013-11-04 00:00:00', 'syyyy-mm-dd hh24:mi:ss')) OR
                  LNNVL("J_OP_TEST_ANML"."START_DATE"<=TO_DATE(' 2013-11-04 00:00:00', 'syyyy-mm-dd hh24:mi:ss'))) AND (LNNVL("J_OP_TEST_ANML"."END_DATE">=TO_DATE(' 2013-10-27
                  00:00:00', 'syyyy-mm-dd hh24:mi:ss')) OR LNNVL("J_OP_TEST_ANML"."END_DATE"<=TO_DATE(' 2013-11-05 00:00:00', 'syyyy-mm-dd hh24:mi:ss'))) AND
                  (LNNVL("J_OP_TEST_ANML"."START_DATE">=TO_DATE(' 2013-10-27 00:00:00', 'syyyy-mm-dd hh24:mi:ss')) OR LNNVL("J_OP_TEST_ANML"."START_DATE"<=TO_DATE(' 2013-11-05
                  00:00:00', 'syyyy-mm-dd hh24:mi:ss'))))
      86 - access("J_OP_TEST_ANML"."TEST_ID"="B_FP_TEST"."TEST_ID")
      87 - filter("B_FP_TEST"."DATASOURCE_ID"=9 AND "B_FP_TEST"."IS_DELETED"=0 AND "B_FP_TEST"."TEST_NUM"<>1 AND "B_FP_TEST"."TEST_NUM"<>2 AND
                  "B_FP_TEST"."TEST_NUM"<>99)
      89 - filter("J_FP_INVESTIGATOR"."IS_PI"=1)
      93 - filter("L_TEST_STATUS"."STATUS"='Completed' OR "L_TEST_STATUS"."STATUS"='In-Progress' OR "L_TEST_STATUS"."STATUS"='Scheduled')
      94 - access("B_FP_TEST"."TEST_TYPE_ID"="L_ATMS_TEST_TYPE"."ATMS_TEST_TYPE_ID")
      95 - filter("L_ATMS_TEST_TYPE"."IS_DELETED"=0)

    Excellent piece of follow-up on my first suggestion.
    I nearly made a comment about how the plan doesn't show Bloom filter pruning either - and then I realised why not. The plan you've shown us comes from Explain Plan with literal values present; the trace file shows bind variables with names that are generated when cursor_sharing is set to force or similar - so the run-time plan and the plan from explain plan are almost guaranteed to be different.
    Oracle support will need you to supply the plan you get from trying to run the query and then making a call to dbms_xplan.display_cursor() - dbms_xplan in 10g | Oracle Scratchpad If you do this I think you'll find that the pstart/pstop columns contain entries like :BF0000, and you may even find operations link PX JOIN FILTER CREATE / PX JOIN FILTER USE
    A couple of generic notes:
    if a query does sufficient work to merit parallel execution, then it's usually better to supply the best possible information to the optimizer, which means using literals rather than bind variables - you could try executing the query with the hint /*+ cursor_sharing_exact */ to stop Oracle from turning your literals into binds; it might be the presence of bind variables that's making the optimizer choose a path that has to include bloom filter pruning in your case.
    Where you have the to_date() call you've used a four-digit year - which is a very good thing and helps the optimizer - but it's also a good idea to include an explicit format string as well: with a four-digit year this probably won't make any difference, but it avoids any risk of ambiguity for the optimizer.
    I made a comment about the P->S stage and bottlenecks - I spent a couple more minutes looking at the plan, and I see the optimizer has used concatentation: in effect it has run three query blocks one after the other and fed the results to the query co-ordinator - in this case the P->S would make no difference to the end-user response time there's always a final P->S to the coordinator, you just happen to have three of them.
    Regards
    Jonathan Lewis

Maybe you are looking for

  • Create folder in email

    I am trying to organize my messages into folders.  I have looked at old posts and still cannot figure it out.  I am looking at a sidebar where the only folders are standard presets.  When I am looking at the message itself, the folder icon only allow

  • FI Batch Data Processing

    Hi All, Few days back, I got Run Time Error problem with the system due to " Runtime error COMPUTE_BCD_OVERFLOW has occurred". Now I have solved the issue and I would like to check that, How about those missing batches early and is there any way to r

  • What camcorder would you recommend to buy that has the firewire and ability

    to upload directly to imovie? I have a JVC MG20 which is great but gave me all sorts of complications in adjusting/changing settings etc just to get it into imovie. Im now intending on buying a new one in the next few months which will make my life s

  • FLV and Navigation issue

    I have a lot of videos in the stage, and some of them that are loaded within a swf, so the problem is, when i press any button of the menu or something to navigate across the interface, the video it does not stop playing, it get stuck in the backgrou

  • 10gR2 RAC installation: OUI forgets to create directory 'crs/auth' (BUG)

    Hi, We've got a new installed 10gR2 RAC cluster (2 nodes) on AIX. But there were several errors during startup of CRS (Cluster Ready Services). The error log shows, that it couldn't write a special file (I guess a lock file). So I just created the mi