====== I^UKey-ValueXgA uokuyamav=====================
JavaŎꂽAI^UKey-ValueXgAuokuyamav
_E[h肪Ƃ܂B

========================================================================================================
[New - @\ǉ]
[[[X Ver 0.2.0 - (2010/02/08)]]
 vP[VyсAJo[@\ǉ
   f[^m[hNbVVXe̋@\~h~B

 [ǉ@\ڍ]
  1. 1̃f[^𕡐̃f[^m[hɓo^悤@\ǉ(vP[V)
     Uo^sƂŁAIɃf[^̕sAS̍UKVSւƐi܂B

  2. Jo[@\
     1.̋@\gpĂꍇACf[^m[hNbVꍇACf[^m[hAA
     X[um[h(vP[Vm[h)玩IɃf[^𕜌܂B
     X[um[hNbVꍇAA㎩IɃCf[^m[h畜܂B

  3. L2̋@\gpĂꍇ̓m[h~VXe̒~ȂɎgp\
     f[^m[hNbVX[um[h(vP[Vm[h)ւ̎ڍss邽߁A
     gpVXe̒~܂B

  L̎gp@́Asrc\MasterNode.propertiesQƂĂB
  execMasterNode.bat̓}X^[m[hN܂B
  execDataNode.bat̓Cf[^m[hN܂B
  execSlaveDataNode.bat̓X[uf[^m[hN܂B
========================================================================================================
========================================================================================================
[New - sC]
[[[X Ver 0.2.1 - (2010/02/11)]]
 Jo[̋CB
   ~m[hÑ^C~OɂĐf[^Jo[ȂsCB

 src\MasterNode.propertiesɃRgǉB
========================================================================================================
========================================================================================================
[New - MasterNodeœK&\]̃eLXgYt]
[[[X Ver 0.2.2 - (2010/02/24)]]
 MasterNodẽWbNœKB
   œKcӏ͂܂cĂB

 œKOƌŁAȒPɐ\𑪒B茋ʂeLXgƂēYt
========================================================================================================
========================================================================================================
[New - 폜\bh&f[^ۑƃt@CIł悤ɋ@\ǉ]
[[[X Ver 0.3.0 - (2010/03/4)]]
 폜\bhǉ
   ImdstKeyValueClientremoveValue\bhɂČĂяo\
   ^[lgetValueƓlŌʕ("true" or "false")ƍ폜łꍇ͑Ώۂ̒li[ꂽz
   TestSock"7"ԎwŌĂяo\
   ---------------------------------------------------------------------------------------------------
   java -cp ./;./classes;./lib/javamail-1.4.1.jar TestSock 1 127.0.0.1 8888 100         <= 100o^
   java -cp ./;./classes;./lib/javamail-1.4.1.jar TestSock 7 127.0.0.1 8888 50         <= 50폜

 f[^ۑ`ƃt@CI\
   ܂ł̃o[Wł͉ғ̓f[^͏KeyValue̊֌WŃɕێĂB
   o^̃gUNVL^t@CƁAIȃ̃t@CoŉiۂĂA
   t@Co[hłKeŷ݃ɕێf[^̓t@CɃXgA邱ƂB
   ɂ胁ł̏Ȃ邱Ƃ\łAeXgłJVMIvV-Xmx256mƂ
   DataNode400ȏ̃f[^i[oB
   (Keyl̒DataNodei[͉eȂAQl"datasavekey_1"`"datasavekey_4000000"ƂKeyl)
   A܂Ő݂ĂȂi[f[^ɐ񂪏oB
   ݊i[łValuẽTCÝA512bytełB
   ȏ̃f[^i[ꍇ́AImdstKeyValueClientsetByteValue\bhgp邱ƂƂȂB
   512̎wύXꍇ͈xSẴf[^t@C(Tvł.\keymapfilefBNg̃t@C)
     Sč폜ĂAImdstDefinesaveDataMaxSizeύX邱ƂőΉ\B
   f[^t@Cۑ@͒ǋL^ƂȂ̂ŁAoL[\bh\B
   ƃt@C̐؂ւDataNode.properties
     "KeyManagerJob1.dataMemory=false" <=t@C
     "KeyManagerJob1.dataMemory=true"  <=
     Ő؂ւ\

========================================================================================================
========================================================================================================
[New - sC&TvR[hǉ]
[[[X Ver 0.3.2 - (2010/03/10)]]
 萔Key-Value𓯂TagɕRtĕۑƐoȂsC

 TestSockɃL[lw肵č폜郂[hǉ("8")
   java -cp ./;./classes;./lib/javamail-1.4.1.jar TestSock 8 127.0.0.1 8888 KeyName1
   L127.0.0.1̃|[g8888ԂŋNĂ}X^[m[hɐڑA"keyName1"ƂKeylŕۑ
  f[^폜B
========================================================================================================
========================================================================================================
[New - @\P]
[[[X Ver 0.3.3 - (2010/03/12)]]
 f[^m[hm̃f[^Joɏ]͋Ñm[h̃f[^ċNĂm[h
   ŃJoĂAf[^̓o^A폜Ɏ{̗vfǉAJoɎ{
   mFAVm[h̃f[^K悤ɉPB

========================================================================================================
========================================================================================================
[New - @\ǉ]
[[[X Ver 0.4.0 - (2010/03/15)]]
 f[^m[h̓IǉT|[g
   }X^[m[hAf[^m[hNMasterNode.propertiesKeyMapNodesRuleAKeyMapNodesInfoA
   SubKeyMapNodesInfoɐVȃm[h̋LqǋLۑƁAIɃt@Cēǂݍ݂A
   f[^AX[um[hǉB
   ݒt@C͍ĕۑƂقڃA^Cɔf邽߁AۑOɊYm[hNĂKvB
    ݒ                                                m[hǉ
    MasterNode.properties   MasterNode.properties
   KeyMapNodesRule=2                                   KeyMapNodesRule=4,2                                                             
                                                                                                                                       
   KeyMapNodesInfo=localhost:5553,localhost:5554     =>KeyMapNodesInfo=localhost:5553,localhost:5554,localhost:6553,localhost:6554     
                                                     ۄ                                                                                
   SubKeyMapNodesInfo=localhost:5556,localhost:5557  SubKeyMapNodesInfo=localhost:5556,localhost:5557,localhost:6556,localhost:6557                          
                                                                                                                                       
     

 f[^m[hǉɐVm[hփf[^̈ڍss@\ǉ
   f[^m[hǉɉߋf[^m[h䐔^p̃f[^ɃANZX^C~OŒǉm[h
   Cf[^m[hAX[uf[^m[hփf[^Iɕۑ悤ɂAȌߋ̃f[^ۑm[h
   ANZXsȂ悤ɋ@\ǉB
   m[hǉsƎIɃf[^ANZXɍsB

 f[^m[hւ̃ANZXCf[^m[hAX[uf[^m[hԂŃoVOo郂[hǉ
   MasterNode.propertiesLoadBalanceMode̐ݒtrueɂƃoVOsB
   CƁAX[uŐ\傫قȂꍇ̓oVOsȂقǂꍇB
   U蕪͒PȃEhrłB

 }X^[m[h𕡐ғAוUA璷o@\ǉ
   ܂ł́A}X^[m[h1\ASPOFƂȂĂׁANo悤ɋ@\ǉB
   }X^[m[h1`nł̍\\A1͕K}X^[m[hł̃CɂȂȂ΂ȂȂB
   ŔAf[^m[h̐Ďƕ̃Jo[ׂ̈łB
   Jo[́ASẴ}X^[m[hĉғ邽߁As͔Ȃ\ƂȂĂB
   MasterNode.propertiesMainMasterNodeModeC̏ꍇtrueƂAX[ȕꍇfalseƂB
   ܂AX[ũ}X^[m[h̃lbg[N̖OƉғ|[gԍSlaveMasterNodesɃJ}؂ŗ񋓂B
   璷ȂꍇMainMasterNodeMode=trueƂ邾ł悢B

  [X\(src or classes)\MasterNode.properties(Cp) [X\(src or classes)\MasterNode2.properties(X[up)
  MasterNode.properties       MasterNode2.properties 
 MainMasterNodeMode=true                                 MainMasterNodeMode=false                          
                                                                                                           
 SlaveMasterNodes=127.0.0.1:8889                         SlaveMasterNodes=                                 
                                                                                                           
       

   C̃}X^[m[hŁAf[^m[h̊ĎAsAC̃}X^[m[hғoȂԂ
   Ȃꍇ́AX[ũ}X^[m[h̐ݒt@Cȉ̂悤ɏčĕۑƁA
   X[ũ}X^[m[hC̃}X^[m[hɕύXĉғn߂B
  MasterNode2.properties   
 MainMasterNodeMode=true                               
                                                       
 SlaveMasterNodes=(ʂ̃}X^[m[hꍇ͋Lq) 
                                                       
 
   SlaveMasterNodesɗ񋓂m[hғĂȂĂACm[hғB
   IɃX[uCɏi悤Ɍقǎ\B
   ImdstKeyValueClientɕ̃}X^[m[hݒł悤ɂA
     oVOAڑłȂꍇ̎ʃm[hĐڑ@\Ȃǂقǎ\B

 Nbatt@Cǉ
   execMasterNode2.bat <=X[u}X^[m[hNR}h
   execMasterNode.bat݂̂ł̉ғ͏]Ɠ悤ɉ\
========================================================================================================


XybN
 :Java(jdk1.6ɂĊJ)
 \[XGR[fBO:UTF-8
 쌟OS:WinsowsXp SP3ACentOS 5.3(final)
 KvCu:log4j-1.2.14.jarAjavamail-1.4.1.jar(JavaMail Ver1.4.1)
 Version:0.1.0(2010/01/07)


ȒPȋ@\ƃTv̎s@ȉɋL܂B
[@\]
1.Key-ValueXgA
  Key-ValueXgA܂B
  Key͕AValue͕ƁAbytef[^̗o^\łB

2.Tag@\
  Key̑Tago^ł܂B
  Tag͕ƂȂ܂B
  XgAłKey̓j[NȒlƂĈ܂ATag͕̃f[^ɕRt
  Ƃo܂B
  f[^ɂ炩ߔCӂTagt邱ƂŁATagwɂ
  xɊ֘Af[^擾\ƂȂ܂B
  ݂TagwŊ֘Af[^Keyz񂪎擾ł܂B

3.IłAiꂽf[^
  f[^̓o^NCAg߂AƂ̃f[^̓f[^m[h
  (1)ɒ~ƓɃt@CVXeɕۑ(2)܂B
  Ȃ̂ŁAf[^m[h~Ăf[^邱Ƃ͂܂B

  1.o^f[^͊ef[^m[h1̓ꂽjava.util.HashMapɊi[܂B
      f[^̓o^Ao͑SĂs܂B
  2.t@CVXeɕۑf[^́AIɕۑjava.util.HashMap
      VACYf[^ƁAf[^o^̃OƂȂ܂B
      VACYf[^̓o^̓f[^o^A擾Ƃ͔񓯊ɂĎs܂B

4.U^
  uokuyamav̓}X^m[hAf[^m[hANCAg3ō\܂B
  ꂼ̖ڂ͈ȉłB
  }X^m[h:ݒ肳ꂽASY(1)ɏ]āANCAg̃f[^˗K؂
               f[^m[hɈ˗܂B
               f[^̕ۑA擾̍ۂ̎gpf[^m[hs܂B
               }X^[m[h͏ێȂ̂ŁAŉғ\ƂȂ܂B
               f[^m[h̒ǉ܂B
               1.Ǘf[^m[h̐ɈˑȒPȃASYłB

  f[^m[h:L[ƃf[^̑gݍ킹Ńf[^ۑ܂B
               f[^̓o^AoC^[tF[X܂B
               gł͑m[hւ̃f[^̐U蕪Ȃǂ͍sȂ܂B

  NCAg:}X^m[hւ̒ʐMsۂ̃vOC^[tF[XłB
               C^[tF[XƂẮA
               1.Key()Value()̑gݍ킹ł̃f[^o^
               2.Key()Tag()Value()̑gݍ킹ł̃f[^o^
               3.Key()łValue()擾
               4.Tag()łKey(z)擾
               5.Key()Value(bytez)̑gݍ킹ł̃f[^o^
               6.Key()łValue(bytez)擾

  ꂼ̃m[hԂ̒ʐMTCP/IPł̒ʐMƂȂ܂B
  ܂ANCAgƃ}X^m[hԂ̒ʐM͎IBase64ɂăGR[fBOgpĂ܂B



[Tvғ@]
 Windows

   O:1.\
              1̃}Vŉғ悤ɐݒ肳Ă܂B
              ꂼ̃m[h䐔
              }X^m[h:1
              f[^m[h:2

            2.em[h̎gp|[g͈ȉƂȂ܂B
              }X^m[h:8888
              pr:NCAg̗v҂
              ύXꍇ:srcfBNgzMasterNode.properties7sڂύX
                           7s=MasterManagerJob.Init=8888<=̔ԍ

              f[^m[h:5553A5554
              pr:}X^m[h̗v҂
              ύXꍇ:srcfBNgzDataNode.properties7sځA13sڂύX
                           7s=KeyManagerJob1.Init=5553<=̔ԍ
                           13s=KeyManagerJob2.Init=5554<=̔ԍ


 1.RpC
   ȈՓIȃRpCpob`t@CpӂĂ܂B
   {t@CƓfBNgɂAcompile.batsĂB
   O:javac.exePATHʂĂ

 2.MasterNodeN
   ȈՓIMasterNodeNpob`t@CpӂĂ܂B
   {t@CƓfBNgɂAexecMasterNode.batsĂB
   ~@Ctrl+C͖{t@CƓfBNgServerStopƂt@C쐬
   ServerStopt@C݂ƃT[oMasterNode͋N܂B
   O:1.java.exePATHʂĂ
        2.128MBƂĂ܂

 3.DataNodeN
   ȈՓIDataNodeNpob`t@CpӂĂ܂B
   {t@CƓfBNgɂAexecDataNode.batsĂB
   2̃f[^m[hɋN܂B
   ~@Ctrl+C͖{t@CƓfBNgServerStopƂt@C쐬
   ServerStopt@C݂ƃT[oDataNode͋N܂B
   O:1.java.exePATHʂĂ
        2.256MBƂĂ܂
   
 4.ڑTv
   ȈՓIȐڑAo^A擾TvpӂĂ܂B
   {t@CƓfBNgɂATestSock.classsĂ(jdk1.6ɂăRpCς)B
   ȂŎsƎgp@o͂܂B
   )
     # ȉ̗͎IɃCNgKeylValue1000o^Ă
     java -cp ./;./classes;./lib/javamail-1.4.1.jar TestSock 1 127.0.0.1 8888 1000

     # ȉ̗͎IɃCNgKeylValue1000擾Ă
     java -cp ./;./classes;./lib/javamail-1.4.1.jar TestSock 2 127.0.0.1 8888 1000

     # ȉ̗͎IɃCNgKeylƓK4p^[TaglValue100o^Ă
     java -cp ./;./classes;./lib/javamail-1.4.1.jar TestSock 3 127.0.0.1 8888 100

     # ȉ̗Taglutag1vɕRtKeyl1擾Ă
     java -cp ./;./classes;./lib/javamail-1.4.1.jar TestSock 4 127.0.0.1 8888 1 tag1

     # ȉ̗KeyluwordfilevŁuC:\temp\SampleWord.docvt@C1o^Ă
     java -cp ./;./classes;./lib/javamail-1.4.1.jar TestSock 5 127.0.0.1 8888 1 C:\temp\SampleWord.doc wordfile

     # ȉ̗KeyluwordfileṽoCgf[^擾uC:\SampleWord.docvt@CƂ1쐬Ă
     java -cp ./;./classes;./lib/javamail-1.4.1.jar TestSock 6 127.0.0.1 8888 1 C:\SampleWord.doc wordfile


[]
 ̓oOFixƃf[^̑dۑ(Ver0.2.0Ŏ)Aݑ݂Ȃ폜\bhȂǂ쐬܂B


