Hi,
I’m using drbfire to send a “DRbUndumped” ActiveRecord object from the
server to the client, through an ADSL line of 4Mbits/s download, and
600Kbits/s upload. I was afraid there would be too many round-trips
between the client and the server, and unfortunately this is true:
Server code:
#!/usr/local/bin/ruby
require ‘rubygems’
require ‘drb/drbfire’
require ‘active_record’
require ‘active_record/transactions’
ActiveRecord::Base.establish_connection(
:adapter => “mysql”,
:username => “root”,
:host => “localhost”,
:password => “”,
:database => “flowers”
)
class Garden < ActiveRecord::Base
include DRbUndumped
has_many :flowers
alias :id__ :id
end
class Flower < ActiveRecord::Base
include DRbUndumped
belongs_to :garden
alias :id__ :id
end
Garden.transaction do
g = Garden.new(“name” => “garden1”)
g.flowers << Flower.new(“name” => “flower1”, “color” => “color1”)
g.flowers << Flower.new(“name” => “flower2”, “color” => “color2”)
g.flowers << Flower.new(“name” => “flower3”, “color” => “color3”)
g.flowers << Flower.new(“name” => “flower4”, “color” => “color4”)
g.flowers << Flower.new(“name” => “flower5”, “color” => “color5”)
g.flowers << Flower.new(“name” => “flower6”, “color” => “color6”)
g.flowers << Flower.new(“name” => “flower7”, “color” => “color7”)
g.flowers << Flower.new(“name” => “flower8”, “color” => “color8”)
g.flowers << Flower.new(“name” => “flower9”, “color” => “color9”)
g.flowers << Flower.new(“name” => “flower10”, “color” => “color10”)
g.flowers << Flower.new(“name” => “flower11”, “color” => “color11”)
g.flowers << Flower.new(“name” => “flower12”, “color” => “color12”)
g.flowers << Flower.new(“name” => “flower13”, “color” => “color13”)
g.flowers << Flower.new(“name” => “flower14”, “color” => “color14”)
g.flowers << Flower.new(“name” => “flower15”, “color” => “color15”)
g.flowers << Flower.new(“name” => “flower16”, “color” => “color16”)
g.flowers << Flower.new(“name” => “flower17”, “color” => “color17”)
g.flowers << Flower.new(“name” => “flower18”, “color” => “color18”)
g.flowers << Flower.new(“name” => “flower19”, “color” => “color19”)
g.flowers << Flower.new(“name” => “flower20”, “color” => “color20”)
g.save
g = Garden.new(“name” => “garden2”)
g.flowers << Flower.new(“name” => “flower3”, “color” => “color3”)
g.save
end
class Server
def find(i)
Garden.find(i)
end
end
s = Server.new
g = s.find(1)
puts “#{g[:id]} | #{g[:name]}”
g.flowers.each do |f|
puts “#{f[:id]} | #{f[:garden_id]} | #{f[:name]}”
end
DRb.start_service(‘drbfire://j20.attiksystem.ch:9000’, s, DRbFire::ROLE
=> DRbFire::SERVER)
DRb.thread.join
Client code:
#!/usr/local/bin/ruby
require ‘drb/drbfire’
DRb.start_service(‘drbfire://j20.attiksystem.ch:9000’, nil,
DRbFire::ROLE => DRbFire::CLIENT)
obj = DRbObject.new(nil, ‘drbfire://j20.attiksystem.ch:9000’)
g = obj.find(1)
puts “#{g[:id]} | #{g[:name]}”
g.flowers.each do |f|
puts “#{f[:id]} | #{f[:garden_id]} | #{f[:name]}”
end
It takes about two seconds(!) to get the record and the 20 associated
records from the “flowers” table. With a direct or ODBC connection, I
guess you get that data in about 50 ms.
Here is the tcpdump that shows all the round-trips when fetching and
displaying the data.
20:55:09.128686 IP f29.attiksystem.ch.8924 > j20.attiksystem.ch.9000: S
2403473258:2403473258(0) win 65535 <mss 1444,nop,nop,sackOK>
20:55:09.128734 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8924: S
1607928261:1607928261(0) ack 2403473259 win 65535 <mss 1460,sackOK,eol>
20:55:09.148167 IP f29.attiksystem.ch.8924 > j20.attiksystem.ch.9000: .
ack 1 win 65535
20:55:09.167041 IP f29.attiksystem.ch.8924 > j20.attiksystem.ch.9000: P
1:2(1) ack 1 win 65535
20:55:09.167206 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8924: P
1:5(4) ack 2 win 65535
20:55:09.184771 IP f29.attiksystem.ch.8925 > j20.attiksystem.ch.9000: S
2760493492:2760493492(0) win 65535 <mss 1444,nop,nop,sackOK>
20:55:09.184797 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8925: S
4034782619:4034782619(0) ack 2760493493 win 65535 <mss 1460,sackOK,eol>
20:55:09.203759 IP f29.attiksystem.ch.8925 > j20.attiksystem.ch.9000: .
ack 1 win 65535
20:55:09.212015 IP f29.attiksystem.ch.8925 > j20.attiksystem.ch.9000: P
1:2(1) ack 1 win 65535
20:55:09.214257 IP f29.attiksystem.ch.8925 > j20.attiksystem.ch.9000: P
2:44(42) ack 1 win 65535
20:55:09.214307 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8925: .
ack 44 win 65535
20:55:09.216300 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8925: P
1:77(76) ack 44 win 65535
20:55:09.235743 IP f29.attiksystem.ch.8925 > j20.attiksystem.ch.9000: P
44:91(47) ack 77 win 65459
20:55:09.236497 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8925: P
77:92(15) ack 91 win 65535
20:55:09.255106 IP f29.attiksystem.ch.8925 > j20.attiksystem.ch.9000: P
91:140(49) ack 92 win 65444
20:55:09.255865 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8925: P
92:114(22) ack 140 win 65535
20:55:09.275093 IP f29.attiksystem.ch.8925 > j20.attiksystem.ch.9000: P
140:182(42) ack 114 win 65422
20:55:09.291270 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8925: P
114:190(76) ack 182 win 65535
20:55:09.310076 IP f29.attiksystem.ch.8925 > j20.attiksystem.ch.9000: P
182:285(103) ack 190 win 65346
20:55:09.311096 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8924: P
5:6(1) ack 2 win 65535
20:55:09.327820 IP f29.attiksystem.ch.8924 > j20.attiksystem.ch.9000: .
ack 6 win 65530
20:55:09.329559 IP f29.attiksystem.ch.8926 > j20.attiksystem.ch.9000: S
2592880656:2592880656(0) win 65535 <mss 1444,nop,nop,sackOK>
20:55:09.329603 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8926: S
3256080895:3256080895(0) ack 2592880657 win 65535 <mss 1460,sackOK,eol>
20:55:09.347672 IP f29.attiksystem.ch.8926 > j20.attiksystem.ch.9000: .
ack 1 win 65535
20:55:09.352307 IP f29.attiksystem.ch.8926 > j20.attiksystem.ch.9000: P
1:2(1) ack 1 win 65535
20:55:09.353669 IP f29.attiksystem.ch.8926 > j20.attiksystem.ch.9000: P
2:6(4) ack 1 win 65535
20:55:09.353714 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8926: .
ack 6 win 65535
20:55:09.354258 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8926: P
1:109(108) ack 6 win 65535
20:55:09.373659 IP f29.attiksystem.ch.8927 > j20.attiksystem.ch.9000: S
3897467606:3897467606(0) win 65535 <mss 1444,nop,nop,sackOK>
20:55:09.373694 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8927: S
360047321:360047321(0) ack 3897467607 win 65535 <mss 1460,sackOK,eol>
20:55:09.391146 IP f29.attiksystem.ch.8927 > j20.attiksystem.ch.9000: .
ack 1 win 65535
20:55:09.399029 IP f29.attiksystem.ch.8927 > j20.attiksystem.ch.9000: P
1:2(1) ack 1 win 65535
20:55:09.400893 IP f29.attiksystem.ch.8927 > j20.attiksystem.ch.9000: P
2:49(47) ack 1 win 65535
20:55:09.400944 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8927: .
ack 49 win 65535
20:55:09.401782 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8927: P
1:16(15) ack 49 win 65535
20:55:09.409534 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8925: .
ack 285 win 65535
20:55:09.420008 IP f29.attiksystem.ch.8927 > j20.attiksystem.ch.9000: P
49:103(54) ack 16 win 65520
20:55:09.420751 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8927: P
16:31(15) ack 103 win 65535
20:55:09.438745 IP f29.attiksystem.ch.8927 > j20.attiksystem.ch.9000: P
103:152(49) ack 31 win 65505
20:55:09.456185 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8927: P
31:53(22) ack 152 win 65535
20:55:09.474352 IP f29.attiksystem.ch.8926 > j20.attiksystem.ch.9000: P
6:20(14) ack 109 win 65427
20:55:09.474988 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8926: P
109:217(108) ack 20 win 65535
20:55:09.493595 IP f29.attiksystem.ch.8927 > j20.attiksystem.ch.9000: P
152:199(47) ack 53 win 65483
20:55:09.494565 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8927: P
53:68(15) ack 199 win 65535
20:55:09.512455 IP f29.attiksystem.ch.8927 > j20.attiksystem.ch.9000: P
199:253(54) ack 68 win 65468
20:55:09.513327 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8927: P
68:83(15) ack 253 win 65535
20:55:09.532815 IP f29.attiksystem.ch.8927 > j20.attiksystem.ch.9000: P
253:302(49) ack 83 win 65453
20:55:09.533569 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8927: P
83:105(22) ack 302 win 65535
20:55:09.551552 IP f29.attiksystem.ch.8926 > j20.attiksystem.ch.9000: P
20:34(14) ack 217 win 65319
20:55:09.552078 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8926: P
217:325(108) ack 34 win 65535
20:55:09.572542 IP f29.attiksystem.ch.8927 > j20.attiksystem.ch.9000: P
302:349(47) ack 105 win 65431
20:55:09.573445 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8927: P
105:120(15) ack 349 win 65535
20:55:09.592652 IP f29.attiksystem.ch.8927 > j20.attiksystem.ch.9000: P
349:403(54) ack 120 win 65416
20:55:09.593338 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8927: P
120:135(15) ack 403 win 65535
20:55:09.614390 IP f29.attiksystem.ch.8927 > j20.attiksystem.ch.9000: P
403:452(49) ack 135 win 65401
20:55:09.615107 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8927: P
135:157(22) ack 452 win 65535
20:55:09.633627 IP f29.attiksystem.ch.8926 > j20.attiksystem.ch.9000: P
34:48(14) ack 325 win 65211
20:55:09.634150 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8926: P
325:433(108) ack 48 win 65535
20:55:09.653991 IP f29.attiksystem.ch.8927 > j20.attiksystem.ch.9000: P
452:499(47) ack 157 win 65379
20:55:09.654836 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8927: P
157:172(15) ack 499 win 65535
20:55:09.672355 IP f29.attiksystem.ch.8927 > j20.attiksystem.ch.9000: P
499:553(54) ack 172 win 65364
20:55:09.673044 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8927: P
172:187(15) ack 553 win 65535
20:55:09.692343 IP f29.attiksystem.ch.8927 > j20.attiksystem.ch.9000: P
553:602(49) ack 187 win 65349
20:55:09.693023 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8927: P
187:209(22) ack 602 win 65535
20:55:09.712205 IP f29.attiksystem.ch.8926 > j20.attiksystem.ch.9000: P
48:62(14) ack 433 win 65103
20:55:09.712763 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8926: P
433:541(108) ack 62 win 65535
20:55:09.731567 IP f29.attiksystem.ch.8927 > j20.attiksystem.ch.9000: P
602:649(47) ack 209 win 65327
20:55:09.732395 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8927: P
209:224(15) ack 649 win 65535
20:55:09.756677 IP f29.attiksystem.ch.8927 > j20.attiksystem.ch.9000: P
649:703(54) ack 224 win 65312
20:55:09.757401 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8927: P
224:239(15) ack 703 win 65535
20:55:09.776292 IP f29.attiksystem.ch.8927 > j20.attiksystem.ch.9000: P
703:752(49) ack 239 win 65297
20:55:09.777002 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8927: P
239:261(22) ack 752 win 65535
20:55:09.793657 IP f29.attiksystem.ch.8926 > j20.attiksystem.ch.9000: P
62:76(14) ack 541 win 64995
20:55:09.794176 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8926: P
541:649(108) ack 76 win 65535
20:55:09.814645 IP f29.attiksystem.ch.8927 > j20.attiksystem.ch.9000: P
752:799(47) ack 261 win 65275
20:55:09.815486 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8927: P
261:276(15) ack 799 win 65535
20:55:09.833758 IP f29.attiksystem.ch.8927 > j20.attiksystem.ch.9000: P
799:853(54) ack 276 win 65260
20:55:09.834435 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8927: P
276:291(15) ack 853 win 65535
20:55:09.851996 IP f29.attiksystem.ch.8927 > j20.attiksystem.ch.9000: P
853:902(49) ack 291 win 65245
20:55:09.852682 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8927: P
291:313(22) ack 902 win 65535
20:55:09.871484 IP f29.attiksystem.ch.8926 > j20.attiksystem.ch.9000: P
76:90(14) ack 649 win 64887
20:55:09.872007 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8926: P
649:757(108) ack 90 win 65535
20:55:09.892348 IP f29.attiksystem.ch.8927 > j20.attiksystem.ch.9000: P
902:949(47) ack 313 win 65223
20:55:09.893177 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8927: P
313:328(15) ack 949 win 65535
20:55:09.910709 IP f29.attiksystem.ch.8927 > j20.attiksystem.ch.9000: P
949:1003(54) ack 328 win 65208
20:55:09.911391 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8927: P
328:343(15) ack 1003 win 65535
20:55:09.930575 IP f29.attiksystem.ch.8927 > j20.attiksystem.ch.9000: P
1003:1052(49) ack 343 win 65193
20:55:09.931260 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8927: P
343:365(22) ack 1052 win 65535
20:55:09.949936 IP f29.attiksystem.ch.8926 > j20.attiksystem.ch.9000: P
90:104(14) ack 757 win 64779
20:55:09.950435 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8926: P
757:865(108) ack 104 win 65535
20:55:09.970301 IP f29.attiksystem.ch.8927 > j20.attiksystem.ch.9000: P
1052:1099(47) ack 365 win 65171
20:55:09.971122 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8927: P
365:380(15) ack 1099 win 65535
20:55:09.989790 IP f29.attiksystem.ch.8927 > j20.attiksystem.ch.9000: P
1099:1153(54) ack 380 win 65156
20:55:09.990452 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8927: P
380:395(15) ack 1153 win 65535
20:55:10.008403 IP f29.attiksystem.ch.8927 > j20.attiksystem.ch.9000: P
1153:1202(49) ack 395 win 65141
20:55:10.009092 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8927: P
395:417(22) ack 1202 win 65535
20:55:10.028141 IP f29.attiksystem.ch.8926 > j20.attiksystem.ch.9000: P
104:118(14) ack 865 win 64671
20:55:10.028672 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8926: P
865:973(108) ack 118 win 65535
20:55:10.048629 IP f29.attiksystem.ch.8927 > j20.attiksystem.ch.9000: P
1202:1249(47) ack 417 win 65119
20:55:10.049418 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8927: P
417:432(15) ack 1249 win 65535
20:55:10.067493 IP f29.attiksystem.ch.8927 > j20.attiksystem.ch.9000: P
1249:1303(54) ack 432 win 65104
20:55:10.068173 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8927: P
432:447(15) ack 1303 win 65535
20:55:10.087105 IP f29.attiksystem.ch.8927 > j20.attiksystem.ch.9000: P
1303:1352(49) ack 447 win 65089
20:55:10.087783 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8927: P
447:469(22) ack 1352 win 65535
20:55:10.106093 IP f29.attiksystem.ch.8926 > j20.attiksystem.ch.9000: P
118:132(14) ack 973 win 64563
20:55:10.106613 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8926: P
973:1081(108) ack 132 win 65535
20:55:10.126334 IP f29.attiksystem.ch.8927 > j20.attiksystem.ch.9000: P
1352:1399(47) ack 469 win 65067
20:55:10.127243 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8927: P
469:484(15) ack 1399 win 65535
20:55:10.145945 IP f29.attiksystem.ch.8927 > j20.attiksystem.ch.9000: P
1399:1453(54) ack 484 win 65052
20:55:10.146634 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8927: P
484:499(15) ack 1453 win 65535
20:55:10.165183 IP f29.attiksystem.ch.8927 > j20.attiksystem.ch.9000: P
1453:1502(49) ack 499 win 65037
20:55:10.165847 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8927: P
499:522(23) ack 1502 win 65535
20:55:10.183797 IP f29.attiksystem.ch.8926 > j20.attiksystem.ch.9000: P
132:146(14) ack 1081 win 64455
20:55:10.184308 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8926: P
1081:1189(108) ack 146 win 65535
20:55:10.204160 IP f29.attiksystem.ch.8927 > j20.attiksystem.ch.9000: P
1502:1549(47) ack 522 win 65014
20:55:10.204965 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8927: P
522:537(15) ack 1549 win 65535
20:55:10.223900 IP f29.attiksystem.ch.8927 > j20.attiksystem.ch.9000: P
1549:1603(54) ack 537 win 64999
20:55:10.224632 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8927: P
537:552(15) ack 1603 win 65535
20:55:10.242886 IP f29.attiksystem.ch.8927 > j20.attiksystem.ch.9000: P
1603:1652(49) ack 552 win 64984
20:55:10.243553 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8927: P
552:575(23) ack 1652 win 65535
20:55:10.262250 IP f29.attiksystem.ch.8926 > j20.attiksystem.ch.9000: P
146:160(14) ack 1189 win 64347
20:55:10.262789 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8926: P
1189:1297(108) ack 160 win 65535
20:55:10.282863 IP f29.attiksystem.ch.8927 > j20.attiksystem.ch.9000: P
1652:1699(47) ack 575 win 64961
20:55:10.283697 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8927: P
575:590(15) ack 1699 win 65535
20:55:10.301726 IP f29.attiksystem.ch.8927 > j20.attiksystem.ch.9000: P
1699:1753(54) ack 590 win 64946
20:55:10.302376 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8927: P
590:605(15) ack 1753 win 65535
20:55:10.321215 IP f29.attiksystem.ch.8927 > j20.attiksystem.ch.9000: P
1753:1802(49) ack 605 win 64931
20:55:10.321917 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8927: P
605:628(23) ack 1802 win 65535
20:55:10.340077 IP f29.attiksystem.ch.8926 > j20.attiksystem.ch.9000: P
160:174(14) ack 1297 win 64239
20:55:10.340610 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8926: P
1297:1405(108) ack 174 win 65535
20:55:10.361316 IP f29.attiksystem.ch.8927 > j20.attiksystem.ch.9000: P
1802:1849(47) ack 628 win 64908
20:55:10.362136 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8927: P
628:643(15) ack 1849 win 65535
20:55:10.380429 IP f29.attiksystem.ch.8927 > j20.attiksystem.ch.9000: P
1849:1903(54) ack 643 win 64893
20:55:10.381110 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8927: P
643:658(15) ack 1903 win 65535
20:55:10.399292 IP f29.attiksystem.ch.8927 > j20.attiksystem.ch.9000: P
1903:1952(49) ack 658 win 64878
20:55:10.399954 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8927: P
658:681(23) ack 1952 win 65535
20:55:10.418157 IP f29.attiksystem.ch.8926 > j20.attiksystem.ch.9000: P
174:188(14) ack 1405 win 64131
20:55:10.418687 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8926: P
1405:1513(108) ack 188 win 65535
20:55:10.439894 IP f29.attiksystem.ch.8927 > j20.attiksystem.ch.9000: P
1952:1999(47) ack 681 win 64855
20:55:10.440741 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8927: P
681:696(15) ack 1999 win 65535
20:55:10.458134 IP f29.attiksystem.ch.8927 > j20.attiksystem.ch.9000: P
1999:2053(54) ack 696 win 64840
20:55:10.458828 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8927: P
696:711(15) ack 2053 win 65535
20:55:10.477627 IP f29.attiksystem.ch.8927 > j20.attiksystem.ch.9000: P
2053:2102(49) ack 711 win 64825
20:55:10.479432 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8927: P
711:734(23) ack 2102 win 65535
20:55:10.497616 IP f29.attiksystem.ch.8926 > j20.attiksystem.ch.9000: P
188:202(14) ack 1513 win 65535
20:55:10.498222 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8926: P
1513:1621(108) ack 202 win 65535
20:55:10.517351 IP f29.attiksystem.ch.8927 > j20.attiksystem.ch.9000: P
2102:2149(47) ack 734 win 64802
20:55:10.518287 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8927: P
734:749(15) ack 2149 win 65535
20:55:10.536711 IP f29.attiksystem.ch.8927 > j20.attiksystem.ch.9000: P
2149:2203(54) ack 749 win 64787
20:55:10.537379 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8927: P
749:764(15) ack 2203 win 65535
20:55:10.556198 IP f29.attiksystem.ch.8927 > j20.attiksystem.ch.9000: P
2203:2252(49) ack 764 win 64772
20:55:10.556902 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8927: P
764:787(23) ack 2252 win 65535
20:55:10.575063 IP f29.attiksystem.ch.8926 > j20.attiksystem.ch.9000: P
202:216(14) ack 1621 win 65427
20:55:10.575632 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8926: P
1621:1729(108) ack 216 win 65535
20:55:10.594675 IP f29.attiksystem.ch.8927 > j20.attiksystem.ch.9000: P
2252:2299(47) ack 787 win 64749
20:55:10.595494 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8927: P
787:802(15) ack 2299 win 65535
20:55:10.615038 IP f29.attiksystem.ch.8927 > j20.attiksystem.ch.9000: P
2299:2353(54) ack 802 win 64734
20:55:10.615728 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8927: P
802:817(15) ack 2353 win 65535
20:55:10.634650 IP f29.attiksystem.ch.8927 > j20.attiksystem.ch.9000: P
2353:2402(49) ack 817 win 64719
20:55:10.635306 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8927: P
817:840(23) ack 2402 win 65535
20:55:10.653014 IP f29.attiksystem.ch.8926 > j20.attiksystem.ch.9000: P
216:230(14) ack 1729 win 65319
20:55:10.653519 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8926: P
1729:1837(108) ack 230 win 65535
20:55:10.673878 IP f29.attiksystem.ch.8927 > j20.attiksystem.ch.9000: P
2402:2449(47) ack 840 win 64696
20:55:10.674704 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8927: P
840:855(15) ack 2449 win 65535
20:55:10.692742 IP f29.attiksystem.ch.8927 > j20.attiksystem.ch.9000: P
2449:2503(54) ack 855 win 64681
20:55:10.693398 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8927: P
855:870(15) ack 2503 win 65535
20:55:10.711603 IP f29.attiksystem.ch.8927 > j20.attiksystem.ch.9000: P
2503:2552(49) ack 870 win 64666
20:55:10.712266 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8927: P
870:893(23) ack 2552 win 65535
20:55:10.738461 IP f29.attiksystem.ch.8926 > j20.attiksystem.ch.9000: P
230:244(14) ack 1837 win 65211
20:55:10.738986 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8926: P
1837:1945(108) ack 244 win 65535
20:55:10.770942 IP f29.attiksystem.ch.8927 > j20.attiksystem.ch.9000: P
2552:2599(47) ack 893 win 64643
20:55:10.771790 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8927: P
893:908(15) ack 2599 win 65535
20:55:10.793553 IP f29.attiksystem.ch.8927 > j20.attiksystem.ch.9000: P
2599:2653(54) ack 908 win 64628
20:55:10.794207 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8927: P
908:923(15) ack 2653 win 65535
20:55:10.813293 IP f29.attiksystem.ch.8927 > j20.attiksystem.ch.9000: P
2653:2702(49) ack 923 win 64613
20:55:10.814025 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8927: P
923:946(23) ack 2702 win 65535
20:55:10.833282 IP f29.attiksystem.ch.8926 > j20.attiksystem.ch.9000: P
244:258(14) ack 1945 win 65103
20:55:10.833815 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8926: P
1945:2053(108) ack 258 win 65535
20:55:10.853520 IP f29.attiksystem.ch.8927 > j20.attiksystem.ch.9000: P
2702:2749(47) ack 946 win 64590
20:55:10.854347 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8927: P
946:961(15) ack 2749 win 65535
20:55:10.871759 IP f29.attiksystem.ch.8927 > j20.attiksystem.ch.9000: P
2749:2803(54) ack 961 win 64575
20:55:10.872419 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8927: P
961:976(15) ack 2803 win 65535
20:55:10.891371 IP f29.attiksystem.ch.8927 > j20.attiksystem.ch.9000: P
2803:2852(49) ack 976 win 64560
20:55:10.892027 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8927: P
976:999(23) ack 2852 win 65535
20:55:10.910358 IP f29.attiksystem.ch.8926 > j20.attiksystem.ch.9000: P
258:272(14) ack 2053 win 64995
20:55:10.910916 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8926: P
2053:2161(108) ack 272 win 65535
20:55:10.931473 IP f29.attiksystem.ch.8927 > j20.attiksystem.ch.9000: P
2852:2899(47) ack 999 win 64537
20:55:10.932303 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8927: P
999:1014(15) ack 2899 win 65535
20:55:10.950462 IP f29.attiksystem.ch.8927 > j20.attiksystem.ch.9000: P
2899:2953(54) ack 1014 win 64522
20:55:10.951134 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8927: P
1014:1029(15) ack 2953 win 65535
20:55:10.969449 IP f29.attiksystem.ch.8927 > j20.attiksystem.ch.9000: P
2953:3002(49) ack 1029 win 64507
20:55:10.970121 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8927: P
1029:1052(23) ack 3002 win 65535
20:55:10.989188 IP f29.attiksystem.ch.8926 > j20.attiksystem.ch.9000: P
272:286(14) ack 2161 win 64887
20:55:10.989689 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8925: P
190:266(76) ack 285 win 65535
20:55:11.009553 IP f29.attiksystem.ch.8924 > j20.attiksystem.ch.9000: F
2:2(0) ack 6 win 65530
20:55:11.009595 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8924: .
ack 3 win 65535
20:55:11.010548 IP f29.attiksystem.ch.8926 > j20.attiksystem.ch.9000: F
286:286(0) ack 2161 win 64887
20:55:11.010563 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8926: .
ack 287 win 65535
20:55:11.012421 IP f29.attiksystem.ch.8927 > j20.attiksystem.ch.9000: F
3002:3002(0) ack 1052 win 64484
20:55:11.012440 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8927: .
ack 3003 win 65535
20:55:11.012873 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8927: P
1052:1564(512) ack 3003 win 65535
20:55:11.012892 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8927: P
1564:1863(299) ack 3003 win 65535
20:55:11.012924 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8927: F
1863:1863(0) ack 3003 win 65535
20:55:11.013923 IP f29.attiksystem.ch.8925 > j20.attiksystem.ch.9000: F
285:285(0) ack 266 win 65270
20:55:11.013954 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8925: .
ack 286 win 65535
20:55:11.014253 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8925: P
266:778(512) ack 286 win 65535
20:55:11.014271 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8925: P
778:1077(299) ack 286 win 65535
20:55:11.014298 IP j20.attiksystem.ch.9000 > f29.attiksystem.ch.8925: F
1077:1077(0) ack 286 win 65535
20:55:11.032039 IP f29.attiksystem.ch.8927 > j20.attiksystem.ch.9000: R
3003:3003(0) ack 1564 win 0
20:55:11.035158 IP f29.attiksystem.ch.8925 > j20.attiksystem.ch.9000: R
286:286(0) ack 778 win 0
I guess the only solution here is - as someone from this list once
proposed - to use some sort of “Remote Transfer Object” through drbfire,
and not the ActiveRecord itself.
Is there a way to generate such a “Remote Transfer Object” structure
directly from the ActiveRecord object? And so avoid building a complete
data structure by hand? There are only two simple ActiveRecord objects
in this example, but I can easily imagine a real-world example with 10
interconnected objects.
Philippe L., Ing. Dipl. EPFL
Attik System
rte de la Fonderie 2
1700 Fribourg
Switzerland
http://www.attiksystem.ch
Tel: +41 (26) 422 13 75
Fax: +41 (26) 422 13 76