MCPcopy Create free account
hub / github.com/BIT-DataLab/LakeBench / CassandraListStorage

Class CassandraListStorage

join/LSH/datasketch/storage.py:801–859  ·  view source on GitHub ↗

OrderedStorage storage implementation using Cassandra as backend. Note: Since we need to (i) select and delete values by both 'key' and by 'key and value', and (ii) allow duplicate values, we store a monotonically increasing timestamp as additional value.

Source from the content-addressed store, hash-verified

799
800
801 class CassandraListStorage(OrderedStorage, CassandraStorage):
802 """
803 OrderedStorage storage implementation using Cassandra as backend.
804
805 Note: Since we need to (i) select and delete values by both 'key' and by 'key and value',
806 and (ii) allow duplicate values, we store a monotonically increasing timestamp as
807 additional value.
808 """
809
810 def keys(self):
811 """Implement interface."""
812 return self._client.get_keys()
813
814 def get(self, key):
815 """Implement interface."""
816 return self._client.select([key]).get(key, [])
817
818 def getmany(self, *keys):
819 """Implement interface."""
820 return self._client.select(keys).values()
821
822 def add_to_select_buffer(self, keys):
823 """Implement interface."""
824 self._client.add_to_select_buffer(keys)
825
826 def collect_select_buffer(self):
827 """Implement interface."""
828 return self._client.collect_select_buffer()
829
830 def insert(self, key, *vals, **kwargs):
831 """Implement interface."""
832 buffer = kwargs.pop('buffer', False)
833 self._client.insert(key, vals, buffer)
834
835 def remove(self, *keys, **kwargs):
836 """Implement interface."""
837 buffer = kwargs.pop('buffer', False)
838 self._client.delete_keys(keys, buffer)
839
840 def remove_val(self, key, val, **kwargs):
841 """Implement interface."""
842 buffer = kwargs.pop('buffer', False)
843 self._client.delete(key, val, buffer)
844
845 def size(self):
846 """Implement interface."""
847 return len(self.keys())
848
849 def itemcounts(self):
850 """Implement interface."""
851 return self._client.select_count(self.keys())
852
853 def has_key(self, key):
854 """Implement interface."""
855 return self._client.one(key) is not None
856
857 def empty_buffer(self):
858 """Implement interface."""

Callers 1

ordered_storageFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected