Aerospike:如何将LLIST用作LSTACK

Aerospike:如何将LLIST用作LSTACK,aerospike,Aerospike,我目前正在使用Aerospike 3.7.3。LSTACK被大量使用,并希望迁移到LLIST。请澄清我以下的疑问 如何在不影响键的情况下将数据从LSTACK迁移到LLIST。或者在不影响使用它的客户的情况下以其他方式 如何使用LLIST实现LSTACK的功能。我目前正在使用python客户端2.x Aerospike的LLIST API现在已被弃用,并且有一个本机列表 数据类型可用 迁移数据: LLIST具有不同的API和控制结构,因此您需要为每个记录迁移数据。最快的是在服务器上运行的简单Lu

我目前正在使用Aerospike 3.7.3。LSTACK被大量使用,并希望迁移到LLIST。请澄清我以下的疑问

  • 如何在不影响键的情况下将数据从LSTACK迁移到LLIST。或者在不影响使用它的客户的情况下以其他方式

  • 如何使用LLIST实现LSTACK的功能。我目前正在使用python客户端2.x

  • Aerospike的LLIST API现在已被弃用,并且有一个本机
    列表
    数据类型可用

    迁移数据:

    LLIST具有不同的API和控制结构,因此您需要为每个记录迁移数据。最快的是在服务器上运行的简单Lua脚本,它只读取所有堆栈项,并使用下面的逻辑将它们复制到列表中

    实现堆栈:

    LListAPI实际上已经在服务器上实现为Lua函数,因此您可以编写自己的Lua代码来包装这些函数,并在LLIST之上实现堆栈逻辑。然后从客户机驱动程序调用这些Lua函数。这将同样快,并保持记录的写锁定,因此操作是原子的

    基本逻辑是使用LLIST作为堆栈项的持有者,并使用记录上的另一个bin来保存一个索引号,该索引号保持列表中项数的位置(或计数)

    • 按-将项目添加到列表中。增加索引编号

    • POP-查找索引编号。减少这个数字。退货 在列表的查找值位置


    以下是Aerospike工程团队成员提供的有关在LLIST顶部构建堆栈、队列或地图的更多信息和代码示例:

    Aerospike的LLIST API现在已被弃用,并且有一个本机
    列表
    数据类型可用

    迁移数据:

    LLIST具有不同的API和控制结构,因此您需要为每个记录迁移数据。最快的是在服务器上运行的简单Lua脚本,它只读取所有堆栈项,并使用下面的逻辑将它们复制到列表中

    实现堆栈:

    LListAPI实际上已经在服务器上实现为Lua函数,因此您可以编写自己的Lua代码来包装这些函数,并在LLIST之上实现堆栈逻辑。然后从客户机驱动程序调用这些Lua函数。这将同样快,并保持记录的写锁定,因此操作是原子的

    基本逻辑是使用LLIST作为堆栈项的持有者,并使用记录上的另一个bin来保存一个索引号,该索引号保持列表中项数的位置(或计数)

    • 按-将项目添加到列表中。增加索引编号

    • POP-查找索引编号。减少这个数字。退货 在列表的查找值位置


    以下是Aerospike工程团队成员提供的有关在LLIST顶部构建堆栈、队列或地图的更多信息和代码示例:


    回答得好。我的问题是,我在Aerospike中存储了大约100G的数据,供多个客户24小时使用。我需要在不影响操作的情况下执行从LSTACK到LLIST的迁移。如果你能提出一个正确的方法来处理我的问题,那就太好了。没有简单的方法可以解决这个问题。需要更新客户机以使用您编写的自定义Lua函数来维护位于LLIST之上的堆栈。您可以使用bin来通知记录是否已更新,然后客户机可以检查并使用适当的方法(旧的堆栈api或新的Lua函数)。这意味着首先更新客户机代码,然后运行一个迁移脚本,该脚本遍历所有数据并设置这个特殊的bin值。完成后,您可以再次更新客户端逻辑并删除此bin。非常感谢Mani Gandham。这符合我的目的,回答得很好。我的问题是,我在Aerospike中存储了大约100G的数据,供多个客户24小时使用。我需要在不影响操作的情况下执行从LSTACK到LLIST的迁移。如果你能提出一个正确的方法来处理我的问题,那就太好了。没有简单的方法可以解决这个问题。需要更新客户机以使用您编写的自定义Lua函数来维护位于LLIST之上的堆栈。您可以使用bin来通知记录是否已更新,然后客户机可以检查并使用适当的方法(旧的堆栈api或新的Lua函数)。这意味着首先更新客户机代码,然后运行一个迁移脚本,该脚本遍历所有数据并设置这个特殊的bin值。完成后,您可以再次更新客户端逻辑并删除此bin。非常感谢Mani Gandham。这符合我的目的