Not even contrib IMO. Server code wasn't even published,
there's just a Windows 32-bit server executable uploaded
to the repo with a 2 users limit.

only temporary, is not decided yet.

The rest is copy paste from letodb code, existing RDDs
and file handling routines with modifications.

is not a copy of letodb, letodb is an rdd, and File Remote server
only changes API hb_file* by hb_filenet* for existing rdds.

AFAICS low level file handling routines were replaced
with one which work through the network directly, essentially
creating a replacement for networked file system protocols,
like SMB. As such, it will have all the problems of file
server based db access. F.e. whole index handling seems to
be done through the network (not on the server side), so it
won't make indexes any more bullet proof, or substantially
reduce network traffic.

OrdCreate has been changed to decide where is the index local or
remote (obiously local for temporary indexes)

Remote file system, removes concurrence problems and in this case
works more efficient than local ones.

this are the tests:

              LOCAL   LOCAL     LOCAL     REMOTE  REMOTE    REMOTE
v.2           DBFCDX  BMDBFCDX  REDBFCDX  DBFCDX  BMDBFCDX  REDBFCDX
single user   7.34    4.16      40.97     859.80  519.56    214.69   simulated 
concurrent forced by system (W-2000)
single user                     38.90      18.61   11.45    158.00   non 
concurrent (W-XP)
multi user                                751.00  399.50    166.30   real 
concurrent

the server will be run under linux too, but not tested yet.

3 times faster than other RDDS when 2 or more client open the same remote table 
at the same time.

the test is:

ANNOUNCE RDDSYS

REQUEST DBFCDX,REDBFCDX,BMDBFCDX

FUNCTION MAIN( cRdd, cIP )
    LOCAL n,t,m,p,J, pConn

    IF Empty( cRdd )
        cRdd := "REDBFCDX"
    ENDIF

    IF Empty( cIP )
        cIP := "127.0.0.1"
    ELSE
        cIP := AllTrim( cIP )
    ENDIF

    SET DATE FORMAT "DD/MM/YYYY"
    RDDSETDEFAULT( cRdd )

    SET DELETED ON
    SET AUTOPEN ON

    IF cRdd == 'REDBFCDX'
        ? "CONECTED TO IP: " + cIP + ":2813"
        pConn := NET_OPENCONNECTION( cIP, 2813 )
        IF Empty( pConn )
            ? "SERVER DON'T WORK"
            RETURN
        END
    ENDIF

    IF ! HB_DBExists( "TMPTEST" )
        ? "CREATE TABLE"
        DBCREATE( "TMPTEST", { { "A1", "C", 10, 0 } }, cRdd )
    ENDIF

    USE TMPTEST SHARED NEW ALIAS "ONE" VIA ( cRdd )

    IF LastRec() < 50000
        ? "Adding 50000 Rregisters"
        p := seconds()
        FOR n := 1 TO 50000
            APPEND BLANK
            REPLACE FIELD->A1 WITH "0123456789"
        NEXT
        ?? " -> " + AllTrim( Str( seconds() - p ) ) + " seconds"
    ENDIF

    SET OPTIMIZE ON
    IF HB_DBExists( "TMPTEST.CDX" )
        OrdSetFocus( "TG1" )
    ELSE
        INDEX ON FIELD->A1 TAG tg1 TO ("TMPTEST.CDX")
    ENDIF

    ? "Index active : " + ORDKEY()
    ? "Filtering by : " + "RecNo() > 100 .AND. RecNo() < 200"
    p := seconds()
    DbSetFilter( {|| RecNo() > 100 .AND. RecNo() < 200 }, "RecNo() > 100 .AND. RecNo() 
< 200" )
    ?? " -> " + AllTrim( Str( seconds() - p ) ) + " seconds"

    WAIT
    p := t := seconds()
    FOR M := 1 TO 10
        ? "PASO " + AllTrim( str( M ) )
        DBGOTOP()
        FOR n := 1 TO 50000
            J := ORDKEYNO()
            J := ORDKEYCOUNT()
            DBSKIP()
        NEXT
        ?? " en " + AllTrim( Str( seconds() - p ) ) + " seconds"
        p := seconds()
    NEXT

    DBCLOSEALL()

    NET_CLOSECONNECTION( pConn )

    ? " TOTAL " + AllTrim( Str( seconds() - t ) ) + " seconds"
    WAIT

RETURN NIL



Best regards,
Miguel Angel Marchuet


__________ Información de ESET NOD32 Antivirus, versión de la base de firmas de 
virus 4268 (20090722) __________

ESET NOD32 Antivirus ha comprobado este mensaje.

http://www.eset.com


_______________________________________________
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour

Reply via email to