Skip to content
This repository was archived by the owner on Feb 25, 2020. It is now read-only.

Commit 7b63963

Browse files
committed
Some final cleanup and updating of the README.
1 parent 671e270 commit 7b63963

File tree

11 files changed

+99
-99
lines changed

11 files changed

+99
-99
lines changed

README.md

Lines changed: 73 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -20,48 +20,61 @@ source project.
2020

2121
A few landmarks:
2222

23-
- **quirrel** - The Quirrel compiler, including parser, static
24-
analysis and emitter
23+
- **common** - Data structures and service interfaces that are shared
24+
between multiple submodules.
25+
26+
- **quirrel** - The Quirrel compiler, including the parser, static
27+
analysis code and bytecode emitter
2528

2629
- `Parser`
2730
- `Binder`
2831
- `ProvenanceChecker`
2932

30-
- **daze** - The Quirrel evaluator and standard library, including
31-
optimization passes
33+
- **mimir** - The Quirrel optimizer, evaluator and standard library
3234

3335
- `EvaluatorModule`
3436
- `StdLibModule`
3537
- `StaticInlinerModule`
3638

3739
- **yggdrasil** - Core data access and manipulation layer
3840

41+
- `TableModule`
3942
- `ColumnarTableModule`
4043
- `Slice`
4144
- `Column`
4245

43-
- **niflheim** - Low-level block store and filesystem (NIHDB)
44-
- **ingest** - Unimaginatively, exactly what it seems to be
46+
- **niflheim** - Low-level columnar block store. (NIHDB)
47+
- `NIHDB`
48+
49+
- **ingest** - BlueEyes service front-end for data ingest.
50+
4551
- **muspelheim** - Convergence point for the compiler and evaluator
46-
stacks; integration test *source* and data
52+
stacks; integration test sources and data
4753

4854
- `ParseEvalStack`
4955
- `MiscStackSpecs`
5056

51-
- **pandora** - Vestigial convergence point; integration test
52-
*binaries*
57+
- **surtr** - Integration tests that run on the NIHDB backend.
58+
Surtr also provides a (somewhat defunct) REPL that gives access
59+
to the evaluator and other parts of the precog environment.
5360

5461
- `NIHDBPlatformSpecs`
5562
- `REPL`
5663

57-
- **shard** - BlueEyes services and final instantiation of ALL THE
58-
THINGS
59-
- **desktop** - Build scripts for standalone desktop version -- see
60-
local README.rst
64+
- **bifrost** - BlueEyes service front-end for the
6165

62-
Thus, to work on the evaluator, one would be in the **daze** project,
63-
writing tests in the **daze** and **muspelheim** projects. The tests in
64-
the **muspelheim** project would be run from the **pandora** project
66+
- **miklagard** - Standalone versions for the desktop and alternate
67+
backend data stores -- see local README.rst. These need a bit of
68+
work to bring them up to date; they were disabled some time ago
69+
and may have bitrotted.
70+
71+
- **util** - Generic utility functions and data structures that
72+
are not specific to any particular function of the Precog codebase;
73+
convenience APIs for external libraries.
74+
75+
Thus, to work on the evaluator, one would be in the **mimir** project,
76+
writing tests in the **mimir** and **muspelheim** projects. The tests in
77+
the **muspelheim** project would be run from the **surtr** project
6578
(*not* from **muspelheim**), but using the test data stored in
6679
**muspelheim**. All of the other projects are significantly saner.
6780

@@ -79,12 +92,44 @@ In order to more easily navigate the codebase, it is highly recommended
7992
that you install [CTAGS](http://ctags.sourceforge.net/), if your editor
8093
supports it. Our filename conventions are…inconsistent.
8194

95+
## Building and Running
96+
97+
These instructions are at best rudimentary, but should be sufficient to
98+
get started in a minimal way. More will be coming soon!
99+
100+
The Precog environment is organized in a modular, service-oriented
101+
fashion with loosely coupled components that are relatively tolerant
102+
to the failure of any single component (with likely degraded function).
103+
Most of the components allow for redundant instances of the relevant
104+
service, although in some cases (bifrost in particular) some tricky
105+
configuration is required, which will not be detailed here.
106+
107+
Services:
108+
109+
- **bifrost** - The primary service for evaluating NIHDB
110+
- **auth** - Authentication provider (checks tokens and grants; to be
111+
merged with accounts in the near term)
112+
- **accounts** - Account provider (records association between user
113+
information and an account root token; to be merged with auth in
114+
the near term)
115+
- **dvergr** - A simple job tracking service that is used to track
116+
batch query completion.
117+
- **ingest** - The primary service for adding data to the Precog database.
118+
119+
Runnable jar files for all of these services can be built using the
120+
`sbt assembly` target from the root (platform) project. Sample configuration
121+
files for each can be found in the `<projectname>/configs/dev` directory
122+
for each relevant project; to run a simple test instance you can use the
123+
start-shard.sh script. Note that this will download, configure, and run
124+
local instances of mongodb, apache kafka, and zookeeper. Additional instructions
125+
for running the precog database in a server environment will be coming soon.
126+
82127
## Contributing
83128

84129
All Contributions are bound by the terms and conditions of the [Precog
85130
Contributor License Agreement](CLA.md).
86131

87-
### Process
132+
### Pull Request Process
88133

89134
We use a pull request model for development. When you want to work on a
90135
new feature or bug, create a new branch based off of `master` (do not
@@ -109,69 +154,23 @@ entirely, and thus the history is not stable.
109154

110155
Do your work on your local branch, committing as frequently as you like,
111156
squashing and rebasing off of updated `master` (or any other `topic/` or
112-
`bug/` branch) at your discretion. Any commits which are related to
113-
[JIRA](https://precog.atlassian.net/secure/Dashboard.jspa) issues should
114-
have a commit message of the following form:
115-
116-
<message>
117-
118-
PLATFORM-<issue#>
119-
120-
Substitute `<message>` and `<issue#>` with the desired commit message
121-
and the JIRA issue number (e.g. `PLATFORM-819`). If a commit affects
122-
more than one issue, simply include text for both separated by a single
123-
newline. Please always ensure that the issue number in your commit
124-
messages is accurate. This information is used by the CI server and JIRA
125-
to automatically update the workflow status of the relevant issue(s).
126-
There are numerous examples of JIRA-tagged commits in the Git history of
127-
`master`.
157+
`bug/` branch) at your discretion.
128158

129159
When you are confident in your changes and ready for them to land, push
130160
your `topic/` or `bug/` branch to your *own* fork of **platform** (you
131-
can [create a fork
132-
here](https://github.com/precog/platform/fork_select)). Do not push to
133-
the main repository.
161+
can [create a fork here](https://github.com/precog/platform/fork_select)).
134162

135163
Once you have pushed to your fork, submit a Pull Request using GitHub's
136164
interface. Take a moment to describe your changes as a whole,
137165
particularly highlighting any API or Quirrel language changes which land
138-
as part of the changeset. Your Pull Request will be automatically merged
139-
with current master (but not yet pushed!) and built by our [CI
140-
server](https://jenkins.reportgrid.com). The build status will appear in
141-
GitHub's interface, telling you whether or not your changes built
142-
cleanly. If your changes did *not* build cleanly, or your branch no
143-
longer merges cleanly with `master`, you will need to either fix the
144-
issues or close the pull request until such time as the issues are
145-
resolved. If you do close the pull request and subsequently resolve the
146-
problems, simply push the updated changes to your branch (do *not*
147-
rebase!) and reopen the old pull request (there is a button for this).
148-
149-
While the CI server is busy blessing your pull request, other developers
150-
will review your changes. This is a standard code review process. At the
151-
very least, Kris will need to sign off on any change before it lands.
152-
Generally, other developers will review changes that touch their
153-
specific areas of expertise (e.g. Daniel reviewing changes to
154-
**quirrel**), or if they are interested in the commit, or if they're
155-
bored. The more code review, the better! Don't be shy about taking
156-
action on their suggestions and pushing to your branch. The pull request
157-
will automatically update and rebuild.
158-
159-
If you would like to request a code review from a specific person, you
160-
should mention them by GitHub handle within the pull request description
161-
(e.g. "Review by <**@dchenbecker**">). This sort of thing lets Kris know
162-
that your pull request should not be merged until Derek has a chance to
163-
comment and sign off on the changes.
164-
165-
Once your pull request is ready to be merged, Kris will merge your
166-
branch into `staging`, which is a branch on the mainline repository that
167-
exists *purely* for the purposes of aggregating pull requests. It should
168-
not be considered a developer branch, and only Kris should ever push to
169-
it or use its commits directly. Whenever `staging` is pushed, the CI
170-
server automatically runs the full build as a final sanity check and
171-
then pushes the changes as a *fast forward* to `master` once the build
172-
has completed successfully. An automatic trigger builds `master` and
173-
triggers the deploy chain once everything is double-blessed.
166+
as part of the changeset.
174167

168+
Once your pull request is ready to be merged, it will be brought into the
169+
`staging` branch, which is a branch on the mainline repository that
170+
exists *purely* for the purposes of aggregating pull requests. It should
171+
not be considered a developer branch, but is used to run the full build
172+
as a final sanity check before the changes are pushed as a *fast forward*
173+
to `master` once the build has completed successfully.
175174
This process ensures a minimum of friction between concurrent tasks
176175
while simultaneously making it extremely difficult to break the build in
177176
`master`. Build problems are generally caught and resolved in pull
@@ -206,8 +205,8 @@ like the following:
206205
...
207206
# hack commit hack commit hack commit hack
208207
...
209-
$ git fetch reportgrid
210-
$ git branch -f master reportgrid/master
208+
$ git fetch upstream
209+
$ git branch -f master upstream/master
211210
$ git rebase -i master
212211
# squash checkpoint commits, etc
213212
$ git push origin topic/doin-stuff
Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ server {
66
log {
77
level = "info"
88
console = true
9-
filename = "/var/log/precog/shard-v2.server.log"
9+
filename = "/var/log/precog/bifrost-v2.server.log"
1010
roll = "daily"
1111
use_parents = false
1212
}
@@ -18,14 +18,14 @@ services {
1818
log {
1919
level = "debug"
2020
console = true
21-
filename = "/var/log/precog/shard-v2.log"
21+
filename = "/var/log/precog/bifrost-v2.log"
2222
roll = "daily"
2323
use_parents = false
2424
}
2525

2626
requestLog {
2727
enabled = false
28-
file = "/var/log/precog/shard-v2.request.log"
28+
file = "/var/log/precog/bifrost-v2.request.log"
2929
roll = "daily"
3030
fields = "date time c-ip cs-method cs-uri-stem cs-uri-query sc-status cs-content"
3131
formatter = "w3cs"
@@ -36,7 +36,7 @@ services {
3636
systemId = dev
3737
precog {
3838
storage {
39-
root = /opt/precog/shard/
39+
root = /opt/precog/bifrost/
4040
}
4141
kafka {
4242
enabled = true
@@ -50,15 +50,15 @@ services {
5050
ms = 1000000
5151
}
5252
}
53-
groupid = dev_shard_consumer
53+
groupid = dev_bifrost_consumer
5454
}
5555
}
5656
}
5757
ingest {
5858
enabled = true
5959
buffer_size = 2000000
6060
max_parallel = 1
61-
failure_log_root = /opt/precog/shard/ingest_failures
61+
failure_log_root = /opt/precog/bifrost/ingest_failures
6262
}
6363
kafka {
6464
batch {
File renamed without changes.

direct-ingest.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,5 +98,6 @@ popd > /dev/null
9898
[ -z "$DONTWIPE" ] && rm -rf $DATADIR/*
9999

100100
echo "Importing to $DATADIR"
101+
echo "java -Xmx1G -cp ratatoskr/target/ratatoskr-assembly-$VERSION.jar com.precog.ratatoskr.Ratatoskr import -t $OWNERTOKEN -o $OWNERACCOUNT -s $DATADIR $SOURCES"
101102

102103
java -Xmx1G -cp ratatoskr/target/ratatoskr-assembly-$VERSION.jar com.precog.ratatoskr.Ratatoskr import -t $OWNERTOKEN -o $OWNERACCOUNT -s $DATADIR $SOURCES

ingest/configs/dev/ingest-v2.conf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ services {
5959
port = 30060
6060
}
6161

62-
shard {
62+
bifrost {
6363
protocol = "http"
6464
host = "localhost"
6565
port = 30070

miklagard/desktop/installer_files/mac-conf/shard-v2.conf

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ server {
66
log {
77
level = "info"
88
console = true
9-
filename = "shard-v2.server.log"
9+
filename = "bifrost-v2.server.log"
1010
roll = "daily"
1111
use_parents = false
1212
}
@@ -34,14 +34,14 @@ services {
3434
log {
3535
level = "debug"
3636
console = true
37-
filename = "shard-v2.log"
37+
filename = "bifrost-v2.log"
3838
roll = "daily"
3939
use_parents = false
4040
}
4141

4242
requestLog {
4343
enabled = false
44-
file = "~/Library/Application Support/labcoat/data/shard-v2.request.log"
44+
file = "~/Library/Application Support/labcoat/data/bifrost-v2.request.log"
4545
roll = "daily"
4646
fields = "date time c-ip cs-method cs-uri-stem cs-uri-query sc-status cs-content"
4747
formatter = "w3cs"
@@ -70,7 +70,7 @@ services {
7070
ms = 1000000
7171
}
7272
}
73-
groupid = shard_consumer
73+
groupid = bifrost_consumer
7474
}
7575
}
7676
}

miklagard/desktop/installer_files/shard-v2.conf

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
server {
2-
port = ${installer:shard_port}
2+
port = ${installer:bifrost_port}
33
sslPort = 30071
44
sslEnable = false
55

66
log {
77
level = "info"
88
console = true
9-
filename = "shard-v2.server.log"
9+
filename = "bifrost-v2.server.log"
1010
roll = "daily"
1111
use_parents = false
1212
}
@@ -34,14 +34,14 @@ services {
3434
log {
3535
level = "debug"
3636
console = true
37-
filename = "shard-v2.log"
37+
filename = "bifrost-v2.log"
3838
roll = "daily"
3939
use_parents = false
4040
}
4141

4242
requestLog {
4343
enabled = false
44-
file = "${installer:base_dir}/logs/shard-v2.request.log"
44+
file = "${installer:base_dir}/logs/bifrost-v2.request.log"
4545
roll = "daily"
4646
fields = "date time c-ip cs-method cs-uri-stem cs-uri-query sc-status cs-content"
4747
formatter = "w3cs"
@@ -70,7 +70,7 @@ services {
7070
ms = 1000000
7171
}
7272
}
73-
groupid = shard_consumer
73+
groupid = bifrost_consumer
7474
}
7575
}
7676
}

miklagard/desktop/installer_files/unix-conf/shard-v2.conf

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ server {
66
log {
77
level = "info"
88
console = true
9-
filename = "shard-v2.server.log"
9+
filename = "bifrost-v2.server.log"
1010
roll = "daily"
1111
use_parents = false
1212
}
@@ -34,14 +34,14 @@ services {
3434
log {
3535
level = "debug"
3636
console = true
37-
filename = "shard-v2.log"
37+
filename = "bifrost-v2.log"
3838
roll = "daily"
3939
use_parents = false
4040
}
4141

4242
requestLog {
4343
enabled = false
44-
file = "~/.labcoat/data/shard-v2.request.log"
44+
file = "~/.labcoat/data/bifrost-v2.request.log"
4545
roll = "daily"
4646
fields = "date time c-ip cs-method cs-uri-stem cs-uri-query sc-status cs-content"
4747
formatter = "w3cs"
@@ -70,7 +70,7 @@ services {
7070
ms = 1000000
7171
}
7272
}
73-
groupid = shard_consumer
73+
groupid = bifrost_consumer
7474
}
7575
}
7676
}

miklagard/jdbc/proguard.conf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
-keep public class com.precog.shard.jdbc.JDBCShardServer {
1+
-keep public class com.precog.bifrost.jdbc.JDBCShardServer {
22
public static void main(java.lang.String[]);
33
}
44
-keep class !com.precog.** { *; }

0 commit comments

Comments
 (0)