Publish first version of site.
Project: http://git-wip-us.apache.org/repos/asf/orc/repo Commit: http://git-wip-us.apache.org/repos/asf/orc/commit/6a400548 Tree: http://git-wip-us.apache.org/repos/asf/orc/tree/6a400548 Diff: http://git-wip-us.apache.org/repos/asf/orc/diff/6a400548 Branch: refs/heads/asf-site Commit: 6a4005483a2f42120aa5731ad6a20afeb3a96bd3 Parents: 9192d88 Author: Owen O'Malley <[email protected]> Authored: Tue May 12 20:42:25 2015 -0700 Committer: Owen O'Malley <[email protected]> Committed: Tue May 12 20:42:25 2015 -0700 ---------------------------------------------------------------------- css/screen.css | 1405 +++++++++++++++++++++ develop/coding.html | 184 +++ develop/index.html | 252 ++++ doap_orc.rdf | 55 + docs/acid.html | 1179 +++++++++++++++++ docs/compression.html | 1005 +++++++++++++++ docs/encodings.html | 1600 ++++++++++++++++++++++++ docs/file-tail.html | 1288 +++++++++++++++++++ docs/hive-config.html | 1184 ++++++++++++++++++ docs/hive-ddl.html | 998 +++++++++++++++ docs/index.html | 984 +++++++++++++++ docs/indexes.html | 989 +++++++++++++++ docs/run-length.html | 1377 ++++++++++++++++++++ docs/spec-index.html | 1108 ++++++++++++++++ docs/spec-intro.html | 993 +++++++++++++++ docs/stripes.html | 1066 ++++++++++++++++ docs/types.html | 1035 +++++++++++++++ downloads/index.html | 142 +++ favicon.ico | Bin 0 -> 1150 bytes fonts/fontawesome-webfont.eot | Bin 0 -> 56006 bytes fonts/fontawesome-webfont.svg | 520 ++++++++ fonts/fontawesome-webfont.ttf | Bin 0 -> 112160 bytes fonts/fontawesome-webfont.woff | Bin 0 -> 65452 bytes help/index.html | 167 +++ img/BloomFilter.png | Bin 0 -> 61887 bytes img/CompressionStream.png | Bin 0 -> 91623 bytes img/OrcFileLayout.png | Bin 0 -> 127908 bytes img/TreeWriters.png | Bin 0 -> 134465 bytes img/logo.png | Bin 0 -> 6950 bytes index.html | 157 ++- js/html5shiv.min.js | 4 + js/respond.min.js | 5 + news/2015/04/22/orc-as-tlp/index.html | 247 ++++ news/2015/05/11/new-committers/index.html | 223 ++++ news/index.html | 296 +++++ news/releases/index.html | 187 +++ talks/index.html | 193 +++ 37 files changed, 18838 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/orc/blob/6a400548/css/screen.css ---------------------------------------------------------------------- diff --git a/css/screen.css b/css/screen.css new file mode 100644 index 0000000..3870839 --- /dev/null +++ b/css/screen.css @@ -0,0 +1,1405 @@ +@charset "UTF-8"; +/*! normalize.css v3.0.2 | MIT License | git.io/normalize */ +html { + font-family: sans-serif; + -ms-text-size-adjust: 100%; + -webkit-text-size-adjust: 100%; } + +body { + margin: 0; } + +article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary { + display: block; } + +audio, canvas, progress, video { + display: inline-block; + vertical-align: baseline; } + +audio:not([controls]) { + display: none; + height: 0; } + +[hidden], template { + display: none; } + +a { + background-color: transparent; } + +a:active, a:hover { + outline: 0; } + +abbr[title] { + border-bottom: 1px dotted; } + +b, strong { + font-weight: 700; } + +dfn { + font-style: italic; } + +h1 { + font-size: 2em; + margin: .67em 0; } + +mark { + background: #ff0; + color: #000; } + +small { + font-size: 80%; } + +sub, sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; } + +sup { + top: -.5em; } + +sub { + bottom: -.25em; } + +img { + border: 0; } + +svg:not(:root) { + overflow: hidden; } + +figure { + margin: 1em 40px; } + +hr { + -moz-box-sizing: content-box; + box-sizing: content-box; + height: 0; } + +pre { + overflow: auto; } + +code, kbd, pre, samp { + font-family: monospace,monospace; + font-size: 1em; } + +button, input, optgroup, select, textarea { + color: inherit; + font: inherit; + margin: 0; } + +button { + overflow: visible; } + +button, select { + text-transform: none; } + +button, html input[type=button], input[type=reset], input[type=submit] { + -webkit-appearance: button; + cursor: pointer; } + +button[disabled], html input[disabled] { + cursor: default; } + +button::-moz-focus-inner, input::-moz-focus-inner { + border: 0; + padding: 0; } + +input { + line-height: normal; } + +input[type=checkbox], input[type=radio] { + box-sizing: border-box; + padding: 0; } + +input[type=number]::-webkit-inner-spin-button, input[type=number]::-webkit-outer-spin-button { + height: auto; } + +input[type=search] { + -webkit-appearance: textfield; + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; + box-sizing: content-box; } + +input[type=search]::-webkit-search-cancel-button, input[type=search]::-webkit-search-decoration { + -webkit-appearance: none; } + +fieldset { + border: 1px solid silver; + margin: 0 2px; + padding: .35em .625em .75em; } + +legend { + border: 0; + padding: 0; } + +textarea { + overflow: auto; } + +optgroup { + font-weight: 700; } + +table { + border-collapse: collapse; + border-spacing: 0; } + +td, th { + padding: 0; } + +/* + * Gridism + * A simple, responsive, and handy CSS grid by @cobyism + * https://github.com/cobyism/gridism + */ +/* Preserve some sanity */ +.grid, +.unit { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; } + +/* Set up some rules to govern the grid */ +.grid { + display: block; + clear: both; } + +.grid .unit { + float: left; + width: 100%; + padding: 10px; } + +/* This ensures the outer gutters are equal to the (doubled) inner gutters. */ +.grid .unit:first-child { + padding-left: 20px; } + +.grid .unit:last-child { + padding-right: 20px; } + +/* Nested grids already have padding though, so letâs nuke it */ +.unit .unit:first-child { + padding-left: 0; } + +.unit .unit:last-child { + padding-right: 0; } + +.unit .grid:first-child > .unit { + padding-top: 0; } + +.unit .grid:last-child > .unit { + padding-bottom: 0; } + +/* Let people nuke the gutters/padding completely in a couple of ways */ +.no-gutters .unit, +.unit.no-gutters { + padding: 0 !important; } + +/* Wrapping at a maximum width is optional */ +.wrap .grid, +.grid.wrap { + max-width: 978px; + margin: 0 auto; } + +/* Width classes also have shorthand versions numbered as fractions + * For example: for a grid unit 1/3 (one third) of the parent width, + * simply apply class="w-1-3" to the element. */ +.grid .whole, .grid .w-1-1 { + width: 100%; } + +.grid .half, .grid .w-1-2 { + width: 50%; } + +.grid .one-third, .grid .w-1-3 { + width: 33.3332%; } + +.grid .two-thirds, .grid .w-2-3 { + width: 66.6665%; } + +.grid .one-quarter, +.grid .one-fourth, .grid .w-1-4 { + width: 25%; } + +.grid .three-quarters, +.grid .three-fourths, .grid .w-3-4 { + width: 75%; } + +.grid .one-fifth, .grid .w-1-5 { + width: 20%; } + +.grid .two-fifths, .grid .w-2-5 { + width: 40%; } + +.grid .three-fifths, .grid .w-3-5 { + width: 60%; } + +.grid .four-fifths, .grid .w-4-5 { + width: 80%; } + +.grid .golden-small, .grid .w-g-s { + width: 38.2716%; } + +/* Golden section: smaller piece */ +.grid .golden-large, .grid .w-g-l { + width: 61.7283%; } + +/* Golden section: larger piece */ +/* Clearfix after every .grid */ +.grid { + *zoom: 1; } + +.grid:before, .grid:after { + display: table; + content: ""; + line-height: 0; } + +.grid:after { + clear: both; } + +/* Utility classes */ +.align-center { + text-align: center; } + +.align-left { + text-align: left; } + +.align-right { + text-align: right; } + +.pull-left { + float: left; } + +.pull-right { + float: right; } + +/* A property for a better rendering of images in units: in + this way bigger pictures are just resized if the unit + becomes smaller */ +.unit img { + max-width: 100%; } + +/* Responsive Stuff */ +@media screen and (max-width: 568px) { + /* Stack anything that isnât full-width on smaller screens + and doesn't provide the no-stacking-on-mobiles class */ + .grid:not(.no-stacking-on-mobiles) > .unit { + width: 100% !important; + padding-left: 20px; + padding-right: 20px; } + + .unit .grid .unit { + padding-left: 0px; + padding-right: 0px; } + + /* Sometimes, you just want to be different on small screens */ + .center-on-mobiles { + text-align: center !important; } + + .hide-on-mobiles { + display: none !important; } } +/* Expand the wrap a bit further on larger screens */ +@media screen and (min-width: 1180px) { + .wider .grid, + .grid.wider { + max-width: 1180px; + margin: 0 auto; } } +.highlight { + /* Comment */ + /* Error */ + /* Generic */ + /* Keyword */ + /* Literal */ + /* Name */ + /* Operator */ + /* Other */ + /* Punctuation */ + /* Comment.Multiline */ + /* Comment.Preproc */ + /* Comment.Single */ + /* Comment.Special */ + /* Generic.Deleted */ + /* Generic.Emph */ + /* Generic.Error */ + /* Generic.Heading */ + /* Generic.Inserted */ + /* Generic.Output, qualified with span to prevent applying this style to the Go language, see #1153. */ + /* Generic.Prompt */ + /* Generic.Strong */ + /* Generic.Subheading */ + /* Generic.Traceback */ + /* Keyword.Constant */ + /* Keyword.Declaration */ + /* Keyword.Namespace */ + /* Keyword.Pseudo */ + /* Keyword.Reserved */ + /* Keyword.Type */ + /* Literal.Date */ + /* Literal.Number */ + /* Literal.String */ + /* Name.Attribute */ + /* Name.Builtin */ + /* Name.Class */ + /* Name.Constant */ + /* Name.Decorator */ + /* Name.Entity */ + /* Name.Exception */ + /* Name.Function */ + /* Name.Label */ + /* Name.Namespace */ + /* Name.Other */ + /* Name.Property */ + /* Name.Tag */ + /* Name.Variable */ + /* Operator.Word */ + /* Text.Whitespace */ + /* Literal.Number.Float */ + /* Literal.Number.Hex */ + /* Literal.Number.Integer */ + /* Literal.Number.Oct */ + /* Literal.String.Backtick */ + /* Literal.String.Char */ + /* Literal.String.Doc */ + /* Literal.String.Double */ + /* Literal.String.Escape */ + /* Literal.String.Heredoc */ + /* Literal.String.Interpol */ + /* Literal.String.Other */ + /* Literal.String.Regex */ + /* Literal.String.Single */ + /* Literal.String.Symbol */ + /* Name.Builtin.Pseudo */ + /* Name.Variable.Class */ + /* Name.Variable.Global */ + /* Name.Variable.Instance */ + /* Literal.Number.Integer.Long */ } + .highlight .hll { + background-color: #ffffcc; } + .highlight .c { + color: #87ceeb; } + .highlight .err { + color: #ffffff; } + .highlight .g { + color: #ffffff; } + .highlight .k { + color: #f0e68c; } + .highlight .l { + color: #ffffff; } + .highlight .n { + color: #ffffff; } + .highlight .o { + color: #ffffff; } + .highlight .x { + color: #ffffff; } + .highlight .p { + color: #ffffff; } + .highlight .cm { + color: #87ceeb; } + .highlight .cp { + color: #cd5c5c; } + .highlight .c1 { + color: #87ceeb; } + .highlight .cs { + color: #87ceeb; } + .highlight .gd { + color: #0000c0; + font-weight: bold; + background-color: #008080; } + .highlight .ge { + color: #c000c0; + text-decoration: underline; } + .highlight .gr { + color: #c0c0c0; + font-weight: bold; + background-color: #c00000; } + .highlight .gh { + color: #cd5c5c; } + .highlight .gi { + color: #ffffff; + background-color: #0000c0; } + .highlight span.go { + color: #add8e6; + font-weight: bold; + background-color: #4d4d4d; } + .highlight .gp { + color: #ffffff; } + .highlight .gs { + color: #ffffff; } + .highlight .gu { + color: #cd5c5c; } + .highlight .gt { + color: #c0c0c0; + font-weight: bold; + background-color: #c00000; } + .highlight .kc { + color: #f0e68c; } + .highlight .kd { + color: #f0e68c; } + .highlight .kn { + color: #f0e68c; } + .highlight .kp { + color: #f0e68c; } + .highlight .kr { + color: #f0e68c; } + .highlight .kt { + color: #bdb76b; } + .highlight .ld { + color: #ffffff; } + .highlight .m { + color: #ffffff; } + .highlight .s { + color: #ffffff; } + .highlight .na { + color: #ffffff; } + .highlight .nb { + color: #ffffff; } + .highlight .nc { + color: #ffffff; } + .highlight .no { + color: #ffa0a0; } + .highlight .nd { + color: #ffffff; } + .highlight .ni { + color: #ffdead; } + .highlight .ne { + color: #ffffff; } + .highlight .nf { + color: #ffffff; } + .highlight .nl { + color: #ffffff; } + .highlight .nn { + color: #ffffff; } + .highlight .nx { + color: #ffffff; } + .highlight .py { + color: #ffffff; } + .highlight .nt { + color: #f0e68c; } + .highlight .nv { + color: #98fb98; } + .highlight .ow { + color: #ffffff; } + .highlight .w { + color: #ffffff; } + .highlight .mf { + color: #ffffff; } + .highlight .mh { + color: #ffffff; } + .highlight .mi { + color: #ffffff; } + .highlight .mo { + color: #ffffff; } + .highlight .sb { + color: #ffffff; } + .highlight .sc { + color: #ffffff; } + .highlight .sd { + color: #ffffff; } + .highlight .s2 { + color: #ffffff; } + .highlight .se { + color: #ffffff; } + .highlight .sh { + color: #ffffff; } + .highlight .si { + color: #ffffff; } + .highlight .sx { + color: #ffffff; } + .highlight .sr { + color: #ffffff; } + .highlight .s1 { + color: #ffffff; } + .highlight .ss { + color: #ffffff; } + .highlight .bp { + color: #ffffff; } + .highlight .vc { + color: #98fb98; } + .highlight .vg { + color: #98fb98; } + .highlight .vi { + color: #98fb98; } + .highlight .il { + color: #ffffff; } + .highlight .bash .nv { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + -o-user-select: none; + user-select: none; } + +/*! + * Font Awesome 4.2.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */ +@font-face { + font-family: 'FontAwesome'; + src: url("../fonts/fontawesome-webfont.eot?v=4.2.0"); + src: url("../fonts/fontawesome-webfont.eot?#iefix&v=4.2.0") format("embedded-opentype"), url("../fonts/fontawesome-webfont.woff?v=4.2.0") format("woff"), url("../fonts/fontawesome-webfont.ttf?v=4.2.0") format("truetype"), url("../fonts/fontawesome-webfont.svg?v=4.2.0#fontawesomeregular") format("svg"); + font-weight: normal; + font-style: normal; } +.fa { + display: inline-block; + font: normal normal normal 14px/1 FontAwesome; + font-size: inherit; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; } + +.fa-link:before { + content: "\f0c1"; } + +.fa-pencil:before { + content: "\f040"; } + +/* Base */ +* { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; } + +body { + font: 300 21px Lato, 'Helvetica Neue', Helvetica, Arial, sans-serif; + color: #ddd; + background-color: #333; + border-top: 5px solid #70c84c; + -webkit-box-shadow: inset 0 3px 30px rgba(0, 0, 0, 0.3); + -moz-box-shadow: inset 0 3px 30px rgba(0, 0, 0, 0.3); + box-shadow: inset 0 3px 30px rgba(0, 0, 0, 0.3); + text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5); + -webkit-font-feature-settings: "kern" 1; + -moz-font-feature-settings: "kern" 1; + -o-font-feature-settings: "kern" 1; + font-feature-settings: "kern" 1; + font-kerning: normal; } + +.clear { + display: block; } + +.clear:after { + content: " "; + display: block; + height: 0; + clear: both; + visibility: hidden; } + +/* Sections */ +header, +section, +footer { + float: left; + width: 100%; + clear: both; } + +/* Header */ +header h1, +header nav { + display: inline-block; } + +nav ul { + padding: 0; + margin: 0; } +nav li { + display: inline-block; } + +.main-nav { + margin-top: 52px; } + .main-nav li { + margin-right: 10px; } + .main-nav li a { + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; + font-weight: 900; + font-size: 14px; + padding: 0.5em 1em; + text-shadow: none; + text-transform: uppercase; + -webkit-transition: all 0.25s; + -moz-transition: all 0.25s; + -o-transition: all 0.25s; + transition: all 0.25s; } + .main-nav li a:hover { + background-color: #252525; + -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.5), 0 1px 0 rgba(255, 255, 255, 0.1); + -moz-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.5), 0 1px 0 rgba(255, 255, 255, 0.1); + box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.5), 0 1px 0 rgba(255, 255, 255, 0.1); + text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5); } + .main-nav li.current a { + background-color: #70c84c; + color: #222; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5), 0 1px 5px rgba(0, 0, 0, 0.5); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5), 0 1px 5px rgba(0, 0, 0, 0.5); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5), 0 1px 5px rgba(0, 0, 0, 0.5); + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.3); } + +.mobile-nav ul { + overflow: hidden; + width: 100%; + display: table; } +.mobile-nav a { + float: left; + width: 100%; + background-color: #333; + color: #70c84c; + text-align: center; + text-transform: uppercase; + font-size: 14px; + font-weight: 900; + padding: 5px; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; } +.mobile-nav li { + display: table-cell; + width: 20%; + padding: 8px 2px; } +.mobile-nav .current a { + background-color: #70c84c; + color: #222; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5), 0 1px 5px rgba(0, 0, 0, 0.5); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5), 0 1px 5px rgba(0, 0, 0, 0.5); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5), 0 1px 5px rgba(0, 0, 0, 0.5); + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.3); } + +/* + * This code is courtesy Ben Balter, modified by Parker Moore. + * http://ben.balter.com/2014/03/13/pages-anchor-links/ + */ +.header-link { + position: relative; + left: 0.5em; + opacity: 0; + font-size: 0.8em; + -webkit-transition: opacity 0.2s ease-in-out 0.1s; + -moz-transition: opacity 0.2s ease-in-out 0.1s; + -o-transition: opacity 0.2s ease-in-out 0.1s; + transition: opacity 0.2s ease-in-out 0.1s; } + +h2:hover .header-link, +h3:hover .header-link, +h4:hover .header-link, +h5:hover .header-link, +h6:hover .header-link { + opacity: 1; } + +@media (max-width: 768px) { + .main-nav ul { + text-align: right; } } +@media (max-width: 830px) { + .main-nav .show-on-mobiles { + display: inline; } + .main-nav .hide-on-mobiles { + display: none; } } +/* Footer */ +footer { + background-color: #212121; + font-size: 16px; + padding-bottom: 5px; + color: #c0c0c0; + margin-top: 40px; } + footer a { + color: #fff; } + footer a:hover img { + opacity: 1; } + footer .align-right p { + display: inline-block; } + footer img { + display: inline-block; + position: relative; + top: 8px; + margin-left: 5px; + opacity: .8; + padding: 1px; + -webkit-transition: opacity 0.2s; + -moz-transition: opacity 0.2s; + -o-transition: opacity 0.2s; + transition: opacity 0.2s; } + +@media (max-width: 568px) { + footer .one-third p { + margin-bottom: 0; } + footer .two-thirds p { + margin-top: -20px; } } +/* Intro */ +.intro .unit { + padding: 10px 0 40px; } +.intro p { + font-size: 1.75em; + line-height: 1em; + margin: 0; } + +@media (min-width: 569px) { + .intro p { + font-size: 3.2em; } } +/* Quickstart */ +.quickstart { + background-color: #3F1F1F; + color: #fff; + margin: 60px 0; + -webkit-box-shadow: inset 0 3px 10px rgba(0, 0, 0, 0.4); + -moz-box-shadow: inset 0 3px 10px rgba(0, 0, 0, 0.4); + box-shadow: inset 0 3px 10px rgba(0, 0, 0, 0.4); } + .quickstart .content { + padding: 0; } + .quickstart h3 { + font-size: 24px; + line-height: 24px; + margin-top: 20px; + text-shadow: 0 1px 3px rgba(0, 0, 0, 0.8); } + .quickstart .code { + font-size: 12px; + display: block; + margin: 0 0 -30px; } + +@media (min-width: 768px) { + .quickstart .code { + font-size: 18px; + margin: -30px 0; + float: right; } + .quickstart h3 { + margin: 50px 0 0; + text-align: center; } } +/* Code */ +.quickstart .code { + display: block; + padding: 0; + font-family: Menlo, Consolas, "Courier New", Courier, "Liberation Mono", monospace; + line-height: 1.3em; } + .quickstart .code .title { + display: block; + text-align: center; + margin: 0 20px; + padding: 5px 0; + -webkit-border-radius: 5px 5px 0 0; + -moz-border-radius: 5px 5px 0 0; + border-radius: 5px 5px 0 0; + -webkit-box-shadow: 0 3px 10px rgba(0, 0, 0, 0.5); + -moz-box-shadow: 0 3px 10px rgba(0, 0, 0, 0.5); + box-shadow: 0 3px 10px rgba(0, 0, 0, 0.5); + font: 400 16px/24px 'Helvetica Neue', Helvetica, Arial, sans-serif; + color: #444; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); + background-color: #f7f7f7; + background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2Y3ZjdmNyIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjclIiBzdG9wLWNvbG9yPSIjY2ZjZmNmIiBzdG9wLW9wYWNpdHk9IjEiLz4KICAgIDxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2FhYWFhYSIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgPC9saW5lYXJHcmFkaWVudD4KICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBmaWxsPSJ1cmwoI2dyYWQtdWNnZy1nZW5lcmF0ZWQpIiAvPgo8L3N2Zz4=); + background-image: -webkit-gradient(linear, left top, left bottom, from(#f7f7f7), color-stop(7%, #cfcfcf), to(#aaaaaa)); + background-image: -webkit-linear-gradient(top, #f7f7f7 0%, #cfcfcf 7%, #aaaaaa 100%); + background-image: -moz-linear-gradient(top, #f7f7f7 0%, #cfcfcf 7%, #aaaaaa 100%); + background-image: -o-linear-gradient(top, #f7f7f7 0%, #cfcfcf 7%, #aaaaaa 100%); + background-image: linear-gradient(top, #f7f7f7 0%, #cfcfcf 7%, #aaaaaa 100%); + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f7f7f7', endColorstr='#aaaaaa',GradientType=0 ); + border-bottom: 1px solid #111; } + .quickstart .code .shell { + padding: 20px; + text-shadow: none; + margin: 0 20px; + background-color: #171717; + -webkit-border-radius: 0 0 5px 5px; + -moz-border-radius: 0 0 5px 5px; + border-radius: 0 0 5px 5px; + -webkit-box-shadow: 0 5px 30px rgba(0, 0, 0, 0.3); + -moz-box-shadow: 0 5px 30px rgba(0, 0, 0, 0.3); + box-shadow: 0 5px 30px rgba(0, 0, 0, 0.3); } + .quickstart .code .line { + display: block; + margin: 0; + padding: 0; } + .quickstart .code .line span { + display: inline-block; } + .quickstart .code .path { + color: #87ceeb; + -webkit-user-select: none; + /* Chrome all / Safari all */ + -moz-user-select: none; + /* Firefox all */ + -ms-user-select: none; + /* IE 10+ */ + -o-user-select: none; + user-select: none; } + .quickstart .code .prompt { + color: #cd5c5c; + -webkit-user-select: none; + /* Chrome all / Safari all */ + -moz-user-select: none; + /* Firefox all */ + -ms-user-select: none; + /* IE 10+ */ + -o-user-select: none; + user-select: none; } + .quickstart .code .command { + color: #f0e68c; } + .quickstart .code .output { + color: #888; } + +@media (min-width: 768px) { + .free-hosting img { + float: left; + margin: -20px -30px -30px -50px; + width: 300px; + height: 251px; } + .free-hosting .pane-content { + margin-top: 35px; + padding-right: 30px; } + .free-hosting p, + .free-hosting a { + font-size: 18px; } + .free-hosting .pane:after { + content: " "; + float: right; + background: url(../img/footer-arrow.png) top left no-repeat; + width: 73px; + height: 186px; + position: absolute; + right: 0; + bottom: -30px; } } +/* Article - Used for both docs and news */ +article { + background-color: #444; + -webkit-border-radius: 10px; + -moz-border-radius: 10px; + border-radius: 10px; + padding: 20px; + margin: 0 10px; + -webkit-box-shadow: 0 3px 10px rgba(0, 0, 0, 0.1); + -moz-box-shadow: 0 3px 10px rgba(0, 0, 0, 0.1); + box-shadow: 0 3px 10px rgba(0, 0, 0, 0.1); + font-size: 16px; } + +@media (max-width: 480px) { + article ul { + padding-left: 20px; } } +@media (max-width: 568px) { + article { + margin: 0; } } +@media (min-width: 768px) { + article { + padding: 40px 40px 30px; + font-size: 21px; } } +/* Right-side nav - used by both docs and news */ +aside { + padding-top: 30px; } + aside h4 { + text-transform: uppercase; + font-size: 14px; + font-weight: 700; + padding: 0 0 10px 30px; + margin-left: -30px; + display: inline-block; + border-bottom: 1px solid #c00; } + aside ul { + padding-left: 0; } + aside ul:first-child { + margin-top: 0; } + aside li { + list-style-type: none; } + aside li a { + font-size: 16px; + position: relative; } + aside li.current a:before { + content: ""; + border-color: transparent transparent transparent #444; + border-style: solid; + border-width: 10px; + width: 0; + height: 0; + position: absolute; + top: 0; + left: -30px; } + +/* Documentation */ +.docs article { + min-height: 800px; } +.docs .content { + padding: 0; } + +.section-nav { + text-align: center; + padding-top: 40px; + position: relative; + background: url(../img/article-footer.png) top center no-repeat; + margin: 40px -20px 10px; } + .section-nav > div { + width: 49.5%; } + .section-nav a, + .section-nav span { + color: #fff; + font-size: 16px; + text-transform: uppercase; + font-weight: 700; + padding: 8px 12px 10px; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; + /*border: 1px solid #333;*/ + -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3), inset 0 1px 1px rgba(255, 255, 255, 0.5); + -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3), inset 0 1px 1px rgba(255, 255, 255, 0.5); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3), inset 0 1px 1px rgba(255, 255, 255, 0.5); + background-color: #767676; } + .section-nav a:hover { + color: #fff; + background-color: #888; } + .section-nav .next, + .section-nav .prev { + position: relative; } + .section-nav .next:after, + .section-nav .prev:before { + font-size: 36px; + color: #222; + font-weight: 900; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.4); + position: absolute; + top: -7px; } + .section-nav .next:after { + content: '\203A'; + right: 10px; } + .section-nav .prev:before { + content: '\2039'; + left: 10px; } + .section-nav .prev, + .section-nav .prev:hover { + padding-left: 30px; } + .section-nav .next, + .section-nav .next:hover { + padding-right: 30px; } + .section-nav .disabled { + opacity: .5; + cursor: default; } + +.improve { + padding-top: 25px; + font-size: 16px; } + .improve a { + color: #999; } + +.docs-nav-mobile select { + color: #000; + width: 100%; } + +/* News */ +article h2:first-child { + margin-top: 0; } + +.post-category, +.post-meta { + display: inline-block; + vertical-align: middle; + font-size: .8em; } + +.post-category { + display: inline-block; + margin-left: -30px; + padding: 6px 10px 8px; + padding-left: 50px; + -webkit-border-radius: 0 5px 5px 0; + -moz-border-radius: 0 5px 5px 0; + border-radius: 0 5px 5px 0; + position: relative; + -webkit-box-shadow: 0 1px 5px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.2), inset 0 -1px 0 rgba(0, 0, 0, 0.3); + -moz-box-shadow: 0 1px 5px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.2), inset 0 -1px 0 rgba(0, 0, 0, 0.3); + box-shadow: 0 1px 5px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.2), inset 0 -1px 0 rgba(0, 0, 0, 0.3); + background-color: #9e2812; + background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzllMjgxMiIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiM2ZjBkMGQiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+); + background-image: -webkit-gradient(linear, left top, left bottom, from(#9e2812), to(#6f0d0d)); + background-image: -webkit-linear-gradient(top, #9e2812 0%, #6f0d0d 100%); + background-image: -moz-linear-gradient(top, #9e2812 0%, #6f0d0d 100%); + background-image: -o-linear-gradient(top, #9e2812 0%, #6f0d0d 100%); + background-image: linear-gradient(to bottom, #9e2812 0%, #6f0d0d 100%); + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#9e2812', endColorstr='#6f0d0d',GradientType=0 ); } + .post-category:before { + content: ""; + position: absolute; + top: -10px; + left: 0; + border-color: transparent #6f0d0d #6f0d0d transparent; + border-style: solid; + border-width: 5px; + width: 0; + height: 0; } + +.post-content img { + max-width: 100%; } + +.label { + float: left; + text-transform: uppercase; + font-weight: 700; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.5); } + +@media (max-width: 568px) { + .post-category { + padding-left: 30px; } } +@media (min-width: 768px) { + .post-category { + margin-left: -50px; } } +.avatar { + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + display: inline-block; + vertical-align: middle; } + +.post-meta { + padding: 5px 0; + color: #c0c0c0; + font-weight: 600; + text-shadow: 0 -1px 0 #000; } + +.post-date, +.post-author { + margin-left: 10px; } + +.news article + article { + margin-top: -10px; + -webkit-border-radius: 0 0 10px 10px; + -moz-border-radius: 0 0 10px 10px; + border-radius: 0 0 10px 10px; + border-top: 1px solid #555; + -webkit-box-shadow: 0 -1px 0 #2f2f2f; + -moz-box-shadow: 0 -1px 0 #2f2f2f; + box-shadow: 0 -1px 0 #2f2f2f; } + +/* Code Highlighting */ +pre, +code { + white-space: pre; + display: inline-block; + margin: 0; + font: 14px/1.8em Menlo, Consolas, "Courier New", Courier, "Liberation Mono", monospace; + padding: 0 0.5em; } + +@media (min-width: 768px) { + pre, code { + font-size: 16px; } } +.highlight, +p > pre, +p > code, +p > nobr > code, +li > code, +h5 > code, +.note > code { + background-color: #2b2b2b; + color: #fff; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; + -webkit-box-shadow: inset 0 1px 10px rgba(0, 0, 0, 0.3), 0 1px 0 rgba(255, 255, 255, 0.1), 0 -1px 0 rgba(0, 0, 0, 0.5); + -moz-box-shadow: inset 0 1px 10px rgba(0, 0, 0, 0.3), 0 1px 0 rgba(255, 255, 255, 0.1), 0 -1px 0 rgba(0, 0, 0, 0.5); + box-shadow: inset 0 1px 10px rgba(0, 0, 0, 0.3), 0 1px 0 rgba(255, 255, 255, 0.1), 0 -1px 0 rgba(0, 0, 0, 0.5); } + +.note code { + background-color: #333; + background-color: rgba(0, 0, 0, 0.2); + margin-left: 2.5px; + margin-right: 2.5px; + font-size: 0.8em; } + +.highlight { + margin: 1em 0; + padding: 10px 0; + width: 100%; + overflow: auto; } + +/* HTML Elements */ +h1, h2, h3, h4, h5, h6 { + margin: 0; } + +a { + color: #70c84c; + text-decoration: none; + -webkit-transition: all 0.25s; + -moz-transition: all 0.25s; + -o-transition: all 0.25s; + transition: all 0.25s; } + a:hover { + color: #70c84c; } + +strong { + font-weight: 700; } + +p { + line-height: 1.5em; } + +.left { + float: left; } + +.right { + float: right; } + +.align-right { + text-align: right; } + +.align-left { + text-align: left; } + +.align-center { + text-align: center; } + +/* Article HTML */ +article h2, article h3, article h4, article h5, article h6 { + margin: 1em 0; } +article h4 { + color: #fff; } +article ul li p { + margin: 0; } +article ul li blockquote { + margin: 10px 0; } +article ul li, +article ol li { + line-height: 1.5em; + margin-bottom: 0.5em; } + +h5, h6 { + font-size: 1em; + font-style: italic; } + +blockquote { + border-left: 2px solid #777; + padding-left: 20px; + font-style: italic; + font-size: 18px; + font-weight: 500; } + +/* Tables */ +table { + width: 100%; + background-color: #555; + margin: .5em 0; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; + -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3); + -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3); } + +thead { + -webkit-border-top-left-radius: 5px; + -moz-border-radius-topleft: 5px; + border-top-left-radius: 5px; + -webkit-border-top-right-radius: 5px; + -moz-border-radius-topright: 5px; + border-top-right-radius: 5px; + color: #fff; + background-color: #3a3a3a; + background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzNhM2EzYSIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiMxZTFlMWUiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+); + background-image: -webkit-gradient(linear, left top, left bottom, from(#3a3a3a), to(#1e1e1e)); + background-image: -webkit-linear-gradient(top, #3a3a3a 0%, #1e1e1e 100%); + background-image: -moz-linear-gradient(top, #3a3a3a 0%, #1e1e1e 100%); + background-image: -o-linear-gradient(top, #3a3a3a 0%, #1e1e1e 100%); + background-image: linear-gradient(to bottom, #3a3a3a 0%, #1e1e1e 100%); + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#3a3a3a', endColorstr='#1e1e1e',GradientType=0 ); } + thead th { + position: relative; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); } + thead th:first-child { + -webkit-border-top-left-radius: 5px; + -moz-border-radius-topleft: 5px; + border-top-left-radius: 5px; } + thead th:last-child { + -webkit-border-top-right-radius: 5px; + -moz-border-radius-topright: 5px; + border-top-right-radius: 5px; } + +td { + padding: .5em .75em; } + +td p { + margin: 0; } + +th { + text-transform: uppercase; + font-size: 16px; + padding: .5em .75em; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.9); + color: #888; } + +tbody td { + border-top: 1px solid #747474; + border-top: 1px solid rgba(0, 0, 0, 0.1); + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); + background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2ZmZmZmZiIgc3RvcC1vcGFjaXR5PSIwLjEiLz4KICAgIDxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2ZmZmZmZiIgc3RvcC1vcGFjaXR5PSIwIi8+CiAgPC9saW5lYXJHcmFkaWVudD4KICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBmaWxsPSJ1cmwoI2dyYWQtdWNnZy1nZW5lcmF0ZWQpIiAvPgo8L3N2Zz4=); + background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0.1)), to(rgba(255, 255, 255, 0))); + background-image: -webkit-linear-gradient(top, rgba(255, 255, 255, 0.1) 0%, rgba(255, 255, 255, 0) 100%); + background-image: -moz-linear-gradient(top, rgba(255, 255, 255, 0.1) 0%, rgba(255, 255, 255, 0) 100%); + background-image: -o-linear-gradient(top, rgba(255, 255, 255, 0.1) 0%, rgba(255, 255, 255, 0) 100%); + background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.1) 0%, rgba(255, 255, 255, 0) 100%); + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#1affffff', endColorstr='#00ffffff',GradientType=0 ); } + tbody td p { + font-size: 16px; } + tbody td p code { + font-size: 14px; } + +code.option, +th .option, +code.filter, +th .filter { + color: #50B600; } + +code.flag, +th .flag, +code.output, +th .output { + color: #049DCE; } + +code.option, +code.flag, +code.filter, +code.output { + margin-bottom: 2px; } + +/* Note types */ +.note { + margin: 30px 0; + margin-left: -30px; + padding: 20px 20px 24px; + padding-left: 50px; + -webkit-border-radius: 0 5px 5px 0; + -moz-border-radius: 0 5px 5px 0; + border-radius: 0 5px 5px 0; + position: relative; + -webkit-box-shadow: 0 1px 5px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.2), inset 0 -1px 0 rgba(0, 0, 0, 0.3); + -moz-box-shadow: 0 1px 5px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.2), inset 0 -1px 0 rgba(0, 0, 0, 0.3); + box-shadow: 0 1px 5px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.2), inset 0 -1px 0 rgba(0, 0, 0, 0.3); + background-color: #7e6d42; + background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzdlNmQ0MiIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiM1YzRlMzUiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+); + background-image: -webkit-gradient(linear, left top, left bottom, from(#7e6d42), to(#5c4e35)); + background-image: -webkit-linear-gradient(top, #7e6d42 0%, #5c4e35 100%); + background-image: -moz-linear-gradient(top, #7e6d42 0%, #5c4e35 100%); + background-image: -o-linear-gradient(top, #7e6d42 0%, #5c4e35 100%); + background-image: linear-gradient(to bottom, #7e6d42 0%, #5c4e35 100%); + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#7e6d42', endColorstr='#5c4e35',GradientType=0 ); } + +@media (max-width: 568px) { + .note { + margin-right: -30px; } } +@media (min-width: 768px) { + .note { + margin-left: -50px; } } +.configtable { + font-size: 14px; } + +.note:before { + content: ""; + position: absolute; + top: -10px; + left: 0; + border-color: transparent #222 #222 transparent; + border-style: solid; + border-width: 5px; + width: 0; + height: 0; } +.note h5, +.note p { + margin: 0; + color: #fff; } +.note h5 { + line-height: 1.5em; + font-weight: 900; + font-style: normal; } +.note p { + font-weight: 400; + font-size: .75em; } +.note:after { + content: '\2605'; + color: #70c84c; + position: absolute; + top: 14px; + left: 14px; + font-size: 28px; + font-weight: 700; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.5); } + +.info { + background-color: #0389aa; + background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzAzODlhYSIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiMwMDYxN2YiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+); + background-image: -webkit-gradient(linear, left top, left bottom, from(#0389aa), to(#00617f)); + background-image: -webkit-linear-gradient(top, #0389aa 0%, #00617f 100%); + background-image: -moz-linear-gradient(top, #0389aa 0%, #00617f 100%); + background-image: -o-linear-gradient(top, #0389aa 0%, #00617f 100%); + background-image: linear-gradient(to bottom, #0389aa 0%, #00617f 100%); + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#0389aa', endColorstr='#00617f',GradientType=0 ); } + +.warning { + background-color: #9e2812; + background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzllMjgxMiIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiM2ZjBkMGQiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+); + background-image: -webkit-gradient(linear, left top, left bottom, from(#9e2812), to(#6f0d0d)); + background-image: -webkit-linear-gradient(top, #9e2812 0%, #6f0d0d 100%); + background-image: -moz-linear-gradient(top, #9e2812 0%, #6f0d0d 100%); + background-image: -o-linear-gradient(top, #9e2812 0%, #6f0d0d 100%); + background-image: linear-gradient(to bottom, #9e2812 0%, #6f0d0d 100%); + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#9e2812', endColorstr='#6f0d0d',GradientType=0 ); } + +.unreleased { + background-color: #cd9239; + background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2NkOTIzOSIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNhMjc1MjgiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+); + background-image: -webkit-gradient(linear, left top, left bottom, from(#cd9239), to(#a27528)); + background-image: -webkit-linear-gradient(top, #cd9239 0%, #a27528 100%); + background-image: -moz-linear-gradient(top, #cd9239 0%, #a27528 100%); + background-image: -o-linear-gradient(top, #cd9239 0%, #a27528 100%); + background-image: linear-gradient(to bottom, #cd9239 0%, #a27528 100%); + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#cd9239', endColorstr='#a27528',GradientType=0 ); } + +.info:before { + border-color: transparent #00617f #00617f transparent; } + +.warning:before { + border-color: transparent #6f0d0d #6f0d0d transparent; } + +.unreleased:before { + border-color: transparent #664719 #664719 transparent; } + +.info:after { + content: '\24D8'; + color: #fff; + position: absolute; + top: 15px; + left: 15px; + font-size: 28px; + font-weight: 700; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.5); } + +.warning:after { + content: '\203C'; + color: #70c84c; + position: absolute; + top: 15px; + left: 15px; + font-size: 32px; + font-weight: 700; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.5); } + +.unreleased:after { + content: '\2692'; + color: #2b2a12; + position: absolute; + top: 8px; + left: 15px; + font-size: 38px; + font-weight: 700; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.25); } + +/* Responsive tables */ +@media (max-width: 768px) { + .mobile-side-scroller { + overflow-x: scroll; + margin: 0 -40px; + padding: 0 10px; } } +.show-on-mobiles { + display: none; } + +@media screen and (max-width: 568px) { + .show-on-mobiles { + display: block !important; } + + a .show-on-mobiles { + display: inline !important; } } +/* Helper class taken from Bootstrap. + Hides an element to all devices except screen readers. +*/ +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + border: 0; } http://git-wip-us.apache.org/repos/asf/orc/blob/6a400548/develop/coding.html ---------------------------------------------------------------------- diff --git a/develop/coding.html b/develop/coding.html new file mode 100644 index 0000000..5efe34c --- /dev/null +++ b/develop/coding.html @@ -0,0 +1,184 @@ +<!DOCTYPE HTML> +<html lang="en-US"> +<head> + <meta charset="UTF-8"> + <title>Coding Guidelines</title> + <meta name="viewport" content="width=device-width,initial-scale=1"> + <meta name="generator" content="Jekyll v2.4.0"> + <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900"> + <link rel="stylesheet" href="/css/screen.css"> + <link rel="icon" type="image/x-icon" href="/favicon.ico"> + <!--[if lt IE 9]> + <script src="/js/html5shiv.min.js"></script> + <script src="/js/respond.min.js"></script> + <![endif]--> +</head> + + +<body class="wrap"> + <header role="banner"> + <nav class="mobile-nav show-on-mobiles"> + <ul> + <li class=""> + <a href="/">Home</a> + </li> + <li class=""> + <a href="/docs/">Documentation</a> + </li> + <li class=""> + <a href="/talks/">Talks</a> + </li> + <li class=""> + <a href="/news/">News</a> + </li> + <li class=""> + <a href="/help/">Help</a> + </li> + <li class="current"> + <a href="/develop/">Develop</a> + </li> +</ul> + + </nav> + <div class="grid"> + <div class="unit one-third center-on-mobiles"> + <h1> + <a href="/"> + <span class="sr-only">Apache ORC</span> + <img src="/img/logo.png" width="249" height="115" alt="ORC Logo"> + </a> + </h1> + </div> + <nav class="main-nav unit two-thirds hide-on-mobiles"> + <ul> + <li class=""> + <a href="/">Home</a> + </li> + <li class=""> + <a href="/docs/">Documentation</a> + </li> + <li class=""> + <a href="/talks/">Talks</a> + </li> + <li class=""> + <a href="/news/">News</a> + </li> + <li class=""> + <a href="/help/">Help</a> + </li> + <li class="current"> + <a href="/develop/">Develop</a> + </li> +</ul> + + </nav> + </div> +</header> + + + <section class="standalone"> + <div class="grid"> + + <div class="unit whole"> + <article> + <h1>Coding Guidelines</h1> + <h2 id="general-rules">General rules</h2> + +<ul> + <li>All files must have an Apache copyright header at the top of the file.</li> + <li>Code should be removed rather than commented out.</li> + <li>All public functions should have javadoc comments.</li> + <li>Always use braces to surround branches.</li> + <li>try-finally should be avoided.</li> +</ul> + +<h2 id="formatting">Formatting</h2> + +<ul> + <li>All files must have an 80 character maximum line length.</li> + <li>Indentation should be 2 spaces.</li> + <li>Files should use spaces instead of tabs.</li> + <li>Wrapping lines + <ul> + <li>Break after a comma.</li> + <li>Break before an operator.</li> + <li>Prefer higher-level breaks to lower-level breaks.</li> + <li>Align the new line with beginning of the expression at the same level +on the previous line.</li> + <li>If the above rules lead to confusing code, just indent 8 spaces.</li> + </ul> + </li> + <li>One variable declaration per a line.</li> +</ul> + +<h2 id="naming">Naming</h2> + +<ul> + <li>Packages should be all lowercase. + <ul> + <li>C++ code should be in <code>orc::</code>.</li> + <li>Java code should be in <code>org.apache.orc</code>, except for compatibility classes, +which should be in <code>org.apache.hadoop.hive.ql.io.orc</code>.</li> + </ul> + </li> + <li>Classes should be in mixed case.</li> + <li>Variables should be in camel case.</li> + <li>Constants should be in upper case.</li> +</ul> + + + </article> + </div> + + <div class="clear"></div> + + </div> +</section> + + + <footer role="contentinfo"> + <p>The contents of this website are © 2015 + <a href="https://www.apache.org/">Apache Software Foundation</a> + under the terms of the <a + href="https://www.apache.org/licenses/LICENSE-2.0.html"> + Apache License v2</a>. Apache ORC and its logo are trademarks + of the Apache Software Foundation.</p> +</footer> + + <script> + var anchorForId = function (id) { + var anchor = document.createElement("a"); + anchor.className = "header-link"; + anchor.href = "#" + id; + anchor.innerHTML = "<span class=\"sr-only\">Permalink</span><i class=\"fa fa-link\"></i>"; + anchor.title = "Permalink"; + return anchor; + }; + + var linkifyAnchors = function (level, containingElement) { + var headers = containingElement.getElementsByTagName("h" + level); + for (var h = 0; h < headers.length; h++) { + var header = headers[h]; + + if (typeof header.id !== "undefined" && header.id !== "") { + header.appendChild(anchorForId(header.id)); + } + } + }; + + document.onreadystatechange = function () { + if (this.readyState === "complete") { + var contentBlock = document.getElementsByClassName("docs")[0] || document.getElementsByClassName("news")[0]; + if (!contentBlock) { + return; + } + for (var level = 1; level <= 6; level++) { + linkifyAnchors(level, contentBlock); + } + } + }; +</script> + + +</body> +</html> http://git-wip-us.apache.org/repos/asf/orc/blob/6a400548/develop/index.html ---------------------------------------------------------------------- diff --git a/develop/index.html b/develop/index.html new file mode 100644 index 0000000..0fbbcec --- /dev/null +++ b/develop/index.html @@ -0,0 +1,252 @@ +<!DOCTYPE HTML> +<html lang="en-US"> +<head> + <meta charset="UTF-8"> + <title>Developing</title> + <meta name="viewport" content="width=device-width,initial-scale=1"> + <meta name="generator" content="Jekyll v2.4.0"> + <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900"> + <link rel="stylesheet" href="/css/screen.css"> + <link rel="icon" type="image/x-icon" href="/favicon.ico"> + <!--[if lt IE 9]> + <script src="/js/html5shiv.min.js"></script> + <script src="/js/respond.min.js"></script> + <![endif]--> +</head> + + +<body class="wrap"> + <header role="banner"> + <nav class="mobile-nav show-on-mobiles"> + <ul> + <li class=""> + <a href="/">Home</a> + </li> + <li class=""> + <a href="/docs/">Documentation</a> + </li> + <li class=""> + <a href="/talks/">Talks</a> + </li> + <li class=""> + <a href="/news/">News</a> + </li> + <li class=""> + <a href="/help/">Help</a> + </li> + <li class="current"> + <a href="/develop/">Develop</a> + </li> +</ul> + + </nav> + <div class="grid"> + <div class="unit one-third center-on-mobiles"> + <h1> + <a href="/"> + <span class="sr-only">Apache ORC</span> + <img src="/img/logo.png" width="249" height="115" alt="ORC Logo"> + </a> + </h1> + </div> + <nav class="main-nav unit two-thirds hide-on-mobiles"> + <ul> + <li class=""> + <a href="/">Home</a> + </li> + <li class=""> + <a href="/docs/">Documentation</a> + </li> + <li class=""> + <a href="/talks/">Talks</a> + </li> + <li class=""> + <a href="/news/">News</a> + </li> + <li class=""> + <a href="/help/">Help</a> + </li> + <li class="current"> + <a href="/develop/">Develop</a> + </li> +</ul> + + </nav> + </div> +</header> + + + <section class="standalone"> + <div class="grid"> + + <div class="unit whole"> + <article> + <h1>Developing</h1> + <p>Want to help add a feature or fix a bug?</p> + +<h2 id="project-members">Project Members</h2> + +<table> + <thead> + <tr> + <th style="text-align: left">Name</th> + <th style="text-align: left">Apache Id</th> + <th style="text-align: left">Role</th> + </tr> + </thead> + <tbody> + <tr> + <td style="text-align: left">Chris Douglas</td> + <td style="text-align: left">cdouglas</td> + <td style="text-align: left">PMC</td> + </tr> + <tr> + <td style="text-align: left">Alan Gates</td> + <td style="text-align: left">gates</td> + <td style="text-align: left">PMC</td> + </tr> + <tr> + <td style="text-align: left">Gunther Hagleitner</td> + <td style="text-align: left">gunther</td> + <td style="text-align: left">Committer</td> + </tr> + <tr> + <td style="text-align: left">Prasanth Jayachandran</td> + <td style="text-align: left">prasanthj</td> + <td style="text-align: left">PMC</td> + </tr> + <tr> + <td style="text-align: left">Lefty Leverenz</td> + <td style="text-align: left">leftyl</td> + <td style="text-align: left">PMC</td> + </tr> + <tr> + <td style="text-align: left">Owen OâMalley</td> + <td style="text-align: left">omalley</td> + <td style="text-align: left">PMC</td> + </tr> + <tr> + <td style="text-align: left">Aliaksei Sandryhaila</td> + <td style="text-align: left">?</td> + <td style="text-align: left">Committer</td> + </tr> + <tr> + <td style="text-align: left">Sergey Shelukhin</td> + <td style="text-align: left">sershe</td> + <td style="text-align: left">Committer</td> + </tr> + <tr> + <td style="text-align: left">Gopal Vijayaraghavan</td> + <td style="text-align: left">gopalv</td> + <td style="text-align: left">Committer</td> + </tr> + <tr> + <td style="text-align: left">Stephen Walkauskas</td> + <td style="text-align: left">?</td> + <td style="text-align: left">Committer</td> + </tr> + <tr> + <td style="text-align: left">Kevin Wilfong</td> + <td style="text-align: left">kevinwilfong</td> + <td style="text-align: left">Committer</td> + </tr> + <tr> + <td style="text-align: left">Xuefu Zhang</td> + <td style="text-align: left">xuefu</td> + <td style="text-align: left">Committer</td> + </tr> + </tbody> +</table> + +<h2 id="mailing-lists">Mailing Lists</h2> + +<p>There are several development mailing lists for ORC:</p> + +<ul> + <li><a href="mailto:dev@orc.apache.org">dev@orc.apache.org</a> - Development discussions +with archive <a href="https://mail-archives.apache.org/mod_mbox/orc-dev/">here</a></li> + <li><a href="mailto:issues@orc.apache.org">issues@orc.apache.org</a> - Bug tracking +with archive <a href="https://mail-archives.apache.org/mod_mbox/orc-issues/">here</a></li> + <li><a href="mailto:commits@orc.apache.org">commits@orc.apache.org</a> - Git tracking +with archive <a href="https://mail-archives.apache.org/mod_mbox/orc-commits/">here</a></li> +</ul> + +<p>You can subscribe to the lists by sending email to +<em>list</em>[email protected] and unsubscribe by sending email to +<em>list</em>[email protected].</p> + +<h2 id="source-code">Source code</h2> + +<p>ORC uses git for version control. Get the source code:</p> + +<p><code>% git clone https://git-wip-us.apache.org/repos/asf/orc.git</code></p> + +<p>The important branches are:</p> + +<ul> + <li>master - The trunk for all developement</li> + <li>asf-site - The pages that are deployed to https://orc.apache.org/</li> +</ul> + +<p>Please check our <a href="/develop/coding.html">coding guidelines</a>.</p> + +<h2 id="reviews">Reviews</h2> + +<p>All code must be +1âed by a committer other than the author prior to its +commit.</p> + + </article> + </div> + + <div class="clear"></div> + + </div> +</section> + + + <footer role="contentinfo"> + <p>The contents of this website are © 2015 + <a href="https://www.apache.org/">Apache Software Foundation</a> + under the terms of the <a + href="https://www.apache.org/licenses/LICENSE-2.0.html"> + Apache License v2</a>. Apache ORC and its logo are trademarks + of the Apache Software Foundation.</p> +</footer> + + <script> + var anchorForId = function (id) { + var anchor = document.createElement("a"); + anchor.className = "header-link"; + anchor.href = "#" + id; + anchor.innerHTML = "<span class=\"sr-only\">Permalink</span><i class=\"fa fa-link\"></i>"; + anchor.title = "Permalink"; + return anchor; + }; + + var linkifyAnchors = function (level, containingElement) { + var headers = containingElement.getElementsByTagName("h" + level); + for (var h = 0; h < headers.length; h++) { + var header = headers[h]; + + if (typeof header.id !== "undefined" && header.id !== "") { + header.appendChild(anchorForId(header.id)); + } + } + }; + + document.onreadystatechange = function () { + if (this.readyState === "complete") { + var contentBlock = document.getElementsByClassName("docs")[0] || document.getElementsByClassName("news")[0]; + if (!contentBlock) { + return; + } + for (var level = 1; level <= 6; level++) { + linkifyAnchors(level, contentBlock); + } + } + }; +</script> + + +</body> +</html> http://git-wip-us.apache.org/repos/asf/orc/blob/6a400548/doap_orc.rdf ---------------------------------------------------------------------- diff --git a/doap_orc.rdf b/doap_orc.rdf new file mode 100644 index 0000000..26817ee --- /dev/null +++ b/doap_orc.rdf @@ -0,0 +1,55 @@ +<?xml version="1.0"?> +<?xml-stylesheet type="text/xsl"?> +<rdf:RDF xml:lang="en" + xmlns="http://usefulinc.com/ns/doap#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:asfext="http://projects.apache.org/ns/asfext#" + xmlns:foaf="http://xmlns.com/foaf/0.1/"> +<!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF 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 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + <Project rdf:about="https://orc.apache.org"> + <created>2015-05-12</created> + <license rdf:resource="http://spdx.org/licenses/Apache-2.0" /> + <name>Apache Orc</name> + <homepage rdf:resource="https://orc.apache.org" /> + <asfext:pmc rdf:resource="https://orc.apache.org" /> + <shortdesc>A high-performance columnar file format for Hadoop workloads.</shortdesc> + <description>ORC is a self-describing type-aware columnar file format designed for +Hadoop workloads. It is optimized for large streaming reads, but with +integrated support for finding required rows quickly. Storing data in +a columnar format lets the reader read, decompress, and process only +the values that are required for the current query.</description> + <bug-database rdf:resource="https://issues.apache.org/jira/browse/orc" /> + <mailing-list rdf:resource="https://orc.apache.org/develop" /> + <download-page rdf:resource="https://orc.apache.org/downloads" /> + <programming-language>Java</programming-language> + <programming-language>C++</programming-language> + <category rdf:resource="http://projects.apache.org/category/big-data" /> + <repository> + <GitRepository> + <location rdf:resource="https://git-wip-us.apache.org/repos/asf/orc.git"/> + <browse rdf:resource="https://github.com/apache/orc"/> + </GitRepository> + </repository> + <maintainer> + <foaf:Person> + <foaf:name>Owen O'Malley</foaf:name> + <foaf:mbox rdf:resource="mailto:[email protected]"/> + </foaf:Person> + </maintainer> + </Project> +</rdf:RDF> http://git-wip-us.apache.org/repos/asf/orc/blob/6a400548/docs/acid.html ---------------------------------------------------------------------- diff --git a/docs/acid.html b/docs/acid.html new file mode 100644 index 0000000..52ba734 --- /dev/null +++ b/docs/acid.html @@ -0,0 +1,1179 @@ +<!DOCTYPE HTML> +<html lang="en-US"> +<head> + <meta charset="UTF-8"> + <title>ACID support</title> + <meta name="viewport" content="width=device-width,initial-scale=1"> + <meta name="generator" content="Jekyll v2.4.0"> + <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900"> + <link rel="stylesheet" href="/css/screen.css"> + <link rel="icon" type="image/x-icon" href="/favicon.ico"> + <!--[if lt IE 9]> + <script src="/js/html5shiv.min.js"></script> + <script src="/js/respond.min.js"></script> + <![endif]--> +</head> + + +<body class="wrap"> + <header role="banner"> + <nav class="mobile-nav show-on-mobiles"> + <ul> + <li class=""> + <a href="/">Home</a> + </li> + <li class="current"> + <a href="/docs/">Documentation</a> + </li> + <li class=""> + <a href="/talks/">Talks</a> + </li> + <li class=""> + <a href="/news/">News</a> + </li> + <li class=""> + <a href="/help/">Help</a> + </li> + <li class=""> + <a href="/develop/">Develop</a> + </li> +</ul> + + </nav> + <div class="grid"> + <div class="unit one-third center-on-mobiles"> + <h1> + <a href="/"> + <span class="sr-only">Apache ORC</span> + <img src="/img/logo.png" width="249" height="115" alt="ORC Logo"> + </a> + </h1> + </div> + <nav class="main-nav unit two-thirds hide-on-mobiles"> + <ul> + <li class=""> + <a href="/">Home</a> + </li> + <li class="current"> + <a href="/docs/">Documentation</a> + </li> + <li class=""> + <a href="/talks/">Talks</a> + </li> + <li class=""> + <a href="/news/">News</a> + </li> + <li class=""> + <a href="/help/">Help</a> + </li> + <li class=""> + <a href="/develop/">Develop</a> + </li> +</ul> + + </nav> + </div> +</header> + + + <section class="docs"> + <div class="grid"> + + <div class="docs-nav-mobile unit whole show-on-mobiles"> + <select onchange="if (this.value) window.location.href=this.value"> + <option value="">Navigate the docsâ¦</option> + + <optgroup label="Overview"> + + + + + + + + + + + + + + + + + + + + <option value="/docs/index.html">Background</option> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <option value="/docs/types.html">Types</option> + + + + + + + + + + + + + + + + + + + + + + <option value="/docs/indexes.html">Indexes</option> + + + + + + + + + + + + + + + + + + <option value="/docs/acid.html">ACID support</option> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + </optgroup> + + <optgroup label="Hive Usage"> + + + + + + + + + + + + + + + + + + <option value="/docs/hive-ddl.html">Hive DDL</option> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <option value="/docs/hive-config.html">Hive Configuration</option> + + + + + + + + + + + + + + + + + + + + + </optgroup> + + <optgroup label="Format Specification"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + <option value="/docs/spec-intro.html">Introduction</option> + + + + + + + + + + + + + + + + + + <option value="/docs/file-tail.html">File Tail</option> + + + + + + + + + + + + + + + + + + + + + + + + + + + + <option value="/docs/compression.html">Compression</option> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <option value="/docs/run-length.html">Run Length Encoding</option> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <option value="/docs/stripes.html">Stripes</option> + + + + + + + + + + + + + + <option value="/docs/encodings.html">Column Encodings</option> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <option value="/docs/spec-index.html">Indexes</option> + + + + + + + + + + + </optgroup> + + </select> +</div> + + + <div class="unit four-fifths"> + <article> + <h1>ACID support</h1> + <p>Historically, the only way to atomically add data to a table in Hive +was to add a new partition. Updating or deleting data in partition +required removing the old partition and adding it back with the new +data and it wasnât possible to do atomically.</p> + +<p>However, userâs data is continually changing and as Hive matured, +users required reliability guarantees despite the churning data +lake. Thus, we needed to implement ACID transactions that guarantee +atomicity, consistency, isolation, and durability. Although we support +ACID transactions, they are not designed to support OLTP requirements. +It can support millions of rows updated per a transaction, but it can +not support millions of transactions an hour.</p> + +<p>Additionally, we wanted to support streaming ingest in to Hive tables where +streaming applications like Flume or Storm could write data into Hive and +have transactions commit once a minute and queries would either see all of +a transaction or none of it.</p> + +<p>HDFS is a write once file system and ORC is a write-once file format, so edits +were implemented using base files and delta files where insert, update, and +delete operations are recorded.</p> + +<p>Hive tables without ACID enabled have each partition in HDFS look like:</p> + +<table> + <thead> + <tr> + <th style="text-align: left">Filename</th> + <th style="text-align: left">Contents</th> + </tr> + </thead> + <tbody> + <tr> + <td style="text-align: left">00000_0</td> + <td style="text-align: left">Bucket 0</td> + </tr> + <tr> + <td style="text-align: left">00001_0</td> + <td style="text-align: left">Bucket 1</td> + </tr> + </tbody> +</table> + +<p>With ACID enabled, the system will add delta directories:</p> + +<table> + <thead> + <tr> + <th style="text-align: left">Filename</th> + <th style="text-align: left">Contents</th> + </tr> + </thead> + <tbody> + <tr> + <td style="text-align: left">00000_0</td> + <td style="text-align: left">Bucket 0 base</td> + </tr> + <tr> + <td style="text-align: left">00001_0</td> + <td style="text-align: left">Bucket 1 base</td> + </tr> + <tr> + <td style="text-align: left">delta_0000005_0000005/bucket_00000</td> + <td style="text-align: left">Transaction 5 to 5, bucket 0 delta</td> + </tr> + <tr> + <td style="text-align: left">delta_0000005_0000005/bucket_00001</td> + <td style="text-align: left">Transaction 5 to 5, bucket 1 delta</td> + </tr> + </tbody> +</table> + +<p>When too many deltas have been created, a minor compaction will automatically +run and merge a set of transactions into a single delta:</p> + +<table> + <thead> + <tr> + <th style="text-align: left">Filename</th> + <th style="text-align: left">Contents</th> + </tr> + </thead> + <tbody> + <tr> + <td style="text-align: left">00000_0</td> + <td style="text-align: left">Bucket 0 base</td> + </tr> + <tr> + <td style="text-align: left">00001_0</td> + <td style="text-align: left">Bucket 1 base</td> + </tr> + <tr> + <td style="text-align: left">delta_0000005_0000010/bucket_00000</td> + <td style="text-align: left">Transaction 5 to 10, bucket 0 delta</td> + </tr> + <tr> + <td style="text-align: left">delta_0000005_0000010/bucket_00001</td> + <td style="text-align: left">Transaction 5 to 10, bucket 1 delta</td> + </tr> + </tbody> +</table> + +<p>When the deltas get large enough, major compaction will re-write the base +to incorporate the deltas.</p> + +<table> + <thead> + <tr> + <th style="text-align: left">Filename</th> + <th style="text-align: left">Contents</th> + </tr> + </thead> + <tbody> + <tr> + <td style="text-align: left">base_0000010/bucket_00000</td> + <td style="text-align: left">Transactions upto 10, bucket 0 base</td> + </tr> + <tr> + <td style="text-align: left">base_0000010/bucket_00001</td> + <td style="text-align: left">Transactions upto 10, bucket 1 base</td> + </tr> + </tbody> +</table> + +<p>Reads and compactions do not require locks and thus compactions can +not destructively modify their inputs, but rather write new +directories.</p> + +<p>All rows are given an automatic assigned row id, which is the triple of +original transaction id, bucket, and row id, that is guaranteed to be unique. +All update and delete operations refer to that triple.</p> + +<p>The ORC files in an ACID table are extended with several column. They +are the operation (insert, update, or delete), the triple that +uniquely identifies the row (originalTransaction, bucket, rowId), and +the current transaction.</p> + +<p><code>struct< + operation: int, + originalTransaction: bigInt, + bucket: int, + rowId: bitInt, + currentTransaction: bigInt, + row: struct<...> +> +</code></p> + +<p>The serialization for the operation codes is:</p> + +<table> + <thead> + <tr> + <th style="text-align: left">Operation</th> + <th style="text-align: left">Serialization</th> + </tr> + </thead> + <tbody> + <tr> + <td style="text-align: left">INSERT</td> + <td style="text-align: left">0</td> + </tr> + <tr> + <td style="text-align: left">UPDATE</td> + <td style="text-align: left">1</td> + </tr> + <tr> + <td style="text-align: left">DELETE</td> + <td style="text-align: left">2</td> + </tr> + </tbody> +</table> + +<p>When a application or query reads the ACID table, the reader provides +the list of committed transactions to include. This list is produced +by the Hive metastore when a query starts. The task does a merge +sort. Each of the files is sorted by (originalTransaction ascending, +bucket ascending, rowId ascending, and currentTransaction +descending). Only the first record with a currentTransaction that is +in the list of transactions to read is returned, which corresponds to +the last visible update to a row.</p> + +<p>To support streaming ingest, we add two additional features. ORC files +may have additional footers written in to their body that is parsable +as a complete ORC file that only includes the records already +written. As the file is later extended the preliminary file footer +becomes dead space within the file. Secondly, a side file named +â*_flush_lengthâ is a small file that contains a set of 8 byte +values. The last complete 8 byte value is the end of the last +preliminary footer. </p> + +<p>Two properties are added to the metadata for ORC files to speed up the +processing of the ACID tables. In particular, when a task is reading +part of the base file for a bucket, it will use the first and last +rowIds to find the corresponding spots in the delta files. The +hive.acid.key.index lets the reader skip over stripes in the delta +file that donât need to be read in this task.</p> + +<table> + <thead> + <tr> + <th style="text-align: left">Key</th> + <th style="text-align: left">Meaning</th> + </tr> + </thead> + <tbody> + <tr> + <td style="text-align: left">hive.acid.stats</td> + <td style="text-align: left">Number of inserts, updates, and deletes comma separated</td> + </tr> + <tr> + <td style="text-align: left">hive.acid.key.index</td> + <td style="text-align: left">The last originalTransaction, bucket, rowId for each stripe</td> + </tr> + </tbody> +</table> + + + + + + + + + + + + + + + + + + + <div class="section-nav"> + <div class="left align-right"> + + + + <a href="/docs/indexes.html" class="prev">Back</a> + + </div> + <div class="right align-left"> + + + + <a href="/docs/hive-ddl.html" class="next">Next</a> + + </div> + </div> + <div class="clear"></div> + + + </article> + </div> + + <div class="unit one-fifth hide-on-mobiles"> + <aside> + + <h4>Overview</h4> + + +<ul> + + + + + + + + + + + + + + + + + + + + + + <li class=""><a href="/docs/index.html">Background</a></li> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <li class=""><a href="/docs/types.html">Types</a></li> + + + + + + + + + + + + + + + + + + + + + + + + + + <li class=""><a href="/docs/indexes.html">Indexes</a></li> + + + + + + + + + + + + <li class="current"><a href="/docs/acid.html">ACID support</a></li> + + + +</ul> + + + <h4>Hive Usage</h4> + + +<ul> + + + + + + + + + + + + + + + + + + + + <li class=""><a href="/docs/hive-ddl.html">Hive DDL</a></li> + + + + + + + + + + + + + + + + + + + + <li class=""><a href="/docs/hive-config.html">Hive Configuration</a></li> + + + +</ul> + + + <h4>Format Specification</h4> + + +<ul> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <li class=""><a href="/docs/spec-intro.html">Introduction</a></li> + + + + + + + + + + + + + + + + + + <li class=""><a href="/docs/file-tail.html">File Tail</a></li> + + + + + + + + + + + + + + <li class=""><a href="/docs/compression.html">Compression</a></li> + + + + + + + + + + + + + + + + + + + + + + + + + + + + <li class=""><a href="/docs/run-length.html">Run Length Encoding</a></li> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <li class=""><a href="/docs/stripes.html">Stripes</a></li> + + + + + + + + + + + + + + + + <li class=""><a href="/docs/encodings.html">Column Encodings</a></li> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <li class=""><a href="/docs/spec-index.html">Indexes</a></li> + + + +</ul> + + + </aside> +</div> + + + <div class="clear"></div> + + </div> + </section> + + + <footer role="contentinfo"> + <p>The contents of this website are © 2015 + <a href="https://www.apache.org/">Apache Software Foundation</a> + under the terms of the <a + href="https://www.apache.org/licenses/LICENSE-2.0.html"> + Apache License v2</a>. Apache ORC and its logo are trademarks + of the Apache Software Foundation.</p> +</footer> + + <script> + var anchorForId = function (id) { + var anchor = document.createElement("a"); + anchor.className = "header-link"; + anchor.href = "#" + id; + anchor.innerHTML = "<span class=\"sr-only\">Permalink</span><i class=\"fa fa-link\"></i>"; + anchor.title = "Permalink"; + return anchor; + }; + + var linkifyAnchors = function (level, containingElement) { + var headers = containingElement.getElementsByTagName("h" + level); + for (var h = 0; h < headers.length; h++) { + var header = headers[h]; + + if (typeof header.id !== "undefined" && header.id !== "") { + header.appendChild(anchorForId(header.id)); + } + } + }; + + document.onreadystatechange = function () { + if (this.readyState === "complete") { + var contentBlock = document.getElementsByClassName("docs")[0] || document.getElementsByClassName("news")[0]; + if (!contentBlock) { + return; + } + for (var level = 1; level <= 6; level++) { + linkifyAnchors(level, contentBlock); + } + } + }; +</script> + + +</body> +</html>
