You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

HTTP API

  • POST:
    example:
  • DELETE:
    example

 

Internal Implementation:

  • For each shadow dataset foo, repeat the following process:
    1. create a new node group foo_<i> (where i= foo.rebalance_count + 1) that contains the current available nodes, if the node group has already been occupied, we let the new node group have name foo_<uuid>;

    2. create an uncommitted dataset foo (on node group foo_<i>) using node group foo_<i> with the same rebalance_count;

    3. drop any leftover files for the uncommitted dataset foo;

    4. upsert all documents from foo to foo (on node group foo_<i>) on all partitions;

     e.   update the metadata entity for dataset foo,  make the uncommitted foo become the committed foo in metadata;

     f.   drop files foo  (on node group foo_i-1) and drop node group foo_i-1

          

          There are three metadata transactions involved:

          -- metadata transaction 1:  a, b c; (read lock on foo)

          -- metadata transaction 2:  d (write lock on foo)

          -- metadata transaction 3:  e (write lock on node group foo_i-1)

 

           Read-only queries are only blocked by metadata transaction 2.


  • No labels