[ 
https://issues.apache.org/jira/browse/GOBBLIN-880?focusedWorklogId=312348&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-312348
 ]

ASF GitHub Bot logged work on GOBBLIN-880:
------------------------------------------

                Author: ASF GitHub Bot
            Created on: 13/Sep/19 21:14
            Start Date: 13/Sep/19 21:14
    Worklog Time Spent: 10m 
      Work Description: menarguez commented on pull request #2734: GOBBLIN-880 
Bump CouchbaseWriter Couchbase SDK version + write docs +…
URL: https://github.com/apache/incubator-gobblin/pull/2734
 
 
   
   ### JIRA
   - [ ] My PR addresses the following [Gobblin 
JIRA](https://issues.apache.org/jira/browse/GOBBLIN/) issues and references 
them in the PR title. For example, "[GOBBLIN-XXX] My Gobblin PR"
       - https://issues.apache.org/jira/browse/GOBBLIN-880
   
   
   ### Description
   - [ ] Here are some details about my PR, including screenshots (if 
applicable):
    Plese read https://issues.apache.org/jira/browse/GOBBLIN-880
   
   ### Tests
   - [ ] My PR adds the following unit tests __OR__ does not need testing for 
this extremely good reason:
    Added unit tests and tested to push data to a couchbase cluster though an 
azkaban job using hadoopJava and a snapshot of the library. Added log lines to 
verify expiration times are set correctly and tested pushing using cert based 
authentication. Please take a look at the following obfuscated data:
   
   `13-09-2019 12:42:11 PDT lss-seat-lead-history_gobblin-couchbase-push INFO - 
INFO Setting ttl timestamp 1569234590 for document 'key1' and data 
{"memberId":xxx,"targetId":xxx,"action":"xxx","requestId":"pvFbXpmKT7ytUn8WYBic8A==","time":1566642590043}
   13-09-2019 12:42:11 PDT lss-seat-lead-history_gobblin-couchbase-push INFO - 
INFO Setting ttl timestamp 1569013770 for document 'key2==' and data 
{"memberId":xxx,"targetId":xxx,"action":"xxx","requestId":"CtzzEq1rQ4qLXMT8zTD89w==","time":1566421770972}
   `
   and the records are on the bucket:
   `
   cbshell [ei-ltx1/lss-search-sales-seat-lead-activity]> get 
121084037038108585_91708167944609950_506_CtzzEq1rQ4qLXMT8zTD89w==
   {
     "action": "xxx",
     "memberId": xxx,
     "requestId": "CtzzEq1rQ4qLXMT8zTD89w==",
     "targetId": xxx,
     "time": 1566421770972
   }
   `
   
   ### Commits
   - [ ] My commits all reference JIRA issues in their subject lines, and I 
have squashed multiple commits if they address the same issue. In addition, my 
commits follow the guidelines from "[How to write a good git commit 
message](http://chris.beams.io/posts/git-commit/)":
       1. Subject is separated from body by a blank line
       2. Subject is limited to 50 characters
       3. Subject does not end with a period
       4. Subject uses the imperative mood ("add", not "adding")
       5. Body wraps at 72 characters
       6. Body explains "what" and "why", not "how"
   
   GOBBLIN-880 Bump CouchbaseWriter Couchbase SDK version + write docs +…
   
   … cert based auth + enable TTL + dnsSrv
   
   JIRA ticket: https://issues.apache.org/jira/browse/GOBBLIN-880
   RB Changes:
       1 - Added logic to connect using certificate based auth to the buckets 
(Will need to bump  com.couchbase.client:java-client to a newer version like 
2.7.6) and associated configs
       2 - TTL  implementation
         * Added configs to allow setting a TTL (documentTTL) and also specify 
the timeunits (documentTTLUnits) of these settings
         * Added logic to specify the path to key to the field containing the 
source timestamp (documentTTLOriginField) and its units 
(documentTTLOriginUnits) to disambiguate between UNIX (sec) timestamps and 
other formats like timestamps in milliseconds.
       3 - Added missing dnsSrv config
       4 - Written proper documentation on 
gobblin-docs/writers/CouchbaseWriter.md
       5 - Brought in CouchbaseMock from Gradle and adapt existing unit tests.
       6 - Added getTimeUnit to ConfigUtils + Unit tests
   
 
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Issue Time Tracking
-------------------

            Worklog Id:     (was: 312348)
    Remaining Estimate: 167h 50m  (was: 168h)
            Time Spent: 10m

> Bump CouchbaseWriter Couchbase SDK version + write docs + cert based auth + 
> enable TTL + dnsSrv
> -----------------------------------------------------------------------------------------------
>
>                 Key: GOBBLIN-880
>                 URL: https://issues.apache.org/jira/browse/GOBBLIN-880
>             Project: Apache Gobblin
>          Issue Type: Improvement
>          Components: gobblin-couchbase
>            Reporter: Michael A Menarguez
>            Assignee: Shirshanka Das
>            Priority: Major
>              Labels: Couchbase
>   Original Estimate: 168h
>          Time Spent: 10m
>  Remaining Estimate: 167h 50m
>
> h1. h1. CURRENT ISSUES
> Currently CouchbaseWriter.java lacks the ability to do the following:
>  # Use certificate based authentication
>  # Set document expiry (TTL)
>  ** based on write time
>  ** based on an offset specified field contained in the record's data (JSON)
>  ** (WILL NOT ADRESS) set expiry based on a field contained in the record's 
> data
>  # Set DNS SRV for bootstrap host discovery setting
>  # Missing documentation on CouchbaseWriter usage
>  # Testing does not bring in CouchbaseMock correctly and causes problems 
> while bumping com.couchbase.client:java-client
> h1. h1. PROPOSED SOLUTIONS
>  # Add logic to connect using certificate based auth to the buckets (Will 
> need to bump  com.couchbase.client:java-client to a newer version like 2.7.6) 
> and associated configs
>  # TTL implementation
>  ## Add configs to allow setting a TTL (documentTTL) and also specify the 
> timeunits (documentTTLUnits) of these settings
>  ## Add logic to specify the path to key to the field containing the source 
> timestamp (documentTTLOriginField) and its units (documentTTLOriginUnits) to 
> disambiguate between UNIX (sec) timestamps and other formats like timestamps 
> in milliseconds.
>  ## N/A but logic would be similar to (2)
>  # Add missing dnsSrv config
>  # Write proper documentation
>  # Bring in CouchbaseMock from Gradle and adapt existing unit tests.



--
This message was sent by Atlassian Jira
(v8.3.2#803003)

Reply via email to