Jackrabbit Content Repository
  1. Jackrabbit Content Repository
  2. JCR-3534

Efficient copying of binaries across repositories with the same data store

    Details

      Description

      we have a couple of use cases, where we would like to leverage the global data store to prevent sending around and copying around large binary data unnecessarily: We have two separate Jackrabbit instances configured to use the same DataStore (for the sake of this discussion assume we have the problems of concurrent access and garbage collection under control). When sending content from one instance to the other instance we don't want to send potentially large binary data (e.g. video files) if not needed.

      The idea is for the sender to just send the content identity from JackrabbitValue.getContentIdentity(). The receiver would then check whether the such content already exists and would reuse if so:

      String ci = contentIdentity_from_sender;
      try

      { Value v = session.getValueByContentIdentity(ci); Property p = targetNode.setProperty(propName, v); }

      catch (ItemNotFoundException ie)

      { // unknown or invalid content Identity }

      catch (RepositoryException re)

      { // some other exception }

      Thus the proposed JackrabbitSession.getValueByContentIdentity(String) method would allow for round tripping the JackrabbitValue.getContentIdentity() preventing superfluous binary data copying and moving.

      See also the dev@ thread http://jackrabbit.markmail.org/thread/gedk5jsrp6offkhi

      1. JCR-3534.patch
        12 kB
        Felix Meschberger
      2. JCR-3534.patch
        24 kB
        Tommaso Teofili
      3. JCR-3534.2.patch
        25 kB
        Tommaso Teofili
      4. JCR-3534.3.patch
        32 kB
        Tommaso Teofili
      5. JCR-3534.4.patch
        24 kB
        Tommaso Teofili
      6. JCR-3534.6.patch
        2 kB
        Tommaso Teofili
      7. JCR-3534.7.patch
        10 kB
        Tommaso Teofili
      8. JCR-3534.26.patch
        27 kB
        Tommaso Teofili

        Issue Links

          Activity

          Marius Petria made changes -
          Link This issue is related to JCRVLT-97 [ JCRVLT-97 ]
          Alex Parvulescu made changes -
          Status Resolved [ 5 ] Closed [ 6 ]
          Jukka Zitting made changes -
          Status Open [ 1 ] Resolved [ 5 ]
          Resolution Fixed [ 1 ]
          Tommaso Teofili made changes -
          Attachment JCR-3534.26.patch [ 12583982 ]
          Jukka Zitting made changes -
          Fix Version/s 2.6.2 [ 12324421 ]
          Fix Version/s 2.7.1 [ 12324393 ]
          Tommaso Teofili made changes -
          Attachment JCR-3534.7.patch [ 12583628 ]
          Tommaso Teofili made changes -
          Attachment JCR-3534.6.patch [ 12583482 ]
          Tommaso Teofili made changes -
          Attachment JCR-3534.4.patch [ 12582290 ]
          Tommaso Teofili made changes -
          Attachment JCR-3534.3.patch [ 12582092 ]
          Tommaso Teofili made changes -
          Attachment JCR-3534.2.patch [ 12581865 ]
          Jukka Zitting made changes -
          Summary Add JackrabbitSession.getValueByContentId method Efficient copying of binaries across repositories with the same data store
          Tommaso Teofili made changes -
          Attachment JCR-3534.patch [ 12581702 ]
          Tommaso Teofili made changes -
          Assignee Tommaso Teofili [ teofili ]
          Amit Gupta made changes -
          Link This issue relates JCR-3448 [ JCR-3448 ]
          Amit Gupta made changes -
          Link This issue relates JCR-3448 [ JCR-3448 ]
          Felix Meschberger made changes -
          Link This issue is related to JCR-3448 [ JCR-3448 ]
          Felix Meschberger made changes -
          Affects Version/s 2.6 [ 12319480 ]
          Component/s jackrabbit-api [ 12310833 ]
          Component/s jackrabbit-core [ 12310114 ]
          Felix Meschberger made changes -
          Field Original Value New Value
          Attachment JCR-3534.patch [ 12573877 ]
          Felix Meschberger created issue -

            People

            • Assignee:
              Tommaso Teofili
              Reporter:
              Felix Meschberger
            • Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development