I just realised that we can not even delete a parent node, if it has children. :(
On 16 Jun 2014, at 03:43 pm, Mudit Verma <[email protected]> wrote: > problem is, it is going to be a very very costly operation (using multi > transactions). A map may contain millions of entries. I first need to get the > data of all these entries, delete them and create them again under different > parent name. > > If we have a rename option, all I need to do is just rename the parent znode. > > Thanks > Mudit > On 16 Jun 2014, at 03:42 pm, Jordan Zimmerman <[email protected]> > wrote: > >> Yeah >> >> >> From: Camille Fournier [email protected] >> Reply: [email protected] [email protected] >> Date: June 16, 2014 at 8:42:19 AM >> To: [email protected] [email protected] >> Cc: Mudit Verma [email protected] >> Subject: Re: renaming a znode >> >>> Just to clarify you mean the multi API? >>> C >>> On Jun 16, 2014 9:40 AM, "Jordan Zimmerman" <[email protected]> >>> wrote: >>> >>> > You could use the transaction api to create a new node and delete the old >>> > node. >>> > >>> > -JZ >>> > >>> > >>> > From: Mudit Verma [email protected] >>> > Reply: [email protected] [email protected] >>> > Date: June 16, 2014 at 8:38:11 AM >>> > To: [email protected] [email protected] >>> > Subject: renaming a znode >>> > >>> > Hello People, >>> > >>> > Sorry for asking many questions these days. :) >>> > >>> > I am wondering if it is possible to rename a znode? I am building a >>> > distributed map on top of zookeeper for special needs. From time to time, >>> > I >>> > need to freeze the map without restricting write access to the map. >>> > >>> > I plan to do it by maintaining two maps: >>> > >>> > map_current >>> > map_frozen >>> > >>> > all the map entries are maintained as separate children znodes where key >>> > is the name of the child node and value is the value stored on the child >>> > node .. >>> > for example /map_current/entry1(kv) >>> > /map_current/entry2(kv) >>> > >>> > >>> > Now at some point of time, I need to iterate the map while still allowing >>> > write access by other clients. While I iterate, I don’t want other >>> > clients >>> > to see these entries. Once I process map_frozen entries I will delete >>> > them >>> > (I don’t need them anymore) by just deleting the parent node. >>> > >>> > I plan to rename existing map from map_current to map_frozen and create >>> > new map as map_current with empty data for further writes. Other clients >>> > will continue to write new entries in map_current .. so on so forth .. >>> > >>> > Any suggestions on how can I do it efficiently. >>> > >>> > Thanks >>> > Mudit >
