[PR] Error from set future [accumulo]

2024-04-08 Thread via GitHub


dlmarion opened a new pull request, #4442:
URL: https://github.com/apache/accumulo/pull/4442

   (no comment)


-- 
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.

To unsubscribe, e-mail: notifications-unsubscr...@accumulo.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



[I] Possible tablet refresh causes scan on metadata table to fail [accumulo]

2024-04-08 Thread via GitHub


dlmarion opened a new issue, #4441:
URL: https://github.com/apache/accumulo/issues/4441

   Stack trace below found in log during SplitMillion IT. The client in this 
case was scanning the metadata table and the tablet server hosting the metadata 
table logged this error. Around the same time the metadata table had compacted 
and a tablet metadata refresh operation occurred, which could be the cause of 
this.
   
   ```
   java.lang.IllegalStateException: Called next() when there is no top
   at 
org.apache.accumulo.core.iteratorsImpl.system.HeapIterator.next(HeapIterator.java:72)
 ~[classes/:?]
   at 
org.apache.accumulo.core.iterators.WrappingIterator.next(WrappingIterator.java:101)
 ~[classes/:?]
   at 
org.apache.accumulo.tserver.MemKeyConversionIterator.next(MemKeyConversionIterator.java:73)
 ~[classes/:?]
   at 
org.apache.accumulo.core.iteratorsImpl.system.SourceSwitchingIterator.readNext(SourceSwitchingIterator.java:179)
 ~[classes/:?]
   at 
org.apache.accumulo.core.iteratorsImpl.system.SourceSwitchingIterator.next(SourceSwitchingIterator.java:149)
 ~[classes/:?]
   at 
org.apache.accumulo.core.iterators.WrappingIterator.next(WrappingIterator.java:101)
 ~[classes/:?]
   at 
org.apache.accumulo.core.iterators.SkippingIterator.next(SkippingIterator.java:37)
 ~[classes/:?]
   at 
org.apache.accumulo.core.iterators.WrappingIterator.next(WrappingIterator.java:101)
 ~[classes/:?]
   at 
org.apache.accumulo.core.iteratorsImpl.system.HeapIterator.next(HeapIterator.java:75)
 ~[classes/:?]
   at 
org.apache.accumulo.core.iteratorsImpl.system.StatsIterator.next(StatsIterator.java:51)
 ~[classes/:?]
   at 
org.apache.accumulo.core.iteratorsImpl.system.DeletingIterator.next(DeletingIterator.java:65)
 ~[classes/:?]
   at 
org.apache.accumulo.core.iteratorsImpl.system.ColumnFamilySkippingIterator.consume(ColumnFamilySkippingIterator.java:66)
 ~[classes/:?]
   at 
org.apache.accumulo.core.iterators.ServerSkippingIterator.next(ServerSkippingIterator.java:46)
 ~[classes/:?]
   at 
org.apache.accumulo.core.iterators.ServerFilter.next(ServerFilter.java:51) 
~[classes/:?]
   at 
org.apache.accumulo.core.iterators.SynchronizedServerFilter.next(SynchronizedServerFilter.java:51)
 ~[classes/:?]
   at 
org.apache.accumulo.core.iterators.WrappingIterator.next(WrappingIterator.java:101)
 ~[classes/:?]
   at 
org.apache.accumulo.core.iterators.user.VersioningIterator.skipRowColumn(VersioningIterator.java:103)
 ~[classes/:?]
   at 
org.apache.accumulo.core.iterators.user.VersioningIterator.next(VersioningIterator.java:60)
 ~[classes/:?]
   at 
org.apache.accumulo.core.iterators.user.RowFilter.skipRows(RowFilter.java:118) 
~[classes/:?]
   at 
org.apache.accumulo.core.iterators.user.RowFilter.seek(RowFilter.java:191) 
~[classes/:?]
   at 
org.apache.accumulo.core.iteratorsImpl.system.SourceSwitchingIterator.readNext(SourceSwitchingIterator.java:165)
 ~[classes/:?]
   at 
org.apache.accumulo.core.iteratorsImpl.system.SourceSwitchingIterator.seek(SourceSwitchingIterator.java:237)
 ~[classes/:?]
   at 
org.apache.accumulo.tserver.tablet.TabletBase.nextBatch(TabletBase.java:280) 
~[classes/:?]
   ```
   
   


-- 
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.

To unsubscribe, e-mail: notifications-unsubscr...@accumulo.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



[PR] Add blog post for Compactor process memory testing [accumulo-website]

2024-04-08 Thread via GitHub


DomGarguilo opened a new pull request, #421:
URL: https://github.com/apache/accumulo-website/pull/421

   (no comment)


-- 
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.

To unsubscribe, e-mail: notifications-unsubscr...@accumulo.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



Re: [PR] verifies tablets are seen by compaction driver [accumulo]

2024-04-08 Thread via GitHub


keith-turner merged PR #4434:
URL: https://github.com/apache/accumulo/pull/4434


-- 
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.

To unsubscribe, e-mail: notifications-unsubscr...@accumulo.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



Re: [PR] conditionally removes tables scan files [accumulo]

2024-04-08 Thread via GitHub


keith-turner merged PR #4436:
URL: https://github.com/apache/accumulo/pull/4436


-- 
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.

To unsubscribe, e-mail: notifications-unsubscr...@accumulo.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



[jira] [Commented] (ACCUMULO-1703) Thrift generated code isn't properly checked for optional fields

2024-04-08 Thread Christopher Tubbs (Jira)


[ 
https://issues.apache.org/jira/browse/ACCUMULO-1703?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17834988#comment-17834988
 ] 

Christopher Tubbs commented on ACCUMULO-1703:
-

This can be fixed by the mandatory use of Thrift private members, as per 
https://github.com/apache/accumulo/pull/3405

> Thrift generated code isn't properly checked for optional fields
> 
>
> Key: ACCUMULO-1703
> URL: https://issues.apache.org/jira/browse/ACCUMULO-1703
> Project: Accumulo
>  Issue Type: Bug
>Reporter: Christopher Tubbs
>Priority: Minor
>
> In our thrift definition files, we declare some fields as optional. However, 
> we don't actually check to see if they are sent. This may be okay for 
> Objects, which we can check for null, but it won't work for checking optional 
> primitives.
> Example:
> ProxyServer.createBatchScanner() accepts a BatchScanOptions object, which has 
> the number of threads as an optional parameter. Instead of calling 
> opts.threads, we should check if opts.isSetThreads() is true, and then 
> retrieve it with opts.getThreads().
> This is an essential check for all optional arguments (non-optional args are 
> validated by the generated validate() method).
> The importance of the optional field is high, if we want to support RPC 
> compatibility across versions. As far as I know, this is one of the goals of 
> the client proxy. So, we must use the thrift features (such as the optional 
> flag) correctly.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Resolved] (ACCUMULO-1703) Thrift generated code isn't properly checked for optional fields

2024-04-08 Thread Christopher Tubbs (Jira)


 [ 
https://issues.apache.org/jira/browse/ACCUMULO-1703?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Christopher Tubbs resolved ACCUMULO-1703.
-
Resolution: Duplicate

> Thrift generated code isn't properly checked for optional fields
> 
>
> Key: ACCUMULO-1703
> URL: https://issues.apache.org/jira/browse/ACCUMULO-1703
> Project: Accumulo
>  Issue Type: Bug
>Reporter: Christopher Tubbs
>Priority: Minor
>
> In our thrift definition files, we declare some fields as optional. However, 
> we don't actually check to see if they are sent. This may be okay for 
> Objects, which we can check for null, but it won't work for checking optional 
> primitives.
> Example:
> ProxyServer.createBatchScanner() accepts a BatchScanOptions object, which has 
> the number of threads as an optional parameter. Instead of calling 
> opts.threads, we should check if opts.isSetThreads() is true, and then 
> retrieve it with opts.getThreads().
> This is an essential check for all optional arguments (non-optional args are 
> validated by the generated validate() method).
> The importance of the optional field is high, if we want to support RPC 
> compatibility across versions. As far as I know, this is one of the goals of 
> the client proxy. So, we must use the thrift features (such as the optional 
> flag) correctly.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Resolved] (ACCUMULO-3121) Add ability to watch configuration changes to API

2024-04-08 Thread Christopher Tubbs (Jira)


 [ 
https://issues.apache.org/jira/browse/ACCUMULO-3121?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Christopher Tubbs resolved ACCUMULO-3121.
-
Resolution: Abandoned

Closing old inactive issue; if this is still a problem, please create a new 
issue or pull request at https://github.com/apache/accumulo

> Add ability to watch configuration changes to API
> -
>
> Key: ACCUMULO-3121
> URL: https://issues.apache.org/jira/browse/ACCUMULO-3121
> Project: Accumulo
>  Issue Type: Improvement
>  Components: client
>Reporter: Christopher Tubbs
>Priority: Minor
>
> In ACCUMULO-2841, an improvement was proposed by [~vines] to have the ability 
> to watch certain configuration attributes.
> We currently don't support this in our API, but in theory, it's possible, 
> because we store these things in ZooKeeper, which does support watchers.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


Re: [PR] batches reading tablet metadata for refresh [accumulo]

2024-04-08 Thread via GitHub


keith-turner commented on code in PR #4439:
URL: https://github.com/apache/accumulo/pull/4439#discussion_r1556093180


##
server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/Tablet.java:
##
@@ -132,6 +132,7 @@ public class Tablet extends TabletBase {
   private final AtomicLong dataSourceDeletions = new AtomicLong(0);
 
   private volatile TabletMetadata latestMetadata;
+  private long refreshCount = 0;

Review Comment:
   I had not made that volatile because it was being read an written while a 
lock was held, so it did not need to be volatile.  The reason I was reading it 
with the lock held is because it was dependent on another variable and having 
two volatiles that depend on each other is really tricky and something I like 
to avoid.  Realized I could put both variables under a single volatile to 
remove this tricky part and allow reading safely outside of a lock.  Made that 
change in bb8ae31.  



-- 
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.

To unsubscribe, e-mail: notifications-unsubscr...@accumulo.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



[jira] [Resolved] (ACCUMULO-671) Create utility to re-initialize just ZooKeeper from existing Accumulo install

2024-04-08 Thread Christopher Tubbs (Jira)


 [ 
https://issues.apache.org/jira/browse/ACCUMULO-671?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Christopher Tubbs resolved ACCUMULO-671.

Resolution: Abandoned

Closing old inactive issue; if this is still a problem, please create a new 
issue or pull request at https://github.com/apache/accumulo

> Create utility to re-initialize just ZooKeeper from existing Accumulo install
> -
>
> Key: ACCUMULO-671
> URL: https://issues.apache.org/jira/browse/ACCUMULO-671
> Project: Accumulo
>  Issue Type: New Feature
>  Components: master
>Reporter: Krishmin Rai
>Priority: Minor
>
> In a case where ZooKeeper data is lost but the Accumulo footprint in HDFS 
> still exists, it would be nice to be able to properly re-initialize just 
> ZooKeeper (to the extent possible).
> See [mailing 
> list|http://mail-archives.apache.org/mod_mbox/accumulo-user/201207.mbox/%3CCAGUtCHrfNCApFb5iAVJX9R%3DuzwP5zT7FHw7zBrytMQwH1voJcw%40mail.gmail.com%3E]
>  for discussion



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Resolved] (ACCUMULO-463) use term cardinalities to optimize the AndIterator

2024-04-08 Thread Christopher Tubbs (Jira)


 [ 
https://issues.apache.org/jira/browse/ACCUMULO-463?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Christopher Tubbs resolved ACCUMULO-463.

Resolution: Abandoned

Closing old inactive issue; if this is still a problem, please create a new 
issue or pull request at https://github.com/apache/accumulo

> use term cardinalities to optimize the AndIterator
> --
>
> Key: ACCUMULO-463
> URL: https://issues.apache.org/jira/browse/ACCUMULO-463
> Project: Accumulo
>  Issue Type: Improvement
>  Components: wikisearch
>Reporter: Eric C. Newton
>Priority: Minor
>
> The wikisearch example stores term cardinalities as metadata, but does not 
> use the term frequency to determine the best initial seek term for 
> conjunctions.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Resolved] (ACCUMULO-1344) Shell gives erroneous error messages during long compaction

2024-04-08 Thread Christopher Tubbs (Jira)


 [ 
https://issues.apache.org/jira/browse/ACCUMULO-1344?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Christopher Tubbs resolved ACCUMULO-1344.
-
Resolution: Abandoned

Closing old inactive issue; if this is still a problem, please create a new 
issue or pull request at https://github.com/apache/accumulo

> Shell gives erroneous error messages during long compaction
> ---
>
> Key: ACCUMULO-1344
> URL: https://issues.apache.org/jira/browse/ACCUMULO-1344
> Project: Accumulo
>  Issue Type: Bug
>  Components: shell
>Affects Versions: 1.4.2
>Reporter: Mike Drob
>Priority: Minor
>
> When waiting for a large compaction to finish that was kicked off in the 
> shell via {{compact -w}}, it may warn that {{Thread "shell" stuck on IO}} 
> after ten minutes.
> This warning may be misleading, as the compaction could be running just fine, 
> and simply running over a large table.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Resolved] (ACCUMULO-3088) StatsIterator readCounter could be more accurate

2024-04-08 Thread Christopher Tubbs (Jira)


 [ 
https://issues.apache.org/jira/browse/ACCUMULO-3088?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Christopher Tubbs resolved ACCUMULO-3088.
-
Resolution: Abandoned

Closing old inactive issue; if this is still a problem, please create a new 
issue or pull request at https://github.com/apache/accumulo

> StatsIterator readCounter could be more accurate
> 
>
> Key: ACCUMULO-3088
> URL: https://issues.apache.org/jira/browse/ACCUMULO-3088
> Project: Accumulo
>  Issue Type: Bug
>Reporter: Adam Fuchs
>Priority: Trivial
>  Labels: newbie
>
> When testing seek performance I noticed that the read count displayed on 
> Accumulo's monitor page registered zero entries read per second and a 
> positive number of entries per second returned. This should not be possible. 
> There is a fencepost error in the StatsIterator where seeks don't count as 
> entries read.
> Successful completion of this ticket should handle the cases where a seek 
> returns no entries, as well as where next is never called on an iterator.
> The cost of incrementing an AtomicLong is something like 10ns, which is at 
> least an order of magnitude more than the desired overhead. The current way 
> of batching updates to the read counter should be preserved for performance.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Resolved] (ACCUMULO-2953) Maxima in memory stress test are one less than configuration options

2024-04-08 Thread Christopher Tubbs (Jira)


 [ 
https://issues.apache.org/jira/browse/ACCUMULO-2953?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Christopher Tubbs resolved ACCUMULO-2953.
-
Resolution: Abandoned

Closing old inactive issue; if this is still a problem, please create a new 
issue or pull request at https://github.com/apache/accumulo

> Maxima in memory stress test are one less than configuration options
> 
>
> Key: ACCUMULO-2953
> URL: https://issues.apache.org/jira/browse/ACCUMULO-2953
> Project: Accumulo
>  Issue Type: Test
>  Components: test
>Reporter: Bill Havanki
>Priority: Trivial
>  Labels: boundary, test
>
> The {{RandomWithinRange}} class in the memory stress test takes care of 
> generating random integers across a range. The range is inclusive at the 
> beginning and exclusive at the end. That means that the maxima for various 
> test configuration options, such as key component and value lengths, are 
> actually one less than the option values. For example, with 
> --min-value-size=1 and --max-value-size=10, value lengths will range only 
> from 1 to 9.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Resolved] (ACCUMULO-2055) configure random walkers to send logs to the monitor

2024-04-08 Thread Christopher Tubbs (Jira)


 [ 
https://issues.apache.org/jira/browse/ACCUMULO-2055?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Christopher Tubbs resolved ACCUMULO-2055.
-
Resolution: Abandoned

Closing old inactive issue; if this is still a problem, please create a new 
issue or pull request at https://github.com/apache/accumulo

(Also, this should be easily doable with the latest monitor appender configured 
by default in our reference log4j config for servers)

> configure random walkers to send logs to the monitor
> 
>
> Key: ACCUMULO-2055
> URL: https://issues.apache.org/jira/browse/ACCUMULO-2055
> Project: Accumulo
>  Issue Type: Improvement
>  Components: test
>Reporter: Eric C. Newton
>Priority: Minor
>  Labels: newbie
>
> There's a bit of a hack to configure WARN/ERROR messages to a shared NFS file 
> system so that you can monitor all the walkers from one place.  However, if 
> you don't have a shared NFS, it's painful to monitor the logs distributed 
> throughout the cluster.  We already have a single place to watch the logs: 
> the monitor. 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Resolved] (ACCUMULO-4559) Create status API for Accumulo services

2024-04-08 Thread Christopher Tubbs (Jira)


 [ 
https://issues.apache.org/jira/browse/ACCUMULO-4559?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Christopher Tubbs resolved ACCUMULO-4559.
-
Resolution: Abandoned

Closing old inactive issue; if this is still a problem, please create a new 
issue or pull request at https://github.com/apache/accumulo

> Create status API for Accumulo services
> ---
>
> Key: ACCUMULO-4559
> URL: https://issues.apache.org/jira/browse/ACCUMULO-4559
> Project: Accumulo
>  Issue Type: Improvement
>  Components: gc, master, tserver
>Reporter: Luis Tavarez
>Priority: Minor
>
> Create a status API to the accumulo services, similar to the tservers status.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Resolved] (ACCUMULO-4493) Shell should be able to use keytab login

2024-04-08 Thread Christopher Tubbs (Jira)


 [ 
https://issues.apache.org/jira/browse/ACCUMULO-4493?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Christopher Tubbs resolved ACCUMULO-4493.
-
Resolution: Abandoned

Closing old inactive issue; if this is still a problem, please create a new 
issue or pull request at https://github.com/apache/accumulo

> Shell should be able to use keytab login
> 
>
> Key: ACCUMULO-4493
> URL: https://issues.apache.org/jira/browse/ACCUMULO-4493
> Project: Accumulo
>  Issue Type: New Feature
>  Components: shell
>Reporter: Sean Busbey
>Priority: Minor
>
> Users should be able to launch the shell in a kerberos deployment using a 
> keytab.
> current workaround: use the system shell to kinit with the keytab, then 
> launch the shell, then kdestroy
> Workaround doesn't allow re-login from keytab for long running shell.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Resolved] (ACCUMULO-4595) Simple validator for inserting data

2024-04-08 Thread Christopher Tubbs (Jira)


 [ 
https://issues.apache.org/jira/browse/ACCUMULO-4595?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Christopher Tubbs resolved ACCUMULO-4595.
-
Resolution: Abandoned

Closing old inactive issue; if this is still a problem, please create a new 
issue or pull request at https://github.com/apache/accumulo

> Simple validator for inserting data
> ---
>
> Key: ACCUMULO-4595
> URL: https://issues.apache.org/jira/browse/ACCUMULO-4595
> Project: Accumulo
>  Issue Type: New Feature
>Reporter: Michael Wall
>Priority: Minor
>
> It would be useful to be able to write custom validation for specific parts 
> of a Key or Value that could be applied to both mutations on live ingest and 
> writing RFiles for bulk loads.  Initially I thought this could be done with a 
> table constraint, but didn't consider the importdirectory use case where 
> RFiles are bulk imported.  This validation does not need to track state 
> though.  Thinking this is really only for simple validation.  Couple of 
> contrived examples.
> 1) Validate the CF starts with the string "abcd".
> 2) Validate the CV only contains strings from a predefined list of strings.
> 3) Validate the row only contains letters or numbers.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Resolved] (ACCUMULO-2596) Document failure mode around persistent version upgrades

2024-04-08 Thread Christopher Tubbs (Jira)


 [ 
https://issues.apache.org/jira/browse/ACCUMULO-2596?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Christopher Tubbs resolved ACCUMULO-2596.
-
Resolution: Abandoned

Closing old inactive issue; if this is still a problem, please create a new 
issue or pull request at https://github.com/apache/accumulo

> Document failure mode around persistent version upgrades
> 
>
> Key: ACCUMULO-2596
> URL: https://issues.apache.org/jira/browse/ACCUMULO-2596
> Project: Accumulo
>  Issue Type: Task
>  Components: docs, master
>Affects Versions: 1.4.5, 1.5.1, 1.6.0
>Reporter: Sean Busbey
>Priority: Minor
>  Labels: upgrade
>
> updateAccumuloVersion does a non-atomic update of the persisted version, and 
> getPersistentVersion relies on the ordering of the underlying fs/Volume to 
> determine which version to return.
> We should document what happens when there's a partial failure, improve 
> reporting in it to the operator, and document how to fix it.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Resolved] (ACCUMULO-2607) Add "list tables" flag to LogReader

2024-04-08 Thread Christopher Tubbs (Jira)


 [ 
https://issues.apache.org/jira/browse/ACCUMULO-2607?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Christopher Tubbs resolved ACCUMULO-2607.
-
Resolution: Abandoned

Closing old inactive issue; if this is still a problem, please create a new 
issue or pull request at https://github.com/apache/accumulo

> Add "list tables" flag to LogReader
> ---
>
> Key: ACCUMULO-2607
> URL: https://issues.apache.org/jira/browse/ACCUMULO-2607
> Project: Accumulo
>  Issue Type: Improvement
>  Components: logger
>Affects Versions: 1.4.5, 1.5.1, 1.6.0
>Reporter: Sean Busbey
>Priority: Minor
>  Labels: newbie
>
> Add a flag to LogReader that has it just print out the list of tables that 
> have entries in a passed WAL.
> I was doing an upgrade test for ACCUMULO-2519, and making sure I had WALs 
> needed to recover the !METADATA table would have been much easier with this.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Resolved] (ACCUMULO-2772) Bulk Import of incorrect RFile version should give error message that explains incompatibility

2024-04-08 Thread Christopher Tubbs (Jira)


 [ 
https://issues.apache.org/jira/browse/ACCUMULO-2772?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Christopher Tubbs resolved ACCUMULO-2772.
-
Resolution: Abandoned

Closing old inactive issue; if this is still a problem, please create a new 
issue or pull request at https://github.com/apache/accumulo

> Bulk Import of incorrect RFile version should give error message that 
> explains incompatibility
> --
>
> Key: ACCUMULO-2772
> URL: https://issues.apache.org/jira/browse/ACCUMULO-2772
> Project: Accumulo
>  Issue Type: Bug
>Affects Versions: 1.4.0, 1.5.0, 1.6.0
>Reporter: Sean Busbey
>Priority: Minor
>  Labels: error-feedback, logging
>
> In ACCUMULO-1079 this comment showed incorrect error handling
> {quote}
> David Medinets added a comment - 19 minutes ago
> ~[busbey] the error did not mention rfile version mismatch. There was no 
> error at the command line. The rfile was moved to the failures directory and 
> the 'unable to find tablets that overlap file' message was in the logs.
> {quote}
> We should make sure that we correctly report RFile mismatches during bulk 
> load attempts.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Resolved] (ACCUMULO-4560) Create status API for Master

2024-04-08 Thread Christopher Tubbs (Jira)


 [ 
https://issues.apache.org/jira/browse/ACCUMULO-4560?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Christopher Tubbs resolved ACCUMULO-4560.
-
Resolution: Abandoned

Closing old inactive issue; if this is still a problem, please create a new 
issue or pull request at https://github.com/apache/accumulo

> Create status API for Master
> 
>
> Key: ACCUMULO-4560
> URL: https://issues.apache.org/jira/browse/ACCUMULO-4560
> Project: Accumulo
>  Issue Type: Sub-task
>  Components: master
>Reporter: Luis Tavarez
>Priority: Minor
>
> Create status API for Master, to include Accumulo version of master.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Resolved] (ACCUMULO-1512) Provide example using KeyRangePartitioner

2024-04-08 Thread Christopher Tubbs (Jira)


 [ 
https://issues.apache.org/jira/browse/ACCUMULO-1512?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Christopher Tubbs resolved ACCUMULO-1512.
-
Resolution: Abandoned

Closing old inactive issue; if this is still a problem, please create a new 
issue or pull request at https://github.com/apache/accumulo

> Provide example using KeyRangePartitioner
> -
>
> Key: ACCUMULO-1512
> URL: https://issues.apache.org/jira/browse/ACCUMULO-1512
> Project: Accumulo
>  Issue Type: Improvement
>Affects Versions: 1.4.1, 1.5.0, 1.6.0
>Reporter: David Medinets
>Priority: Minor
>  Labels: Documentation
>
> The KeyRangePartitioner class lets mappers output Accumulo Key objects 
> instead of Text. 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Resolved] (ACCUMULO-1543) tablets without WALs can be loaded in parallel

2024-04-08 Thread Christopher Tubbs (Jira)


 [ 
https://issues.apache.org/jira/browse/ACCUMULO-1543?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Christopher Tubbs resolved ACCUMULO-1543.
-
Resolution: Duplicate

Closing as duplicate of https://github.com/apache/accumulo/pull/4429

> tablets without WALs can be loaded in parallel
> --
>
> Key: ACCUMULO-1543
> URL: https://issues.apache.org/jira/browse/ACCUMULO-1543
> Project: Accumulo
>  Issue Type: Improvement
>  Components: tserver
>Reporter: Eric C. Newton
>Priority: Major
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> Clean tablets can be loaded in parallel.  There are concerns that loading 
> tablets that require replay of mutations from WALs would require too much 
> memory (ACCUMULO-1085).  However, tablets that do not refer to WALs can be 
> loaded quickly.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


Re: [PR] updates bulk import and compaction logging [accumulo]

2024-04-08 Thread via GitHub


keith-turner commented on code in PR #4440:
URL: https://github.com/apache/accumulo/pull/4440#discussion_r1556033757


##
server/manager/src/main/java/org/apache/accumulo/manager/tableOps/bulkVer2/LoadFiles.java:
##
@@ -283,23 +293,25 @@ long finish() {
   results.values().stream().allMatch(result -> result.getStatus() == 
Status.ACCEPTED)
   && skipped == 0;
 
+  results.forEach((extent, condResult) -> {
+if (condResult.getStatus() == Status.ACCEPTED) {
+  loadingFiles.get(extent).forEach(file -> 
TabletLogger.bulkImported(extent, file));
+} else {
+  var metadata = condResult.readMetadata();
+  if (metadata == null) {
+log.debug("Tablet update failed, tablet is gone {} {} {}", fateId, 
extent,
+condResult.getStatus());
+  } else {
+log.debug("Tablet update failed {} {} {} {} {} {}", fateId, extent,
+condResult.getStatus(), metadata.getOperationId(), 
metadata.getLocation(),
+metadata.getLoaded());
+  }
+}
+  });
+

Review Comment:
   That is a nice improvement, updated in 48b6c83



-- 
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.

To unsubscribe, e-mail: notifications-unsubscr...@accumulo.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



Re: [PR] Stop tracking last compactor check-in for non-existent groups [accumulo]

2024-04-08 Thread via GitHub


dlmarion commented on PR #4403:
URL: https://github.com/apache/accumulo/pull/4403#issuecomment-2043033672

   I believe this is complete, just waiting on some changes from @ddanielr that 
have to do with the compaction configuration changes.


-- 
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.

To unsubscribe, e-mail: notifications-unsubscr...@accumulo.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



Re: [PR] Modified removeUnusedWALEntries to use conditional mutations [accumulo]

2024-04-08 Thread via GitHub


dlmarion merged PR #4404:
URL: https://github.com/apache/accumulo/pull/4404


-- 
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.

To unsubscribe, e-mail: notifications-unsubscr...@accumulo.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



Re: [PR] updates bulk import and compaction logging [accumulo]

2024-04-08 Thread via GitHub


dlmarion commented on code in PR #4440:
URL: https://github.com/apache/accumulo/pull/4440#discussion_r1555795715


##
server/manager/src/main/java/org/apache/accumulo/manager/tableOps/bulkVer2/LoadFiles.java:
##
@@ -283,23 +293,25 @@ long finish() {
   results.values().stream().allMatch(result -> result.getStatus() == 
Status.ACCEPTED)
   && skipped == 0;
 
+  results.forEach((extent, condResult) -> {
+if (condResult.getStatus() == Status.ACCEPTED) {
+  loadingFiles.get(extent).forEach(file -> 
TabletLogger.bulkImported(extent, file));
+} else {
+  var metadata = condResult.readMetadata();
+  if (metadata == null) {
+log.debug("Tablet update failed, tablet is gone {} {} {}", fateId, 
extent,
+condResult.getStatus());
+  } else {
+log.debug("Tablet update failed {} {} {} {} {} {}", fateId, extent,
+condResult.getStatus(), metadata.getOperationId(), 
metadata.getLocation(),
+metadata.getLoaded());
+  }
+}
+  });
+

Review Comment:
   I think you could probably get rid of the `allDone` variable and associated 
stream operation by just setting an AtomicBoolean to `true` in the `else` 
clause of the conditional below. Then after checking all results, you could 
return 1000 if skipped != 0 or this new boolean is true.
   
   Something like:
   
   ```suggestion
 AtomicBoolean seenFailure = new AtomicBoolean(false);
 results.forEach((extent, condResult) -> {
   if (condResult.getStatus() == Status.ACCEPTED) {
 loadingFiles.get(extent).forEach(file -> 
TabletLogger.bulkImported(extent, file));
   } else {
 seenFailure.set(true);
 var metadata = condResult.readMetadata();
 if (metadata == null) {
   log.debug("Tablet update failed, tablet is gone {} {} {}", 
fateId, extent,
   condResult.getStatus());
 } else {
   log.debug("Tablet update failed {} {} {} {} {} {}", fateId, 
extent,
   condResult.getStatus(), metadata.getOperationId(), 
metadata.getLocation(),
   metadata.getLoaded());
 }
   }
 });
   
   if (seenFailure.get() || skipped != 0) {
 return 1000;
   } else {
 return 0;
   }
   ```



-- 
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.

To unsubscribe, e-mail: notifications-unsubscr...@accumulo.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



Re: [PR] batches reading tablet metadata for refresh [accumulo]

2024-04-08 Thread via GitHub


dlmarion commented on code in PR #4439:
URL: https://github.com/apache/accumulo/pull/4439#discussion_r1555734324


##
server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/Tablet.java:
##
@@ -132,6 +132,7 @@ public class Tablet extends TabletBase {
   private final AtomicLong dataSourceDeletions = new AtomicLong(0);
 
   private volatile TabletMetadata latestMetadata;
+  private long refreshCount = 0;

Review Comment:
   should this be volatile?



-- 
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.

To unsubscribe, e-mail: notifications-unsubscr...@accumulo.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



Re: [PR] catches exceptions and logs when planning compactions [accumulo]

2024-04-08 Thread via GitHub


dlmarion commented on code in PR #4435:
URL: https://github.com/apache/accumulo/pull/4435#discussion_r1555720798


##
server/base/src/main/java/org/apache/accumulo/server/compaction/CompactionJobGenerator.java:
##
@@ -87,42 +88,61 @@ public CompactionJobGenerator(PluginEnvironment env,
 unknownCompactionServiceErrorCache =
 
Caches.getInstance().createNewBuilder(CacheName.COMPACTION_SERVICE_UNKNOWN, 
false)
 .expireAfterWrite(5, TimeUnit.MINUTES).build();
+
+generateJobsErrorCache =
+
Caches.getInstance().createNewBuilder(CacheName.COMPACTION_SERVICE_UNKNOWN, 
false)
+.expireAfterWrite(5, TimeUnit.MINUTES).build();
+
   }
 
   public Collection generateJobs(TabletMetadata tablet, 
Set kinds) {
+try {
+  Collection systemJobs = Set.of();
 
-// ELASTICITY_TODO do not want user configured plugins to cause exceptions 
that prevents tablets
-// from being
-// assigned. So probably want to catch exceptions and log, but not too 
spammily OR some how
-// report something
-// back to the manager so it can log.
-
-Collection systemJobs = Set.of();
+  if (kinds.contains(CompactionKind.SYSTEM)) {
+CompactionServiceId serviceId = dispatch(CompactionKind.SYSTEM, 
tablet, Map.of());
+systemJobs = planCompactions(serviceId, CompactionKind.SYSTEM, tablet, 
Map.of());
+  }
 
-if (kinds.contains(CompactionKind.SYSTEM)) {
-  CompactionServiceId serviceId = dispatch(CompactionKind.SYSTEM, tablet, 
Map.of());
-  systemJobs = planCompactions(serviceId, CompactionKind.SYSTEM, tablet, 
Map.of());
-}
+  Collection userJobs = Set.of();
 
-Collection userJobs = Set.of();
+  if (kinds.contains(CompactionKind.USER) && tablet.getSelectedFiles() != 
null) {
+var hints = 
allExecutionHints.get(tablet.getSelectedFiles().getFateId());
+if (hints != null) {
+  CompactionServiceId serviceId = dispatch(CompactionKind.USER, 
tablet, hints);
+  userJobs = planCompactions(serviceId, CompactionKind.USER, tablet, 
hints);
+}
+  }
 
-if (kinds.contains(CompactionKind.USER) && tablet.getSelectedFiles() != 
null) {
-  var hints = allExecutionHints.get(tablet.getSelectedFiles().getFateId());
-  if (hints != null) {
-CompactionServiceId serviceId = dispatch(CompactionKind.USER, tablet, 
hints);
-userJobs = planCompactions(serviceId, CompactionKind.USER, tablet, 
hints);
+  if (userJobs.isEmpty()) {
+return systemJobs;
+  } else if (systemJobs.isEmpty()) {
+return userJobs;
+  } else {
+var all = new ArrayList(systemJobs.size() + 
userJobs.size());
+all.addAll(systemJobs);
+all.addAll(userJobs);
+return all;
+  }
+} catch (Exception e) {
+  // The same code that plans compactions also assigns tablets. The intent 
of this catch is
+  // mainly to defend against user plugins called here that throw an 
exception from negatively
+  // impacting tablet assignment.
+  String cacheKey = tablet.getTableId() + " " + e.getClass().getName();
+  // This check defends against every tablet in a table having the same 
problem and therefore
+  // generating an enormous amount of spam for the logs.
+  var last = generateJobsErrorCache.getIfPresent(cacheKey);

Review Comment:
   I think you might be able to just call `Cache.get(Key,Function)` here and 
`last` will be `null` if it doesn't exist.
   
   ```suggestion
 if (generateJobsErrorCache.get(cacheKey, () -> 
System.currentTimeMillis) == null) {
   ```



##
server/base/src/main/java/org/apache/accumulo/server/compaction/CompactionJobGenerator.java:
##
@@ -87,42 +88,61 @@ public CompactionJobGenerator(PluginEnvironment env,
 unknownCompactionServiceErrorCache =
 
Caches.getInstance().createNewBuilder(CacheName.COMPACTION_SERVICE_UNKNOWN, 
false)
 .expireAfterWrite(5, TimeUnit.MINUTES).build();
+
+generateJobsErrorCache =
+
Caches.getInstance().createNewBuilder(CacheName.COMPACTION_SERVICE_UNKNOWN, 
false)
+.expireAfterWrite(5, TimeUnit.MINUTES).build();
+
   }
 
   public Collection generateJobs(TabletMetadata tablet, 
Set kinds) {
+try {
+  Collection systemJobs = Set.of();
 
-// ELASTICITY_TODO do not want user configured plugins to cause exceptions 
that prevents tablets
-// from being
-// assigned. So probably want to catch exceptions and log, but not too 
spammily OR some how
-// report something
-// back to the manager so it can log.
-
-Collection systemJobs = Set.of();
+  if (kinds.contains(CompactionKind.SYSTEM)) {
+CompactionServiceId serviceId = dispatch(CompactionKind.SYSTEM, 
tablet, Map.of());
+systemJobs = planCompactions(serviceId, CompactionKind.SYSTEM, tablet, 
Map.of());
+  }
 
-if (kinds.contains(CompactionKind.SYSTEM)) {
-  CompactionServiceId