Skip to content

Commit

Permalink
Executed first distributed command (Count)
Browse files Browse the repository at this point in the history
  • Loading branch information
mkromberg committed Aug 28, 2016
1 parent dd1eea8 commit d10e906
Show file tree
Hide file tree
Showing 8 changed files with 442 additions and 185 deletions.
16 changes: 11 additions & 5 deletions BootServers.dyalog
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,22 @@
Start a vecdb server process if VECDBSRV="config.json" PORT=nnnn
vecdb slave process if VECDBSLAVE="file" SHARDS="n" PORT=nnnn

getenv{0=2 ⎕NQ'.' 'GetEnvironment':}
getenv{0=r2 ⎕NQ'.' 'GetEnvironment': r}
getnum{2⎕VFI }
path'file://',⎕NPARTS ⎕WSID

VECDBSRV0CONFIG''getenv'VECDBSRV'
VECDBSLAVE0VECDB''getenv'VECDBSLAVE'
VECDBSRV0SRVDB''getenv'VECDBSRV'
VECDBSLAVE0VECDB''getenv'VECDBSLAVE'
SHARDS2⎕VFI''getenv'SHARDS'
TOKEN2⎕VFI''getenv'TOKEN'

portgetnum''getenv'PORT'

2 ⎕FIX path,'APLProcess.dyalog'
2 ⎕FIX path,'vecdb.dyalog'
2 ⎕FIX path,'vecdbclt.dyalog'
2 ⎕FIX path,'vecdbsrv.dyalog'
2 ⎕FIX path,'vecdbslave.dyalog'

:If 0=⎕NC'DRC' Get conga if necessary
'DRC'⎕CY'conga'getenv'CONGAWS'
Expand All @@ -24,10 +29,11 @@
' ',2 ⎕FIX path,'TestVecdbSrv.dyalog'
:Else

AUTOSHUT1
{}1 ##.DRC.Init''

:If VECDBSRV vecdbsrv.Start CONFIG port
:ElseIf VECDBSLAVE vecdbslave.Start VECDB port
:If VECDBSRV vecdbsrv.Start SRVDB port
:ElseIf VECDBSLAVE vecdbslave.Start VECDB SHARDS port
:Else
'Invalid configuration...'
:EndIf
Expand Down
55 changes: 28 additions & 27 deletions TestVecdbSrv.dyalog
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@
:Trap 6 sourceSALT_Data.SourceFile
:Else source⎕WSID
:EndTrap
path{(-/()'\/')}source
path{(-/()'\/')}source
:If 0=⎕NC '#.DRC' 'DRC' #.⎕CY 'conga' :EndIf
ServerBasic

Expand All @@ -24,28 +25,15 @@
vecdbsrv.Users,user
db⎕NS''
db.Folderfolder
db.Slaves,¨1 2 Distribution of shards to slave processors
db.Slaves⎕NS¨2''
db.Slaves.Shards,¨1 2 Distribution of shards to slave processors
config⎕NS''
config.Servervecdbsrv
config.DBs,db
(toJson config)⎕NPUT filename

zServerBasic;columns;data;options;params;folder;types;name;ix;users;srvproc;clt;TEST
Test database with 2 shards
Also acts as test for add/remove columns

folderpath,'/',(name'srvtest'),'/'
'Clearing: ',folder
:Trap 22 #.vecdb.Delete folder :EndTrap
⎕MKDIR folder

--- Create configuration file ---

CreateTestConfig folder,'config.json'

--- Create database ---


(db params)CreateTestDB;columns;types;data;options
columns'Name' 'BlockSize' 'Flag'
types,¨'C' 'F' 'C'
data('IBM' 'AAPL' 'MSFT' 'GOOG' 'DYALOG')(160.97 112.6 47.21 531.23 999.99)(5'Buy' 'Sell')
Expand All @@ -56,25 +44,38 @@
options.(ShardFn ShardCols)'{2-2|⎕UCS ⊃¨⊃⍵}' 1

paramsname folder columns types options data
TEST'Create sharded database'
db⎕NEW #.vecdb params
assert (data)=db.Count
assert (data)=db.Count

zServerBasic;columns;data;options;params;folder;types;name;ix;users;srvproc;clt;TEST;config;db
Test database with 2 shards
Also acts as test for add/remove columns

folderpath,'/',(name'srvtest'),'/'
'Clearing: ',folder
:Trap 22 {}#.vecdb.Delete folder :EndTrap
⎕MKDIR folder

--- Create configuration file ---

configCreateTestConfig folder,'config.json'
(db (name folder columns types options data))CreateTestDB

--- Launch and connect to server, open database ---

srvproc#.vecdbsrv.Launch folder 8100
assert 0=srvproc.HasExited
srvproc#.vecdbsrv.Launch folder 8100
#.vecdbclt.Connect '127.0.0.1' 8100 'mkrom'
db#.vecdbclt.Open folder

clt#.vecdbclt.Connect '127.0.0.1' 8100 'mkrom'
dbclt.Open folder

∘∘∘
assert (data)=db.Count
ixdb.Query('Name'((columns'Name')data)) Should find everything
assert(1 2,¨4 1)ix
TEST'Read it all back'
assert datadb.Read time ix columns

zdb.Close
clt.ShutDown 'Shutting down now!'
zdb.Shutdown 'Shutting down now!'
⎕DL 3
svrproc.Kill
⎕DL 3
Expand Down
1 change: 1 addition & 0 deletions dev.dyapp
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
Load vecdb
Load vecdbclt
Load vecdbsrv
Load vecdbslave
Load MakeBoot
Load BootServers
Load APLProcess
Expand Down
2 changes: 1 addition & 1 deletion vecdb.dyalog
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@
:Property Count
:Access public
rget
r+/_Counts.counter
r+/_Counts[ShardSelected].counter
:EndProperty

Expand Down
Binary file modified vecdbboot.dws
Binary file not shown.
116 changes: 76 additions & 40 deletions vecdbclt.dyalog
Original file line number Diff line number Diff line change
@@ -1,16 +1,31 @@
:Namespace vecdbclt

(⎕IO ⎕ML ⎕WX)1 0 3
(⎕IO ⎕ML)1 1
SERVER''

rConnect(address port user)
rClt(connection address port)
:If 1111=r##.DRC.Clt connection address port
{}⎕DL 0.5
:AndIf 1111=r##.DRC.Clt connection address port
{}⎕DL 1
:AndIf 1111=r##.DRC.Clt connection address port
{}⎕DL 3
:AndIf 1111=r##.DRC.Clt connection address port
{}⎕DL 5
:AndIf 1111=r##.DRC.Clt connection address port
(r)⎕SIGNAL 11
:EndIf

{r}{connection}Connect(address port user)
Connect to vecdb server process

:If 0=⎕NC'connection' connection'VECDB' :EndIf

:If 0=r##.DRC.Init''
{}##.DRC.Close CONNECTION'VECDB'
:AndIf 0=r##.DRC.Clt CONNECTION address port
:AndIf 0=rSrvDo CONNECTION('CltSetUser'user)
rSrvDo CONNECTION('CltSetUser'user)
:If 0connection {}##.DRC.Close connection :EndIf
:AndIf 0=rClt connection address port
CONNECTION2r
:Else
('Error: ',,r)⎕SIGNAL 11
:EndIf
Expand Down Expand Up @@ -44,45 +59,66 @@
:EndIf

rOpen database
rOpen folder
Cover-function for call to Lock from a Client

:If 0=rSrvDo CONNECTION ('CltOpen' database)
r⎕NEW vecdbproxy (2r)
:Else
(,r) ⎕SIGNAL 11
:EndIf

r⎕NEW vecdbproxy(folder CONNECTION)

:Class vecdbproxy
Produce a vecdb proxy object for a served vecdb

Open (name connection)
:Access Public
:Implements Constructor
(NAME CONNECTION)name connection


Close
:Access Public


rAppend args
:Access Public

rQuery args
:Access Public

rRead args
:Access Public

rUpdate args
Open(folder connection)
:Access Public
:Implements Constructor
(FOLDER CONNECTION)folder connection
:If 0=r##.SrvDo CONNECTION('Open'folder)
⎕DF'[vecdbclt: ',folder,']'
:Else
(r)⎕SIGNAL 11
:EndIf

Shutdown msg
:Access Public
:If 0=r##.SrvDo CONNECTION('Shutdown' msg)
{}#.DRC.Close CONNECTION
CONNECTION''
:EndIf

Close
:Access Public
:If 0=r##.SrvDo CONNECTION('Close' )
{}#.DRC.Close CONNECTION
CONNECTION''
:EndIf

rCount
:Access Public
:If 0CONNECTION
r##.SrvDo CONNECTION('Count' (FOLDER ))
r+/r
:Else
'CONNECTION CLOSED' ⎕SIGNAL 11
:EndIf

rAppend args
:Access Public

rQuery args
:Access Public

rRead args
:Access Public

rUpdate args

:EndClass

Expand Down
Loading

0 comments on commit d10e906

Please sign in to comment.