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

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

Comments

@spring-projects-issues
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

@spring-projects-issues
Copy link
Author

@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

@spring-projects-issues
Copy link
Author

@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
Labels
in: core type: enhancement
Projects
None yet
Development

No branches or pull requests

2 participants