示例#1
0
    def put(self, key, value, locality=None, tableName=None):
        #print("Client keyspace=%s, tablename=%s putting key %s" % (self.keyspace,self.tablename,key))
        status = False
        loc = self.locality if locality is None else locality
        table = self.tablename if tableName is None else tableName
        #print("[DataLayerClient] [PUT] keyspace=%s, tablename=%s putting key %s" % (self.keyspace,table,key))
        if value is None:
            value = ""
        for retry in range(MAX_RETRIES):
            try:
                value = value.encode()
                row = KeyValuePair(key, value)
                status = self.datalayer.insertRow(self.keyspace, table, row,
                                                  loc)
                break
            except TTransport.TTransportException as exc:
                print(
                    "[DataLayerClient] Reconnecting because of failed put: " +
                    str(exc))
                self.connect()
            except Exception as exc:
                print("[DataLayerClient] failed put: " + str(exc))
                raise

        return status
示例#2
0
    def putMapEntry(self, mapname, key, value, locality=None):
        status = False
        loc = self.locality if locality is None else locality
        if value is None:
            value = ""
        for retry in range(MAX_RETRIES):
            try:
                value = value.encode()
                row = KeyValuePair(key, value)
                status = self.datalayer.putEntryToMap(self.keyspace, self.maptablename, mapname, row, loc)
                break
            except TTransport.TTransportException as exc:
                print("[DataLayerClient] Reconnecting because of failed putMapEntry: " + str(exc))
                self.connect()
            except Exception as exc:
                print("[DataLayerClient] failed putMapEntry: " + str(exc))
                raise

        return status
示例#3
0
def main():
    socket = TSocket.TSocket("10.0.2.15", 4998)
    transport = TTransport.TFramedTransport(socket)
    protocol = TCompactProtocol.TCompactProtocol(transport)
    datalayer = DataLayerService.Client(protocol)
    
    try:
        transport.open()
        
        keyspace = 'debug_sand'
        replicationFactor = 1
        locality = 1    # 0 means local, and 1 means remote (Riak)
        
        table = 'DATA'
        key = 'test_key'
        value = "123"
        
        s1 = datalayer.createKeyspace(keyspace, replicationFactor, locality)
        s2 = datalayer.createTable(keyspace, table, locality)
        
        row = KeyValuePair(key, value)
        s3 = datalayer.insertRow(keyspace, table, row, locality)
        
        result = datalayer.selectRow(keyspace, table, key, locality)
        print(result.key)
        print(result.value)
        
        s5 = datalayer.dropTable(keyspace, table, locality)

        print(s5)
        # below shows how to operate CRDT map
        map_table = 'MAPS'
    
        allmaps = datalayer.selectMaps(keyspace, map_table, 0, 10000, 1)
        print(allmaps)
    
        s6 = datalayer.createMapTable(keyspace, map_table, locality)
    
        print("result createMapTable: ", s6)
        time.sleep(2)
    
        map_name = 'MAP'
        s7 = datalayer.createMap(keyspace, map_table, map_name, locality)
    
        print("result createMap: ", s7)
        time.sleep(2)
    
        allmaps = datalayer.selectMaps(keyspace, map_table, 0, 10000, 1)
        print(allmaps)

        s8 = datalayer.putEntryToMap(keyspace, map_table, map_name, KeyValuePair(key, value), locality)
        time.sleep(2)
        
        entry = datalayer.getEntryFromMap(keyspace, map_table, map_name, key, locality)
        print(entry.key + " -> " + entry.value)
        
        keyset = datalayer.retrieveKeysetFromMap(keyspace, map_table, map_name, locality)
        print(keyset.key + " -> " + keyset.items)
        
        entryset = datalayer.retrieveAllEntriesFromMap(keyspace, map_table, map_name, locality)
        print(entryset.key)
        print(entryset.entries)
        
        s9 = datalayer.deleteMap(keyspace, map_table, map_name, locality)
        
        s10 = datalayer.dropMapTable(keyspace, map_table, locality)
        # above shows how to operate CRDT map
    
        
        s11 = datalayer.dropKeyspace(keyspace, locality)


    except Thrift.TException as e:
        print(e)
        
    finally:
        transport.close()