File RedisStateKeyValue.h

namespace faabric
namespace state

WARNING - key-value objects are shared between threads, BUT hiredis is not thread-safe, so make sure you always retrieve the reference to Redis inline rather than sharing a reference within the class.

class RedisStateKeyValue : public faabric::state::StateKeyValue

Public Functions

RedisStateKeyValue(const std::string &userIn, const std::string &keyIn, size_t sizeIn)
RedisStateKeyValue(const std::string &userIn, const std::string &keyIn)

Public Static Functions

static size_t getStateSizeFromRemote(const std::string &userIn, const std::string &keyIn)
static void deleteFromRemote(const std::string &userIn, const std::string &keyIn)
static void clearAll(bool global)

Private Functions

virtual void pullFromRemote() override
virtual void pullChunkFromRemote(long offset, size_t length) override
virtual void pushToRemote() override
virtual void pushPartialToRemote(const std::vector<StateChunk> &dirtyChunks) override
virtual void appendToRemote(const uint8_t *data, size_t length) override
virtual void pullAppendedFromRemote(uint8_t *data, size_t length, long nValues) override
virtual void clearAppendedFromRemote() override

Private Members

const std::string joinedKey