Skip to content

Instantly share code, notes, and snippets.

View busbey's full-sized avatar

Sean Busbey busbey

  • Champaign, IL USA
View GitHub Profile
-bash-4.1$ $ACCUMULO_HOME/bin/accumulo classpath
Level 1: Java System Classloader (loads Java system resources) URL classpath items are:
file:/usr/java/jdk1.6.0_31/jre/lib/ext/sunjce_provider.jar
file:/usr/java/jdk1.6.0_31/jre/lib/ext/localedata.jar
file:/usr/java/jdk1.6.0_31/jre/lib/ext/sunpkcs11.jar
file:/usr/java/jdk1.6.0_31/jre/lib/ext/dnsns.jar
Level 2: Java Classloader (loads everything defined by java classpath) URL classpath items are:
file:/etc/accumulo/continuous/
file:/usr/lib/accumulo-1.5.1-rc1/lib/accumulo-start.jar
[accumulo@localhost accumulo]$ bin/accumulo version
1.4.3-cdh4.3.0
[accumulo@localhost accumulo]$ bin/accumulo classpath
Accumulo List of classpath items are:
file:/usr/lib/accumulo/lib/commons-jci-fam-1.0.jar
file:/usr/lib/accumulo/lib/commons-jci-core-1.0.jar
file:/usr/lib/accumulo/lib/accumulo-core-1.4.3-cdh4.3.0.jar
file:/usr/lib/accumulo/lib/examples-simple-1.4.3-cdh4.3.0.jar
file:/usr/lib/accumulo/lib/commons-collections-3.2.jar
file:/usr/lib/accumulo/lib/accumulo-start-1.4.3-cdh4.3.0.jar
[alias]
hist = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr)%Creset' --abbrev-commit --date=relative
oldest-ancestor = !zsh -c 'diff --old-line-format='' --new-line-format='' <(git rev-list --first-parent "${1:-master}") <(git rev-list --first-parent "${2:-HEAD}") | head -1' -
[core]
editor = /usr/bin/vim

In order to increase the likelihood that our planned WAL interfaces make sense, I'll try to step through how we get from the current APIs to the new ones and how we build on them to make the other WAL improvements we have planned. At the moment, I'd like this to be branch-1 / master.

Step 1, clean up WAL interface (HBASE-10378 / (HBASE-8610)

Current interface/class relationship in 0.98 / branch-1 / master

HLog <-- is_a -- FSHLog
@busbey
busbey / Version Numbers.md
Last active August 29, 2015 14:21
YCSB #236

The YCSB project uses the version numbers on our releases to set expectations about the impact of upgrading for downstream users. Each release will have a version number that looks like x.y.z. Starting with version 1.0.0, these numbers map directly to:

  • Major version x: incremented when pre-existing custom Workloads or Database bindings would break JVM Binary Compatibility. incremented when a change in how statistics are gathered or presented would impact performance analysis.
  • Minor version y: incremented when new Workloads or Database bindings are added. incremented when we add to the statistics gathered or the means to present them.
  • Patch version z: incremented when backwards and forwards compatible bug fixes are made.

Note that prior to version 1.0.0, minor version increments may introduce changes normally reserved for major versions.

Even when using the same major version, remember that YCSB is best suited for comparing sy

@busbey
busbey / Table.javap
Created July 2, 2015 17:45
HBase Table class output for javap
Classfile /Users/busbey/projects/hbase-priority/hbase-shaded/hbase-shaded-client/target/org/apache/hadoop/hbase/client/Table.class
Last modified Jul 2, 2015; size 6712 bytes
MD5 checksum 67a1591fb1a821d095f89d5e62f2cb3d
Compiled from "Table.java"
public interface org.apache.hadoop.hbase.client.Table extends java.io.Closeable
SourceFile: "Table.java"
InnerClasses:
public static #14= #11 of #13; //Callback=class org/apache/hadoop/hbase/client/coprocessor/Batch$Callback of class org/apache/hadoop/hbase/client/coprocessor/Batch
public static final #19= #16 of #18; //CompareOp=class org/apache/hadoop/hbase/filter/CompareFilter$CompareOp of class org/apache/hadoop/hbase/filter/CompareFilter
public static #22= #21 of #13; //Call=class org/apache/hadoop/hbase/client/coprocessor/Batch$Call of class org/apache/hadoop/hbase/client/coprocessor/Batch
@busbey
busbey / Prerequisites for Windows.md
Last active August 29, 2015 14:24
Proposed "Prerequisites for Windows" documentation

YCSB is made to run on Windows systems given some additional software. The following instructions are broken into sections based on running from an existing release and building from the source. Users are encouraged to rely on published releases where possible.

Running from a release

These instructions cover running the YCSB client on your Windows machine. It does not cover any steps needed to run any datastore instances you may wish to evaluate. Please see the documentation for a given datastore to see what steps are needed to run an instance on Windows.

Needed software

Java Runtime Environment

@busbey
busbey / different_commiters.sh
Last active October 29, 2015 05:27
"how often is a commit pushed by a different person?"
#!/bin/bash
# "how often is a commit pushed by a different person?"
# or at the least, a different email address.
#
# by convention in RtC projects, git workflows for committers often end up looking like:
# * post patch to jira/reviewboard/phabricator/gerrit
# * other committer +1s
# * committer pushes commit to repo
#
# by contrast, for a non-committer is looks like:
#!/usr/bin/env python
# Copyright 2015 Cloudera. all rights reserved
#
# Cloudera, Inc. licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
@busbey
busbey / run_ycsb_with_htrace.sh
Created December 14, 2015 15:46
ycsb helper with htraced tracing.
#!/bin/bash
# Copyright (c) 2015 Cloudera, Inc. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you
# may not use this file except in compliance with the License. You
# may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software