Append to CDT Map Entry or Nested List Operations

I’d like to kinda nest a (simple) list into a CDT Map and mainly perform two basic operations:

  1. Check if the Map contains an entry X (can do by now) and
  2. atomically append a small value Y to a cdt map entry X (create X, if not existing yet).

A simple byte-append would serve my use case, however having more list operations like pop would also come in handy. Even though I could implement this now, I’d have to solve concurrency issues which would not arise with an atomic operation at the table.

From @srini’s Roadmap talk at Aerospike User Summit 2019 I take away that AS wants to work on ‘nesting CDT ops’. Is it intended to support full cdt operations? To what nesting depth? I think being able to use CDT List OPs on a CDT Map Entries’ Bin and the other way around would serve most use cases.

"CDTMapBin": {
   "keyWithCDTListValue": [1,2,..] 
}

You’ll be able to call a List operation on a List, or a Map operation on a map, on an element nested at any depth. You will indicate a path to the element that needs to be correct, but otherwise no depth limit, as mentioned.

It’s scheduled for the next major release, which is 4.6, perhaps as soon as the first release of that branch, unless something delays it.

1 Like

This topic was automatically closed 6 days after the last reply. New replies are no longer allowed.

Nested CDT operations were released with Aerospike 4.6.0.4.