Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Incremental updates for Redis KeyValue Template [DATAREDIS-471] #1050

spring-projects-issues opened this issue Feb 26, 2016 · 2 comments
in: core type: enhancement


Copy link

@spring-projects-issues spring-projects-issues commented Feb 26, 2016

Mark Paluch opened DATAREDIS-471 and commented

The Redis KeyValue Template/KeyValueAdapter perform a DEL and HMSET to re-create an entity. The whole state is discarded and rewritten from scratch. An incremental/selective update mechanism would be nice

Referenced from: pull request #191, and commits addcdfe, d88d992, 7209513, 51c17ca, f35ef8a, b517a38, 4a0f6d5, bde376e, 99a0d62, 881fdc1, 042db1c, 0eb2faa, 230ef8c, c5e3dba, d32c804, 3595097, 2e1e5eb, 1f44f0a, 4d5a7b1, 1327b1c, fb29ee3, b0e33a4, 68870ad, ed9ea98, 76229c1, 296acd0

Copy link

@spring-projects-issues spring-projects-issues commented Mar 21, 2016

Christoph Strobl commented

PartialUpdate should allow the following:

  • Update the HASH accoring to partially filled domain object.

  • Set single values via their property path.

    • Set single simple value (eg. String)
    • Set complex values with nested properties
    • Set whole set map structures
    • Set single element in map structure
    • Set whole list structure
    • Set single elememnt in list structure.
  • Remove single values via their property path.

    • Remove associated elements for lists
    • Remove associated elements for Maps
    • Remove properties of complex types.
  • Handle time to live

    • Update ttl when partially filled domain object defines a ttl or the ttl giving property is involved.
    • Update ttl when setting single value for the ttl property of the domain type.
    • Persist data if ttl property is remmoved
  • Update references to objects

  • Consider custom conversions when setting single path elements

  • Update secondary index structures

    • remove id from indexes for values that have been removed
    • remove and readd id from indexes for values that have been altered from old to new

Copy link

@spring-projects-issues spring-projects-issues commented Mar 24, 2016

Christoph Strobl commented

we also need to make sure that we remove existiting values when overriding List, Map and complex types.
Best approach seems to be using HSCAN reading and removing keys prior to insert

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
in: core type: enhancement
None yet

No branches or pull requests

2 participants