Commit Graph

82 Commits

Author SHA1 Message Date
Pedro Nasser
debc710a89 Add env vars for hotfunctions (#597)
* add env vars for hot functions

* remove fn_hot
2017-03-22 15:05:21 -03:00
Pedro Nasser
bba5668660 increase test timeout (#522) 2017-02-13 15:48:40 -08:00
Seif Lotfy سيف لطفي
ab9428a937 Unskip tests (#516)
* Unskip tests

* fix fn output for errors

* Change Error model and add fn routes call return on error
2017-02-09 22:31:39 -02:00
C Cirello
c48bd95fa6 server: stats endpoint (#468)
fixes #389
2017-01-03 21:39:29 +01:00
C Cirello
2f0520521c all: rename hot containers to hot functions (#465) 2016-12-29 20:07:41 +01:00
C Cirello
1dc3145045 functions: upgrade runner to latest (#434)
* functions: upgrade runner

* functions: update to latest runner

Supercedes and fixes #433
2016-12-14 00:10:24 +01:00
Pedro Nasser
5367a3ef99 Fix API inconsistencies (#404)
* fix api inconsistencies

* handling empty format cases

* code style
2016-12-07 17:16:48 -02:00
C Cirello
0cdd1db3e1 functions: fix goroutine leak in runner (#394)
* functions: fix goroutine leak in runner

* functions: ensure taskQueue is consumed after context cancellation
2016-12-06 16:11:06 +01:00
C Cirello
ac0044f7d9 functions: hot containers (#332)
* functions: modify datastore to accomodate hot containers support

* functions: protocol between functions and hot containers

* functions: add hot containers clockwork

* fn: add hot containers support
2016-11-28 15:45:35 -02:00
Pedro Nasser
867eb4b176 Changes on function/metric loggers (#343)
* initial fix logger

* dix DefaultFuncLogger

* fix runner and tests

* reverting: sending async task stdout to func logger
2016-11-27 16:36:40 -02:00
C Cirello
f6d19c3cc9 functions: performance improvements - LRU & singleflight DB calls (#322)
* functions: add cache and singleflight to ease database load

* runner: upgrade

* deps: upgrade glide files

* license: add third party notifications

* functions: fix handling of implicitly created apps

* functions: code deduplication

* functions: fix missing variable
2016-11-21 19:48:11 +01:00
C Cirello
9d06b6e687 functions: common concurrency stream for sync and async (#314)
* functions: add bounded concurrency

* functions: plug runners to sync and async interfaces

* functions: update documentation about the new env var

* functions: fix test flakiness

* functions: the runner is self-regulated, no need to set a number of runners

* functions: push the execution to the background on incoming requests

* functions: ensure async tasks are always on

* functions: add prioritization to tasks consumption

Ensure that Sync tasks are consumed before Async tasks. Also, fixes
termination races problems for free.

* functions: remove stale comments

* functions: improve mem availability calculation

* functions: parallel run for async tasks

* functions: check for memory availability before pulling async task

* functions: comment about rnr.hasAvailableMemory and sync.Cond

* functions: implement memory check for async runners using Cond vars

* functions: code grooming

- remove unnecessary goroutines
- fix stale docs
- reorganize import group

* Revert "functions: implement memory check for async runners using Cond vars"

This reverts commit 922e64032201a177c03ce6a46240925e3d35430d.

* Revert "functions: comment about rnr.hasAvailableMemory and sync.Cond"

This reverts commit 49ad7d52d341f12da9603b1a1df9d145871f0e0a.

* functions: set a minimum memory availability for sync

* functions: simplify the implementation by removing the priority queue

* functions: code grooming

- code deduplication
- review waitgroups Waits
2016-11-18 18:23:26 +01:00
Carlos C
d5fb1afda7 Revert "Assert License (#224)"
This reverts commit a61c4dab78.
2016-11-06 09:25:12 -08:00
C Cirello
a61c4dab78 Assert License (#224)
* license: assert license for Go code
* license: add in shell scripts
* license: assert license for Ruby code
* license: assert license to individual cases
* license: assert license to Dockerfile
2016-11-05 23:33:07 +01:00
Nikhil Marathe
1397899358 Fix max memory on non-linux machines and memory decrement after failures.
* Always decrement memory even if task preparation or execution fails.

* Fall back to max 2GB memory on non-Linux. 300GB is ridiculous.

* Simplify loop
2016-10-31 17:33:04 -07:00
Travis Reeder
41c06644d9 Docs related to running in production. (#174)
* Fixed up api.md, removed Titan references.

* Adding more documentation on running in production.

* Update deps for ironmq.
2016-10-17 11:31:58 -07:00
C Cirello
d6e31b5d65 Skip flaky test for now (#168) 2016-10-14 13:09:53 +02:00
Travis Reeder
c40ef433d8 Minor to fix comments in PR. 2016-10-13 20:24:06 -07:00
Travis Reeder
74402bdfea Fixing tests. 2016-10-13 20:24:06 -07:00
Travis Reeder
3e443e604c Added async post command to README. 2016-10-13 20:24:06 -07:00
Travis Reeder
25f582b180 Updated README and simplified/cleaned up some code. 2016-10-13 20:24:06 -07:00
C Cirello
df3d5b48ce Fix race condition during initialization (#163)
Currently, async workers are started before HTTP interface is available
to get their requests. It fixes by ensuring that async workers are
started after HTTP interface is up.

Essentially we are getting rid of an error message during bootstrap:

        ERRO[0000] Could not fetch task error=Get http://127.0.0.1:8080/tasks: dial tcp 127.0.0.1:8080: getsockopt: connection refused
2016-10-13 22:56:34 +02:00
C Cirello
34b4b25092 Log messages cleanup (#158) 2016-10-13 18:11:31 +02:00
C Cirello
4cbfb3ccfd Reduce test log verbosity (#150)
* Reduce test verbosity
* Divert gin's log to the test buffer
* Divert stdlib's log to the test buffer
* Add bolt tests into log buffer

* Add a linebreak to improve log output layout
2016-10-13 00:06:02 +02:00
Seif Lotfy سيف لطفي
006c01c97e Change default API URL from localhost to 127.0.0.1 (#153)
* Change host from localhost to 127.0.0.1

* change unit tests to also use 127.0.0.1 instead of localhost
2016-10-13 00:00:53 +02:00
Pedro Nasser
1ff480561a add runTask test (#131) 2016-10-12 22:32:06 +02:00
Pedro Nasser
2e12e2c700 Fix input async tasks + tests (#137) 2016-10-12 22:23:34 +02:00
Travis Reeder
32f91e83ea Fixes issues with dependencies. 2016-10-12 19:15:39 +02:00
Seif Lotfy سيف لطفي
064d597b60 Fix runner changes (#135)
* Upgrade iron-io/runner to 165c16a9

* fix support for Stdin to work
2016-10-07 21:17:40 +02:00
Pedro Nasser
52f78eb601 fix runner changes (#132)
Fix runner changes
2016-10-07 18:49:16 +02:00
Seif Lotfy سيف لطفي
970412ba88 If no task if found don't print error (#130) 2016-10-06 20:27:25 -03:00
Seif Lotfy سيف لطفي
52cab30056 Change PAYLOAD input to STDIN (#111)
* change to iron-io/runner dependency
* Fix runner dependency
* Change PAYLOAD input to STDIN, fixes #40
2016-10-06 18:44:58 -03:00
Seif Lotfy سيف لطفي
b7bf73f5d2 Makefile (#122)
* Update Readme and add Makefile
* Skip stale tests (in wait for stdin support)

* Revert "Skip stale tests (in wait for stdin support)"

This reverts commit 228da3776503f40ca53df70a79a9e4a9c73fd8b5.
2016-10-06 20:46:29 +02:00
C Cirello
3ca137a01c Upgrade to Go 1.7 (#128)
* Upgrade to stdlib context package
* Modernized syntax
2016-10-06 20:10:00 +02:00
C Cirello
aa12f3c724 Add graceful shutdown support for async runners (#125) 2016-10-06 00:32:56 +02:00
Seif Lotfy سيف لطفي
fbcec6bf40 Depend on iron-io/runner instead of iron-io/worker (#124) 2016-10-05 20:42:12 +02:00
C Cirello
eed5422c59 Fix configuration load from environment variables (#123)
Fix configuration load from environment variables
Fixed #119
2016-10-05 19:10:21 +02:00
Seif Lotfy سيف لطفي
659d30dd9f Merge pull request #118 from iron-io/issue-114
Add context do models.MessageQueue interface
2016-10-05 01:05:34 +02:00
Carlos C
bb5824fef0 Code grooming 2016-10-05 00:51:50 +02:00
Carlos C
bc3fba088f Fix start problem with two IronFunction colliding configurations
By default, BoltDB will hang while waiting to acquire lock to the
datafile, thus the users might find themselves waiting for something
but not what. The added timeout aims inform use about what's
happening.

Also this renames MQADR to TASKSRV, refactor configuration to read
environment variables. RunAsyncRunner now fills the gaps when
parsing TASKSRV.

Fixes #119
2016-10-04 23:57:43 +02:00
Carlos C
b15ff5ce3a context -> golang.org/x/net/context 2016-10-04 19:01:57 +02:00
Carlos C
6fd13e6754 update tests with new mq interface 2016-10-04 18:45:59 +02:00
Seif Lotfy
d8801d5be7 Refactor async runner and its reference and add unit tests 2016-09-30 23:29:59 +02:00
Seif Lotfy
f5c4f5f7a9 Fix unit tests due to missing mock MQ 2016-09-30 23:04:56 +02:00
Seif Lotfy
f6f160cef9 Move async runner to runner file 2016-09-26 15:11:36 +02:00
Seif Lotfy
92df53b144 Add support for Async worker 2016-09-24 10:06:57 +02:00
Henrique Chehad
ba3f0b360b removed "reserved_memory" metric 2016-09-21 22:35:07 -03:00
Henrique Chehad
6b910d0b75 added wait time total and reserved memory metrics 2016-09-21 20:25:37 -03:00
Henrique Chehad
06294b4b77 updated worker repository ref 2016-09-19 20:41:35 -03:00
Pedro Nasser
b867b20cfd fix sleep time 2016-09-17 12:11:04 -03:00