UNSOLVED

khanz1

updated

18 years ago

K

khanz1

2 Intern

136 Posts

0

5154

March 7th, 2009 23:00

Better Query Algorithm?

This question was posted as a document on Mar 7, 2009 9:46 AM by Eugene Tan

There are over 96379 XUID counts at a public centera (128.221.200.61) and My XAM app will search all recodes, and print out mine.

Unfortunately, it took almost several minutes (maybe more) to complete.  Is there a better algorithm?

The following is the partial log.

Status: COMPLETE
Query level: org.snia.xam.job.query.level.1
Error health: OK
Error message: N/A
XUID count: 96379

What do you want to do?
1. Update results
2. Display Play List
3. Check File Name
4. Watch Video
5. View Picture
6. Listen Music
7. Quit
>2


April_May2008.xls
[1]:  April_May2008.xls AAAEcwA9s1AzMUdFNVMwSlNOSzE0ZTI5UjZKTkdQNjhROTZHNDEzS0xINkNRUDFPQ05NUjBTMktCUzJRUA==
aruser.exe
[2]:  aruser.exe AAAEcwA9R6Y3TUFSOVEwOVE2TTQ5ZUMwNUExTE5VMUhHVFRHNDEzS0xINkRRUTFPMlNHSEMzS0swUEtJTg==
javaPlayer.zip
[3]:  javaPlayer.zip AAAEcwA943M3TzlJVks1SENEM0xSZUZIRTBGQVMyTDI3S0NHNDEzS0xINkZRVDE0MVQxQkpRTjczNkszTA==
iscsicpl.cpl
[4]:  iscsicpl.cpl AAAEcwA95OJBMkgwNzZRSVZJRzRJZUY1UTEyMUFOMkMxRFVHNDEzS0xINkZRUzEzNEpQMDlSM05HQkc0OQ==
pcap_msn7_3.pcap
[5]:  pcap_msn7_3.pcap AAAEcwA9ptAwSUE4R0dQMkZUNVMyZThTM0hGUzJPR1Q0RkhHNDEzS0xINkdRVTFUQ041MkFIUzdTSTJIUA==
pseudoip.pl
[6]:  pseudoip.pl AAAEcwA9A/U3T1FOSDVQTjhRS0VKZUZHSkJKUVVENzFPS1RHNDEzS0xINkhSMDE0QjZCVjZWQk1LOUJUSg==
Procmon.exe
[7]:  Procmon.exe AAAEcwA9ung5UVMyU1BDUlVOSUdIZTNPVFVKRUxSSThVVjlHNDEzS0xINkhRVjFCM01BSkZONzdUUE9QVQ==
putty.exe
[8]:  putty.exe AAAEcwA9jjI1Q01BRFZDOEZSQ1NNZTdWNVNRN1ExOEdITzVHNDEzS0xINklSMTFHRlI5N0VUODJES1BJRA==
vjtree.cpp
[9]:  vjtree.cpp AAAEcwA9p3I3U1FVQlBESjFQMUQyZTg1RUNLUkZRTlVJS1FHNDEzS0xINkpSNDE4OExMSzNCUTNTVTRGUw==
ShettySearchSetup.exe
[10]:  ShettySearchSetup.exe AAAEcwA98L9BQTFTSTEwVE0wUVBHZTFINlBSTUlEQVBLSTBHNDEzS0xINklSMjFFNUU5RTRQUjI2VFNHMg==
sir3cs_client_cfg.xml
[11]:  sir3cs_client_cfg.xml AAAEcwA9Xt9CUUZDREpVOVZVOE9WZTAyUDBGU0pTNjVESzBHNDEzS0xINkpSMzEwQUU0VjVTSVJFNDE2Qw==
02 Love Will Keep Us Alive.mp3
[12]:  02 Love Will Keep Us Alive.mp3 AAAEcwA9/MAxSTdNOTZVMDlBNkRLZTZMSThCSzZRVk0zRlZHNDEzS0xIQlBPUjFLOUxJTzJUMzIzU0pEVg==
06_Hotel_California.mp3
[13]:  06_Hotel_California.mp3 AAAEcwA9q1QyMTlGVDNJQkw4Mk1IZTk1Sk5GVU5NSzNPNlVHNDEzS0xIQlFPUzFMMTU2TEgzSUM5TzE0RA==
BobMarley_NoWomanNoCry.mp3
[14]:  BobMarley_NoWomanNoCry.mp3 AAAEcwA9VeM3OUpVNzIwVVFHOE1UZTNBSkFFRDIzMFVPTkdHNDEzS0xIQlJPVDFWMTNWSEJESk0wOTFEMg==
Linkinpark-InTheEnd.mp3
[15]:  Linkinpark-InTheEnd.mp3 AAAEcwA9eDg4SUVQN1Q1RVBOOTc3ZTBOUzE2MkVTOUhWNVRHNDEzS0xIQlNPVTE4NENFSk0xQlZSRVNDNg==
x50cent_candyshop.mp3
[16]:  x50cent_candyshop.mp3 AAAEcwA9T983NUtLQlY1TlNPS0hKZThQVDBGM1YyTFNGUFVHNDEzS0xIQlVPVjEwRlU5NExIVlVLMEZNMQ==
?????????.mp3
[17]:  ?????????.mp3 AAAEcwA9/fw1MjZQUTUyMkFBSENOZThCTUxQUzJTRkpNMkxHNDEzS0xIQlZQMDFIQzEyOUsyRUtMSFRNNw==
???.mp3
[18]:  ???.mp3 AAAEcwA941QzSE9UM0NQUzVUQlZBZThSSzJLM0ZWUjY3MEJHNDEzS0xIQzBQMTFFQzBNRUc0SkYwTUQyNQ==
marie_patrick.MPG
[19]:  marie_patrick.MPG AAAEcwA98rQyMEFNUTIySzg4M0tDZTVKNDRFQzE4Rk5INEFHNDEzS0xISU5SSDEyMjBJQk9MSVIwVkZWNg==
patrick_piano.MPG
[20]:  patrick_piano.MPG AAAEcwA9WZE2OEdJT1E3QlJQU0Q0ZUI4U0FTRkIzNkw5VTlHNDEzS0xISzE3SDFIQTMwQUVNOUpTTzZOUg==
hand_x_ray.jpg
[21]:  hand_x_ray.jpg AAAEcwA9YrQ1QVJIS1RKRkk4SDcxZUVOTlZHOUc3QUEzOFZHNDEzS0xITDlSTTFKN0tLTzZVRFBERTZQNw==
Stowe_450x600.jpg
[22]:  Stowe_450x600.jpg AAAEcwA9NxlBQTRFNEFNSkNBRlQ1ZUJJU1E5NkpHSTM4SUVHNDEzS0xITEJSUDFFN1M3TlNPQkkyTk5GUw==
MPG XAM Challenge Submission Document.doc
[23]:  MPG XAM Challenge Submission Document.doc AAAEcwA9K084VUNLVDQwUkxMTFE1ZTJLR1RFQ0pRNklDNlNHNDEzS0xJMUJSUjFWMzRPVkg2SzdWTTFVQw==
CurrentISCSIDesgin.zargo
[24]:  CurrentISCSIDesgin.zargo AAAEcwA9Alg5RzM1QUNJVEhUQzY1ZTQxTVExQjYzSlJIR0ZHNDEzS0xJMUJSUTFGNFZVME85MzZQQ0xGOA==
XAM Application Documentation.doc
[25]:  XAM Application Documentation.doc AAAEcwA9MYFETEZOSzZSSDVWNkU4ZTRVUVAyRzhLTDZKNFFHNDEzS0xJMUNQRzFCOENTSk1ERzM2OEUzMg==
XAM Application Test Plan Approach.doc
[26]:  XAM Application Test Plan Approach.doc AAAEcwA9eJNENTRBMUJRMUQ0STlOZTJJMjdMVjlEOEw5OUJHNDEzS0xJMURQSDFTNU0wT0dGMVZOS1VMSw==
XAM Coding Challenge Business Value.ppt
[27]:  XAM Coding Challenge Business Value.ppt AAAEcwA9hBxGVlI0QjlMTkMzUVY3ZTFDTElRMUhHQkMzMFVHNDEzS0xJMUVQSTFSMVNHU0VIU1VMVUQzQQ==

*******************************************************************************************************************************************************************************

For your reference, the following is the Java code:

    /**
    * Display the XUIDs found.
    *
    * @param inCount The maximum number of XUIDs to display.
    */
    protected void displayXUIDs(long inCount) throws XAMException {
        try {
            sOperation = "Open Query Results XStream";
            sXStream = sXSet.openXStream(XSet.XAM_JOB_QUERY_RESULTS,
                    XSet.MODE_READ_ONLY);
            printSuccess();
        } catch (FieldDoesNotExistException e) {
            System.out.println("\nQuery Results XStream Unavailable");
            return;
        }

        int vTempBufferLen = 10 * 1024 * 1024;
        byte[] vTempBuffer = new byte[vTempBufferLen];
        byte[] vXUID = new byte[80];
        long vNumBytesToRead = inCount * 80;
        long vTotalBytesRead = 0;
        long vBytesRead;

        FSXAMSingleton.getInstance().cleanUpMessage();
        System.out.println("\n ");
        FSXAMSingleton.getInstance().setTextMessage("\n " + newline);
        FSXAMSingleton.getInstance().setTextMessage("No:\tFile Name\t\t\tXUID Number " + newline);
        FSXAMSingleton.getInstance().setTextMessage("====\t=====================\t\t============================================================================================" + newline);

        do {
            // TODO This breaks when vTempBufferLen is smaller than the byte
            // size of the results! See email to Raj!
            vBytesRead = sXStream.read(vTempBuffer, vNumBytesToRead
                    - vTotalBytesRead);

            vTotalBytesRead = vTotalBytesRead + vBytesRead;
            vNumBytesToRead = vNumBytesToRead - vBytesRead;

            int index = 0;

            // Print the XUIDs just read
            for (int i = 0; i < vBytesRead / 80; i++) {
                System.arraycopy(vTempBuffer, i * 80, vXUID, 0, 80);
                String inXUID = new XAMXUID(vXUID).toString();
                String fileName = new FSMediaXAMRead().readFile(inXUID);
                if (!(fileName.equals(""))) {
                    System.out.println("[" + (index + 1) + "]: \t" + fileName + "\t" + inXUID);
                    FSXAMSingleton.getInstance().setTextMessage("[" + (index + 1) + "]: \t" + fileName + "\t\t" + inXUID + newline);
                    index++;
                }
            }
            if (index == 0) {
                FSXAMSingleton.getInstance().cleanUpMessage();
                System.out.println(" There is no midea file in the play list. Add them by Add Play List @ Library.");
                FSXAMSingleton.getInstance().setTextMessage(" There is no midea file in the play list. Add them by Add Play List @ Library." + newline);
            }

        } while (vNumBytesToRead > 0);

        System.out.println(" \n");

        sOperation = "Close Query Results XStream";
        sXStream.close();
        printSuccess();
    }