Package net.tomp2p.storage

Examples of net.tomp2p.storage.Data


            IndirectReplication i3 = new IndirectReplication(p3);
            i3.start();
           
            Utils2.perfectRouting(p1, p2, p3);
            Number160 locationKey = Number160.createHash("test1");
            FuturePut fp = p2.put(locationKey).data(new Data("hallo")).requestP2PConfiguration(new RequestP2PConfiguration(2, 10, 0)).start();
            fp.awaitUninterruptibly();
            getReplicasCount(locationKey, p1, p2, p3);
            //
            p3.peer().announceShutdown().start().awaitUninterruptibly();
            p3.shutdown().awaitUninterruptibly();
View Full Code Here


           
           
           
            Utils2.perfectRouting(p1, p2, p3);
            Number160 locationKey = Number160.createHash("test1");
            FuturePut fp = p2.put(locationKey).data(new Data("hallo")).requestP2PConfiguration(new RequestP2PConfiguration(2, 10, 0)).start();
            fp.awaitUninterruptibly();
            getReplicasCount(locationKey, p1, p2, p3);
           
            p3.peer().announceShutdown().start().awaitUninterruptibly();
            p3.shutdown().awaitUninterruptibly();
View Full Code Here

            System.err.println("looking for "+searchPeer(Number160.createHash("2"), peers).peerAddress()+" in ");
            for(PeerDHT peer:peers) {
                System.err.println(peer.peerAddress());
            }
            //store data, the two peers do not know each other
            Data data = new Data("Test");
            FuturePut futureDHT = master.put(Number160.createHash("2")).data(data).start();
            futureDHT.awaitUninterruptibly();
            futureDHT.futureRequests().awaitUninterruptibly();
            //now, do the routing, so that each peers know each other. The content should be moved
            Assert.assertEquals(false, peers[1].storageLayer().contains(new Number640(Number160.createHash("2"), Number160.ZERO, Number160.ZERO, Number160.ZERO)));
View Full Code Here

                tmp.add(peers[i].peerAddress());
            }
            PeerAddress closest = tmp.iterator().next();
            System.err.println("closest to " + locationKey + " is " + closest);
            // store
            Data data = new Data("Test");
            FuturePut futureDHT = master.put(locationKey).data(data).start();
            futureDHT.awaitUninterruptibly();
            futureDHT.futureRequests().awaitUninterruptibly();
            Assert.assertEquals(true, futureDHT.isSuccess());
            List<FutureBootstrap> tmp2 = new ArrayList<FutureBootstrap>();
View Full Code Here

        if (dataMap != null) {
            return dataMap;
        } else {
            Map<Number640, Data> newDataMap = new HashMap<Number640, Data>();
            if (key != null) {
                Data data = peer.storageLayer().get(key);
                if (data == null) {
                    data = new Data().flag2();
                }
                newDataMap.put(key, data);
            }
            if (keys != null) {
                for (Number640 key : keys) {
                    Data data = peer.storageLayer().get(key);
                    if (data == null) {
                        data = new Data().flag2();
                    }
                    newDataMap.put(key, data);
                }
            }
            if (newDataMap.size() > 0) {
View Full Code Here

                        //int dataCopyCount = 0;
                        //int diffCount = 0;
                        //int dataNotCopied = 0;
                        for (Map.Entry<Number640, Data> entry : dataMap.dataMap().entrySet()) {
                         
                          Data data = entry.getValue();
                          if(data.length() == 0) {
                            if(data.isFlag1()) {
                              LOG.debug("no sync required");
                              syncMessageRequired = false;
                            } else if(data.isFlag2()) {
                              LOG.debug("copy required for key {}",entry.getKey());
                              syncMessageRequired = true;
                              Data data2 = peer.storageLayer().get(entry.getKey());
                              dataOrig += data2.length();
                              //copy
                                    retVal.put(entry.getKey(), data2);
                                    dataCopy += data2.length();
                                   
                            }
                          } else {
                            LOG.debug("sync required");
                            syncMessageRequired = true;
                            Data data2 = peer.storageLayer().get(entry.getKey());
                            dataOrig += data2.length();
                            final ByteBuf buffer = data.buffer();
                            Number160 versionKey = SyncUtils.decodeHeader(buffer);
                            Number160 hash = SyncUtils.decodeHeader(buffer);
            
                            List<Checksum> checksums = SyncUtils.decodeChecksums(buffer);
                            // TODO: don't copy data, toBytes does a copy!
                            List<Instruction> instructions = RSync.instructions(
                                         data2.toBytes(), checksums, blockSize);
                           
                            AlternativeCompositeByteBuf abuf = AlternativeCompositeByteBuf.compBuffer();
                           
                            dataCopy += SyncUtils.encodeInstructions(instructions, versionKey, hash, abuf);
                            DataBuffer dataBuffer = new DataBuffer(abuf);
                            //diff
                            Data data1 = new Data(dataBuffer).flag1();
                                retVal.put(entry.getKey(), data1);                       
                          }
                        }
                        final SyncStat syncStat = new SyncStat(peer.peerAddress().peerId(), other.peerId(), dataCopy, dataOrig);
                        if (syncMessageRequired) {
View Full Code Here

            System.err.println("no success!");
        }
       
        PeerDHT myPeerDHT = new PeerBuilderDHT(myPeer).start();

        FuturePut putFuture = myPeerDHT.put(Number160.createHash("key")).data(new Data(myInetSocketAddress)).start();
        putFuture.awaitUninterruptibly();
        FutureGet futureDHT = myPeerDHT.get(Number160.createHash("key")).start();
        futureDHT.awaitUninterruptibly();
        futureDHT.futureRequests().awaitUninterruptibly();
        Data data = futureDHT.data();
        if (data == null) {
            throw new RuntimeException("Address not available in DHT.");
        }
        InetSocketAddress inetSocketAddress = (InetSocketAddress) data.object();
        System.err.println("returned " + inetSocketAddress);
        myPeer.shutdown();
        // Thread.sleep( Long.MAX_VALUE );
    }
View Full Code Here

    }
    return "not found";
  }

  private void store(String name, String ip) throws IOException {
    peer.put(Number160.createHash(name)).data(new Data(ip)).start().awaitUninterruptibly();
  }
View Full Code Here

           
            Number160 locationKey = new Number160("0x5555");
            Number160 domainKey = new Number160("0x7777");
            Number320 key = new Number320(locationKey, domainKey);
           
            sender.trackerStorage().put(key, recv1.peerAddress(), null, new Data("test"));
            PeerStatistic ps = sender.trackerStorage().nextForMaintenance(new ArrayList<PeerAddress>());
            FuturePing fp = sender.peer().ping().peerAddress(ps.peerAddress()).start().awaitListeners();
            Assert.assertEquals(true, fp.isSuccess());
           
           
View Full Code Here

    put(new Number640(key, Number160.ZERO, Number160.ZERO, Number160.ZERO));
    validKeys.add(key);
  }

  public boolean put(Number640 key) {
    Data data = generateRandomData();
    putStats.start();
    FuturePut futurePut = peerDHT.put(key.locationKey()).domainKey(key.domainKey()).versionKey(key.versionKey())
        .data(key.contentKey(), data).routingConfiguration(routingConfig).requestP2PConfiguration(requestConfig)
        .start().awaitUninterruptibly();
    putStats.finished(futurePut.isSuccess());
   
    LOG.debug("Put of {} bytes is success = {}. Reason: {}", data.length(), futurePut.isSuccess(),
        futurePut.failedReason());
    return futurePut.isSuccess();
  }
View Full Code Here

TOP

Related Classes of net.tomp2p.storage.Data

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.