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